Wallet

A key of your own on Base: an address to hold USDC, what it holds, and paying for a tool on another server with it

Open Wallet →

Calling it

This is your own data, so a call has to say who you are. Make a token at /token and send it as a header.

curl -H "Authorization: Bearer $MU_TOKEN" \
  https://mu-mcp.yvangodard.me/api/v1/wallet/list

How every call behaves →

Methods

GET /api/v1/wallet/address

Your own address on Base, to receive USDC. Created the first time you ask. Funds sent on any other chain land at the same address there and cannot be reached from here

Needs an account.

curl \
  -H "Authorization: Bearer $MU_TOKEN" \
  "https://mu-mcp.yvangodard.me/api/v1/wallet/address"
GET /api/v1/wallet/balance

What your wallet holds in USDC on Base. Says so plainly when the chain could not be reached, because that is not the same as holding nothing

Needs an account.

curl \
  -H "Authorization: Bearer $MU_TOKEN" \
  "https://mu-mcp.yvangodard.me/api/v1/wallet/balance"
GET /api/v1/wallet/list

Which priced servers this wallet is allowed to pay, by name. Pass one of these names to wallet_pay

Needs an account.

curl \
  -H "Authorization: Bearer $MU_TOKEN" \
  "https://mu-mcp.yvangodard.me/api/v1/wallet/list"
POST /api/v1/wallet/pay

Call a tool on one of those servers and pay for it from your wallet if it asks. Nothing is spent when the tool is free. Every payment is capped per call and per day, so a server cannot name any price it likes

Needs an account. Changes something, so POST only.

ArgumentTypeDescription
serverstringWhich server to call, by the name wallet_list gives. Defaults to this instance
tool *stringThe tool to call on that server, e.g. web_search
argsobjectArguments for that tool
curl -X POST \
  -H "Authorization: Bearer $MU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"tool":"tool"}' \
  https://mu-mcp.yvangodard.me/api/v1/wallet/pay

The same methods are tools over MCP, and every service on this instance is in one reference. Same method, same answer, same price.