Setup
Connect your AI client to the hosted Zernio MCP server with OAuth or an API key, plus local installation via the Python SDK and troubleshooting.
The Zernio MCP server is hosted at:
https://mcp.zernio.com/mcpNo installation required. Point your MCP client at the URL, authenticate, and every Zernio API capability — posting, scheduling, ads, DMs, analytics — is available through natural language.
The server exposes the entire Zernio API without flooding your context. A core set of ~50 tools (posting, scheduling queue, accounts, media, validation, analytics) is always visible to your client, and the remaining ~450 endpoint tools are discovered dynamically: the agent calls search_tools to find a capability and call_tool to invoke it. See Tools for the full 496-tool catalog.
Authentication
The hosted server supports two authentication methods:
- OAuth (recommended) — your MCP client opens a browser window and you sign in with your Zernio account. No keys to copy around, and you can revoke a client's access at any time from your dashboard.
- API key — pass a Zernio API key as a bearer token in the
Authorizationheader. Use this for clients without OAuth support and for autonomous agents.
Clients that support OAuth need only the server URL — the server advertises its authorization flow automatically and the client walks you through sign-in on first use. Under the hood it 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 — no pre-approval needed.
Connect your client
To open Cursor and automatically add the Zernio MCP server, click install. Alternatively, add the following to your ~/.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 (OAuth). To use an API key instead, pass it as a header:
{
"mcpServers": {
"zernio": {
"url": "https://mcp.zernio.com/mcp",
"headers": {
"Authorization": "Bearer your_api_key_here"
}
}
}
}To learn more, see the Cursor documentation.
Add the server with one command:
claude mcp add --transport http zernio https://mcp.zernio.com/mcpThen authenticate with your Zernio account (OAuth):
claude /mcpTo use an API key instead of OAuth, pass it when adding the server:
claude mcp add --transport http zernio https://mcp.zernio.com/mcp \
--header "Authorization: Bearer your_api_key_here"Alternatively, install the Zernio plugin, which bundles the MCP server with skills and slash commands:
/plugin marketplace add zernio-dev/zernio-claude-plugin
/plugin install zernio@zernioTo learn more, see the Claude Code documentation.
Add the server with one command:
codex mcp add zernio --url https://mcp.zernio.com/mcpThen sign in with your Zernio account (OAuth):
codex mcp login zernioThis is equivalent to the following in ~/.codex/config.toml:
[mcp_servers.zernio]
url = "https://mcp.zernio.com/mcp"To use an API key instead of OAuth, reference it from an environment variable:
[mcp_servers.zernio]
url = "https://mcp.zernio.com/mcp"
bearer_token_env_var = "ZERNIO_API_KEY"To learn more, see the Codex documentation.
You can enable MCP servers on ChatGPT with a Pro, Plus, Business, Enterprise, or Education account. Follow the OpenAI documentation to enable developer mode, then create a custom connector with:
- Server URL:
https://mcp.zernio.com/mcp - Authentication: OAuth
ChatGPT redirects you to sign in with your Zernio account and the connector activates.
In Claude (web, desktop, or mobile), open Settings → Connectors → Add custom connector:
- Name: Zernio
- URL:
https://mcp.zernio.com/mcp
Click Add. Claude redirects you to sign in and authorize with your Zernio account (OAuth), then the connector activates — no API key needed.
Claude Desktop's claude_desktop_config.json only supports local stdio servers. Use the connector UI above for the hosted server, or see the Other tab for a config-file bridge.
To open VS Code and automatically add the Zernio MCP server, click install. Alternatively, add the following to .vscode/mcp.json in your workspace:
{
"servers": {
"zernio": {
"type": "http",
"url": "https://mcp.zernio.com/mcp"
}
}
}To learn more, see the VS Code documentation.
MCP is an open protocol supported by many clients, and Zernio is published to the official MCP Registry as com.zernio/zernio. Your client's documentation can advise you how to connect — use the server URL https://mcp.zernio.com/mcp and OAuth as the connection mechanism if possible.
If your client doesn't support OAuth, pass an API key in the Authorization header as a bearer token. For example, a client might accept the following configuration:
{
"zernio": {
"url": "https://mcp.zernio.com/mcp",
"headers": {
"Authorization": "Bearer your_api_key_here"
}
}
}stdio-only clients
If your client only supports local stdio servers (command + args), bridge to the hosted server with mcp-remote:
{
"mcpServers": {
"zernio": {
"command": "npx",
"args": [
"-y",
"mcp-remote@latest",
"https://mcp.zernio.com/mcp",
"--header",
"Authorization: Bearer your_api_key_here"
]
}
}
}Omit the --header arguments to authenticate with OAuth instead — mcp-remote opens a browser window for sign-in.
Paste the full API key directly into the --header value. Some clients (notably Claude Desktop on Windows) don't expand environment variables into npx args, which leaves the header empty and causes a misleading 404 / OAuth-discovery error.
Building autonomous agents
If you're building agentic software, pass a Zernio API key as a bearer token directly to the hosted server — it speaks Streamable HTTP, so any MCP SDK (or plain HTTP) works:
curl https://mcp.zernio.com/mcp \
-X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer your_api_key_here" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "posts_create",
"arguments": { "content": "Hello from my agent!", "platforms": ["twitter"] }
},
"id": 1
}'Don't embed API keys in code. Provide them to your agent through a secrets vault or environment variable, and create a dedicated key per agent at zernio.com/dashboard/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 — useful for clients without HTTP support, air-gapped setups, or pinning a specific version. The local server authenticates with an API key via the ZERNIO_API_KEY environment variable (OAuth is only available on the hosted server).
With uv installed, configure your client to run the server via uvx — no explicit install step needed:
{
"mcpServers": {
"zernio": {
"command": "uvx",
"args": ["--from", "zernio-sdk[mcp]", "zernio-mcp"],
"env": {
"ZERNIO_API_KEY": "your_api_key_here"
}
}
}
}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"Install the SDK with the MCP extra:
pip install "zernio-sdk[mcp]"This puts the zernio-mcp command on your PATH. Configure your client:
{
"mcpServers": {
"zernio": {
"command": "zernio-mcp",
"env": {
"ZERNIO_API_KEY": "your_api_key_here"
}
}
}
}If your client can't find the command, use the absolute path (run which zernio-mcp to get it) or the uvx method instead.
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.
Troubleshooting
"401 Unauthorized"
The server rejected your bearer token. If you're using an API key, check it at zernio.com/dashboard/api-keys — make sure it's active and copied without extra spaces. If you're using 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"
You need to connect social media accounts at zernio.com before you can post.
Changes not taking effect
After editing your client's MCP configuration, restart the client completely.
"Command not found: uvx" (local setup only)
Make sure uv is installed and in your PATH:
# Check if installed
uvx --version
# If not, install it
curl -LsSf https://astral.sh/uv/install.sh | shYou may need to restart your terminal or add uv to your PATH.
Next
- Tools - what the server can do and the parameter reference for the core tools