Tools for agents. News, mail, search, weather, markets, video, places, files, contacts, calendar and a database, as tools an agent can call over MCP and REST — behind one account instead of one per provider.
The same services render as a web app: a home screen with a card per service and the agent inline.
Use it live at micro.mu, or run your own.
curl -fsSL https://raw.githubusercontent.com/micro/mu/main/install.sh | sh
mu --serveOpen http://localhost:8080. The first account you create is the admin.
It runs with no configuration. On a fresh install, with no keys, these answer: news, markets, weather, prayer times, quran, mail, files, contacts, calendar, tasks, the database, and search over your own content. Weather comes from Open-Meteo; places and geocoding from OpenStreetMap. No account, no card, no signup.
Three things need a key, because there is no free provider worth wiring in:
| For | Set | Notes |
|---|---|---|
| The agent, and anything that composes an answer | ANTHROPIC_API_KEY, ATLAS_API_KEY, or OPENAI_BASE_URL |
free if you run Ollama locally |
| Web search | BRAVE_API_KEY |
Brave has a free tier |
| Video | YOUTUBE_API_KEY |
free quota |
Without them those tools say so plainly rather than failing oddly. Everything else keeps working.
mu setup # pick an AI provider, paste a key
mu --serveEverything else — mail and DKIM, Google sign-in, Stripe, x402 — is optional,
and configurable from /admin/env once you are signed in as admin.
Other ways to run it:
# 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 --serveSee the installation guide.
Cursor, and clients with a config file. Create a token at /token:
{
"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.
Anything else. It is JSON-RPC over HTTP POST:
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 is what gets listed to your agent. Everything else is still callable.
micro.mu/tools lists every tool with what each call costs. See MCP docs for the protocol.
Here are the tools
| Service | 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_rooms · chat_messages · chat_send — the live discussion rooms attached to an item, and saying something in one |
| Contacts | contacts_add · contacts_find · contacts_list · contacts_delete — turn a name into an address |
| Docs | docs_create · docs_get · docs_list · docs_delete — named collections of your own documents, private by default, that outlive a conversation (docs_create with an id overwrites). Apps get their own separate store through mu.db |
| Events | events_create · events_list · events_delete · events_free — schedule, cancel, and find when you are free, counting the Google Calendar you already keep |
| 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. Write to you+name@ and that agent answers in the thread |
|
| Markets | markets_list — stocks, crypto, futures, commodities, currencies |
| News | news_list · news_read · news_search — RSS aggregation, full articles |
| Notes | notes_add · notes_get · notes_list · notes_delete — a title and what is under it, kept between conversations and read back into every one |
| Places | places_search · places_nearby · places_eta · places_geocode — points of interest, geocoding, travel time |
| Prayer | prayer_times · prayer_qibla · prayer_reflection · prayer_verse · prayer_saying · prayer_search — Islamic prayer times, qibla, a daily verse and saying, and the sources by reference or by question |
| 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 |
| User Prefs | user_saved · user_save · user_unsave · user_hide · user_flag · user_block · user_unblock — what you do about other people's posts: keep one, stop seeing one, report one, or stop hearing from an account |
| Video | video_list · video_search — curated channels, no ads or recommendations |
| Weather | weather_forecast — conditions, forecast, pollen |
Open an issue and say what it should do.
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 docs list --collection notes # your own documents
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.
The server includes a web app. A home screen renders each service at a glance — headlines, prices, weather, unread mail — and the agent sits inline to act on what you are looking at. Apps run sandboxed, in an opaque origin, and reach the platform through a fixed set of operations rather than your session.
Sign in with a username and password, a passkey (WebAuthn), or Google.
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.