项目简介
Mimo-MCP Gateway 是一个强大的后台服务,旨在为大型语言模型(LLM)客户端提供标准化的上下文信息和功能。它支持多种通信协议,包括MCP stdio、HTTP/REST和OpenAI兼容API,可以作为LLM应用的“大脑”,管理记忆、调用外部工具并路由智能查询。Mimo-MCP 具备语义搜索、程序化执行、实时认知信号传输等高级功能,并采用Elixir/OTP实现高可用性和可扩展性。
主要功能点
- 多协议访问: 支持通过MCP stdio(兼容Claude Desktop、VS Code Copilot)、HTTP/REST 和 OpenAI 兼容API 与LLM客户端通信。
- 智能记忆系统: 包含情景记忆(Episodic Memory,基于SQLite和Ollama嵌入进行语义搜索)、语义存储(Semantic Store,知识图谱,用于精确的关系查询)和程序存储(Procedural Store,确定性状态机,用于执行固定流程)。
- 丰富的工具集: 提供超过48种工具,涵盖文件系统操作、浏览器自动化、网页搜索(通过Exa AI)、HTTP请求和内部记忆管理等,使LLM能够执行各种外部任务。
- 元认知路由器: 智能地将LLM的查询分类并路由到最合适的记忆存储系统。
- 高性能计算: 通过Rust NIFs(Native Implemented Functions)加速向量数学运算,提供10-40倍的性能提升。
- 实时认知: 借助WebSocket Synapse实现全双工状态同步,支持代理的可中断执行和实时信息推送。
- 安全与稳定性: 内置API密钥认证、速率限制、热更新、ACID事务处理、安全执行器等,确保系统安全稳定运行。
安装步骤
Mimo-MCP提供了多种安装和部署方式。以下是两种推荐的本地部署方法:
-
方法一:使用Docker (推荐) 确保您的计算机上已安装 Docker Desktop。
- 克隆仓库: 'git clone https://github.com/pudingtabi/mimo-mcp.git'
- 进入目录: 'cd mimo-mcp'
- 启动服务 (Mimo 和 Ollama): 'docker-compose up -d'
- 拉取嵌入模型 (一次性下载,约274MB): 'docker exec mimo-ollama ollama pull nomic-embed-text'
- 运行数据库迁移: 'docker exec mimo-mcp sh -c "MIX_ENV=prod mix ecto.migrate"'
- 验证服务是否健康: 'curl http://localhost:4000/health' (应返回 '{"status":"healthy"...}' 或 '{"status":"ok"...}')
-
方法二:本地原生Elixir部署 确保已安装 Elixir 1.16+, Erlang 26+, SQLite3 和 Ollama。
- 安装Ollama并拉取嵌入模型:
curl -fsSL https://ollama.ai/install.sh | sh ollama pull nomic-embed-text - 克隆仓库并设置:
git clone https://github.com/pudingtabi/mimo-mcp.git cd mimo-mcp mix deps.get mix ecto.create mix ecto.migrate - 运行服务器: './bin/mimo server'
- 安装Ollama并拉取嵌入模型:
服务器配置 (用于MCP客户端,例如Claude Desktop 或 VS Code Copilot)
MCP客户端需要配置Mimo-MCP服务器的启动命令和参数,以便通过stdio协议进行通信。
通用MCP客户端配置示例:
假设Mimo-MCP服务器的二进制文件路径为 '/absolute/path/to/mimo-mcp/bin/mimo' (如果是单文件部署,则为下载的 './mimo' 可执行文件路径)。
{ "mcpServers": { "mimo": { "command": "/absolute/path/to/mimo-mcp/bin/mimo", "args": ["stdio"], "env": { "MIMO_ROOT": "/absolute/path/to/workspace" // 可选:如果需要API密钥或特定环境变量,可以在此处添加,例如: // "MIMO_API_KEY": "YOUR_GENERATED_API_KEY" } } } }
- 'mcpServers.mimo': 定义一个名为 "mimo" 的MCP服务器。
- 'command': 指定MCP服务器可执行文件的绝对路径。
- 'args': 启动MCP服务器时传递的参数。'["stdio"]' 表示以stdio模式运行,这是MCP客户端进行通信的标准方式。
- 'env': 进程启动时设置的环境变量。'MIMO_ROOT' 指定Mimo的工作空间路径,根据实际情况修改。
具体客户端配置路径:
- macOS上的Claude Desktop: 编辑文件 '~/Library/Application Support/Claude/claude_desktop_config.json'
- Windows上的Claude Desktop: 编辑文件 '%APPDATA%\Claude\claude_desktop_config.json'
- VS Code Copilot: 编辑文件 '~/.vscode/mcp.json'
如果Mimo-MCP部署在远程VPS上,您可以通过SSH进行连接,例如:
{ "mcpServers": { "mimo": { "command": "ssh", "args": [ "-o", "StrictHostKeyChecking=no", // 警告:此选项会禁用主机密钥检查,存在安全风险,生产环境应谨慎或预先添加主机密钥。 "root@YOUR_VPS_IP", // 替换为您的VPS IP地址和用户名 "cd /path/to/mimo-mcp && ./bin/mimo stdio" // 替换为Mimo-MCP在VPS上的绝对路径 ], "env": { "MIMO_ROOT": "/remote/path/to/workspace" } } } }
基本使用方法
1. 通过MCP客户端 (例如Claude Desktop / VS Code): 配置完成后,在Claude Desktop或VS Code Copilot中,您就可以直接与Mimo-MCP服务器交互。LLM客户端将自动通过 'stdio' 协议发送MCP请求(例如查询记忆、调用工具),并接收Mimo-MCP的响应。具体交互方式取决于客户端界面。
2. 通过HTTP/REST API (适用于开发者和集成): Mimo-MCP默认在 'http://localhost:4000' 监听HTTP请求。所有 '/v1/*' 端点都需要API密钥进行认证(在 '.env' 文件中设置 'MIMO_API_KEY')。
-
存储记忆 (调用 'store_fact' 工具):
curl -X POST http://localhost:4000/v1/mimo/tool \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "tool": "store_fact", "arguments": { "content": "用户喜欢深色主题", "category": "observation", "importance": 0.8 } }' -
搜索记忆 (调用 'search_vibes' 工具):
curl -X POST http://localhost:4000/v1/mimo/tool \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "tool": "search_vibes", "arguments": { "query": "用户偏好", "limit": 5, "threshold": 0.3 } }' -
自然语言查询 (通过 Meta-Cognitive Router):
curl -X POST http://localhost:4000/v1/mimo/ask \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{"query": "你对用户偏好了解多少?"}'
信息
分类
AI与计算