Installation
Set up the Omni MCP server in Gumloop
Do this once to provision your hosted server URL.
Create a Gumloop account
To use this MCP, you need a Gumloop account. If you don't have one yet, sign up and start a 14-day free trial.
Add and authorize the Omni server
In Gumloop, open Connectors and add Omni. Depending on the app, you'll either sign in via OAuth or paste an API key. Either way, the credential is stored securely in Gumloop.
Then use it in your client
Use in GumloopUse Omni in an agent
Once Omni is set up, just open any Gumloop agent, add Omni as a connector, and start chatting with the agent.
Tools (6)
Pick Model
Returns a list of models available to the current API key. Each model has an id and name. Use this tool to discover which models are available before calling pickTopic or getData. For admin API keys, this returns all models in the organization. For user-scoped API keys, this returns only the models the user has access to. After calling this tool, select the most appropriate model for the user query and use its id when calling pickTopic and getData.
Pick Topic
Select the most appropriate topic based on the provided prompt. Returns a topicId that can be passed to getData to scope the query to a specific topic. This step is optional — getData will pick a topic automatically if none is provided — but it can be useful if you want to confirm or surface the topic choice up front. If modelId was not configured via headers, you must pass it as a parameter (call pickModel first to see available models).
Get Data
Gets data by generating and executing a query from natural language. Use this when the user has a question that is asking for data. For example, "how many users do I have?", "what was sales like last month?". When using this tool, if a user provides SQL, study the SQL, be succinct, and convert the SQL to a plain english question that describes what data the SQL is querying, and then call this tool with the prompt as that plain english description. The topicId is optional — if you already have one (e.g. from a prior pickTopic call), pass it to scope the query; otherwise omit it and the server will pick the most appropriate topic for the prompt automatically (or surface a non-topic view when the server is configured for all-views-and-fields mode). If modelId was not configured via headers, you must pass it as a parameter (call pickModel first to see available models). The tool returns: 1. JSON Query results, (optional) 2. The filters applied to the query, (optional) 3. A workbook URL to view the full analysis within the Omni application -- If a workbook URL is present, always show it to the user. The response also includes 'topic' (real topic name, or null) and 'baseView' (base view name when queryAllViews surfaced a non-topic view, or null) — exactly one is non-null when a query was generated.
Ask Omni
Starts the full Omni AI assistant on an open-ended or multi-step analytical question and returns immediately with a 'jobId' — it does NOT wait for or return the answer, which is retrieved separately once the job finishes. Use this (not getData) for anything needing planning, several queries, or a reasoned written answer: deep analysis ("what's driving the revenue drop"), investigations ("investigate churn last quarter"), building dashboards and reports, creating visualizations and forecasts, and editing the semantic model. The job runs asynchronously and can take minutes; the response carries 'jobId', 'conversationId', 'omniChatUrl', and status:"submitted". To ask a follow-up in the same thread, pass the returned conversationId back in. If modelId was not configured via headers you must pass it. topicName is optional — omit it to let the assistant pick.
Check Status
Checks on a job started by askOmni and returns quickly. Pass the jobId. While the assistant is still working it returns { status: "running", state, progress } — progress.message is what it's doing right now (e.g. "Generating 3 queries"), and the result includes an 'instructions' field telling you what to relay to the user (and to stay quiet when the step is unchanged). Once it's done it returns the full answer: the final markdown 'message', the 'topic', an 'omniChatUrl' (always show it to the user), the 'conversationId' (pass back to askOmni for a follow-up), and a compact 'actions' list. A failed job returns an error; a cancelled job returns status:"cancelled". This is a fast status check — call it again whenever you want a fresh update; you decide how often to poll until it reaches a terminal result. Agentic jobs routinely run for several minutes; that is normal, not a failure — keep polling and don't give up (or tell the user it failed) just because it's still running after a few minutes.
Search Omni Docs
Search the Omni documentation to answer questions about Omni features, configuration, modeling, dashboards, and more. Pass a natural language question and get a synthesized answer with source links.
Ship Omni agents in minutes
Connect any AI agent to 100+ MCP servers, zero setup.