Mimir Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mimir Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
🇬🇧 You're reading the English version · 🇪🇸 Léeme en español
"Mimir guarda el pozo de la sabiduría: aconseja a Odín cuando le falta contexto. Tu router MCP hace lo mismo con el LLM."
Mimir is a declarative MCP router built on FastMCP 3.x. Drop a plugin.toml next to any MCP server and Mimir discovers it, mounts it under its own namespace, scopes its credentials, filters its tools, and exposes the union to your client (Claude Desktop, an agent in a loop, anything that speaks MCP over stdio).
What sets Mimir apart from other MCP aggregators:
plugin.toml describing identity, runtime, security, requirements. No central config to keep in sync.
infrastructure in inventory/*.yaml (hosts, services). Plugins ask the router "give me hosts of type X" — they never hardcode IPs or hostnames.
the operator hasn't supplied, the router exposes a setup_<plugin>() meta-tool. The LLM walks the operator through what's missing, conversation by conversation.
credential vault, profile gate, tool whitelist/blacklist, and cross-plugin env scoping in subprocess. See docs/security-model.md.
git clone https://github.com/CTRQuko/mimir-mcp
cd mimir-mcp
uv sync
uv run python router.py --dry-runThe dry-run prints what Mimir sees: inventory, discovered plugins, skills/agents. Without configuration it serves only meta-tools — that's intentional. Drop your first plugin under plugins/ and re-run.
Look at examples/echo-plugin/ to see the full contract in ~30 lines. To mount it:
ln -s "$(pwd)/examples/echo-plugin" plugins/echo
uv run python router.py --dry-runOutput:
[mimir] router — profile: default
[mimir] Core: inventory, secrets, audit, memory(noop)
[mimir] Inventory: 0 hosts, 0 services
[mimir] Plugins discovered: 1
[mimir] Skills: 0 Agents: 0Now the client sees echo_echo and echo_reverse alongside the router_* meta-tools.
There are several MCP aggregators in the wild. Mimir occupies a specific slot:
| Tool | What it adds | Where Mimir differs |
|---|---|---|
| FastMCP `mount()` | Library to mount subservers in code | Mimir adds discovery, manifest schema and security layers on top |
| MetaMCP | Aggregator + middleware in Docker, three-level hierarchy | Mimir is a single-process Python router, focused on declarative plugin contracts and LLM-guided onboarding |
| Local MCP Gateway | Aggregator with Web UI, OAuth, profiles | Mimir is CLI-first and focused on the plugin contract — no UI, no OAuth (yet) |
| mcp-proxy-server | Routes requests to backend servers | Mimir adds the inventory layer and semantic requirements |
| mxcp | Build MCP servers from YAML/SQL/Python | Mimir aggregates already-built servers; complementary, not competing |
docs/naming-guide.md — canonical namingconventions for plugins, repos and tools.
docs/plugin-contract.md — full referencefor the plugin.toml schema.
docs/inventory-schema.md — the YAMLformat operators use to declare hosts and services.
docs/security-model.md — the sevensecurity layers in detail.
docs/ARCHITECTURE.md — how the router,core modules and plugins fit together.
docs/INSTALL.md — installation paths beyond theQuick install above.
docs/operator-notes/ — notes from one realdeployment (the author's homelab). Useful as a worked example; not part of the public contract.
Mimir is a working framework with a 280+ test suite covering the core modules, the loader, the router wiring, the security model, the example plugin and the cutover manifests. It is being used in production by the author against a real homelab. The branch refactor/generify-naming (this code) is not yet published; the public release is gated on the cutover described under docs/operator-notes/cutover/.
Goals:
mounted.
Non-goals:
layer 5 tier 2 (filesystem/network/exec interceptors) is explicitly deferred until a real sandbox lands.
MIT. See LICENSE.
at Anthropic for the standard.
blocks.
for an ecosystem?"* at the right moment.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.