s

sparshdrolia

@sparshdrolia/Persistent-code-mcp
0 Stars 312 次浏览 sparshdrolia 更新于 2026-08-23

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "persistent-code": {
      "args": [
        "-m",
        "persistent_code",
        "serve",
        "--project-name",
        "default"
      ],
      "command": "path to python in venv",
      "cwd": "persistent-code-mcp",
      "env": {
        "PYTHONPATH": "abs path to persistent-code-mcp"
      }
    }
  }
}

服务介绍

持久化代码 MCP 服务器与 LlamaIndex

这是一个基于模型上下文协议(MCP)的服务器,它能够创建并维护由 Claude 生成的代码的语义知识图谱。通过 LlamaIndex 的支持,该服务器能够在会话之间保持上下文,并提供高级的语义搜索功能,而无需将整个代码库都加载到上下文窗口中。

问题与解决方案

在使用 Claude 开发软件时遇到的问题:

  • 上下文窗口有限,难以处理大型代码库
  • 在不同会话之间丢失之前的代码上下文
  • Claude 缺乏对项目结构的持久理解
  • 每次会话都需要重复解释代码
  • 维护实现一致性具有挑战性

持久化代码通过以下方式解决这些问题:

  • 创建代码组件及其关系的知识图谱
  • 跟踪每个组件的实现状态
  • 提供导航、查询和理解代码库的工具
  • 为特定编码任务组装最小必要的上下文
  • 在聊天会话间保持持久化的知识

LlamaIndex 集成

持久化代码利用 LlamaIndex 提供增强的语义理解能力:

  1. 语义搜索:根据意义而不是关键词查找代码组件
  2. 向量嵌入:将代码嵌入向量空间以进行相似度匹配
  3. 知识图谱:语义上跟踪组件之间的关系
  4. 上下文检索:基于语义相关性检索相关代码

这种集成使得 Claude 能够更深入地理解您的代码库:

  • 根据函数的功能而不是名称来查找它们
  • 准备上下文时获取更相关的代码组件
  • 更好地理解组件之间的关系
  • 更准确地检索类似实现的例子

安装

前提条件

  • Python 3.10 或更高版本
  • UV 包管理器(推荐)或 pip

设置

bash

克隆仓库

git clone https://github.com/your-username/persistent-code-mcp.git
cd persistent-code-mcp

使用 UV 设置环境

uv venv
source .venv/bin/activate # 在 Windows 上: .venvScriptsactivate
uv pip install -r requirements.txt

或者使用 pip

python -m venv venv
source venv/bin/activate # 在 Windows 上: venvScriptsactivate
pip install -r requirements.txt

使用

初始化项目

bash
python -m persistent_code init --project-name "YourProject"

启动服务器

bash
python -m persistent_code serve --project-name "YourProject"

为桌面版 Claude 配置

  1. 编辑你的 Claude for Desktop 配置文件:
    • 位置: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 添加如下配置:

json
{
"mcpServers": {
"persistent-code": {
"command": "虚拟环境中 python 的路径",
"args": [
"-m",
"persistent_code",
"serve",
"--project-name",
"default"
],
"cwd": "persistent-code-mcp",
"env": {
"PYTHONPATH": "persistent-code-mcp 的绝对路径"
}
}
}
}

  1. 重启 Claude for Desktop
  2. 通过询问 Claude 关于你的代码来连接到你的 MCP 服务器

可用工具

知识图谱管理

  • add_component:向图谱中添加新的代码组件
  • update_component:更新现有组件
  • add_relationship:在组件之间创建关系

代码检索与导航

  • get_component:通过 ID 或名称检索组件
  • find_related_components:找到与给定组件相关的组件
  • search_code:语义搜索代码库

状态管理

  • update_status:更新组件的实现状态
  • get_project_status:检索整个项目的实现状态
  • find_next_tasks:建议接下来要实现的逻辑组件

上下文组装

  • prepare_context:为特定任务组装最小必要的上下文- continue_implementation: 提供上下文以继续实现组件
  • get_implementation_plan: 为待实现的组件生成实施计划

代码分析

  • analyze_code: 分析代码并更新知识图谱

示例工作流程

  1. 初始化项目:
    bash
    python -m persistent_code init --project-name "TodoApp"

  2. 启动服务器:
    bash
    python -m persistent_code serve --project-name "TodoApp"

  3. 请求Claude帮助设计项目:

    你能帮我用Python和FastAPI设计一个待办事项应用程序吗?让我们从核心数据模型开始。

  4. Claude将创建组件并在知识图谱中跟踪它们

  5. 在稍后的会话中继续开发:

    让我们继续开发待办事项应用程序。我们的实现状态如何?

  6. Claude将检索当前状态并建议下一步操作

  7. 实现特定组件:

    让我们为待办事项应用程序实现任务完成端点

  8. Claude将检索相关上下文并提供一致的实现

使用语义搜索

通过LlamaIndex集成,你现在可以使用更自然的语言来查找组件:

找到所有与处理任务完成相关的代码

即使这些组件不明确包含“任务完成”这几个词,Claude也会使用语义搜索来找到相关的组件。

运行LlamaIndex演示

我们包含了一个演示脚本来展示语义功能:

bash

激活你的虚拟环境

source .venv/bin/activate # 或者 source venv/bin/activate

运行演示

python examples/llama_index_demo.py

这将演示分析一个日历应用程序并执行功能的语义搜索。

贡献

欢迎贡献!请随时提交Pull Request。

许可证

本项目采用MIT许可证 - 详情请参阅LICENSE文件。

相关 MCP 服务