MU

by 0ximu

MU is an MCP server that provides AI assistants with deep codebase understanding by parsing codebases into a semantic graph stored in DuckDB and exposing it through 13 MCP tools. It requires a DuckDB database stored in the .mu/mubase directory created by the bootstrap process.

Developer toolsstdioCommunity

Repository-wide counts · Cached 2026-07-09

Overview

The MU MCP server is a publicly available project. Review the upstream repository for installation instructions, supported tools, compatibility, permissions, and current maintenance status.

Configuration

Configuration, transport, authentication, and runtime requirements vary by project. Open the repository before connecting and use the smallest set of credentials and permissions required.

Open the MU repository to read the latest documentation.

KEEP EXPLORING

Compare source, connection, and authentication details before choosing an implementation.

View the complete category

模型上下文协议服务器

modelcontextprotocol

Community

一组用于模型上下文协议(MCP)的参考实现,展示了对大型语言模型(LLM)工具和数据源的安全且受控的访问方式。

Context7 Platform - Up-to-date Code Docs For Any Prompt

upstash

Community

Context7 MCP server providing up-to-date, version-specific documentation and code examples for libraries, enabling coding agents to fetch accurate docs and code snippets. Requires an API key for higher rate limits, passed via CONTEXT7_API_KEY header.

Playwright MCP

Microsoft Corporation

Community

A Model Context Protocol (MCP) server that provides browser automation capabilities using Playwright. Enables LLMs to interact with web pages through structured accessibility snapshots, bypassing the need for screenshots or visually-tuned models.

AIHawk

feder-cr

Community

AIHawk is an anti detect browser and web browsing agent, open source, with an MCP server for coding agents: undetected, no captchas, no blocks. It requires an OpenRouter API key for the standalone web UI mode, which can be provided via the --openrouter-key flag or the OPENROUTER_API_KEY environment variable or a .env file in the running directory.

FROM THE SOURCE

Repository README

Build-time snapshot · Retrieved 2026-10-05

View original

MU

Your codebase, understood.

MCP server that gives AI assistants deep codebase understanding.
Semantic graph, BM25 search, impact analysis, code review - all via tool calls.

MU parses your codebase into a semantic graph stored in DuckDB, then exposes it through 13 MCP tools. Your AI assistant can search, navigate, review, and understand your code without stuffing the entire repo into a context window.

Rust 1.70+ License: Apache 2.0

Why

LLMs choke on large codebases. Context windows are precious. 90% of code is boilerplate. You're feeding syntax when you need semantics.

MU solves this by building a semantic graph - nodes (files, classes, functions), edges (imports, calls, inheritance, DI injection, message-bus publish/consume), importance scores, summaries - and letting your AI pull exactly what it needs.

Does it actually beat grep?

We measured. 12 real questions about a 920k-line C# microservices codebase, identical agents: one arm with only grep/read, one with only MU tools. Blind grading against source-verified ground truth.

grep-only agent MU-only agent
Correct answers 12/12 (one incomplete) 12/12
"Top 5 riskiest methods in service X" 10,421 tokens, 143s of hand-counting branches 659 tokens, 38s (precomputed complexity)
"What breaks if I change X?" manual grep across 7 services one call: 55 direct dependents + message-bus consumers
"Map the services" trusted a stale README (missed 5 services) 21/21 services from importance-ranked compress
Full-flow questions (invoice validation) found 1 of 4 country rule sets all 4 (graph fan-out)

Where grep wins - README lookups, trivially greppable strings - your agent still has grep. MU is the layer for what grep structurally can't do: blast radius through DI and message buses, measured complexity, and importance-ranked orientation. When the graph can't prove something, MU says so instead of asserting absence.

Quick Start

Grab a prebuilt binary from Releases, or build from source:

git clone https://github.com/0ximu/mu.git
cd mu && cargo build --release

# Put mu on your PATH (required for the MCP config below)
cp target/release/mu ~/.local/bin/   # or /usr/local/bin

Then index your project and hook it up to Claude Code:

cd /path/to/your/project
mu bootstrap

# Register the MCP server with Claude Code
claude mcp add mu -- mu mcp

Or, to share the server config with your team, create .mcp.json in the project root:

{
  "mcpServers": {
    "mu": {
      "command": "mu",
      "args": ["mcp"]
    }
  }
}

That's it. Your AI assistant now has full codebase understanding. (Other MCP clients work too - MU speaks MCP over stdio.)

MCP Tools

These are the tools your AI assistant can call:

Tool What it does
mu_grok Search + code snippets. BM25 full-text search ranked by importance
mu_find Exact symbol lookup by name
mu_expand Graph traversal - explore dependencies outward from seed nodes
mu_read Bulk source code retrieval for specific nodes
mu_impact Downstream impact - what breaks if this symbol changes, transitively
mu_diff Semantic diff between git refs (branches, commits)
mu_review Full PR review: diff + impact + audit + risk score
mu_audit Code quality rules - complexity, hardcoded secrets, code smells
mu_sus Find suspicious code - high complexity, security-sensitive, untested
mu_enrich Enrichment flywheel - LLM writes better summaries, improving future search
mu_compress Importance-ranked codebase overview within a token budget
mu_bootstrap Build or rebuild the index without leaving the session
mu_configure Auto-detect project patterns, refine config, drive enrichment

The Enrichment Flywheel

mu_enrich is unique: it returns nodes that need better summaries, the LLM writes them, and stores them back. Each enrichment cycle improves future search results. The graph gets smarter the more you use it.

CLI Commands

The CLI is lean - bootstrap, compress, and analyze:

mu bootstrap              # Build the semantic graph (run this first)
mu compress               # Compress codebase for LLM consumption
mu compress --budget 8000 # Fit an importance-ranked overview into ~8k tokens
mu compress -o context.mu # Write to file
mu status                 # Project status and stats
mu deps <node>            # Show dependencies
mu impact <node>          # Downstream impact analysis
mu diff main HEAD         # Semantic diff between git refs
mu review                 # Review uncommitted changes
mu review main..feature   # Review branch diff
mu audit                  # Code quality audit
mu doctor                 # Health checks

Compress (The Killer Feature)

Feed your entire codebase to an LLM in seconds. MU compresses your code into a hierarchical, star-ranked format that preserves semantic structure.

# 42 modules, 15 classes, 128 functions, 245 edges

## Domain Overview
### Core Entities
$ AuthService  [★★★]
  @attrs [user_repo, token_manager]
  → Database (uses), UserRepo (calls)
  ← LoginHandler, ApiMiddleware

## Hot Paths (complexity > 20 or calls > 5)
  # process_request  c=35  calls=12 ★★
    | src/handlers/api.rs

Sigil notation: ! modules, $ classes, # functions. Complexity scores, call counts, importance stars - all in minimal tokens.

What Bootstrap Builds

mu bootstrap parses your codebase and produces:

  1. Semantic graph - nodes (files, classes, functions) and edges (imports, calls, inheritance, uses)
  2. PageRank importance scores - which symbols are most connected/important
  3. Heuristic summaries - auto-generated descriptions for each node (generated after the graph is complete - summaries include caller/callee information from edges)
  4. BM25 full-text index - fast search over summaries, names, and code
  5. DuckDB database - everything stored in .mu/mubase

Bootstrap is fast: a 400k-line TypeScript project takes about 60 seconds.

Supported Languages

Language Extensions
Python .py
TypeScript .ts, .tsx
JavaScript .js, .jsx
Go .go
Rust .rs
Java .java
C# .cs

How It Works

Source Code → Scanner → Parser → Graph Builder → DuckDB
                │          │          │              │
            manifest    AST       nodes &      PageRank,
                       data       edges       summaries,
                                              FTS index
                                                  │
                                            MCP Server
                                                  │
                                          AI Assistant
  1. Scanner walks the filesystem, detects languages, filters noise
  2. Parser uses tree-sitter to extract AST (classes, functions, imports)
  3. Graph Builder creates nodes and edges for code relationships
  4. Post-processing computes PageRank, generates summaries, builds BM25 index
  5. MCP Server exposes 13 tools for AI assistants to query the graph

Configuration

Create .murc.toml in your project:

[mu]
exclude = ["vendor/", "node_modules/", ".git/", "__pycache__/"]

Node Identifiers

Prefix Type Example
mod: Module/File mod:src/lib/utils.ts
cls: Class cls:src/models/User.ts:User
fn: Function fn:src/api/auth.ts:login
ext: External dependency ext:react

Known Limitations

  • Single-writer DuckDB: Can't bootstrap while the MCP server is running. Stop the server, bootstrap, restart.
  • Test coverage detection: mu_sus finds tests by looking for test files in the scanned tree. If tests live in a sibling directory, they won't be found.
  • .NET projects: For solutions with code in src/, run mu bootstrap from the src/ directory.

Development

cargo build --release
cargo test
cargo fmt && cargo clippy    # Zero warnings policy

Contributing

Contributions welcome.

cargo fmt && cargo clippy && cargo test

See CONTRIBUTING.md for details.

License

Apache License 2.0 - see LICENSE.


MU: Because life's too short to grep through 500k lines of code.