项目简介

Tox Testing MCP Server 是一个实现了 Model Context Protocol (MCP) 的后端服务器,专注于为 LLM 应用提供 Python 项目的自动化测试能力。它通过集成 Tox 这一流行的 Python 测试工具,使得 LLM 客户端能够远程触发和管理 Python 项目的测试流程。该服务器提供了一个名为 'run_tox_tests' 的工具,支持多种测试执行模式,并返回详细的测试输出,帮助开发者结合 LLM 快速进行代码测试和质量保障。

主要功能点

  • 执行 Tox 测试: 提供 'run_tox_tests' 工具,允许 LLM 客户端在服务器端指定 Python 项目中运行 Tox 测试。
  • 多种测试模式: 支持多种测试执行模式,包括运行所有测试、指定文件、指定测试用例、指定目录或测试分组,满足不同的测试需求。
  • 详细测试报告: 服务器执行 Tox 测试后,会将测试的详细输出(包括标准输出和标准错误)返回给客户端,方便开发者查看测试结果和错误信息。
  • 可配置超时: 允许通过环境变量 'TOX_TIMEOUT' 配置测试执行的超时时间,防止测试进程挂起,保证系统的稳定性和响应性。
  • 灵活的项目配置: 通过环境变量 'TOX_APP_DIR' 指定 Python 项目根目录,服务器将在该目录下执行 Tox 命令,支持对不同项目的测试管理。

安装步骤

  1. 安装 Node.js 和 npm: 确保你的系统已安装 Node.js 和 npm (Node 包管理器)。
  2. 克隆仓库: 将仓库 'https://github.com/that1guy15/tox-testing' 克隆到本地。
  3. 安装依赖: 在仓库根目录下,运行以下命令安装项目依赖:
    npm install
  4. 构建服务器: 运行以下命令构建服务器代码:
    npm run build
    构建完成后,会在 'build' 目录下生成服务器的可执行文件 'index.js'。

服务器配置

要将 Tox Testing MCP Server 集成到 MCP 客户端(例如 VSCode Cline 插件),你需要配置 MCP 服务器的连接信息。以下是一个典型的配置示例,你需要根据实际情况修改路径:

{
  "mcpServers": {
    "tox-testing": {
      "command": "node",
      "args": ["/path/to/tox-testing/build/index.js"],  // 替换为实际的 index.js 文件路径
      "env": {
        "TOX_APP_DIR": "/path/to/your/python/project", // 替换为你的 Python 项目根目录,该目录需要包含 tox.ini 文件
        "TOX_TIMEOUT": "600"                           // 可选,设置测试超时时间,单位为秒,默认为 600 秒 (10 分钟)
      }
    }
  }
}

配置参数说明:

  • 'server name': 'tox-testing',服务器名称,用于在 MCP 客户端中标识和引用该服务器。
  • 'command': 'node',启动服务器的命令,这里使用 Node.js 运行时环境。
  • 'args': '["/path/to/tox-testing/build/index.js"]',启动命令的参数,指向构建后的服务器入口文件 'index.js' 的绝对路径。请务必替换 '/path/to/tox-testing/build/index.js' 为你本地实际的 'index.js' 文件路径。
  • 'env': 环境变量配置,用于配置服务器运行时的环境变量。
    • 'TOX_APP_DIR': 必填,Python 项目根目录的绝对路径。请务必替换 '/path/to/your/python/project' 为你本地实际的 Python 项目根目录路径。 服务器将在该目录下查找 'tox.ini' 文件并执行 Tox 命令。
    • 'TOX_TIMEOUT': 可选,测试执行超时时间,单位为秒,默认为 600 秒。如果测试运行时间超过此值,服务器将终止测试进程。

配置路径:

对于 VSCode Cline 插件,MCP 服务器配置文件通常位于:

~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

请根据你的 MCP 客户端的配置方式,将上述 JSON 配置添加到相应的配置文件中。

基本使用方法

配置完成后,MCP 客户端 (如 Cline) 即可通过 'run_tox_tests' 工具与 Tox Testing MCP Server 交互,执行 Python 项目的测试。

示例:运行所有测试

客户端发送以下 JSON 请求,指示服务器运行项目中的所有 Tox 测试:

{
  "mode": "all"
}

示例:运行指定测试文件

客户端发送以下 JSON 请求,指示服务器运行 'tests/test_api.py' 文件中的测试:

{
  "mode": "file",
  "testFile": "tests/test_api.py"
}

示例:运行指定测试用例

客户端发送以下 JSON 请求,指示服务器运行 'tests/test_api.py' 文件中名为 'test_endpoint_response' 的测试用例:

{
  "mode": "case",
  "testFile": "tests/test_api.py",
  "testCase": "test_endpoint_response"
}

示例:运行指定目录下的测试

客户端发送以下 JSON 请求,指示服务器运行 'tests/api/' 目录下的所有测试:

{
  "mode": "directory",
  "directory": "tests/api/"
}

示例:运行指定测试分组 (all 模式下)

客户端发送以下 JSON 请求,指示服务器运行预定义的 'api' 测试分组中的所有测试 (仅在 'all' 模式下有效):

{
  "mode": "all",
  "group": "api"
}

服务器执行测试后,会将包含测试结果的文本内容作为响应返回给客户端。客户端可以解析这些文本内容,并呈现给用户。

信息

分类

开发者工具