该项目是一个基于 Model Context Protocol (MCP) 的服务器实现,专注于为大型语言模型(LLM)客户端提供代码仓库的深度理解和上下文信息。它能够分析本地或远程的代码库,提取结构、代码详情、关键文件和文档,并将这些信息以标准化的方式提供给AI应用。

主要功能点

  • 代码仓库管理: 支持克隆(GitHub仓库)或复制(本地目录)代码到本地缓存,并进行管理。
  • 仓库结构分析: 提供代码库的目录结构、文件组织以及可分析的文件列表。
  • 关键文件识别: 基于代码复杂度等指标,智能识别出仓库中结构上最重要的文件。
  • 代码结构映射: 生成详细的仓库代码地图,展示函数签名、类定义、继承关系、代码结构和依赖等信息。
  • 文档提取与分析: 检索并分析仓库中的文档文件(如README、API文档等)。
  • 定向分析: 支持对仓库中的特定文件或目录进行分析,而非总是整个仓库。
  • 内容刷新: 能够更新已缓存的仓库到最新版本,并重新分析。

安装步骤

该服务器通过 'uvx' 工具运行,'uvx' 是 'uv' Python 包管理器的一部分。

  1. 安装 uv: 如果您还没有安装 'uv',请按照其官方指南进行安装(通常通过 'curl' 或 'pip')。具体请参考 astral.sh/uv
  2. 安装服务器: 安装 'uv' 后,您的 MCP 客户端配置中指定 'uvx' 命令时,'uvx' 会自动处理服务器包的下载和安装。无需手动安装。

服务器配置

MCP 服务器需要通过 MCP 客户端进行配置和启动。您需要在 MCP 客户端的配置文件中添加以下 MCP 服务器配置信息。客户端通过这些信息知道如何启动和连接此代码理解服务器。

配置示例(概念描述,非代码):

{
  "mcpServers": {
    "code-understanding": { /* 您给服务器起的本地名称 */
      "command": "uvx", /* 启动命令 */
      "args": [ "code-understanding-mcp-server" ], /* 启动参数 */
      // 可选配置项 (Optional configuration options)
      // "env": {
      //   "GITHUB_PERSONAL_ACCESS_TOKEN": "your-github-token-here" // 用于访问私有GitHub仓库
      // },
      // "args": [
      //   "code-understanding-mcp-server",
      //   "--cache-dir", "~/custom-cache-dir",     // override repository cache location
      //   "--max-cached-repos", "20",              // override maximum number of cached repos
      //   "--transport", "stdio",                  // transport type (stdio or sse)
      //   "--port", "3001"                         // port for SSE transport (only used with sse)
      // ]
    }
  }
}
  • 'command':必须设置为 'uvx'。
  • 'args':包含启动服务器的主命令 '"code-understanding-mcp-server"'。
  • 'env':可选,用于设置环境变量,例如 'GITHUB_PERSONAL_ACCESS_TOKEN' 以便服务器访问私有 GitHub 仓库或避免 API 限制。
  • 'args' 中的可选参数(高级配置):
    • '--cache-dir <目录路径>':指定服务器存储克隆仓库的缓存目录。
    • '--max-cached-repos <数量>':设置缓存中保留的最大仓库数量。
    • '--transport <类型>':选择服务器与客户端通信的传输协议('stdio' 或 'sse')。
    • '--port <端口号>':当 'transport' 为 'sse' 时,指定服务器监听的端口。

服务器首次运行时会在标准的平台特定配置目录下创建 'config.yaml' 默认配置文件,您也可以通过手动修改该文件进行一些基础配置。

基本使用方法

用户通常不会直接与此服务器交互。而是通过支持 MCP 协议的 LLM 客户端(如特定的AI编程助手)来使用它。客户端会根据用户的请求,自动调用配置好的代码理解 MCP 服务器提供的工具(JSON-RPC 方法),例如:

  1. 客户端调用 'clone_repo' 工具,提供一个GitHub URL或本地路径,让服务器克隆仓库到缓存。
  2. 客户端调用 'get_repo_structure' 工具,获取仓库的目录和文件概览。
  3. 客户端调用 'get_repo_critical_files' 工具,找出仓库中最重要的文件供AI优先分析。
  4. 客户端调用 'get_source_repo_map' 工具,获取特定文件或目录的详细代码结构地图。
  5. 客户端调用 'get_repo_documentation' 工具,获取仓库的文档内容。
  6. 客户端调用 'get_repo_file_content' 工具,获取特定文件的原始内容。
  7. 客户端调用 'refresh_repo' 工具,更新缓存的仓库到最新。

这些工具调用都是通过 MCP 客户端透明地完成的,AI 助手利用服务器返回的信息来更好地理解代码库,从而提供更准确的代码建议、问答或自动化任务。

信息

分类

开发者工具