Tools for agents
Mu is an MCP server and web app for agents and humans. It provides access to the real world through MCP for the agents and let's humans browse or interact with same content in a web app. Access news, web search, mail, markets, weather, video, places, images, files, events, contacts and more.
Use it live at micro.mu, or self-host.
Two ways in, depending on what your client reads. Both need an account — the same one you sign into the app with.
Cursor, and clients with a config file. Create a token at
/token and add this to ~/.cursor/mcp.json:
{
"mcpServers": {
"mu": {
"url": "https://micro.mu/mcp",
"headers": {
"Authorization": "Bearer ${env:MU_TOKEN}"
}
}
}
}Claude Desktop. Settings → Connectors → Add custom connector, and paste
https://micro.mu/mcp. It registers itself, opens a browser and asks you to
sign in — no token needed. Pasting the URL into claude_desktop_config.json
will not work: that file only takes local command-line servers.
curl -X POST https://micro.mu/mcp -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Scope the connection to the services you need:
https://micro.mu/mcp?tools=news,web,mail
That's what gets listed to your agent. Everything else is still callable.
Browse the tools: micro.mu/tools — every tool, grouped by service, with what each call costs.
See MCP docs for the protocol details.
Grouped the way /tools and the sidebar group them — one row per service, named for it.
| Area | Tools |
|---|---|
| Apps | apps_build · apps_create · apps_edit · apps_fork · apps_read · apps_run · apps_search · apps_test — build and run small web tools |
| Blog | blog_create · blog_read · blog_list · blog_update · blog_delete — publish, with AI-generated daily digests |
| Chat | chat · chat_rooms · chat_messages — one question one answer, and the live rooms |
| Contacts | contacts_add · contacts_find · contacts_list · contacts_delete — turn a name into an address |
| Events | events_create · events_list · events_delete · events_free — schedule, cancel, and find when you are free |
| Files | files_put · files_get · files_list · files_share · files_delete — keep a file, get a URL |
| Images | images_generate · images_search |
| Index | index_search — everything this instance holds for you |
mail_inbox · mail_send · mail_search · mail_address — a real SMTP server with DKIM, and an address per agent |
|
| Markets | markets_list — stocks, crypto, futures, commodities, currencies |
| News | news_list · news_read · news_search — RSS aggregation, full articles |
| Places | places_search · places_nearby · places_eta · places_geocode — points of interest, geocoding, travel time |
| Prayer | prayer_times · prayer_qibla · prayer_reflection — Islamic prayer times, qibla, and a daily verse, saying and name |
| Search | web_search · web_fetch — search the web, read a page as clean text |
| Social | social_list · social_search — public threads and replies |
| Stream | stream_list · stream_post — this instance's own timeline |
| Tasks | tasks_create · tasks_list · tasks_next · tasks_update · tasks_delete — what is to be done, and work you can hand to the agent |
| Video | video_list · video_search — curated channels, no ads or recommendations |
| Wallet | wallet_balance · wallet_check — credits, which is what calls are charged in |
| Weather | weather_forecast — conditions, forecast, pollen |
| Platform | agent — ask the whole thing a question and let it compose. db_create · db_get · db_list · db_delete — the store apps write to, so an agent and an app can share records (db_create with an id updates). Also quran · quran_search · hadith, save · unsave · saved_list, and flag · dismiss · block_user · unblock_user |
Open an issue and say what it should do.
The server includes a web app with a home screen. Cards render each service at a glance (headlines, prices, weather, unread mail) and the agent sits inline to act on what you're looking at. Logged-out visitors get a public version with live data.
An LLM — Claude, Atlas Cloud (DeepSeek), or a local Ollama / OpenAI-compatible endpoint — calls the services as tools, composes answers, and keeps per-user memory across sessions.
Sign in with a username and password, a passkey (WebAuthn), or Google.
For the CLI, generate a Personal Access Token at /token.
Every tool is a mu subcommand. The same binary runs the server (mu --serve)
and the CLI.
mu news list # latest headlines
mu news search "ai safety" # search news
mu web search "claude code" # search the web
mu markets list --category stocks # live prices
mu agent "what is the btc price?" # run the full agent
mu weather forecast --lat 51.5 --lon -0.12
mu wallet # your balance
mu help # full tool listEvery tool in the table above is a command: the service, then the method. The
underscore form works too, so mu news list and mu news_list are the same
call.
The CLI is registry-driven — a tool added to the server automatically becomes a CLI command.
mu login # opens /token in your browser, paste the PAT back
mu config set token xxx # or set it directly
export MU_TOKEN=xxx # or use the environmentSee CLI docs.
Talk to the agent from Discord or Telegram — questions, markets, news, all from chat. Join the Discord
Every tool is a command on both, in the same two-word shape as the CLI:
/news list, /markets list category:stocks, /prayer times. Discord gets one
slash command per service with the methods as subcommands; on Telegram you type
/news list. Both also take /agent <question> for anything that needs
composing, and /usage for your own stats.
Setup for both is in Installation.
curl -fsSL https://raw.githubusercontent.com/micro/mu/main/install.sh | sh# Docker
git clone https://github.com/micro/mu && cd mu
docker compose up
# From source
git clone https://github.com/micro/mu
cd mu && go install
mu --serveOpen http://localhost:8080 and Mu walks you through a one-time setup: create your admin account and pick an AI provider (Claude, Atlas Cloud, or a local Ollama / OpenAI-compatible endpoint). That's enough to have a working agent.
For terminal setup. Configure the provider headless, then start the server:
mu setup # pick a provider, paste a key
mu --serve # first account you create becomes adminOr set everything by hand:
export ADMIN=you@example.com # who's admin (else: first account)
export ATLAS_API_KEY=xxx # or ANTHROPIC_API_KEY, or OPENAI_BASE_URL
mu --serveOnce you're admin, every other key (YouTube, Brave search, weather, mail/DKIM,
Google sign-in…) is configurable from /admin/env in the browser.
See Installation guide.
Customise feeds, prompts and cards by editing JSON files:
service/news/feeds.json— RSS news feedsservice/chat/prompts.json— chat topicshome/cards.json— home screen cardsservice/video/channels.json— YouTube channelsservice/places/locations.json— saved locations
See Environment Variables for all options.
Full docs in the docs folder. Start with MCP for agents, Architecture for the code. The live tool catalogue is at /tools.
AGPL-3.0 — use, modify, distribute. If you run a modified version as a service, share the source.