MCP

Model Context Protocol

Connect AI clients (e.g. Claude Desktop) to this MCP server.

Endpoint: /mcpAPI Docs

Authentication

Pass a token in the Authorization header with each request:

Authorization: Bearer YOUR_TOKEN

Two ways to obtain a token:

  1. Personal Access Token (PAT) — create one at /token after logging in.
  2. Signup / Login — the agent can call the signup or login tool to obtain a session token programmatically.

Test

me

Get the current authenticated user's identity, account ID, and admin status

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

Run the AI agent — plans which tools to use, executes them, and synthesises an answer. Use for complex queries that need multiple data sources.

Metered — requires credits

ParamTypeDescription
prompt *stringWhat you want the agent to do
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"prompt":"prompt"},"name":"agent"}}
chat

Chat with AI assistant

Metered — requires credits

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

Read the latest news feed

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

Search for news articles

Metered — requires credits

ParamTypeDescription
query *stringNews search query
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"query":"query"},"name":"news_search"}}
blog_list

Get all blog posts

{"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_create

Create a new blog post

Metered — requires credits

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_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"}}
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"}}
social

Get the latest social media posts from followed accounts

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

Search social media posts

Metered — requires credits

ParamTypeDescription
query *stringSearch query for social posts
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"query":"query"},"name":"social_search"}}
video

Get the latest videos

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

Search for videos

Metered — requires credits

ParamTypeDescription
query *stringVideo search query
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"query":"query"},"name":"video_search"}}
mail_read

Read mail inbox

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

Send a mail message

Metered — requires credits

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

Search across all indexed content (posts, news, videos)

ParamTypeDescription
q *stringSearch query
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"q":"q"},"name":"search"}}
wallet_balance

Get wallet credit balance

ParamTypeDescription
balancestringSet to 1 to get balance
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"wallet_balance"}}
wallet_transfer

Transfer credits to another user by username

ParamTypeDescription
to *stringRecipient username
amount *numberNumber of credits to transfer
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"amount":1,"to":"to"},"name":"wallet_transfer"}}
wallet_topup

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

List work posts — show (people sharing work) and tasks (bounties for work needed)

ParamTypeDescription
kindstringFilter by kind: task or show (default: all)
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"work_list"}}
work_post

Post work — show something you built or post a task with a credit cost

ParamTypeDescription
kindstringPost kind: show or task (default: show)
title *stringTitle
description *stringDescription of the work
linkstringURL or app slug (optional, for show posts)
costnumberBudget in credits — max spend for agent (required for tasks)
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"description":"description","title":"title"},"name":"work_post"}}
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"}}
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"}}
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"}}
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"}}
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"}}
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"}}
places_search

Search for places by name or category, optionally near a location

Metered — requires credits

ParamTypeDescription
q *stringSearch query (e.g. cafe, pharmacy, Boots)
nearstringLocation name or address to search near
near_latnumberLatitude of the search location
near_lonnumberLongitude of the search location
radiusnumberSearch radius in metres, 100–5000 (default 1000)
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"q":"q"},"name":"places_search"}}
places_nearby

Find all places of interest near a given location

Metered — requires credits

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

Get the weather forecast for a location. Returns current conditions, hourly and daily forecast. Optionally includes pollen data.

Metered — requires credits

ParamTypeDescription
lat *numberLatitude of the location
lon *numberLongitude of the location
pollenstringSet to 1 to include pollen forecast (+1 credit)
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"lat":1,"lon":1},"name":"weather_forecast"}}
markets

Get live market prices for cryptocurrencies, futures, and commodities

ParamTypeDescription
categorystringCategory of markets: crypto, futures, or commodities (default: crypto)
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"markets"}}
reminder

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

Search the Quran, Hadith, and names of Allah using semantic search. Ask a question in natural language.

Metered — requires credits

ParamTypeDescription
q *stringQuestion or search query
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"q":"q"},"name":"quran_search"}}
signup

Create a new account and return a session token

ParamTypeDescription
id *stringUsername (4-24 chars, lowercase, starts with letter)
secret *stringPassword (minimum 6 characters)
namestringDisplay name (optional, defaults to username)
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id","secret":"secret"},"name":"signup"}}
login

Log in and return a session token for use in Authorization header

ParamTypeDescription
id *stringUsername
secret *stringPassword
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"id":"id","secret":"secret"},"name":"login"}}
web_search

Search the web for current information and news

Metered — requires credits

ParamTypeDescription
q *stringSearch query
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"q":"q"},"name":"web_search"}}
web_fetch

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

Metered — requires credits

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

Search the apps directory for small, useful tools

ParamTypeDescription
qstringSearch query (name, description, or tag)
tagstringFilter by tag
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"apps_search"}}
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"}}
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)
{"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 — update its name, description, tags, icon, or HTML code

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
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"slug":"slug"},"name":"apps_edit"}}
apps_build

AI-generate an app from a natural language description, save it, and return the app details with URL

Metered — requires credits

ParamTypeDescription
prompt *stringDescription of the app to build (e.g. 'a pomodoro timer with lap counter')
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"prompt":"prompt"},"name":"apps_build"}}
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_run

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

Metered — requires credits

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.fetch(), 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"}}