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.

Not connected yet? Connect your agent → · Auth and protocol detail · What calls cost

Playground

Pick a tool, fill in parameters, and run it.

Raw JSON-RPC
7 creditsagent

Ask the AI agent a question. The agent can search news, markets, web, video, weather, places, and more to answer your question.

Draws 7 credits from your balance per call.

ParamTypeDescription
prompt *stringYour question or request
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"prompt":"prompt"},"name":"agent"}}
15 creditsapps_build

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.

Draws 15 credits from your balance per call.

ParamTypeDescription
prompt *stringDescription 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"}}
apps_create

Create a new app — a small, self-contained HTML tool hosted on Mu

ParamTypeDescription
name *stringApp name (e.g. Pomodoro Timer)
slug *stringURL-friendly ID (e.g. pomodoro-timer)
description *stringShort description of what the app does
tagsstringComma-separated tags (optional)
html *stringThe app's HTML content (can include inline CSS and JavaScript, max 256KB)
pricenumberCredits 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"}}
apps_edit

Edit an existing app you own — update its name, description, tags, icon, HTML code, or price

ParamTypeDescription
slug *stringThe app's URL slug (e.g. pomodoro-timer)
namestringNew app name
descriptionstringNew description
tagsstringNew comma-separated tags
htmlstringNew HTML content (max 256KB)
iconstringNew SVG icon
pricenumberCredits charged per use (0 = free, max 1000)
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"slug":"slug"},"name":"apps_edit"}}
apps_fork

Fork an existing app — creates a copy under your account that you can modify independently

ParamTypeDescription
slug *stringSlug of the app to fork
new_slugstringSlug for the forked copy (optional, auto-generated if empty)
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"slug":"slug"},"name":"apps_fork"}}
apps_read

Read details of a specific app by its slug

ParamTypeDescription
slug *stringThe app's URL slug (e.g. pomodoro-timer)
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"slug":"slug"},"name":"apps_read"}}
7 creditsapps_run

Run JavaScript code in a sandboxed environment and return the result. Use for calculations, data processing, or any computation the user needs.

Draws 7 credits from your balance per call.

ParamTypeDescription
code *stringJavaScript 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"}}
apps_test

Test an app by checking its HTML structure and executing its mu.api calls server-side. Returns which API calls work and which fail.

ParamTypeDescription
slug *stringThe app's URL slug
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"slug":"slug"},"name":"apps_test"}}
block_user

Block a user — hides all their content from your view

ParamTypeDescription
user *stringUser ID to block
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"user":"user"},"name":"block_user"}}
blog_create

Create a new blog post

ParamTypeDescription
titlestringPost title
content *stringPost content (minimum 50 characters)
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"content":"content"},"name":"blog_create"}}
blog_delete

Delete a blog post (author only)

ParamTypeDescription
id *stringThe blog post ID to delete
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id"},"name":"blog_delete"}}
blog_list

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"}}
blog_read

Read a specific blog post by ID

ParamTypeDescription
id *stringThe blog post ID
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id"},"name":"blog_read"}}
blog_update

Update an existing blog post (author only)

ParamTypeDescription
id *stringThe blog post ID to update
titlestringNew post title
contentstringNew post content (minimum 50 characters)
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id"},"name":"blog_update"}}
5 creditschat

Chat with AI assistant

Draws 5 credits from your balance per call.

ParamTypeDescription
prompt *stringThe message to send to the AI
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"prompt":"prompt"},"name":"chat"}}
contacts_add

Save someone to your address book. Adding a name already there updates it rather than making a second card.

ParamTypeDescription
name *stringThe person's name
emailstringTheir email address
phonestringTheir phone number
notestringAnything worth remembering about them
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"name":"name"},"name":"contacts_add"}}
contacts_delete

Remove someone from your address book.

ParamTypeDescription
id *stringThe contact's id
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id"},"name":"contacts_delete"}}
contacts_find

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.

ParamTypeDescription
query *stringA name, part of a name, or an address
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"query":"query"},"name":"contacts_find"}}
contacts_list

List everyone in your address book.

{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"contacts_list"}}
db_create

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.

ParamTypeDescription
collection *stringCollection name (e.g. notes, tasks)
data *objectThe record's fields as a JSON object
publicbooleanShare the record publicly (default false)
idstringExisting record id to update (optional)
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"collection":"collection","data":"data"},"name":"db_create"}}
db_delete

Delete a record you own by id.

ParamTypeDescription
collection *stringCollection name
id *stringRecord id
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"collection":"collection","id":"id"},"name":"db_delete"}}
db_get

Get one record by id from a collection (must be yours, or public).

ParamTypeDescription
collection *stringCollection name
id *stringRecord id
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"collection":"collection","id":"id"},"name":"db_get"}}
db_list

List records in a collection. scope: 'mine' (default), 'public', or 'all' (mine + public). Optional where filter, sort field and limit.

ParamTypeDescription
collection *stringCollection name
scopestringmine | public | all (default mine)
whereobjectFilter on data fields, e.g. {"done":false,"priority":{"gte":2}}
sortstringData field to sort by
orderstringasc | desc (default desc)
limitnumberMax records (default 50, max 200)
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"collection":"collection"},"name":"db_list"}}
dismiss

Hide content from your view

ParamTypeDescription
type *stringContent type
id *stringContent ID
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id","type":"type"},"name":"dismiss"}}
events_create

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.

ParamTypeDescription
title *stringWhat to be reminded about
when *stringWhen to fire, RFC3339 with timezone offset, e.g. 2026-07-22T15:00:00+01:00
notestringOptional extra detail
minutesnumberHow long it lasts in minutes (default 30). What events_free subtracts.
repeatstringHow often it recurs: hourly, daily, weekly or monthly. Omit for once.
promptstringOptional 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"}}
events_free

Find when you have nothing booked. Give it how long you need and it returns the open slots, within working hours.

ParamTypeDescription
fromstringStart of the window, RFC3339 (default now)
tostringEnd of the window, RFC3339 (default a week later)
minutesnumberHow long a slot you need, in minutes (default 30)
day_startnumberEarliest hour to offer, 0-23 (default 9)
day_endnumberLatest hour to offer, 0-23 (default 18)
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"events_free"}}
events_list

List your upcoming scheduled events and reminders, soonest first.

{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"events_list"}}
files_delete

Delete a file you own, and its contents.

ParamTypeDescription
id *stringThe file's id
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id"},"name":"files_delete"}}
files_get

Read a stored file back by its id. Text comes back as text, anything else as base64.

ParamTypeDescription
id *stringThe file's id
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id"},"name":"files_get"}}
files_list

List your stored files, newest first, with their URLs and ids.

{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"files_list"}}
files_put

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.

ParamTypeDescription
name *stringFile name including its extension, e.g. report.csv
content *stringThe file's contents — plain text, or base64 when encoding is base64
encodingstring"base64" for binary files; omit for text
typestringOptional 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"}}
files_share

Make a stored file readable by anyone holding its URL, or private again.

ParamTypeDescription
id *stringThe file's id
public *booleanTrue to share, false to make private again
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id","public":"public"},"name":"files_share"}}
flag

Flag content for moderation

ParamTypeDescription
type *stringContent type (e.g. post, work, app)
id *stringContent ID
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id","type":"type"},"name":"flag"}}
hadith

Look up hadith from Sahih Al Bukhari. Pass a book number to get hadiths from that book.

ParamTypeDescription
booknumberBook number
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"hadith"}}
15 creditsimages_generate

Generate an image from a text prompt. Returns a URL to the generated image.

Draws 15 credits from your balance per call.

ParamTypeDescription
prompt *stringDescribe the image to generate
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"prompt":"prompt"},"name":"images_generate"}}
islam_prayer

Get today's Islamic prayer times (Fajr, Dhuhr, Asr, Maghrib, Isha) for a location, and which prayer is next.

ParamTypeDescription
lat *numberLatitude of the location
lon *numberLongitude of the location
tzstringIANA 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"}}
islam_qibla

Get the qibla direction (compass bearing to the Kaaba in Mecca) for a location, and the distance to Mecca.

ParamTypeDescription
lat *numberLatitude of the location
lon *numberLongitude of the location
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"lat":1,"lon":1},"name":"islam_qibla"}}
islam_today

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"}}
mail_address

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).

ParamTypeDescription
tagstringA 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"}}
mail_inbox

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.

ParamTypeDescription
tagstringOnly mail sent to you+<tag>@ — omit for the whole inbox
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"mail_inbox"}}
4 creditsmail_send

Send a mail message

Draws 4 credits from your balance per call.

ParamTypeDescription
to *stringRecipient username or email
subject *stringMessage subject
body *stringMessage body
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"body":"body","subject":"subject","to":"to"},"name":"mail_send"}}
markets_list

Get live market prices for cryptocurrencies, futures, commodities and currencies.

ParamTypeDescription
categorystringcrypto, futures, commodities or currencies (default crypto)
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"markets_list"}}
news_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.

ParamTypeDescription
topicstringOptional topic/category filter (e.g. tech, world, business)
limitstringOptional max number of headlines (default 30)
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"news_list"}}
news_read

Read one news article in full (title, source, summary and body) by its id from news_headlines, or by article URL.

ParamTypeDescription
id *stringArticle id (from news_headlines) or article URL
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id"},"name":"news_read"}}
3 creditsplaces_eta

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.

Draws 3 credits from your balance per call.

ParamTypeDescription
fromstringWhere the journey starts, e.g. "King's Cross, London"
tostringWhere the journey ends, e.g. "Heathrow Airport"
from_latnumberStart latitude, if already known
from_lonnumberStart longitude, if already known
to_latnumberEnd latitude, if already known
to_lonnumberEnd longitude, if already known
modestringHow to travel: drive (default), walk, cycle or transit
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"places_eta"}}
4 creditsplaces_nearby

Find all places of interest near a given location

Draws 4 credits from your balance per call.

ParamTypeDescription
addressstringAddress or postcode to search near
latnumberLatitude of the search location
lonnumberLongitude of the search location
radiusnumberSearch radius in metres, 100–5000 (default 500)
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"places_nearby"}}
quran

Look up a Quran chapter or verse. Pass chapter number (1-114) and optionally a verse number.

ParamTypeDescription
chapter *numberChapter number (1-114)
versenumberVerse number (optional, returns full chapter if omitted)
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"chapter":1},"name":"quran"}}
save

Bookmark content for later

ParamTypeDescription
type *stringContent type (e.g. post, work, app)
id *stringContent ID
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id","type":"type"},"name":"save"}}
saved_list

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"}}
social_list

Get the latest social posts from the network.

{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"social_list"}}
stream_list

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"}}
stream_post

Post a message to the stream. Mention @micro to get an AI response.

ParamTypeDescription
content *stringMessage 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_user

Unblock a previously blocked user

ParamTypeDescription
user *stringUser ID to unblock
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"user":"user"},"name":"unblock_user"}}
unsave

Remove a saved bookmark

ParamTypeDescription
type *stringContent type
id *stringContent ID
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id","type":"type"},"name":"unsave"}}
video_list

Get the latest videos from curated channels.

{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"video_list"}}
wallet_balance

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"}}
1 creditweather_forecast

Get the weather forecast for a location (current conditions plus the next few days).

Draws 1 credit from your balance per call.

ParamTypeDescription
lat *numberLatitude of the location
lon *numberLongitude of the location
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"lat":1,"lon":1},"name":"weather_forecast"}}
web_fetch

Fetch a web page and return its cleaned readable content (strips ads, popups, navigation)

ParamTypeDescription
url *stringThe URL to fetch
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"url":"url"},"name":"web_fetch"}}