使用说明
项目简介
本项目 'mcp_server_code_checker_python' 是一个基于 Model Context Protocol (MCP) 构建的服务器端应用。它旨在为 LLM(大型语言模型)客户端提供代码质量检查服务。通过集成 Pylint 和 Pytest 工具,该服务器能够对指定的 Python 项目进行静态代码分析和单元测试,并将结果以结构化的方式返回给 LLM 客户端,从而帮助 LLM 更好地理解和处理代码上下文,辅助代码生成、调试和优化等任务。
主要功能点
- Pylint 代码静态分析: 使用 Pylint 工具对 Python 代码进行全面的静态分析,检测代码中的潜在错误、风格问题和复杂度等,帮助提高代码质量和可维护性。
- Pytest 单元测试执行: 集成 Pytest 单元测试框架,能够自动发现和执行项目中的单元测试用例,并返回详细的测试报告,用于验证代码的功能正确性。
- 组合代码检查: 支持同时运行 Pylint 和 Pytest 检查,并汇总结果,提供全面的代码质量评估报告。
- MCP 协议标准接口: 遵循 MCP 协议规范,通过 JSON-RPC 协议与 LLM 客户端进行通信,提供标准化的工具调用接口和数据响应格式。
- 易于扩展和集成: 基于 FastMCP 框架构建,易于扩展新的代码检查工具或功能,方便集成到现有的 LLM 应用生态系统中。
安装步骤
-
克隆仓库:
git clone https://github.com/MarcusJellinghaus/mcp_server_code_checker_python.git cd mcp_server_code_checker_python -
创建并激活虚拟环境 (推荐):
python3 -m venv venv source venv/bin/activate # 或 venv\Scripts\activate (Windows) -
安装依赖 (如果项目有 requirements.txt): (注意: 仓库中没有 requirements.txt 文件,根据代码推测可能需要手动安装 'mcp-server' 和其他依赖,请根据实际情况安装)
# 例如: pip install mcp-server pylint pytest pytest-json-report
服务器配置 (MCP 客户端配置)
以下 JSON 配置信息用于 MCP 客户端与 '代码质量检查 MCP 服务器' 建立连接。客户端需要配置 'command' 和 'args' 来启动服务器进程。
{ "serverName": "code_checker", // MCP 服务器名称,客户端用于识别和调用 "command": "python", // 启动服务器的命令,这里使用 python 解释器 "args": [ // 启动命令的参数列表 "src/main.py", // 服务器主程序入口脚本路径 "--project-dir", // 指定项目目录的参数 "/path/to/your/project" // 实际的项目根目录路径,需要替换为用户想要检查代码的项目路径 ] }
配置参数说明:
- '"serverName"': 服务器的名称,客户端通过此名称来识别和调用该服务。可以自定义,建议使用易于理解的名称,例如 "code_checker"。
- '"command"': 启动服务器进程的命令。由于服务器是 Python 应用,这里通常设置为 '"python"' 或 '"python3"',确保系统环境变量中 Python 解释器可用。
- '"args"': 一个字符串数组,包含了传递给启动命令的参数。
- '"src/main.py"': 指定服务器主程序的入口文件路径。请确保路径相对于 MCP 客户端的工作目录是正确的,或者使用绝对路径。
- '"--project-dir"': 服务器程序接收的参数,用于指定需要进行代码检查的项目根目录。
- '"/path/to/your/project"': 占位符,需要替换为实际的项目根目录的绝对路径。 MCP 服务器将基于此目录进行 Pylint 和 Pytest 代码检查。
注意: MCP 客户端需要根据实际情况修改 'args' 数组中的 '"/path/to/your/project"' 为要分析的 Python 项目的绝对路径。
基本使用方法
- 启动 MCP 服务器: 在配置好 MCP 客户端后,客户端会根据上述配置启动 '代码质量检查 MCP 服务器'。
- 客户端调用工具: LLM 客户端可以通过 JSON-RPC 协议向服务器发送请求,调用服务器注册的工具,例如:
- 'run_pylint_check': 运行 Pylint 代码静态分析。
- 'run_pytest_check': 运行 Pytest 单元测试。
- 'run_all_checks': 同时运行 Pylint 和 Pytest 检查。
- 获取检查结果: 服务器执行相应的代码检查工具后,会将结构化的结果(例如 Pylint 的检查报告、Pytest 的测试报告)通过 JSON-RPC 响应返回给 LLM 客户端。客户端可以解析这些结果,并根据需要进行后续处理,例如向用户展示代码质量报告、根据错误信息进行代码修复建议等。
示例调用 (伪代码,仅供理解):
# 假设 MCP 客户端已经连接到服务器 response = client.call_tool("code_checker", "run_pylint_check", {}) # 调用 Pylint 检查工具 pylint_results = response.result # 获取 Pylint 检查结果 response = client.call_tool("code_checker", "run_pytest_check", {}) # 调用 Pytest 检查工具 pytest_results = response.result # 获取 Pytest 测试结果 response = client.call_tool("code_checker", "run_all_checks", {}) # 调用全部检查工具 all_checks_results = response.result # 获取综合检查结果
详细的 API 调用方法和数据格式请参考 MCP 协议和 'mcp-server' 库的文档。
信息
分类
开发者工具