项目简介

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提供了多种安装和部署方式。以下是两种推荐的本地部署方法:

  1. 方法一:使用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"...}')
  2. 方法二:本地原生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'

服务器配置 (用于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与计算