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.

Endpointhttps://museli.org/mcp
TransportStreamable HTTP, JSON responses, stateless
AuthAuthorization: Bearer msk_live_...
Rate limit40 requests per minute per key

Tools

ToolWhat it doesMoves funds
get_portfolioBalances, Aave positions, Aerodrome liquidity and today's spend.No
get_guardrailsCaps, approval rules and allowlists.No
plan_actionTurns a request into a checked plan. Input: request.No
execute_actionRuns a planned action. Input: action_id, user_approved.Yes
list_actionsRecent actions with Basescan links. Input: limit.No
cancel_actionCancels an action that has not run. Input: action_id.No

Plan, then run

plan_actionCopy
{
  "jsonrpc": "2.0", "id": 1, "method": "tools/call",
  "params": { "name": "plan_action", "arguments": { "request": "swap 10 USDC to ETH" } }
}
Result (structuredContent)Copy
{
  "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."
}
execute_actionCopy
{
  "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

bashCopy
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"}'
© 2026 museliBuilt on Base