Zelf MCP

Connect an AI client to your Zelf data and it can search content, read comments, look up creators, run an AI analysis, and vet a creator, as tools rather than as HTTP requests you write yourself. Everything below is the same operation as the matching API endpoint, with the same filters.

What a connection can do

Reading is granted to every connection. Starting an AI analysis or a creator vetting is a write, and the consent screen offers it whenever you connect a client: it arrives ticked, and clearing the box connects the client read only. A write spends your brand’s quota, and nothing a client can call edits or deletes anything.

  • Content and creators

    Read

    Search posts and comments across your brands and your competitors, look a creator up by handle or id, and total any of it without paging.

    search_content, search_creators, list_comments, content_statistics
  • AI analysis

    Read and write

    Start an analysis over a set of posts and ask it a question in plain words, then list what exists and read a finished result. Starting one spends quota and takes a while, so the answer arrives by polling or by webhook, not in the same reply.

    start_ai_analysis, list_ai_analyses, get_ai_analysis, list_ai_analysis_contents, ai_analysis_content_statistics
  • Creator vetting

    Read and write

    Vet a creator from their profile URL for safety and brand fit, then list vettings and read the report each one produced. A recent vetting of the same creator can be read for free, so check before starting another.

    start_creator_vetting, list_creator_vettings, get_creator_vetting, list_creator_vetting_contents, creator_vetting_content_statistics
  • Webhooks and usage

    Read

    Inspect your subscriptions, the events available, and every delivery attempt, plus what the brand has spent against its quota.

    list_webhook_subscriptions, list_webhook_deliveries, zelf_quota

Clients

Point your client at the server URL. There is no key to copy: the client sends you to a Zelf approval page in the browser, where you sign in and choose the brand it may read.

Server URL

Read only
https://mcp.hellozelf.com/mcp

Include the full path. A client pointed at the host alone finds nothing there.

Pick your client

16

Claude web and desktop

Connector

Claude connects from Anthropic servers, so nothing runs on your machine.

  1. 1

    On Pro or Max, open Settings, then Connectors, then Add custom connector.

  2. 2

    On Team or Enterprise an Owner adds it once for everyone, in Organization settings, then Connectors, then Add. Members do not get that button, so their Connectors page lists only what an Owner has already added.

  3. 3

    Name it Zelf and paste the server URL. Leave the OAuth client fields empty, the connection registers itself.

    url
    https://mcp.hellozelf.com/mcp
  4. 4

    Click Connect and approve. Everyone else on the plan then connects it themselves from Settings, Connectors, and approves for their own brand.

Claude Code

Terminal

One command, then approve in the browser.

  1. 1

    Add the server. With --scope user it is available in every project.

    shell
    claude mcp add --transport http --scope user zelf https://mcp.hellozelf.com/mcp
  2. 2

    Run /mcp, pick Authenticate, and your browser opens here to approve.

    claude code
    /mcp
  3. 3

    For a team, commit this as .mcp.json in the repository root instead. Everyone who opens the project is offered the server and approves it once, each for their own brand.

    .mcp.json
    {
      "mcpServers": {
        "zelf": {
          "type": "http",
          "url": "https://mcp.hellozelf.com/mcp"
        }
      }
    }

ChatGPT

Plugin

Needs a paid plan. Developer mode turns on either way, but the Free plan has nowhere to add a custom plugin.

  1. 1

    Open Settings, then Security and login, and turn on Developer mode. It warns about unverified connectors, which is what a custom one is.

  2. 2

    Open Plugins in the sidebar and click the + button. This used to live under Connectors.

  3. 3

    Paste the server URL and choose OAuth as the authentication.

    url
    https://mcp.hellozelf.com/mcp
  4. 4

    Approve the connection, then enable the plugin inside a chat.

Codex CLI

Terminal

Configured in ~/.codex/config.toml, or .codex/config.toml for one project.

  1. 1

    Add the server.

    config.toml
    [mcp_servers.zelf]
    url = "https://mcp.hellozelf.com/mcp"
    auth = "oauth"
  2. 2

    Sign in, which opens the approval page here.

    shell
    codex mcp login zelf
  3. 3

    Run /mcp in a session to confirm the tools are listed.

    codex
    /mcp

Gemini web app

Connected app

Connected in the browser, then usable from the mobile app too. Needs access to Gemini Spark, a personal Google account, and Keep Activity on.

  1. 1

    At gemini.google.com open Settings and help, then Connected Apps.

  2. 2

    Under custom apps for Spark, paste the server URL. That is all it needs: the server registers clients itself, so the credential fields under Show more stay empty.

    url
    https://mcp.hellozelf.com/mcp
  3. 3

    Sign in and approve, then pick the brand it may read.

Gemini CLI

Terminal

Configured in ~/.gemini/settings.json. It runs the whole sign-in itself.

  1. 1

    Add the server. The field here is httpUrl, and no header or token belongs in it.

    ~/.gemini/settings.json
    {
      "mcpServers": {
        "zelf": {
          "httpUrl": "https://mcp.hellozelf.com/mcp",
          "oauth": { "enabled": true }
        }
      }
    }
  2. 2

    Start Gemini and run /mcp auth, which opens the approval page here.

    gemini
    /mcp auth

Antigravity

Editor

Global in ~/.gemini/config/mcp_config.json, per workspace in .agents/mcp_config.json.

  1. 1

    In the agent panel open the ... menu, then MCP Servers, Manage MCP Servers, View raw config.

  2. 2

    Add the server. The field here is serverUrl, not url.

    mcp_config.json
    {
      "mcpServers": {
        "zelf": {
          "serverUrl": "https://mcp.hellozelf.com/mcp"
        }
      }
    }

JetBrains IDEs

Editor

AI Assistant 2026.1 or newer, across IntelliJ, PyCharm, WebStorm, GoLand and the rest.

  1. 1

    Open Settings, then Tools, then AI Assistant, then Model Context Protocol, and click Add.

  2. 2

    Paste this as the JSON config.

    mcp.json
    {
      "mcpServers": {
        "zelf": {
          "url": "https://mcp.hellozelf.com/mcp"
        }
      }
    }
  3. 3

    If the IDE does not open a browser to sign in, run it through mcp-remote instead, which handles the approval and needs nothing but node.

    mcp.json
    {
      "mcpServers": {
        "zelf": {
          "command": "npx",
          "args": ["-y", "mcp-remote", "https://mcp.hellozelf.com/mcp"]
        }
      }
    }

Cursor

Editor

One project in .cursor/mcp.json, every project in ~/.cursor/mcp.json.

Add to Cursor
  1. 1

    Click Add to Cursor above, which opens the editor with the server filled in. The rest is only needed if you would rather edit the file.

  2. 2

    Open Settings, then Tools and MCP, then New MCP Server.

  3. 3

    Put this in the file that opens, then approve in the browser.

    .cursor/mcp.json
    {
      "mcpServers": {
        "zelf": {
          "type": "streamableHttp",
          "url": "https://mcp.hellozelf.com/mcp"
        }
      }
    }

VS Code and Copilot

Editor

Needs VS Code 1.101 or newer, which is where remote MCP and OAuth arrived.

Add to VS Code
  1. 1

    Click Add to VS Code above, or run MCP: Add Server from the Command Palette, or edit the file directly.

  2. 2

    Add the server. The top-level key is servers, not mcpServers.

    .vscode/mcp.json
    {
      "servers": {
        "zelf": {
          "type": "http",
          "url": "https://mcp.hellozelf.com/mcp"
        }
      }
    }
  3. 3

    A browser window opens on the first connection. Approve, then turn on Agent mode in Copilot Chat.

Windsurf

Editor

Cascade reads ~/.codeium/windsurf/mcp_config.json.

  1. 1

    Add the server. Windsurf takes serverUrl for a remote one.

    mcp_config.json
    {
      "mcpServers": {
        "zelf": {
          "serverUrl": "https://mcp.hellozelf.com/mcp"
        }
      }
    }
  2. 2

    Refresh the server list in Cascade and approve in the browser.

Zed

Editor

In ~/.config/zed/settings.json, under context_servers rather than mcpServers.

  1. 1

    Add the server. Leave out any Authorization header and Zed runs the sign-in for you.

    settings.json
    {
      "context_servers": {
        "zelf": {
          "url": "https://mcp.hellozelf.com/mcp"
        }
      }
    }

Cline

Editor

Open the Cline panel, then the menu, then MCP Servers to reach the file.

  1. 1

    Add the server. The type has to be streamableHttp exactly, or Cline falls back to SSE and the connection fails.

    cline_mcp_settings.json
    {
      "mcpServers": {
        "zelf": {
          "type": "streamableHttp",
          "url": "https://mcp.hellozelf.com/mcp",
          "disabled": false
        }
      }
    }

Warp

Terminal

Added through the app rather than a file you edit by hand.

  1. 1

    Open Settings, then Agents, then MCP servers, and add a server.

  2. 2

    Give it a URL, which is the only transport field a remote server takes.

    warp mcp server
    {
      "zelf": {
        "url": "https://mcp.hellozelf.com/mcp"
      }
    }

OpenCode

Terminal

It registers itself and starts the sign-in as soon as it sees the 401.

  1. 1

    Add the server to opencode.json.

    opencode.json
    {
      "$schema": "https://opencode.ai/config.json",
      "mcp": {
        "zelf": {
          "type": "remote",
          "url": "https://mcp.hellozelf.com/mcp",
          "enabled": true
        }
      }
    }

Any other client

Anything

Nothing here is specific to one client, so anything speaking MCP over HTTP works.

  1. 1

    Give it the server URL and let it register itself. It will send you here to sign in and pick a brand.

    url
    https://mcp.hellozelf.com/mcp
  2. 2

    A client with no OAuth of its own can go through mcp-remote, which opens the browser for the approval and then speaks to it locally.

    json
    {
      "mcpServers": {
        "zelf": {
          "command": "npx",
          "args": ["-y", "mcp-remote", "https://mcp.hellozelf.com/mcp"]
        }
      }
    }
  3. 3

    Clients that want a config file usually take this shape.

    json
    {
      "mcpServers": {
        "zelf": {
          "url": "https://mcp.hellozelf.com/mcp"
        }
      }
    }

If it will not connect

  • Use the full URL including /mcp. The host on its own answers nothing.
  • Signing in happens in the browser, when the client sends you to approve. The brand you pick there is the one that client can read.
  • A client that starts an AI analysis or a creator vetting needs the write approval. If you left that box unticked, reconnect and tick it. Nothing a client can call edits or deletes anything.
  • Disconnecting on the Connections page takes effect within a minute, for every client sharing that approval.

Tools

What a connected client can do, and what each tool takes. Reads are available to every connection; a write runs only when you approved one as you connected the client.