MCP
Model Context Protocol
Every tool this instance serves, with its parameters and a playground to run it.
Endpoint: POST /mcp — calls carry Authorization: Bearer.
Playground
Pick a tool, fill in parameters, and run it.
Raw JSON-RPC
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"}}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"}}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 you own — 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"}}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"}}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"}}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.web.fetch(), mu.db and mu.store for platform features. |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"code":"code"},"name":"apps_run"}}Search the apps directory for small, useful tools
| Param | Type | Description |
|---|---|---|
| query | 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"}}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"}}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"}}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"}}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"}}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"}}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"}}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"}}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"}}Save someone to your address book. Adding a name already there updates it rather than making a second card.
| Param | Type | Description |
|---|---|---|
| name * | string | The person's name |
| string | Their email address | |
| phone | string | Their phone number |
| note | string | Anything worth remembering about them |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"name":"name"},"name":"contacts_add"}}Remove someone from your address book.
| Param | Type | Description |
|---|---|---|
| id * | string | The contact's id |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id"},"name":"contacts_delete"}}Look someone up in your address book by name, part of a name, or address. Use this before sending mail to a person named rather than addressed.
| Param | Type | Description |
|---|---|---|
| query * | string | A name, part of a name, or an address |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"query":"query"},"name":"contacts_find"}}List everyone in your address book.
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"contacts_list"}}Store a record in your database (a named collection). Private by default; set public=true to share it. Pass an id to update a record you own.
| Param | Type | Description |
|---|---|---|
| collection * | string | Collection name (e.g. notes, tasks) |
| data * | object | The record's fields as a JSON object |
| public | boolean | Share the record publicly (default false) |
| id | string | Existing record id to update (optional) |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"collection":"collection","data":"data"},"name":"db_create"}}Delete a record you own by id.
| Param | Type | Description |
|---|---|---|
| collection * | string | Collection name |
| id * | string | Record id |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"collection":"collection","id":"id"},"name":"db_delete"}}Get one record by id from a collection (must be yours, or public).
| Param | Type | Description |
|---|---|---|
| collection * | string | Collection name |
| id * | string | Record id |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"collection":"collection","id":"id"},"name":"db_get"}}List records in a collection. scope: 'mine' (default), 'public', or 'all' (mine + public). Optional where filter, sort field and limit.
| Param | Type | Description |
|---|---|---|
| collection * | string | Collection name |
| scope | string | mine | public | all (default mine) |
| where | object | Filter on data fields, e.g. {"done":false,"priority":{"gte":2}} |
| sort | string | Data field to sort by |
| order | string | asc | desc (default desc) |
| limit | number | Max records (default 50, max 200) |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"collection":"collection"},"name":"db_list"}}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"}}Schedule a reminder or event. Pass repeat for something recurring, and prompt to have the agent do the work when it fires and mail you the answer — that is how a standing instruction like a morning briefing is set up.
| Param | Type | Description |
|---|---|---|
| title * | string | What to be reminded about |
| when * | string | When to fire, RFC3339 with timezone offset, e.g. 2026-07-22T15:00:00+01:00 |
| note | string | Optional extra detail |
| minutes | number | How long it lasts in minutes (default 30). What events_free subtracts. |
| repeat | string | How often it recurs: hourly, daily, weekly or monthly. Omit for once. |
| prompt | string | Optional instruction to run through the agent when it fires, e.g. "brief me on today's news". The answer is mailed to you. This is how you set up something recurring like a morning briefing. |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"title":"title","when":"when"},"name":"events_create"}}Find when you have nothing booked. Give it how long you need and it returns the open slots, within working hours.
| Param | Type | Description |
|---|---|---|
| from | string | Start of the window, RFC3339 (default now) |
| to | string | End of the window, RFC3339 (default a week later) |
| minutes | number | How long a slot you need, in minutes (default 30) |
| day_start | number | Earliest hour to offer, 0-23 (default 9) |
| day_end | number | Latest hour to offer, 0-23 (default 18) |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"events_free"}}List your upcoming scheduled events and reminders, soonest first.
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"events_list"}}Delete a file you own, and its contents.
| Param | Type | Description |
|---|---|---|
| id * | string | The file's id |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id"},"name":"files_delete"}}Read a stored file back by its id. Text comes back as text, anything else as base64.
| Param | Type | Description |
|---|---|---|
| id * | string | The file's id |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id"},"name":"files_get"}}List your stored files, newest first, with their URLs and ids.
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"files_list"}}Store a file and get a URL for it. Use it to keep something you produced — a report, a CSV, a transcript — and hand back a link.
| Param | Type | Description |
|---|---|---|
| name * | string | File name including its extension, e.g. report.csv |
| content * | string | The file's contents — plain text, or base64 when encoding is base64 |
| encoding | string | "base64" for binary files; omit for text |
| type | string | Optional content type, e.g. text/csv. Guessed from the name when omitted |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"content":"content","name":"name"},"name":"files_put"}}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"}}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"}}Generate an image from a text prompt. Returns a URL to the generated image.
| Param | Type | Description |
|---|---|---|
| prompt * | string | Describe the image to generate |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"prompt":"prompt"},"name":"images_generate"}}Search the public image library (community stock) by description. Returns image URLs to reuse.
| Param | Type | Description |
|---|---|---|
| query * | string | Search text |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"query":"query"},"name":"images_search"}}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":"index_search"}}Get today's Islamic prayer times (Fajr, Dhuhr, Asr, Maghrib, Isha) for a location, and which prayer is next.
| Param | Type | Description |
|---|---|---|
| lat * | number | Latitude of the location |
| lon * | number | Longitude of the location |
| tz | string | IANA timezone of the location, e.g. Europe/London |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"lat":1,"lon":1},"name":"islam_prayer"}}Get the qibla direction (compass bearing to the Kaaba in Mecca) for a location, and the distance to Mecca.
| 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":"islam_qibla"}}Get today's daily Islamic reminder with verse, hadith, and name of Allah
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"islam_today"}}Get an email address that reaches you. Pass a tag to get your own address (you+tag@) — give that out, then read only its mail with mail_inbox(tag).
| Param | Type | Description |
|---|---|---|
| tag | string | A label for this address, e.g. "research" or "receipts". Omit for your plain address. |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"mail_address"}}Read your mail inbox. Pass a tag to read only mail sent to that plus-address (you+tag@), which is how an agent reads its own mail rather than all of yours.
| Param | Type | Description |
|---|---|---|
| tag | string | Only mail sent to you+<tag>@ — omit for the whole inbox |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"mail_inbox"}}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"}}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_list"}}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_list"}}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 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"}}How long it takes to travel between two places, by road rather than as the crow flies. Use it to answer whether somewhere is worth going to, or when to leave.
| Param | Type | Description |
|---|---|---|
| from | string | Where the journey starts, e.g. "King's Cross, London" |
| to | string | Where the journey ends, e.g. "Heathrow Airport" |
| from_lat | number | Start latitude, if already known |
| from_lon | number | Start longitude, if already known |
| to_lat | number | End latitude, if already known |
| to_lon | number | End longitude, if already known |
| mode | string | How to travel: drive (default), walk, cycle or transit |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"places_eta"}}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"}}Search for places by name or category, optionally near a location
| Param | Type | Description |
|---|---|---|
| query * | 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":{"query":"query"},"name":"places_search"}}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"}}Search the Quran, Hadith, and names of Allah using semantic search. Ask a question in natural language.
| Param | Type | Description |
|---|---|---|
| query * | string | Question or search query |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"query":"query"},"name":"quran_search"}}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"}}List the items you've saved for later (bookmarks), with their links.
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"saved_list"}}Get the latest social posts from the network.
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"social_list"}}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"}}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_list"}}Post a message to the stream. Mention @micro to get an AI response.
| 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"}}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"}}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"}}Get the latest videos from curated channels.
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"video_list"}}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"}}Get your balance: credits (what calls are charged in), plus your Base address and USDC balance for topping up.
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"wallet_balance"}}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"}}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"}}Search the web for current information and news
| Param | Type | Description |
|---|---|---|
| query * | string | Search query |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"query":"query"},"name":"web_search"}}