sparshdrolia
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 提供增强的语义理解能力:
- 语义搜索:根据意义而不是关键词查找代码组件
- 向量嵌入:将代码嵌入向量空间以进行相似度匹配
- 知识图谱:语义上跟踪组件之间的关系
- 上下文检索:基于语义相关性检索相关代码
这种集成使得 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 配置
- 编辑你的 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 的绝对路径"
}
}
}
}
- 重启 Claude for Desktop
- 通过询问 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: 分析代码并更新知识图谱
示例工作流程
-
初始化项目:
bash
python -m persistent_code init --project-name "TodoApp" -
启动服务器:
bash
python -m persistent_code serve --project-name "TodoApp" -
请求Claude帮助设计项目:
你能帮我用Python和FastAPI设计一个待办事项应用程序吗?让我们从核心数据模型开始。
-
Claude将创建组件并在知识图谱中跟踪它们
-
在稍后的会话中继续开发:
让我们继续开发待办事项应用程序。我们的实现状态如何?
-
Claude将检索当前状态并建议下一步操作
-
实现特定组件:
让我们为待办事项应用程序实现任务完成端点
-
Claude将检索相关上下文并提供一致的实现
使用语义搜索
通过LlamaIndex集成,你现在可以使用更自然的语言来查找组件:
找到所有与处理任务完成相关的代码
即使这些组件不明确包含“任务完成”这几个词,Claude也会使用语义搜索来找到相关的组件。
运行LlamaIndex演示
我们包含了一个演示脚本来展示语义功能:
bash
激活你的虚拟环境
source .venv/bin/activate # 或者 source venv/bin/activate
运行演示
python examples/llama_index_demo.py
这将演示分析一个日历应用程序并执行功能的语义搜索。
贡献
欢迎贡献!请随时提交Pull Request。
许可证
本项目采用MIT许可证 - 详情请参阅LICENSE文件。