带LlamaIndex的持久代码MCP服务器
一种模型上下文协议(MCP)服务器,用于创建和维护由Claude生成的代码的语义知识图。在LlamaIndex的支持下,这允许使用高级语义搜索功能在会话之间维护上下文,而不需要在上下文窗口中显示整个代码库。
问题与解决方案
使用Claude开发软件时:
- 上下文窗口有限,难以处理大型代码库
- 会话之间丢失了以前的代码上下文
- Claude对项目结构缺乏持久的理解
- 每个会话中都需要对代码进行冗余解释
- 保持实施一致性具有挑战性
持久代码通过以下方式解决了这些问题:
- 创建代码组件及其关系的知识图
- 跟踪每个组件的实施状态
- 提供导航、查询和理解代码库的工具
- 为特定的编码任务组装最少的必要上下文
- 在聊天会话中保持持久的知识
LlamaIdex集成
持久代码利用LlamaIndex提供增强的语义理解:
- 语义搜索:根据含义查找代码组件,而不仅仅是关键字
- 矢量嵌入:代码嵌入向量空间进行相似性匹配
- 知识图谱:从语义上跟踪组件之间的关系
- 上下文检索:根据语义相关性检索相关代码
这种集成使Claude能够更深入地理解您的代码库:
- 根据函数的功能而不仅仅是它们的名称来查找函数
- 在准备上下文时获取更多相关的代码组件
- 更好地理解组件之间的关系
- 更准确地检索类似实现的示例
安装
先决条件
- Python 3.10或更高版本
- UV包管理器(推荐)或pip
设置
# Clone repository
git clone https://github.com/your-username/persistent-code-mcp.git
cd persistent-code-mcp
# Set up environment with UV
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -r requirements.txt
# Or with pip
python -m venv venv
source venv/bin/activate # On 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
- 编辑您的Claude for Desktop配置文件:
- 地点: ~/Library/Application Support/Claude/claude_desktop_config.json - 添加以下配置:
{
"mcpServers": {
"persistent-code": {
"command": "path to python in venv",
"args": [
"-m",
"persistent_code",
"serve",
"--project-name",
"default"
],
"cwd": "persistent-code-mcp",
"env": {
"PYTHONPATH": "abs path to persistent-code-mcp"
}
}
}
}- 重新启动桌面版的Claude
- 通过向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:分析代码并更新知识图
工作流示例
- 初始化项目:
python -m persistent_code init --project-name "TodoApp"- 启动服务器:
python -m persistent_code serve --project-name "TodoApp"- 让克劳德设计你的项目:
Can you help me design a Todo app with Python and FastAPI? Let's start with the core data models.- Claude将创建组件并在知识图中跟踪它们
- 在稍后的会议中继续开发:
Let's continue working on the Todo app. What's our implementation status?- Claude将检索当前状态并建议下一步行动
- 实施特定组件:
Let's implement the task completion endpoint for our Todo app- Claude将检索相关上下文并提供一致的实现
使用语义搜索
通过LlamaIndex集成,您现在可以使用更自然的语言来查找组件:
Find me all code related to handling task completionClaude将使用语义搜索来查找相关组件,即使它们没有明确包含“任务完成”一词。
运行LlamaIndex演示
我们包含了一个演示脚本来展示语义功能:
# Activate your virtual environment
source .venv/bin/activate # or source venv/bin/activate
# Run the demo
python examples/llama_index_demo.py这将演示如何分析日历应用程序并执行功能的语义搜索。
贡献
欢迎投稿!请随时提交拉取请求。
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
