Mu: 67 Agent Tools Behind One MCP Endpoint

Mu is a new open-source project that gives AI agents access to 67 real tools—email, web search, news, markets, weather, and more—through a single MCP endpoint. The Go binary runs a full mail server with DKIM, a feed aggregator, a search index, and a wallet, all in one process. You can use the hosted version at micro.mu or self-host the single binary. It's AGPL-3.0 licensed.

One Endpoint, No API Keys

Connecting an agent is trivial. Add this to your MCP config:

{
  "mcpServers": {
    "mu": {
      "url": "https://micro.mu/mcp"
    }
  }
}

No API key to paste. The first call returns a 401 with a link to the instance's authorization server, and your client walks you through sign-in. This follows the MCP authorization spec, which Claude Desktop and Cursor both support. For clients that don't, you can create a Personal Access Token at /token and send it as Authorization: Bearer.

Real Tools, Not Wrappers

Most "agent tools" are thin wrappers over someone else's API. Mu runs the actual infrastructure. The mail_inbox tool reads a real inbox. db_create writes to real storage. The tools are the instance's own capabilities, not a catalogue of third-party products.

Each tool is a Go package with typed handlers, registered in-process behind a Go Micro registry. The registry is the single source of truth: a service declares itself once, and every surface (MCP, CLI, web app, SDK) derives from that declaration.

Here's an example service spec:

var Spec = service.Spec{
    Name:        "web",
    Handler:     new(Server),
    Description: "The open web: search it, read a page from it",
    Page:        "/search",
    Endpoints: map[string]service.Endpoint{
        "Search": {Doc: "Search the web for current information", Cost: wallet.OpWebSearch},
        "Fetch":  {Doc: "Fetch a web page and return readable content", Cost: wallet.OpWebFetch},
    },
}

Register it, and it becomes available to agents over MCP, the built-in agent, custom agents in the tool picker, the CLI, and apps via the SDK. Extending Mu is adding an element, not wiring N integrations.

The Tool Catalog

Mu covers a wide range of services:

  • Web: web_search, web_fetch — search and read pages as clean text.
  • News: news_list, news_read, news_search — RSS aggregation with full articles.
  • Markets: markets_list — crypto, futures, commodities, currencies.
  • Weather: weather_forecast — conditions, forecast, pollen.
  • Places: places_search, places_nearby, places_eta — POI, geocoding, travel time.
  • Video: video_list, video_search — curated channels, no ads or recommendations.
  • Mail: mail_inbox, mail_send, mail_address — real SMTP server with DKIM.
  • Storage: db_create, db_get, db_list, db_update, db_delete — per-caller records.
  • Files: files_put, files_get, files_list, files_share — keep a file, get a URL.
  • Calendar: events_create, events_free, events_list — schedule and find free time.
  • Contacts: contacts_find, contacts_add, contacts_list — turn a name into an address.
  • Search: index_search — search everything the instance holds for you.
  • Images: images_generate, images_search.
  • Writing: blog_*, social_*, stream_* — publish, read, discuss.
  • Apps: apps_build, apps_run, apps_edit — build and run small web tools.
  • Faith: islam_today, islam_prayer, islam_qibla, quran, hadith.
  • Money: wallet_balance — credits and USDC top-up.
  • Agent: agent, chat — ask the whole thing a question.

Account-scoped tools (mail, storage, index, images, events, files, contacts) require a signed-in caller. mail_send always requires authentication, so an unaccountable caller can't spend a domain's reputation.

CLI and Web App

Every tool is also a mu CLI subcommand. The same binary runs the server (mu --serve) and the CLI. Examples:

mu news_list                            # latest headlines
mu news_search "ai safety"              # search news
mu web_search "claude code"             # search the web
mu agent "what is the btc price?"       # run the full agent
mu weather_forecast --lat 51.5 --lon -0.12
mu wallet                               # your balance

The CLI is registry-driven, so a new tool automatically becomes a CLI command. The web app renders cards for each service (headlines, prices, weather, unread mail) and includes an inline agent. Logged-out visitors get a public version with live data.

Self-Hosting and Configuration

Self-hosting is a one-liner:

curl -fsSL https://raw.githubusercontent.com/micro/mu/main/install.sh | sh

Or with Docker:

git clone https://github.com/micro/mu && cd mu
docker compose up

First-run setup walks you through creating an admin account and picking an AI provider (Claude, Atlas Cloud, or a local Ollama/OpenAI-compatible endpoint). You can also configure everything via environment variables:

export ADMIN=you@example.com
export ATLAS_API_KEY=xxx  # or ANTHROPIC_API_KEY, or OPENAI_BASE_URL
mu --serve

Once you're admin, you can configure other keys (YouTube, Brave search, weather, mail/DKIM, Google sign-in) from /admin/env in the browser.

Configuration is JSON files:

  • service/news/feeds.json — RSS news feeds
  • service/chat/prompts.json — chat topics
  • home/cards.json — home screen cards
  • service/video/channels.json — YouTube channels
  • service/places/locations.json — saved locations

Why It Matters

Mu attacks the integration problem head-on. Instead of wiring up a dozen separate APIs, you get one MCP endpoint. The fact that it runs real infrastructure (SMTP, search index) rather than wrapping third-party APIs is a differentiator. The registry-driven design means extending the system is trivial. For developers building agents, Mu could be a solid foundation.

Getting Started

Head to micro.mu/tools to see the live tool catalogue with costs. The docs folder has an MCP guide and architecture overview. If you're building agents, Mu is worth a look.