DocsReference
MCP tools
The museli MCP server and every tool it exposes.
museli runs a Model Context Protocol server over Streamable HTTP. Muse connects to it as a custom integration, and any MCP client that can send an authorization header can use it too.
| Endpoint | https://museli.org/mcp |
| Transport | Streamable HTTP, JSON responses, stateless |
| Auth | Authorization: Bearer msk_live_... |
| Rate limit | 40 requests per minute per key |
Tools
| Tool | What it does | Moves funds |
|---|---|---|
get_portfolio | Balances, Aave positions, Aerodrome liquidity and today's spend. | No |
get_guardrails | Caps, approval rules and allowlists. | No |
plan_action | Turns a request into a checked plan. Input: request. | No |
execute_action | Runs a planned action. Input: action_id, user_approved. | Yes |
list_actions | Recent actions with Basescan links. Input: limit. | No |
cancel_action | Cancels an action that has not run. Input: action_id. | No |
Plan, then run
{
"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "plan_action", "arguments": { "request": "swap 10 USDC to ETH" } }
}{
"action_id": "046f39c2-6eaa-4a3e-9f3b-2e86a6062e98",
"summary": "Swap 10 USDC to ETH",
"usd_value": 10,
"protocol": "KyberSwap",
"decision": "allow",
"status": "ready",
"reasons": ["Inside all of your guardrails"],
"next_step": "Inside the user's guardrails. Call execute_action with this action_id to run it."
}{
"jsonrpc": "2.0", "id": 2, "method": "tools/call",
"params": { "name": "execute_action", "arguments": { "action_id": "046f39c2-6eaa-4a3e-9f3b-2e86a6062e98" } }
}Errors
Tool problems come back as a normal result with isError: true and a plain explanation, for example when an action is blocked or agent signing is off. A missing or revoked key returns HTTP 401.
Try it with curl
curl -s https://museli.org/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $MUSELI_KEY" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'