# MoneyTools Slim > MoneyTools Slim: MCP tool-list measurement and trim utility — 0.01 USDC = 200 units, 1 USDC = 30000 units / 30 days (x402, Base USDC); measurement is free. Note: many MCP clients (e.g. Claude Tool Search) already defer tool loading, so measure first — Slim may add little there. Measures the token size of any remote MCP server's tools/list and can proxy it: agents get a one-line tool index, fetch one full schema on demand, and call tools through a single stable meta-tool (prompt-cache friendly). Free: token measurement + 10 units/day anonymous, 50/day with a free key. Paid via x402 (Base USDC): 0.01 USDC = 200 units, 1 USDC = 30000 units / 30 days. ## Use as an MCP server (streamable HTTP) https://slim.moneytools.dev/mcp?upstream=[&key=mtsl_…] Tools: slim_index (name + one-line description), slim_schema (full schema for one tool), slim_call (proxy tools/call), slim_measure (free), slim_free_key (free), slim_pricing. Key: header X-API-Key, ?key= or apiKey argument. Upstream needs auth? Send header X-Upstream-Authorization: Bearer … (forwarded, never stored). ## HTTP API - GET https://slim.moneytools.dev/v1/measure?upstream=URL — free token measurement (30/day) - GET https://slim.moneytools.dev/v1/index?upstream=URL[&query=] — 1 unit - GET https://slim.moneytools.dev/v1/schema?upstream=URL&name=TOOL — 1 unit - POST https://slim.moneytools.dev/v1/call {upstream,name,arguments} — 1 unit - GET https://slim.moneytools.dev/v1/key — pricing + key status - POST https://slim.moneytools.dev/v1/free-key — free key (50 units/day; 1 per client/day) ## How to pay (x402 v2, USDC on Base) — 0.01 USDC/call 1. Call without payment: curl -i -X POST 'https://slim.moneytools.dev/v1/buy/micro' → HTTP 402, header PAYMENT-REQUIRED (base64 JSON; same JSON in the body: accepts[] with scheme exact, network eip155:8453, asset USDC, amount, payTo). 2. Sign one accepts[] entry (EIP-3009 TransferWithAuthorization) with your wallet and resend the same request with header PAYMENT-SIGNATURE: base64({"x402Version":2,"accepted":{…},"payload":{"signature":"0x…","authorization":{"from","to","value","validAfter","validBefore","nonce"}}}). (v1 clients: X-PAYMENT.) 3. 200 + PAYMENT-RESPONSE header = paid. Failed calls are not settled. Malformed payment header → HTTP 400 {error: invalid_payload | invalid_exact_evm_payload_signature | …}. JS (any x402 client works): import { wrapFetchWithPayment } from "@x402/fetch"; // + your viem/CDP signer const pay = wrapFetchWithPayment(fetch, signer); const r = await pay("https://slim.moneytools.dev/v1/buy/micro", { method: "POST" }); Python: x402 package (x402.clients.requests / httpx) wraps requests the same way. MCP: an unpaid paid-tool call returns isError + structuredContent = PaymentRequired; resend tools/call with params._meta["x402/payment"] = the PaymentPayload object; receipt in result._meta["x402/payment-response"]. ## Pricing (USD, x402 v2, Base eip155:8453 USDC, payTo 0x64eB63904Cf9688AC5B3087A72AcF9C31a273169, CDP facilitator + PayAI fallback) - Free: 10 units/day anonymous, then a free key (50 units/day). Failed calls are refunded. - micro: POST https://slim.moneytools.dev/v1/buy/micro — 0.01 USDC = 200 units (30 days) - pro: POST https://slim.moneytools.dev/v1/buy/pro — 1 USDC = 30000 units (30 days) POST without payment → HTTP 402 + PAYMENT-REQUIRED; retry with PAYMENT-SIGNATURE → apiKey mtsl_… (shown once). Not auto-renewing. - MCP-paid tool: slim_report (read-only, 0.001 USDC/call) uses the x402 MCP transport: unpaid call → isError result whose structuredContent is PaymentRequired {x402Version:2, accepts[]}; retry with params._meta["x402/payment"]; settlement in result._meta["x402/payment-response"]. Docs: https://slim.moneytools.dev/ · OpenAPI: https://slim.moneytools.dev/openapi.json · x402: https://slim.moneytools.dev/.well-known/x402 · Support: support@moneytools.dev