MMetadata /docs
Docs / Guides / Claude Code Setup

Connect to your MCP client

The Metadata server speaks standard MCP over stdio and HTTP/SSE. Drop it into any MCP-compatible runner. Claude Code, Claude Desktop, Hermes, Paperclip, OpenClaw, or a custom agent harness.

Governed execution: Metadata has 299 public G2 reviews and the MCP workflow keeps campaign work reviewable before spend moves.

Claude Code

Easiest path, one command:

Shell
claude mcp add --transport http metadataone https://mcp-server.metadata.io/mcp

Or edit ~/.config/claude-code/mcp.json directly:

JSON
{
  "mcpServers": {
    "metadataone": {
      "command": "npx",
      "args": ["-y", "claude mcp add --transport http metadataone https://mcp-server.metadata.io/mcp"],
      "env": {
        "METADATA_API_KEY": "$METADATA_API_KEY"
      }
    }
  }
}

Restart Claude Code. You'll see 141 tools from metadataone in the MCP status line.

Claude Desktop

Edit the Claude Desktop config file:

OSPath
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json
Linux~/.config/Claude/claude_desktop_config.json

Use the same JSON shape as Claude Code above.

Hermes

Hermes loads MCP servers from hermes.toml:

TOML
[mcp.metadataone]
command = "npx"
args    = ["-y", "claude mcp add --transport http metadataone https://mcp-server.metadata.io/mcp"]
env     = { METADATA_API_KEY = "$METADATA_API_KEY" }

[mcp.metadataone.scopes]
read   = true
write  = true
launch = false   # gate launches behind human approval

Paperclip & OpenClaw

Both use MCP over HTTP/SSE. Point them at our hosted endpoint:

YAML
mcp_servers:
  - name: metadataone
    transport: sse
    url: https://mcp.metadataone.com/sse
    headers:
      Authorization: "Bearer $METADATA_API_KEY"

Custom agent (Python)

Using the official Anthropic SDK with MCP:

Python
from anthropic import Anthropic
from mcp.client import MCPClient

mcp_client = MCPClient(
    command="npx",
    args=["-y", "claude mcp add --transport http metadataone https://mcp-server.metadata.io/mcp"],
    env={"METADATA_API_KEY": os.environ["METADATA_API_KEY"]},
)

client = Anthropic()
tools  = mcp_client.list_tools()

response = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=4096,
    tools=tools,
    messages=[{"role": "user", "content": "Build me an ICP audience of US SaaS VPs."}],
)

Verify the connection

Regardless of which client you use, run this smoke test:

Prompt
Use the metadataone MCP. Call get_account_details and
report the account name, plan, and number of connected channels.

If the response includes your account name and channel count, you're connected. If it errors, check auth errors.

Buyer controls to keep visible

MCP should make campaign execution easier to automate, not harder to govern. A buyer evaluating Claude Code, Hermes, OpenClaw, or a custom agent should be able to see which tools are read-only, which create draft work, which can change existing campaign objects, and which can launch or move spend.

ControlWhat to verify
ScopesUse read, write, and launch permissions separately so an agent can inspect and draft without automatically spending budget.
Approval pathKeep campaign structure, creative assets, audiences, exclusions, and budget groups reviewable in the SaaS surface.
Audit trailRecord which client made the request, which tool ran, what changed, and who approved the launch decision.
FallbackIf the MCP client fails, route users back to the Metadata app or platform review surface rather than leaving work half-launched.

You're wired in. Jump to the first-campaign walkthrough or browse the tool catalog.