返回市场
持久代码-mcp

持久代码-mcp

作者:sparshdrolia6 星标更新:2025-04-10

项目介绍

基于LlamaIndex的Persistent-Code MCP服务器

这是一个基于Model Context Protocol (MCP)的服务器,用于创建和维护由Claude生成的代码的语义知识图谱。借助LlamaIndex,该服务器能够在会话之间维持上下文,并具有高级语义搜索能力,而无需整个代码库都在上下文窗口中。

问题与解决方案

在使用Claude进行软件开发时:

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

Persistent-Code通过以下方式解决这些问题:

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

LlamaIndex集成

Persistent-Code利用LlamaIndex提供增强的语义理解:

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

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

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

安装

预备条件

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

设置

# 克隆仓库
git clone https://github.com/your-username/persistent-code-mcp.git
cd persistent-code-mcp

# 使用UV设置环境
uv venv
source .venv/bin/activate  # 在Windows上:.venv\Scripts\activate
uv pip install -r requirements.txt

# 或者使用pip
python -m venv venv
source venv/bin/activate  # 在Windows上:venv\Scripts\activate
pip install -r requirements.txt

使用

初始化项目

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

启动服务器

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

配置桌面版Claude

  1. 编辑您的桌面版Claude配置文件:
    • 位置:~/Library/Application Support/Claude/claude_desktop_config.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
  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. 初始化项目:

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

    python -m persistent_code serve --project-name "TodoApp"
    
  3. 让Claude帮助设计您的项目:

    你能帮我设计一个使用Python和FastAPI的待办事项应用吗?我们从核心数据模型开始。
    
  4. Claude将创建组件并在知识图谱中跟踪它们

  5. 在稍后的时间继续开发:

    我们继续开发待办事项应用。我们的实现状态如何?
    
  6. Claude将检索当前状态并建议下一步操作

  7. 实现特定组件:

    让我们实现待办事项应用的任务完成端点
    
  8. Claude将检索相关上下文并提供一致的实现

使用语义搜索

借助LlamaIndex集成,您现在可以使用更自然的语言查找组件:

给我所有与处理任务完成相关的代码

Claude将使用语义搜索查找相关组件,即使这些组件不明确包含“任务完成”这个词。

运行LlamaIndex演示

我们包括了一个演示脚本,展示语义能力:

# 激活您的虚拟环境
source .venv/bin/activate  # 或者 source venv/bin/activate

# 运行演示
python examples/llama_index_demo.py

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

贡献

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

许可证

本项目采用MIT许可证 - 查看LICENSE文件了解详情。