Client configuration

The exact configuration for every client that speaks Streamable HTTP MCP.

Omniio is a remote MCP server over HTTP. Any client that supports one can connect, and every client wants the same two things: the URL, and permission to sign in.

Pick your client#

The shapes genuinely differ. VS Code keys the object servers and wants an explicit type; Cursor keys it mcpServers and needs neither; Windsurf calls the field serverUrl; the Claude desktop app has no config file at all. Copy the panel for your client rather than adapting a neighbour's.

A terminal, in any directory

terminal
claude mcp add --transport http omniio https://mcp.omniio.dev --scope user
Worth knowing

--scope user puts Omniio on every project on the machine. Drop it to keep the server local to the current one, or use --scope project to write a .mcp.json your team shares.

Authorizing

Run /mcp in Claude Code and pick Omniio; the browser opens once and the grant is stored for you.

Claude Code MCP documentation

What every client needs#

URL
Always https://mcp.omniio.dev. The same for every account.
Transport
Streamable HTTP. Written `http` by most clients and `streamable-http` by ones that follow the specification's own naming; both are accepted.
Authentication
None to configure. Omniio speaks OAuth 2.1 with dynamic client registration, so your client registers itself and gets its own credentials.

Authorizing#

The first time your client reaches the endpoint, it opens a browser window and asks you to sign in to Omniio. Finish that redirect once; the client stores the resulting grant and will not ask again until you revoke it.

Each client that authorizes appears separately under Settings → Connections, named by what it called itself when it registered. Revoking one deletes that client's tokens and leaves the rest connected — see Authorization.

Verifying from a terminal#

If a client will not connect and you want to know whether the problem is the client or the endpoint, ask the endpoint directly:

terminal
curl -i -X POST https://mcp.omniio.dev \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

An unauthenticated probe should come back 401 with a WWW-Authenticate header naming the authorization server. That is the correct answer, and it proves the endpoint is reachable and speaking MCP — a client that cannot connect against a 401 here has a configuration problem, not a network one.

Common mistakes#

Wrong top-level key
`servers` in Cursor or `mcpServers` in VS Code. The file parses, the server never appears, and nothing is logged. This is the single most common cause.
The app URL instead of the endpoint
omniio.dev serves the website and the REST API; mcp.omniio.dev serves only the MCP endpoint. They are not interchangeable.
A trailing path
The endpoint is the origin. Appending `/mcp` or `/sse` gives a 404.
Client not restarted
Most clients read their MCP config once, at startup. Enabling a server inside Omniio needs no restart; editing your client's config file does.

Next: Connecting servers — what sits behind the endpoint once your client is talking to it.

On this page