项目简介

Arc Memory MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的后端应用。它充当 Arc Memory 时间知识图谱 (Temporal Knowledge Graph, TKG) 和兼容 MCP 的大模型客户端(如 VS Code Agent Mode, Claude Desktop, Cursor 等)之间的桥梁。

与传统依赖向量数据库的 RAG 系统不同,该服务器提供对知识图谱中显式的、结构化的、具有时间性和关系的溯源数据的访问能力,帮助 AI 理解项目的历史关系(如提交、拉取请求、问题、架构决策记录、文件修改等),而不仅仅是语义内容。它是 Arc Memory 生态系统的核心组件,作为 AI 辅助开发中的“记忆层”和知识图谱访问点。

主要功能点

服务器通过 MCP 协议暴露以下功能(工具):

  • 代码历史追溯 (arc_trace_history): 追溯特定文件行号的代码决策历史和相关信息。
  • 获取项目项详情 (arc_get_entity_details): 获取知识图谱中特定项目项(如提交、PR、文件)的详细信息。
  • 查找相关项目项 (arc_find_related_entities): 查找与给定项目项直接关联的其他项目项。
  • 代码归属查询 (arc_blame_line): 查询特定文件行号最后一次修改的提交、作者和日期信息。

这些功能使大模型能够更深入地理解代码、提供基于历史和决策的上下文、进行更智能的代码审查和代码生成。

安装步骤

  1. 安装前置依赖: 需要 Python 3.10 或更高版本。推荐使用 'uv' 或 'pip' 安装必要的 Python 包。

    # 使用 uv (推荐)
    uv pip install mcp arc-memory
    
    # 或者使用 pip
    pip install mcp arc-memory

    注意:'arc-memory' 版本需 >= 0.1.5。

  2. 克隆仓库:

    git clone https://github.com/Arc-Computer/arc-mcp-server.git
    cd arc-mcp-server
  3. 安装服务器:

    # 使用 uv (推荐)
    uv pip install -e .
    
    # 或者使用 pip
    pip install -e .
  4. 构建 Arc Memory 知识图谱: 在项目仓库根目录运行 'arc build build'。

    arc build build

    这将在 '~/.arc/graph.db' 创建或更新知识图谱数据库,包含项目的 Git 提交、文件等信息。这是服务器运行所需的数据库。

服务器配置

Arc Memory MCP 服务器设计为使用 'stdio' 传输机制,这意味着它通常由兼容 MCP 的客户端(如 Claude Desktop, VS Code Agent Mode, Cursor 等)直接启动。

在 MCP 客户端中配置该服务器时,您需要指定客户端如何启动服务器进程。通常需要提供服务器的名称 ('name') 以及启动服务器的命令 ('command') 和参数 ('args')。

例如,客户端配置中可能包含类似以下的 JSON 结构(具体格式取决于客户端):

{
  "mcpServers": {
    // 为服务器定义一个名称
    "arc-memory": {
      // 启动服务器的可执行命令
      "command": "python",
      // 传递给命令的参数,通常是服务器脚本的路径
      "args": [
        "/absolute/path/to/arc_mcp_server.py"
        // 请将 "/absolute/path/to/arc_mcp_server.py" 替换为您实际克隆仓库后,服务器主程序文件 src/arc_mcp_server.py 的绝对路径
      ]
      // 部分客户端可能还需要其他配置,如 "name" 等
    }
  }
}

配置完成后,重启您的 MCP 客户端即可让其发现并连接到 Arc Memory MCP 服务器。

基本使用方法

服务器以 'stdio' 模式运行,由 MCP 客户端负责启动和管理其生命周期。您无需手动启动一个独立的服务器进程。

确保您已经按照安装步骤构建了 Arc Memory 知识图谱 ('arc build build'),这是服务器查询数据的基础。

您可以运行项目自带的测试脚本来验证服务器是否正常工作:

python tests/test.py

该脚本会启动服务器(默认使用 mock 数据,您可以修改 'tests/test.py' 使用真实的服务器代码进行测试)并通过 MCP 客户端调用其工具。

信息

分类

开发者工具