项目简介

Code Context MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型 (LLM) 提供代码上下文信息。它能够从本地 Git 仓库中提取代码,并提供语义搜索功能,帮助 LLM 理解和利用代码信息。

主要功能点

  • 本地 Git 仓库支持: 直接从本地文件系统的 Git 仓库中获取代码,无需依赖 GitHub API。
  • 代码语义搜索: 使用 Ollama 生成代码块的嵌入向量,实现基于语义相似度的代码搜索。
  • 关键词过滤: 支持通过关键词过滤搜索结果,快速定位包含特定术语的代码。
  • 文件模式匹配: 允许使用 glob 模式指定要搜索的文件类型和排除目录,提高搜索效率和准确性。
  • 可配置的 Ollama 模型: 可以根据需求配置使用的 Ollama 嵌入模型。

安装步骤

  1. 安装 Node.js: 确保已安装 Node.js (v16 或更高版本)。
  2. 安装 Git: 确保已安装 Git,并可在命令行中使用。
  3. 安装 Ollama: 根据 Ollama 官网 指引安装 Ollama,并确保 Ollama 服务正在运行。
  4. 拉取嵌入模型: 使用 Ollama 拉取一个嵌入模型,推荐使用 'unclemusclez/jina-embeddings-v2-base-code' 模型,执行命令 'ollama pull unclemusclez/jina-embeddings-v2-base-code'。
  5. 克隆仓库: 将 'code-context-mcp' 仓库克隆到本地:'git clone https://github.com/fkesheh/code-context-mcp.git'
  6. 进入仓库目录: 'cd code-context-mcp'
  7. 安装依赖: 'npm install'
  8. 构建项目: 'npm run build'

服务器配置

此 MCP 服务器需要配置在 MCP 客户端中才能使用。客户端需要服务器的启动命令和参数。以下是 Claude Desktop 客户端的配置示例,其他 MCP 客户端的配置方式类似。

{
  "mcpServers": {
    "code-context-mcp": {
      "command": "/path/to/your/node",  //  请替换为您的 Node.js 可执行文件的路径,例如 /usr/bin/node 或 C:\Program Files\nodejs\node.exe
      "args": ["/path/to/code-context-mcp/dist/index.js"] // 请替换为 code-context-mcp 项目 dist/index.js 文件的绝对路径
    }
  }
}
  • 'command': 指定启动 MCP 服务器的命令,通常是 Node.js 可执行文件的路径。
  • 'args': 命令参数,这里指定了服务器入口文件 'dist/index.js' 的路径。

注意: 请根据您的实际 Node.js 安装路径和 'code-context-mcp' 项目的存放路径,修改 'command' 和 'args' 中的路径。

基本使用方法

  1. 启动服务器: 在配置好 MCP 客户端后,启动客户端,客户端会自动启动并连接到 MCP 服务器。服务器将在后台运行,并通过标准输入/输出与客户端通信。

  2. 使用 'queryRepo' 工具: 在 MCP 客户端中,可以使用 'queryRepo' 工具进行代码搜索。

  3. 配置 'queryRepo' 参数: 'queryRepo' 工具需要以下参数:

    • 'repoUrl': 要搜索的 Git 仓库的 URL。可以是 GitHub 仓库地址或本地仓库地址。
    • 'query': 搜索查询语句,用于语义搜索。
    • 'branch' (可选): 要搜索的分支名称,默认为仓库的默认分支。
    • 'keywords' (可选): 关键词列表,用于过滤包含特定关键词的结果。
    • 'filePatterns' (可选): 文件模式列表,用于指定要搜索的文件类型,例如 '["**/.ts", "src/.js"]'。
    • 'excludePatterns' (可选): 文件模式列表,用于排除不需要搜索的文件或目录,例如 '["/node_modules/"]'。
    • 'limit' (可选): 返回结果的数量限制,默认为 10。
  4. 获取搜索结果: 服务器将返回与查询相关的代码片段,包括文件路径、代码内容和相似度评分。

信息

分类

开发者工具