Clients

One URL. Every client you use.

Omniio is a remote MCP server over streamable HTTP, so anything that speaks the protocol can point at it. Pick your client below and copy the exact block — the shapes differ more than you would expect.

Endpointhttps://mcp.omniio.dev
Setup

Pick your client.

5 named clients and a generic block. Each one is generated from the endpoint this deployment actually serves, so the URL you copy is the URL you get.

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
Verify

A 401 is the right answer to this one.

If you want to see the endpoint respond before you configure anything, post to it from a terminal. The refusal carries a WWW-Authenticate header naming the authorization server — which is exactly how a client finds where to send you.

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

What changes on your side.

Your agent gets three tools, not three hundred

search_tools, describe_tool and run_tool. The agent searches for what it needs and reads one schema, so the context cost of having a server on is close to nothing until it is used.

The config never changes again

Turning a server on or off changes what is behind the URL, not the URL. Nobody edits a JSON file on four machines to add a connector.

Credentials stay with the person

Your tokens and OAuth grants are yours; a colleague on the same team holds their own. The client only ever sees the Omniio endpoint.

Every call is written down

Arguments, result, duration and outcome — including calls a tool policy refused, which is the half most logs leave out.

Behind the URL

140 servers, 6 of them on from the first call.

The ones that need no credential of yours are already on when the account is created. The rest wait for you to connect them, and none of it changes what your client is configured with.

Browse all 140
Questions

When it does not connect.

Do I need an API key to configure a client?

No. Omniio is an OAuth 2.1 resource server with dynamic client registration, so a conforming MCP client registers itself and sends you through a consent screen. The API key in your settings is for the REST read API, not for the MCP endpoint.

Can I connect more than one client?

Yes, and it is the ordinary case — Claude Code on a laptop, the desktop app on the same machine, Cursor at work. Each authorizes separately and appears in your client list, where you can revoke any one of them without touching the others.

My client added the server but sees no tools.

Almost always the authorization step: the server is configured, but nobody has been through the consent screen yet, so Omniio has no idea who is asking. The other cause is pasting the wrong shape — VS Code wants servers, Cursor and Windsurf want mcpServers, and Windsurf wants serverUrl instead of url.

Does it work with a client that only speaks SSE?

Omniio serves streamable HTTP, which is what the current specification defines and what every client on this page uses. A client that only offers the older SSE transport needs a local bridge; there is nothing to configure on the Omniio side.

Can I check the endpoint without a client at all?

Yes — the probe below returns a 401 with a WWW-Authenticate header pointing at the authorization server. That refusal is the correct answer: it is how a client discovers where to authorize.

Configure it once and forget the file exists.

Free covers a personal agent running all month. Nothing to install, and the config never needs editing again.