Unofficial, not affiliated with Papertrade. High leverage can lose your whole margin. Alerts are best effort.
Papertrade Alerts docs
App GitHub

Connect your AI

Server URL: https://papertrade-alerts.ninabrekkerese.workers.dev/mcp. Streamable HTTP, no OAuth. Preview tools work with no credentials. For subscription tools, add the management token from create_subscription as an Authorization: Bearer ptal_... header where the client supports headers (examples below use $ALERTS_TOKEN), or just let the agent pass it as the token argument.

Client config formats change; each snippet follows the vendor documentation at the time of writing.

Claude Code#

claude mcp add --transport http papertrade-alerts https://papertrade-alerts.ninabrekkerese.workers.dev/mcp
# with a token
claude mcp add --transport http papertrade-alerts https://papertrade-alerts.ninabrekkerese.workers.dev/mcp --header "Authorization: Bearer $ALERTS_TOKEN"

Claude Desktop and claude.ai#

Settings, Connectors, Add custom connector, paste the server URL. For Claude Desktop you can also use the mcp-remote bridge in claude_desktop_config.json:

{
  "mcpServers": {
    "papertrade-alerts": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://papertrade-alerts.ninabrekkerese.workers.dev/mcp"]
    }
  }
}

Claude API (MCP connector)#

curl https://api.anthropic.com/v1/messages \
  -H "content-type: application/json" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "anthropic-beta: mcp-client-2025-11-20" \
  -d '{
    "model": "claude-sonnet-4-5",
    "max_tokens": 1000,
    "messages": [{"role": "user", "content": "Preview the alerts for 0x..."}],
    "mcp_servers": [{"type": "url", "url": "https://papertrade-alerts.ninabrekkerese.workers.dev/mcp", "name": "papertrade-alerts"}],
    "tools": [{"type": "mcp_toolset", "mcp_server_name": "papertrade-alerts"}]
  }'

Set authorization_token on the server entry to send the management token. Use any current Claude model id.

OpenAI Codex CLI#

~/.codex/config.toml:

[mcp_servers.papertrade-alerts]
url = "https://papertrade-alerts.ninabrekkerese.workers.dev/mcp"
# optional: name of an environment variable holding the management token
bearer_token_env_var = "ALERTS_TOKEN"

Or: codex mcp add papertrade-alerts --url https://papertrade-alerts.ninabrekkerese.workers.dev/mcp

OpenAI Responses API#

{
  "model": "gpt-5",
  "input": "Preview the alerts for 0x...",
  "tools": [{
    "type": "mcp",
    "server_label": "papertrade_alerts",
    "server_description": "Wallet alerts for Papertrade. Read-only, never moves funds.",
    "server_url": "https://papertrade-alerts.ninabrekkerese.workers.dev/mcp",
    "require_approval": "never"
  }]
}

Use "require_approval": "always" if you want to confirm each call; the write tools change your alert subscription.

ChatGPT#

Settings, Connectors, Advanced, enable Developer mode, then create a connector with the server URL and authentication set to none. Availability depends on your plan.

Gemini CLI#

~/.gemini/settings.json (or .gemini/settings.json in a project):

{
  "mcpServers": {
    "papertrade-alerts": {
      "httpUrl": "https://papertrade-alerts.ninabrekkerese.workers.dev/mcp",
      "headers": { "Authorization": "Bearer ptal_your_token" }
    }
  }
}

Or: gemini mcp add --transport http papertrade-alerts https://papertrade-alerts.ninabrekkerese.workers.dev/mcp

Cursor#

.cursor/mcp.json (project) or ~/.cursor/mcp.json (global):

{
  "mcpServers": {
    "papertrade-alerts": { "url": "https://papertrade-alerts.ninabrekkerese.workers.dev/mcp" }
  }
}

VS Code#

.vscode/mcp.json:

{
  "servers": {
    "papertrade-alerts": { "type": "http", "url": "https://papertrade-alerts.ninabrekkerese.workers.dev/mcp" }
  }
}

Windsurf#

~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "papertrade-alerts": { "serverUrl": "https://papertrade-alerts.ninabrekkerese.workers.dev/mcp" }
  }
}

Zed#

settings.json:

{
  "context_servers": {
    "papertrade-alerts": { "url": "https://papertrade-alerts.ninabrekkerese.workers.dev/mcp" }
  }
}

Cline#

cline_mcp_settings.json:

{
  "mcpServers": {
    "papertrade-alerts": { "url": "https://papertrade-alerts.ninabrekkerese.workers.dev/mcp", "type": "streamableHttp" }
  }
}

Goose#

Run goose configure, choose Add Extension, then Remote Extension (Streaming HTTP), and enter the server URL. Or in ~/.config/goose/config.yaml:

extensions:
  papertrade-alerts:
    type: streamable_http
    name: papertrade-alerts
    uri: https://papertrade-alerts.ninabrekkerese.workers.dev/mcp
    enabled: true
    timeout: 300

Continue#

.continue/mcpServers/papertrade-alerts.yaml:

name: Papertrade Alerts
version: 0.0.1
schema: v1
mcpServers:
  - name: papertrade-alerts
    type: streamable-http
    url: https://papertrade-alerts.ninabrekkerese.workers.dev/mcp

Any other agent framework#

Frameworks without MCP support can use the HTTP API through the OpenAPI document at /openapi.json, which describes every endpoint, or fetch /llms-full.txt for the full documentation in one file.

Verify#

npx @modelcontextprotocol/inspector --cli https://papertrade-alerts.ninabrekkerese.workers.dev/mcp --transport http --method tools/list

Raw markdown: /docs/connect.md. Apache-2.0. Unofficial, not affiliated with Papertrade.