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.
Test
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"}}Get all blog posts
{"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"}}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"}}Get the latest social media posts from followed accounts
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"social"}}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"}}Get the latest videos
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"video"}}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"}}List work posts — show (people sharing work) and tasks (bounties for work needed)
| Param | Type | Description |
|---|---|---|
| kind | string | Filter by kind: task or show (default: all) |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"work_list"}}Post work — show something you built or post a task with a credit cost
| Param | Type | Description |
|---|---|---|
| kind | string | Post kind: show or task (default: show) |
| title * | string | Title |
| description * | string | Description of the work |
| link | string | URL or app slug (optional, for show posts) |
| cost | number | Budget 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 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 the weather forecast for a location. Returns current conditions, hourly and daily forecast. Optionally includes pollen data.
| Param | Type | Description |
|---|---|---|
| lat * | number | Latitude of the location |
| lon * | number | Longitude of the location |
| pollen | string | Set 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"}}Get live market prices for cryptocurrencies, futures, and commodities
| Param | Type | Description |
|---|---|---|
| category | string | Category of markets: crypto, futures, or commodities (default: crypto) |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{},"name":"markets"}}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
| 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) |
{"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"}}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) |
{"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, or HTML code
| 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 |
{"id":1,"jsonrpc":"2.0","method":"tools/call","params":{"arguments":{"slug":"slug"},"name":"apps_edit"}}AI-generate an app from a natural language description, save it, and return the app details with URL
| Param | Type | Description |
|---|---|---|
| prompt * | string | Description 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"}}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"}}







