使用说明
项目简介
Code Embeddings (仓库名称: Code Knowledge Tool) 是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在为代码仓库提供知识管理功能。它利用向量嵌入技术来理解和存储代码库的知识,并通过 MCP 协议与客户端(如 RooCode, Cline 等 IDE)进行通信,提供代码知识的检索和上下文增强能力,从而支持 RAG (Retrieval-Augmented Generation) 驱动的代码开发工作流。
主要功能点
- 代码知识库管理: 允许用户将代码库中的代码片段、文档等信息添加到知识库中。
- 向量嵌入生成: 使用 Ollama 服务将代码知识转换为向量嵌入,以便进行语义搜索。
- 知识检索: 支持基于语义相似度的知识检索,可以根据用户的查询快速找到相关的代码片段或文档。
- MCP 协议集成: 实现了 MCP 服务器协议,可以方便地集成到支持 MCP 协议的客户端应用中,如 RooCode 和 Cline。
- RAG 上下文提供: 可以作为 RAG 系统的上下文提供器,为 LLM 提供代码知识上下文,提升代码生成和理解的效果。
- 持久化存储: 使用本地文件系统持久化存储向量嵌入和知识内容。
安装步骤
-
克隆仓库:
git clone https://github.com/davidvc/code-knowledge-mcptool.git cd code-knowledge-mcptool -
创建并激活虚拟环境:
python -m venv venv source venv/bin/activate -
安装构建工具和依赖:
python -m pip install --upgrade pip build python -m build pip install dist/code_knowledge_tool-0.1.0-py3-none-any.whl -
安装 Ollama: 请确保已安装并运行 Ollama 服务,用于生成代码嵌入向量。 参考 Ollama 官网 进行安装。安装完成后,启动 Ollama 服务:
ollama serve
服务器配置
为了将此 MCP 服务器集成到 MCP 客户端(例如 Cline 或 RooCode),您需要配置客户端的 MCP 设置。以下是 Cline (VSCode) 和 RooCode 的配置示例。您需要将以下 JSON 配置添加到客户端的 MCP 设置文件中。
Cline (VSCode) 配置 ( 'cline_mcp_settings.json' ):
{ "mcpServers": { "code_knowledge": { "command": "python", "args": ["-m", "code_knowledge_tool.mcp_tool"], "env": { "PYTHONPATH": "${workspaceFolder}" } } } }
RooCode 配置 ( 'roocode_config.json' ):
{ "mcpServers": { "code_knowledge": { "command": "python", "args": ["-m", "code_knowledge_tool.mcp_tool"], "env": { "PYTHONPATH": "${workspaceFolder}" } } } }
配置参数说明:
- '"server name"': 'code_knowledge' - 服务器在客户端中显示和引用的名称。
- '"command"': 'python' - 启动服务器的命令,这里使用 Python 解释器。
- '"args"': '["-m", "code_knowledge_tool.mcp_tool"]' - 传递给 Python 解释器的参数,用于运行 'code_knowledge_tool.mcp_tool' 模块作为 MCP 服务器。
- '"env"': '{"PYTHONPATH": "${workspaceFolder}"}' - 设置环境变量,'PYTHONPATH' 确保 Python 能够找到 'code_knowledge_tool' 包。'${workspaceFolder}' 通常是客户端(如 VSCode)当前打开的工作区根目录,如果服务器代码在工作区内,则需要配置此项。
注意: '${workspaceFolder}' 是客户端(如 VSCode 或 RooCode)的环境变量,代表当前工作区路径。请根据您的实际工作区配置进行调整。如果服务器代码不在工作区内,可能需要调整 'PYTHONPATH' 或使用绝对路径。
基本使用方法
配置完成后,在 MCP 客户端中,您可以通过 'code_knowledge' 服务器提供的工具进行操作。
- 添加知识: 调用 'add_knowledge' 工具,并提供文件路径 ('path')、文件内容 ('content') 和元数据 ('metadata')。
- 搜索知识: 调用 'search_knowledge' 工具,并提供查询语句 ('query'),服务器将返回与查询相关的代码片段和文档。
具体工具的使用方法和参数,请参考客户端 (RooCode/Cline) 的文档和界面操作。
信息
分类
开发者工具