Unofficial, not affiliated with Papertrade. High leverage can lose your whole margin. Not financial advice.
Papertrade Yielddocs

Connect your AI

The MCP URL is the same everywhere:

https://papertrade-yield.pages.dev/mcp

It needs no API key or OAuth. Client configuration formats change, so each section names the format it was checked against. If a client rejects a snippet, check its current MCP docs and keep the URL.

Claude Code#

claude mcp add --transport http papertrade-yield https://papertrade-yield.pages.dev/mcp

Add --scope project to write a shared .mcp.json, or --scope user for all projects. The file form:

{
  "mcpServers": {
    "papertrade-yield": {
      "type": "http",
      "url": "https://papertrade-yield.pages.dev/mcp"
    }
  }
}

Claude Desktop and claude.ai#

Open Settings, then Connectors, click Add, choose Add custom connector, paste the URL and click Add. Connectors can also be enabled per conversation from the "Add files, connectors, and more" menu.

For a Claude Desktop build that only loads local stdio servers, bridge with mcp-remote in claude_desktop_config.json:

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

Claude API (MCP connector)#

Send the beta header anthropic-beta: mcp-client-2025-11-20. Declare the server in mcp_servers and enable it with an mcp_toolset entry in tools:

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-5-5",
    "max_tokens": 1000,
    "messages": [{"role": "user", "content": "What did PAPER stakers earn per 1M PAPER per day this week?"}],
    "mcp_servers": [
      {"type": "url", "url": "https://papertrade-yield.pages.dev/mcp", "name": "papertrade-yield"}
    ],
    "tools": [
      {"type": "mcp_toolset", "mcp_server_name": "papertrade-yield"}
    ]
  }'

With the Python SDK use client.beta.messages.create(..., mcp_servers=[...], tools=[{"type": "mcp_toolset", "mcp_server_name": "papertrade-yield"}], betas=["mcp-client-2025-11-20"]).

OpenAI Codex CLI#

codex mcp add papertrade-yield --url https://papertrade-yield.pages.dev/mcp

Or edit ~/.codex/config.toml:

[mcp_servers.papertrade-yield]
url = "https://papertrade-yield.pages.dev/mcp"

OpenAI Responses API#

{
  "model": "gpt-5",
  "input": "What is the realized PAPER staking yield over 7 days?",
  "tools": [
    {
      "type": "mcp",
      "server_label": "papertrade_yield",
      "server_description": "Read-only PAPER staking and yield data for Papertrade (unofficial).",
      "server_url": "https://papertrade-yield.pages.dev/mcp",
      "require_approval": "never",
      "allowed_tools": ["get_staking_stats", "get_apr", "get_yield_history", "get_claims_activity", "get_wallet_staking", "project_rewards", "plan_staking_action"]
    }
  ]
}

All tools are read-only, so require_approval: "never" is safe here. Use "always" if you prefer to review each call.

ChatGPT#

In ChatGPT, enable Developer mode (Settings, Apps and Connectors, Advanced settings; availability depends on plan and OpenAI moves this setting from time to time). Then create a connector: give it a name, paste https://papertrade-yield.pages.dev/mcp as the server URL and choose no authentication. Enable the connector in a chat from the tools menu.

Gemini CLI#

gemini mcp add --transport http papertrade-yield https://papertrade-yield.pages.dev/mcp

Or in ~/.gemini/settings.json, which uses httpUrl for Streamable HTTP:

{
  "mcpServers": {
    "papertrade-yield": {
      "httpUrl": "https://papertrade-yield.pages.dev/mcp"
    }
  }
}

Cursor#

.cursor/mcp.json in a project, or ~/.cursor/mcp.json globally:

{
  "mcpServers": {
    "papertrade-yield": {
      "url": "https://papertrade-yield.pages.dev/mcp"
    }
  }
}

VS Code#

.vscode/mcp.json:

{
  "servers": {
    "papertrade-yield": {
      "type": "http",
      "url": "https://papertrade-yield.pages.dev/mcp"
    }
  }
}

Or run MCP: Add Server from the command palette and choose HTTP.

Windsurf#

~/.codeium/windsurf/mcp_config.json. Windsurf uses serverUrl for remote servers:

{
  "mcpServers": {
    "papertrade-yield": {
      "serverUrl": "https://papertrade-yield.pages.dev/mcp"
    }
  }
}

Press refresh in the MCP panel after saving.

Zed#

In settings.json, under context_servers:

{
  "context_servers": {
    "papertrade-yield": {
      "url": "https://papertrade-yield.pages.dev/mcp"
    }
  }
}

If Zed starts an OAuth prompt, the server does not need one. Use the mcp-remote bridge shown in the Claude Desktop section as a command entry instead.

Cline#

cline_mcp_settings.json (MCP Servers panel, Configure MCP Servers):

{
  "mcpServers": {
    "papertrade-yield": {
      "url": "https://papertrade-yield.pages.dev/mcp",
      "type": "streamableHttp",
      "disabled": false
    }
  }
}

Goose#

Run goose configure, choose Add Extension, then Remote Extension (Streamable HTTP), and enter the name and the URL. Or add it to ~/.config/goose/config.yaml:

extensions:
  papertrade-yield:
    name: papertrade-yield
    type: streamable_http
    uri: https://papertrade-yield.pages.dev/mcp
    enabled: true
    timeout: 300

For one session only: goose session --with-streamable-http-extension https://papertrade-yield.pages.dev/mcp.

Continue#

~/.continue/config.yaml or a file in .continue/mcpServers/:

name: Papertrade Yield
version: 0.0.1
schema: v1
mcpServers:
  - name: papertrade-yield
    type: streamable-http
    url: https://papertrade-yield.pages.dev/mcp

Any other agent framework (OpenAPI)#

Frameworks that import OpenAPI tools (LangChain, LlamaIndex, the OpenAI Agents SDK, Dify, n8n and similar) can load https://papertrade-yield.pages.dev/openapi.json directly. It describes the JSON API and the /mcp endpoint. The A2A agent card at /.well-known/agent-card.json lists the same capabilities as skills. See Agent discovery.

Try it#

Once connected, ask:

  • "What did PAPER stakers earn per million PAPER over the last 24 hours and 7 days?"
  • "If I assume PAPER is worth $0.02, what is the implied APR?"
  • "How much PAPER would a $300 liquidated loss mint, and what would it earn in 30 days?"
  • "Show wallet 0x... : staked PAPER, pending rewards, lifetime claims."
  • "Plan a claim for 0x... and tell me what I would need to sign."

The last one returns a plan only. You sign in your own wallet, never through the AI.

View this page as markdown