Appearance
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 closed-alpha gate, API keys, and scopes apply. Ask the team to be added to the OPENAPI_ALPHA whitelist first.
What you need
- 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.
- An MCP client (examples below).
The endpoint is:
https://easydonate.app/mcpAuthenticate with your API key as a Bearer token, exactly like the REST API:
Authorization: Bearer ezdn_v1_xxxxxxxxxxxxxxxxThe 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 about | Needs scope |
|---|---|
| Your profile, badges, agencies | read:profile |
| Donations, stats, breakdowns, trends, top donators | read:donations |
| Your plan, limits, sponsorships | read:subscription |
| Your creator stats and member trends | read:creator |
| Donation channel status | read: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/inspectorIn 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:timeroff so the assistant cannot touch your overlay.