Connect an MCP client

Every Prompt TM server URL has this shape:

https://www.prompt-tm.com/mcp/<server id>?user_id=<user>

The transport is streamable HTTP. The server answers POST with JSON and needs no session. Send the key as the x-api-key header. Where a client can't send headers, generate a URL with a scoped key (MCP servers → server → Generate URL, or POST /api/v3/mcp/servers/{id}/generate with "with_key": true). That key opens only that server, for only that user.

Claude Code

claude mcp add --transport http prompt-tm \
  "https://www.prompt-tm.com/mcp/mcp_...?user_id=alice" \
  --header "x-api-key: ptm_..."

Claude Desktop

In claude_desktop_config.json, or under Settings → Connectors → Add custom connector with the scoped-key URL:

{
  "mcpServers": {
    "prompt-tm": {
      "type": "http",
      "url": "https://www.prompt-tm.com/mcp/mcp_...?user_id=alice",
      "headers": { "x-api-key": "ptm_..." }
    }
  }
}

claude.ai

Settings → Connectors → Add custom connector. Paste the URL with &key=ptm_... from Generate URL. Leave the OAuth fields empty.

Cursor

~/.cursor/mcp.json:

{
  "mcpServers": {
    "prompt-tm": {
      "url": "https://www.prompt-tm.com/mcp/mcp_...?user_id=alice",
      "headers": { "x-api-key": "ptm_..." }
    }
  }
}

VS Code

.vscode/mcp.json:

{
  "servers": {
    "prompt-tm": {
      "type": "http",
      "url": "https://www.prompt-tm.com/mcp/mcp_...?user_id=alice",
      "headers": { "x-api-key": "ptm_..." }
    }
  }
}

Windsurf

~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "prompt-tm": {
      "serverUrl": "https://www.prompt-tm.com/mcp/mcp_...?user_id=alice&key=ptm_..."
    }
  }
}

OpenAI Agents SDK (Python)

from agents import Agent, Runner
from agents.mcp import MCPServerStreamableHttp

async with MCPServerStreamableHttp(params={
    "url": "https://www.prompt-tm.com/mcp/mcp_...?user_id=alice",
    "headers": {"x-api-key": "ptm_..."},
}) as server:
    agent = Agent(name="ops", mcp_servers=[server])
    result = await Runner.run(agent, "Which Vercel deployments failed today?")

Claude Agent SDK (TypeScript)

import { query } from "@anthropic-ai/claude-agent-sdk"

for await (const message of query({
  prompt: "Open an issue in acme/web about the Safari checkout bug",
  options: {
    mcpServers: {
      "prompt-tm": {
        type: "http",
        url: "https://www.prompt-tm.com/mcp/mcp_...?user_id=alice",
        headers: { "x-api-key": process.env.PROMPT_TM_KEY! },
      },
    },
  },
})) console.log(message)

Without MCP

GET /api/v3/tools?toolkit_slug=github&format=anthropic returns tool definitions ready for the Anthropic Messages API (format=openai for Chat Completions, format=openai_responses for the Responses API). Run the model's tool calls with POST /api/v3/tools/execute/{slug}. See the API reference.