MCP
Model Context Protocol
Connect AI clients (e.g. Claude Desktop) to this MCP server.
Endpoint: /mcp — API Docs
Authentication
Pass a token in the Authorization header with each request:
Authorization: Bearer YOUR_TOKEN
Two ways to obtain a token:
- Personal Access Token (PAT) — create one at /token after logging in.
- Signup / Login — the agent can call the
signuporlogintool to obtain a session token programmatically.
Playground
Pick a tool, fill in parameters, and run it.
Raw JSON-RPC
Payments
Metered tools are pay-per-call. Two ways to pay:
- x402 — agents pay per call in USDC on Base. Call a metered tool with no auth and you get an HTTP
402whose body lists the price and pay-to address; pay and retry. No account needed. - Credits — log in with a token and calls draw from your credit balance instead.
Get the current authenticated user's identity, account ID, and admin status
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"me"}}Run the AI agent — plans which tools to use, executes them, and synthesises an answer. Use for complex queries that need multiple data sources.
| Param | Type | Description |
|---|---|---|
| prompt * | string | What you want the agent to do |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"prompt":"prompt"},"name":"agent"}}Chat with AI assistant
| Param | Type | Description |
|---|---|---|
| prompt * | string | The message to send to the AI |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"prompt":"prompt"},"name":"chat"}}Read the latest news feed
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"news"}}Search for news articles
| Param | Type | Description |
|---|---|---|
| query * | string | News search query |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"query":"query"},"name":"news_search"}}Read a specific blog post by ID
| Param | Type | Description |
|---|---|---|
| id * | string | The blog post ID |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id"},"name":"blog_read"}}Create a new blog post
| Param | Type | Description |
|---|---|---|
| title | string | Post title |
| content * | string | Post content (minimum 50 characters) |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"content":"content"},"name":"blog_create"}}Update an existing blog post (author only)
| Param | Type | Description |
|---|---|---|
| id * | string | The blog post ID to update |
| title | string | New post title |
| content | string | New post content (minimum 50 characters) |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id"},"name":"blog_update"}}Delete a blog post (author only)
| Param | Type | Description |
|---|---|---|
| id * | string | The blog post ID to delete |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id"},"name":"blog_delete"}}Search social media posts
| Param | Type | Description |
|---|---|---|
| query * | string | Search query for social posts |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"query":"query"},"name":"social_search"}}Search for videos
| Param | Type | Description |
|---|---|---|
| query * | string | Video search query |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"query":"query"},"name":"video_search"}}Read mail inbox
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"mail_read"}}Send a mail message
| Param | Type | Description |
|---|---|---|
| to * | string | Recipient username or email |
| subject * | string | Message subject |
| body * | string | Message body |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"body":"body","subject":"subject","to":"to"},"name":"mail_send"}}Search across all indexed content (posts, news, videos)
| Param | Type | Description |
|---|---|---|
| q * | string | Search query |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"q":"q"},"name":"search"}}Get wallet credit balance
| Param | Type | Description |
|---|---|---|
| balance | string | Set to 1 to get balance |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"wallet_balance"}}Transfer credits to another user by username
| Param | Type | Description |
|---|---|---|
| to * | string | Recipient username |
| amount * | number | Number of credits to transfer |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"amount":1,"to":"to"},"name":"wallet_transfer"}}Get available wallet topup payment methods with crypto deposit address and card payment tiers
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"wallet_topup"}}Read the platform event stream — user messages, agent responses, system events (markets, news, reminders)
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"stream"}}Post a message to the stream. Mention @micro to get an AI response. Costs 1 credit.
| Param | Type | Description |
|---|---|---|
| content * | string | Message text (max 1024 chars). Use @micro to invoke the AI agent. |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"content":"content"},"name":"stream_post"}}Flag content for moderation
| Param | Type | Description |
|---|---|---|
| type * | string | Content type (e.g. post, work, app) |
| id * | string | Content ID |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id","type":"type"},"name":"flag"}}Bookmark content for later
| Param | Type | Description |
|---|---|---|
| type * | string | Content type (e.g. post, work, app) |
| id * | string | Content ID |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id","type":"type"},"name":"save"}}Remove a saved bookmark
| Param | Type | Description |
|---|---|---|
| type * | string | Content type |
| id * | string | Content ID |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id","type":"type"},"name":"unsave"}}Hide content from your view
| Param | Type | Description |
|---|---|---|
| type * | string | Content type |
| id * | string | Content ID |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id","type":"type"},"name":"dismiss"}}Block a user — hides all their content from your view
| Param | Type | Description |
|---|---|---|
| user * | string | User ID to block |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"user":"user"},"name":"block_user"}}Unblock a previously blocked user
| Param | Type | Description |
|---|---|---|
| user * | string | User ID to unblock |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"user":"user"},"name":"unblock_user"}}Search for places by name or category, optionally near a location
| Param | Type | Description |
|---|---|---|
| q * | string | Search query (e.g. cafe, pharmacy, Boots) |
| near | string | Location name or address to search near |
| near_lat | number | Latitude of the search location |
| near_lon | number | Longitude of the search location |
| radius | number | Search radius in metres, 100–5000 (default 1000) |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"q":"q"},"name":"places_search"}}Find all places of interest near a given location
| Param | Type | Description |
|---|---|---|
| address | string | Address or postcode to search near |
| lat | number | Latitude of the search location |
| lon | number | Longitude of the search location |
| radius | number | Search radius in metres, 100–5000 (default 500) |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"places_nearby"}}Get today's daily Islamic reminder with verse, hadith, and name of Allah
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"reminder"}}Look up a Quran chapter or verse. Pass chapter number (1-114) and optionally a verse number.
| Param | Type | Description |
|---|---|---|
| chapter * | number | Chapter number (1-114) |
| verse | number | Verse number (optional, returns full chapter if omitted) |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"chapter":1},"name":"quran"}}Look up hadith from Sahih Al Bukhari. Pass a book number to get hadiths from that book.
| Param | Type | Description |
|---|---|---|
| book | number | Book number |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"hadith"}}Search the Quran, Hadith, and names of Allah using semantic search. Ask a question in natural language.
| Param | Type | Description |
|---|---|---|
| q * | string | Question or search query |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"q":"q"},"name":"quran_search"}}Create a new account and return a session token. When invite-only mode is enabled, a valid invite code is required.
| Param | Type | Description |
|---|---|---|
| id * | string | Username (4-24 chars, lowercase, starts with letter) |
| secret * | string | Password (minimum 6 characters) |
| name | string | Display name (optional, defaults to username) |
| invite | string | Invite code (required when instance is invite-only) |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id","secret":"secret"},"name":"signup"}}Log in and return a session token for use in Authorization header
| Param | Type | Description |
|---|---|---|
| id * | string | Username |
| secret * | string | Password |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id","secret":"secret"},"name":"login"}}Search the web for current information and news
| Param | Type | Description |
|---|---|---|
| q * | string | Search query |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"q":"q"},"name":"web_search"}}Fetch a web page and return its cleaned readable content (strips ads, popups, navigation)
| Param | Type | Description |
|---|---|---|
| url * | string | The URL to fetch |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"url":"url"},"name":"web_fetch"}}Get recent news headlines with short summaries balanced across all topics (not dominated by one topic like crypto). Use for general news and briefing requests, then news_read for any article worth expanding.
| Param | Type | Description |
|---|---|---|
| topic | string | Optional topic/category filter (e.g. tech, world, business) |
| limit | string | Optional max number of headlines (default 30) |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"news_headlines"}}Read one news article in full (title, source, summary and body) by its id from news_headlines, or by article URL.
| Param | Type | Description |
|---|---|---|
| id * | string | Article id (from news_headlines) or article URL |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id"},"name":"news_read"}}Search across everything mu knows — indexed news, blog, social and video, plus the user's own mail — and return the most relevant items with ids. Use for 'do you remember', 'what did I get about X', 'search my stuff' and cross-source lookups.
| Param | Type | Description |
|---|---|---|
| query * | string | What to look for |
| limit | string | Optional max results (default 12) |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"query":"query"},"name":"recall"}}Get live market prices for cryptocurrencies, futures, commodities and currencies.
| Param | Type | Description |
|---|---|---|
| category | string | crypto, futures, commodities or currencies (default crypto) |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"markets"}}Get the weather forecast for a location (current conditions plus the next few days).
| Param | Type | Description |
|---|---|---|
| lat * | number | Latitude of the location |
| lon * | number | Longitude of the location |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"lat":1,"lon":1},"name":"weather_forecast"}}Get the latest social posts from the network.
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"social"}}Get the latest videos from curated channels.
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"video"}}Get recent blog posts (titles, snippets and ids; use blog_read for one in full).
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"blog_list"}}Search the apps directory for small, useful tools
| Param | Type | Description |
|---|---|---|
| q | string | Search query (name, description, or tag) |
| tag | string | Filter by tag |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"apps_search"}}Read details of a specific app by its slug
| Param | Type | Description |
|---|---|---|
| slug * | string | The app's URL slug (e.g. pomodoro-timer) |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"slug":"slug"},"name":"apps_read"}}Create a new app — a small, self-contained HTML tool hosted on Mu
| Param | Type | Description |
|---|---|---|
| name * | string | App name (e.g. Pomodoro Timer) |
| slug * | string | URL-friendly ID (e.g. pomodoro-timer) |
| description * | string | Short description of what the app does |
| tags | string | Comma-separated tags (optional) |
| html * | string | The app's HTML content (can include inline CSS and JavaScript, max 256KB) |
| price | number | Credits charged per use (0 = free, max 1000) |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"description":"description","html":"html","name":"name","slug":"slug"},"name":"apps_create"}}Edit an existing app — update its name, description, tags, icon, HTML code, or price
| Param | Type | Description |
|---|---|---|
| slug * | string | The app's URL slug (e.g. pomodoro-timer) |
| name | string | New app name |
| description | string | New description |
| tags | string | New comma-separated tags |
| html | string | New HTML content (max 256KB) |
| icon | string | New SVG icon |
| price | number | Credits charged per use (0 = free, max 1000) |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"slug":"slug"},"name":"apps_edit"}}Build a small app from a natural language description, save it, and return the app details with URL. Apps are one of: a tracker (a list you add entries to, optionally totalling a number), a checklist, or a counter.
| Param | Type | Description |
|---|---|---|
| prompt * | string | Description of the app to build (e.g. 'an expense tracker', 'a packing checklist', 'a water intake counter') |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"prompt":"prompt"},"name":"apps_build"}}Fork an existing app — creates a copy under your account that you can modify independently
| Param | Type | Description |
|---|---|---|
| slug * | string | Slug of the app to fork |
| new_slug | string | Slug for the forked copy (optional, auto-generated if empty) |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"slug":"slug"},"name":"apps_fork"}}Run JavaScript code in a sandboxed environment and return the result. Use for calculations, data processing, or any computation the user needs.
| Param | Type | Description |
|---|---|---|
| code * | string | JavaScript code to execute. The code runs as a function body — use 'return' to output a value. Has access to mu.ai(), mu.fetch(), mu.store for platform features. |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"code":"code"},"name":"apps_run"}}Test an app by checking its HTML structure and executing its mu.api calls server-side. Returns which API calls work and which fail.
| Param | Type | Description |
|---|---|---|
| slug * | string | The app's URL slug |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"slug":"slug"},"name":"apps_test"}}Ask the AI agent a question. The agent can search news, markets, web, video, weather, places, and more to answer your question.
| Param | Type | Description |
|---|---|---|
| prompt * | string | Your question or request |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"prompt":"prompt"},"name":"agent"}}Get your Base wallet address and USDC balance. This wallet pays for metered MCP tools via x402.
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"wallet"}}Call a metered tool on an MCP server and pay for it from your Base wallet via x402. Works on this server and any other server in the registry.
| Param | Type | Description |
|---|---|---|
| tool * | string | Name of the tool to call |
| server | string | Server name from the registry, or a base URL (default: self) |
| arguments | object | Arguments to pass to the tool |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"tool":"tool"},"name":"pay"}}






