Skip to content

API - MCP Server (connect an AI) ​

The MCP server lets you connect an AI assistant (Claude Desktop, ChatGPT, or any MCP-capable client) directly to your EasyDonate account. Once connected, you can just ask in plain language - "how much did I earn this week?" - and the assistant reads your data through the same public API, or controls your timer overlay.

It is a thin wrapper over the public API, so the same API keys and scopes apply.

What you need ​

  1. An API key - create one in Dashboard -> Developer -> API Keys and pick the scopes you want the assistant to have. See Getting Started for keys and scopes.
  2. An MCP client (examples below).

The endpoint is:

https://easydonate.app/mcp

Authenticate with your API key as a Bearer token, exactly like the REST API:

Authorization: Bearer ezdn_v1_xxxxxxxxxxxxxxxx

The transport is streamable HTTP. A request without a valid key is rejected with 401; if your key lacks the scope a tool needs, that tool returns a 403 error the assistant will report back to you.

What the assistant can do ​

The assistant discovers the available tools automatically. What it can actually do depends on the scopes on your key:

You can ask aboutNeeds scope
Your profile, badges, agenciesread:profile
Donations, stats, breakdowns, trends, top donatorsread:donations
Your plan, limits, sponsorshipsread:subscription
Your creator stats and member trendsread:creator
Donation channel statusread:channels
Widget data (goal, leaderboard, last/top donate, timer, status)read:widgets
Controlling the timer (play/pause/reset/adjust)write:timer

write:timer is the only action that changes anything - everything else is read-only.

Connect with Claude Desktop ​

Add this to your claude_desktop_config.json (Claude Desktop -> Settings -> Developer -> Edit Config). It uses mcp-remote to bridge to the HTTP endpoint:

json
{
  "mcpServers": {
    "easydonate": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://easydonate.app/mcp",
        "--header",
        "Authorization: Bearer ezdn_v1_xxxxxxxxxxxxxxxx"
      ]
    }
  }
}

Restart Claude Desktop. You should see an easydonate server with its tools available in the chat.

Connect with the MCP Inspector (quick test) ​

To poke at the tools interactively:

bash
npx @modelcontextprotocol/inspector

In the Inspector: set Transport to Streamable HTTP, URL to https://easydonate.app/mcp, add a header Authorization: Bearer ezdn_v1_..., then connect and run any tool.

Connect a custom client (raw JSON-RPC) ​

The endpoint speaks MCP over JSON-RPC. Any MCP SDK works; for a quick manual check, list the tools with curl:

bash
curl -s https://easydonate.app/mcp \
  -H "Authorization: Bearer ezdn_v1_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

Call a tool the same way with method: "tools/call":

bash
curl -s https://easydonate.app/mcp \
  -H "Authorization: Bearer ezdn_v1_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"control_timer","arguments":{"action":"play"}}}'

Example prompts ​

Once connected, talk to the assistant naturally:

Donations and stats

  • "How much did I earn from donations this week?"
  • "Show my top 10 donators this month."
  • "Break down my donations by channel."
  • "What are my donation trends over the last 30 days?"
  • "Find the donation from <name> and tell me the amount."

Account and plan

  • "What's my current plan, and how many donations do I have left this month?"
  • "When does my plan renew?"
  • "Show my creator stats and how my members are trending."

Controlling the timer (needs write:timer)

  • "Start my timer."
  • "Add 2 minutes to the timer."
  • "Pause the timer."
  • "Reset the timer."

The assistant maps these to the right tools. For example "add 2 minutes" becomes a control_timer call with action: "adjust" and ms: 120000; "stop the timer" maps to pause.

Notes ​

  • The MCP server only exposes the public read tools plus timer control. Account management (creating keys, OAuth apps) is never available through it.
  • Keep your API key secret - anyone with it can act with its scopes. Revoke a key in the dashboard if it leaks.
  • Prefer a key with only the scopes you need. If you only want stats, leave write:timer off so the assistant cannot touch your overlay.