CTRQuko/mimir-mcp
GitHub: CTRQuko/mimir-mcp
Mimir 是一个声明式 MCP 路由器,通过声明式插件契约、清单与插件分离、LLM 引导的配置流程和分层安全模型,将多个 MCP 服务器安全聚合后统一暴露给 LLM 客户端。
Stars: 0 | Forks: 0
# Mimir
[](https://github.com/CTRQuko/mimir-mcp/actions/workflows/ci.yml)
[](https://pypi.org/project/mimir-router-mcp/)
[](https://pypi.org/project/mimir-router-mcp/)
[](LICENSE)
🇬🇧 您正在阅读英文版本 · 🇪🇸 [Léeme en español](README.es.md)
**Mimir 是一个声明式 MCP 路由器**,基于 FastMCP 3.x 构建。只需在任何 MCP 服务器旁放置一个
`plugin.toml` 文件,Mimir 就会发现它,将其
挂载到自己的命名空间下,限定其凭据范围,过滤其工具,并
将集合暴露给你的客户端(Claude Desktop、循环中的 Agent,
以及任何通过 stdio 通信 MCP 的程序)。
Mimir 与其他 MCP 聚合器的不同之处:
- **声明式插件契约** — 每个插件都附带自己的
`plugin.toml`,用于描述身份、运行时、安全性和需求。
无需保持中央配置同步。
- **清单与插件分离** — 运维人员在 `inventory/*.yaml` 中描述其
基础设施(主机、服务)。插件向
路由器询问“给我类型为 X 的主机”——它们从不硬编码 IP 或
主机名。
- **LLM 引导的引导流程** — 当插件需要运维人员
尚未提供的主机或凭据时,路由器会暴露一个 `setup_()`
元工具。LLM 会逐个对话引导运维人员补充
缺失的信息。
- **分层安全** — manifest 隔离、审计日志、范围化的
凭据保管库、配置文件门控、工具白名单/黑名单,以及
子进程中的跨插件环境作用域。参见
[`docs/security-model.md`](docs/security-model.md)。
## 快速安装
```
git clone https://github.com/CTRQuko/mimir-mcp
cd mimir-mcp
uv sync
uv run python router.py --dry-run
```
试运行会打印出 Mimir 的视图:清单、已发现的插件、
技能/Agent。在没有配置的情况下,它只提供元工具——这是
有意为之。将你的第一个插件放在 `plugins/` 下并重新运行即可。
## Hello world — 最小化插件
查看 [`examples/echo-plugin/`](examples/echo-plugin/) 以了解约 30 行代码中的完整
契约。要挂载它:
```
ln -s "$(pwd)/examples/echo-plugin" plugins/echo
uv run python router.py --dry-run
```
输出:
```
[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: 0
```
现在,客户端可以在 `router_*` 元工具旁边
看到 `echo_echo` 和 `echo_reverse`。
## 对比
目前市面上已经有几个 MCP 聚合器。Mimir 占据了一个特定的
位置:
| 工具 | 它的作用 | Mimir 的不同之处 |
|------|--------------|---------------------|
| **FastMCP `mount()`** | 在代码中挂载子服务器的库 | Mimir 在此基础上增加了发现、manifest schema 和安全层 |
| **MetaMCP** | Docker 中的聚合器 + 中间件,三级层次结构 | Mimir 是一个单进程 Python 路由器,专注于声明式插件契约和 LLM 引导的引导流程 |
| **Local MCP Gateway** | 带有 Web UI、OAuth、配置文件的聚合器 | Mimir 是 CLI 优先并专注于插件契约——(目前)没有 UI,没有 OAuth |
| **mcp-proxy-server** | 将请求路由到后端服务器 | Mimir 增加了清单层和语义需求 |
| **mxcp** | 通过 YAML/SQL/Python 构建 MCP 服务器 | Mimir 聚合已构建的服务器;两者是互补而非竞争关系 |
## 文档
- [`docs/naming-guide.md`](docs/naming-guide.md) — 插件、仓库和工具的
规范命名约定。
- [`docs/plugin-contract.md`](docs/plugin-contract.md) — `plugin.toml` schema 的
完整参考。
- [`docs/inventory-schema.md`](docs/inventory-schema.md) — 运维人员用来
声明主机和服务的 YAML 格式。
- [`docs/security-model.md`](docs/security-model.md) — 详述七层
安全的文档。
- [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) — 路由器、
核心模块和插件是如何组合在一起的。
- [`docs/INSTALL.md`](docs/INSTALL.md) — 上述“快速安装”之外的
安装路径。
- [`docs/operator-notes/`](docs/operator-notes/) — 来自一个真实
部署(作者的 homelab)的笔记。可作为实际的
操作示例;但**不是**公共契约的一部分。
## 状态
Mimir 是一个可用的框架,包含 280 多个测试,覆盖了核心
模块、加载器、路由器连接、安全模型、
示例插件和切换清单。作者已在真实的 homelab 中将其用于
生产环境。`refactor/generify-naming` 分支
(此代码)尚未发布;
公开发布将取决于 `docs/operator-notes/cutover/` 下
描述的切换工作。
## 项目目标(及非目标)
**目标:**
- 一个小巧、易读的路由器,任何人都能在一个晚上审计完。
- 插件是真正独立的 MCP 服务器——可独立使用也可
挂载。
- 由 LLM 引导运维人员完成的引导流程。
- 运维人员可以理解的默认安全设置。
**非目标:**
- 完整的 PaaS 或沙箱。Mimir 信任操作系统来实现进程隔离;
第 5 层第 2 级(文件系统/网络/执行拦截器)被明确
推迟,直到出现真正的沙箱。
- Web UI。CLI + LLM 是受支持的控制平面。
- 替代 FastMCP。Mimir 是建立在它之上的。
## 许可证
MIT。参见 [`LICENSE`](LICENSE)。
## 致谢
- Anthropic 的 [Model Context Protocol](https://modelcontextprotocol.io) 团队
提供了此标准。
- [FastMCP](https://github.com/jlowin/fastmcp) 提供了 Python 的构建
基础模块。
- 作者的首席 Claude,在恰当的时机问了
“这是为了一个 homelab 还是为了一个生态系统?”
标签:Claude Desktop, DNS解析, FastMCP, LLM引导, MCP聚合器, MCP路由, Python, Python安全, StruQ, 作用域插件, 元工具, 凭据保险库, 分层安全模型, 基础设施管理, 声明式路由, 安全沙箱, 审计日志, 开源项目, 插件管理, 无后门, 清单与资产管理, 清单隔离, 白名单与黑名单, 自动化配置, 跨平台集成, 逆向工具