使用说明

项目简介

cogniteration仓库中的 'code-context' 子项目实现了一个基于 Model Context Protocol (MCP) 的服务器,专注于代码库的上下文分析。它提供工具来分析目录结构、读取文件内容,并计算代码的token数量,帮助大型语言模型 (LLM) 更好地理解和处理代码库。此外,它还包含预定义的Prompt,指导LLM进行代码库分析任务。

主要功能点

  • 目录分析工具 (analyze_directory): 递归分析指定目录,返回目录中所有文件的路径、代码行数和token数量。该工具会遵循每个目录下的 '.gitignore' 规则,并跳过二进制文件,确保分析结果的准确性和效率。
  • 文件读取工具 (read_files): 批量读取指定路径的文件内容。对于每个文件,服务器会进行路径安全校验,并跳过二进制文件。返回结果包含文件内容或错误信息,方便LLM获取代码文件内容。
  • 代码库分析Prompt (analyze-codebase): 提供一个预定义的Prompt,指导LLM如何有效地利用 'analyze_directory' 和 'read_files' 工具进行代码库分析,包括分析流程、注意事项和最佳实践建议。

安装步骤

该项目为TypeScript项目,使用 Bun 运行时环境。请确保您已安装 Bun。

  1. 克隆仓库:

    git clone https://github.com/AdjectiveAllison/cogniteration.git
    cd cogniteration
  2. 安装依赖 (可选): 虽然代码中没有 'package.json' 文件,理论上可能不需要显式安装依赖,但如果遇到问题,可以尝试在 'code-context' 目录下创建 'package.json' 并添加如下内容,然后运行 'bun install'。

    {
      "dependencies": {
        "@modelcontextprotocol/sdk": "latest",
        "@huggingface/transformers": "latest",
        "zod": "latest",
        "zod-to-json-schema": "latest",
        "ignore": "latest"
      }
    }

服务器配置

MCP客户端需要配置服务器的启动命令和参数才能连接到 'code-context-mcp' 服务器。以下是配置信息示例 (JSON 格式):

{
  "serverName": "code-context-mcp",
  "command": "bun",
  "args": [
    "run",
    "code-context/server.ts",
    "/path/to/your/codebase"
  ]
}

参数说明:

  • 'serverName': 服务器名称,设置为 'code-context-mcp'。
  • 'command': 启动服务器的命令,这里使用 'bun' 运行时。
  • 'args': 传递给 'bun run' 命令的参数列表。
    • '"run"': Bun 命令,用于运行脚本。
    • '"code-context/server.ts"': 'code-context' 服务器脚本的路径。
    • '"/path/to/your/codebase"': 请替换为你要分析的代码库根目录的绝对路径。 这是 'code-context-mcp' 服务器允许访问的根目录。可以添加多个允许访问的目录,作为额外的参数。

注意: MCP客户端需要根据自身配置文件的格式填写以上JSON配置。

基本使用方法

  1. 启动服务器: 在MCP客户端中配置好上述服务器配置后,启动 'code-context-mcp' 服务器。服务器将在标准输入/输出 (stdio) 上运行,并输出日志信息到标准错误 (stderr)。

  2. 客户端请求: MCP客户端可以通过 JSON-RPC 协议向服务器发送请求,调用 'analyze_directory' 和 'read_files' 工具,或获取 'analyze-codebase' Prompt。

  3. 工具调用示例: 例如,客户端可以发送 'CallToolRequest' 请求,调用 'analyze_directory' 工具分析指定的目录,服务器将返回包含文件信息和统计数据的响应。调用 'read_files' 工具可以读取指定文件的内容。

  4. Prompt 使用示例: 客户端可以发送 'GetPromptRequest' 请求,获取 'analyze-codebase' Prompt 的内容,并将其用于指导后续的代码分析任务。

通过配置和使用 'code-context-mcp' 服务器,LLM 应用可以获得代码库的结构和内容信息,从而更好地理解和生成代码,或进行代码相关的问答和分析。

信息

分类

开发者工具