使用说明

项目简介

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 提供代码知识上下文,提升代码生成和理解的效果。
  • 持久化存储: 使用本地文件系统持久化存储向量嵌入和知识内容。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/davidvc/code-knowledge-mcptool.git
    cd code-knowledge-mcptool
  2. 创建并激活虚拟环境:

    python -m venv venv
    source venv/bin/activate
  3. 安装构建工具和依赖:

    python -m pip install --upgrade pip build
    python -m build
    pip install dist/code_knowledge_tool-0.1.0-py3-none-any.whl
  4. 安装 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) 的文档和界面操作。

信息

分类

开发者工具