使用说明

项目简介

Python Code Analyzer 是一个基于 Model Context Protocol (MCP) 的服务器,用于分析Python代码。它能够提供代码的结构、复杂度和依赖性分析,帮助大型语言模型(LLM)理解和处理Python代码。

主要功能点

  • 代码结构分析: 识别Python代码中的函数和类,并提取它们的名称、参数和行号等信息。
  • 代码复杂度分析: 计算代码的圈复杂度,评估代码的复杂程度,并提供函数级别的复杂度分析报告。
  • 代码依赖性分析: 识别代码中导入的模块和库,帮助理解代码的外部依赖关系。

安装步骤

  1. 克隆仓库

    git clone https://github.com/seanivore/mcp-code-analyzer.git
    cd mcp-code-analyzer
  2. 创建并激活虚拟环境 (推荐)

    python3 -m venv venv
    source venv/bin/activate  # Linux/macOS
    # venv\Scripts\activate  # Windows
  3. 安装Python包

    pip install .

    或者使用可编辑模式安装,方便开发调试:

    pip install -e .
  4. 安装 Node.js 依赖 (如果需要直接运行 JavaScript 启动脚本) 虽然服务器是Python实现的,但仓库提供了一个JavaScript启动脚本 'bin/mcp-code-analyzer.js'。 如果你计划使用这个脚本启动服务器,你需要确保安装了 Node.js 环境。 通常情况下,Python 包安装后可以直接通过命令行 'mcp-code-analyzer' 启动服务器,无需手动运行 JavaScript 脚本。

服务器配置

MCP客户端需要配置以下信息以连接到 Python Code Analyzer 服务器。配置信息为 JSON 格式,请复制以下代码到你的MCP客户端配置中。

{
  "serverName": "code_analyzer",
  "command": "mcp-code-analyzer",
  "args": []
}

配置参数说明:

  • 'serverName': 服务器名称,这里设置为 'code_analyzer',与服务器元数据声明的名称一致。
  • 'command': 启动服务器的命令。安装Python包后,'mcp-code-analyzer' 命令应该已添加到系统路径中。
  • 'args': 启动命令的参数。此服务器启动不需要额外的命令行参数,因此设置为空数组 '[]'。

注意: 确保你的 MCP 客户端能够执行 'mcp-code-analyzer' 命令。这通常意味着Python虚拟环境的 'bin' 目录(或者全局Python环境的scripts目录)需要被添加到系统的 'PATH' 环境变量中。

基本使用方法

Python Code Analyzer 服务器通过标准输入 (stdin) 接收 JSON 格式的请求,并通过标准输出 (stdout) 返回 JSON 格式的响应。

发送请求:

向服务器发送 JSON 请求,指定要分析的 Python 文件路径和分析类型。例如,要分析文件 'test_code.py' 的代码结构,可以发送以下 JSON 字符串到服务器的标准输入:

{"file": "test_code.py", "type": "structure"}

接收响应:

服务器会将分析结果以 JSON 格式输出到标准输出。例如,对于结构分析请求,服务器可能会返回类似以下的 JSON 响应:

{
  "type": "structure",
  "functions": [
    {
      "name": "complex_method",
      "arguments": ["self", "x"],
      "line_number": 6
    },
    {
      "name": "simple_function",
      "arguments": [],
      "line_number": 25
    }
  ],
  "classes": [
    {
      "name": "TestClass",
      "methods": ["__init__", "complex_method"],
      "line_number": 3
    }
  ]
}

根据请求的 'type' 参数('structure', 'complexity', 'dependencies'),服务器会返回不同类型的分析结果。

信息

分类

开发者工具