Zernio
Zernio
OverviewMCPSetupToolsDocumentation MCP
Dashboard
llms.txtOpenAPI
OverviewPlatformsAPI ReferenceResources
MCP

Setup

Connect Cursor, Claude Code, Codex, ChatGPT, Claude, VS Code or any MCP client to the hosted Zernio MCP server with OAuth or an API key, or run the server locally.


Connect Cursor, Claude Code, Codex, ChatGPT, Claude, VS Code or any MCP client to https://mcp.zernio.com/mcp with OAuth or an API key. The server is hosted, so there is nothing to install; the MCP page has a first tool call over plain HTTP.

Authentication

The hosted server accepts two credentials:

  • OAuth: your MCP client opens a browser and you sign in with your Zernio account. There is no key to copy, and you can revoke a client from your dashboard at any time.
  • API key: pass an API key in the Authorization: Bearer header. Use this for clients without OAuth support and for autonomous agents.

A client that supports OAuth needs only the server URL: the server advertises its authorization flow and the client walks you through sign-in on first use. The server implements the MCP authorization spec, OAuth 2.1 with PKCE, discovery metadata, and open dynamic client registration (RFC 7591), so any MCP client can register itself without pre-approval.

Config files are not shell scripts. Wherever a sample on this page shows $ZERNIO_API_KEY, paste the key itself if your client does not expand it. Some clients (Claude Desktop on Windows among them) do not expand environment variables into a config value or into npx args, which leaves the header empty and produces a misleading 404 or OAuth-discovery error.

Connect your client

Install in Cursor

The install link opens Cursor and adds the server. To add it by hand instead, put this in ~/.cursor/mcp.json (or a project's .cursor/mcp.json):

{
  "mcpServers": {
    "zernio": {
      "url": "https://mcp.zernio.com/mcp"
    }
  }
}

Cursor prompts you to sign in with your Zernio account. To use an API key instead, pass it as a header:

{
  "mcpServers": {
    "zernio": {
      "url": "https://mcp.zernio.com/mcp",
      "headers": {
        "Authorization": "Bearer $ZERNIO_API_KEY"
      }
    }
  }
}

The Cursor documentation covers the file format.

Confirm the connection the same way in any client: ask the assistant to list your connected Zernio accounts. A working server answers from the accounts_list tool with one line per account (- instagram: acmecorp (ID: 66b2e19d8c3f5a7e9d0b1c2d)), or with No accounts connected when you have none yet. Anything else is one of the failures below.

Building autonomous agents

An agent passes an API key as the bearer credential straight to the hosted server; it speaks Streamable HTTP, so any MCP SDK or plain HTTP works. The MCP page has a complete tools/call request with its response.

Do not embed API keys in code. Provide them to the agent through a secrets vault or an environment variable, and create a dedicated key per agent on API keys so you can revoke it independently.

Run the server locally

The MCP server ships inside the Python SDK, so you can also run it as a local stdio process for clients without HTTP support, air-gapped setups, or to pin a version. The local server authenticates with an API key from the ZERNIO_API_KEY environment variable; OAuth is only available on the hosted server.

With uv installed, configure your client to run the server through uvx, with no install step:

{
  "mcpServers": {
    "zernio": {
      "command": "uvx",
      "args": ["--from", "zernio-sdk[mcp]", "zernio-mcp"],
      "env": {
        "ZERNIO_API_KEY": "$ZERNIO_API_KEY"
      }
    }
  }
}

To install uv:

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows (PowerShell)
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

The package also includes zernio-mcp-http, which serves the same Streamable HTTP transport as the hosted server if you want to self-host it; see the HTTP deployment guide.

If it fails

401 Unauthorized

The server rejected the credential. With an API key, check it on API keys: it must be active and copied without extra spaces. With OAuth, remove and re-add the server so the client runs the sign-in flow again.

Couldn't register with Zernio's sign-in service

Your client failed OAuth dynamic client registration. Registration is open to any MCP client (any https, loopback or app-scheme callback), so this is usually transient: remove the server or connector and add it again to restart the flow. If it persists, check status.zernio.com or fall back to an API key in the Authorization header.

Claude connector says Couldn't reach the MCP server

Remove the connector and add it again. Claude caches a failed authorization attempt, so a stale failure persists until you re-add it.

No accounts connected

Connect an account at zernio.com before you post; the connecting accounts guide covers every platform.

Changes not taking effect

After editing your client's MCP configuration, restart the client completely.

Command not found: uvx (local setup only)

Check that uv is installed and on your PATH:

uvx --version
curl -LsSf https://astral.sh/uv/install.sh | sh

Restart your terminal or add uv to your PATH after installing.

Related

  • MCP: a first tool call over plain HTTP and how the server behaves.
  • Tools: the core tool parameters and the tools/list catalog.
  • API keys
  • Python SDK: the package the server ships in.
  • Status page
Was this page helpful?

MCP

Connect Claude, ChatGPT, Codex, Cursor or any MCP client to the hosted Zernio MCP server and let the assistant create posts, upload media and manage the inbox.

Tools

The parameters of the 20 core Zernio MCP tools, the tools/list call that returns the catalog your client sees, and the browser upload flow for media.

On this page

AuthenticationConnect your clientstdio-only clientsBuilding autonomous agentsRun the server locallyIf it fails401 UnauthorizedCouldn't register with Zernio's sign-in serviceClaude connector says Couldn't reach the MCP serverNo accounts connectedChanges not taking effectCommand not found: uvx (local setup only)Related