Prepare the server locally
Run this once before adding it to Claude Code.
pip install -r requirements.txtAdd it to Claude Code
Paste the maintainer's config below, then edit any placeholder values.
{
"mcp_servers": {
"pytest_server": {
"command": "python",
"args": [
"-m",
"src.main"
],
"env": {
"DATABASE_URL": "sqlite:///./test_results.db"
}
}
}
}See the mcp-pytest-server README for full setup instructions.
DATABASE_URLMake your agent remember this setup
mcp-pytest-server's config, env vars, and the gotchas you hit — recalled in every future Claude Code, Cursor, and Codex session.
npx conare@latestFree · one command · indexes the sessions already on disk. Set up in the browser instead →
What it does
- Executes pytest test suites via MCP protocol
- Parses test results and generates execution reports
- Stores test execution data into a database
- Provides historical test data retrieval
- Supports asynchronous execution and progress tracking
Tools 3
run_pytest_testsExecutes pytest tests and returns the results and report.store_test_resultsStores test results into the database.get_test_historyRetrieves historical test records from the database.Environment Variables
DATABASE_URLrequiredDatabase connection string for storing test resultsTry it
Original README from SilenceWuJ/mcp-pytest-server
MCP Pytest 测试服务器
一个基于 Model Context Protocol (MCP) 的测试执行服务器,支持执行 pytest 测试并将结果存储到 QA 平台数据库。
功能特性
- ✅ 支持 MCP 协议标准接口
- ✅ 执行 pytest 测试套件
- ✅ 解析测试结果并生成报告
- ✅ 将测试结果存储到数据库
- ✅ 提供工具调用接口供 Goose 使用
- ✅ 支持异步执行和进度跟踪
架构设计
mcp-pytest-server/
├── src/ # 源代码目录
│ ├── __init__.py
│ ├── main.py # FastAPI 主应用
│ ├── mcp/ # MCP 协议实现
│ ├── pytest_executor/ # pytest 执行器
│ ├── database/ # 数据库操作
│ └── tools/ # 工具定义
├── tests/ # 测试代码
├── config/ # 配置文件
├── docs/ # 文档
└── requirements.txt # 依赖包
快速开始
1. 安装依赖
pip install -r requirements.txt
2. 配置数据库
编辑 config/database.yaml 配置数据库连接。
3. 启动服务器
python -m src.main
4. 在 Goose 中配置
在 Goose 配置中添加 MCP 服务器:
mcp_servers:
pytest_server:
command: "python"
args: ["-m", "src.main"]
env:
DATABASE_URL: "sqlite:///./test_results.db"
API 接口
MCP 标准接口
POST /initialize- 初始化连接POST /tools/list- 列出可用工具POST /tools/call- 调用工具POST /resources/list- 列出资源POST /resources/read- 读取资源
自定义工具
run_pytest_tests - 执行 pytest 测试
- 参数:
test_path(测试路径),options(pytest 选项) - 返回: 测试执行结果和报告
- 参数:
store_test_results - 存储测试结果到数据库
- 参数:
test_results(测试结果数据) - 返回: 存储状态和记录ID
- 参数:
get_test_history - 获取历史测试记录
- 参数:
limit(限制数量),project(项目名称) - 返回: 历史测试记录列表
- 参数:
数据库设计
CREATE TABLE test_runs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
project_name TEXT NOT NULL,
test_path TEXT NOT NULL,
total_tests INTEGER,
passed INTEGER,
failed INTEGER,
skipped INTEGER,
duration REAL,
status TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE test_cases (
id INTEGER PRIMARY KEY AUTOINCREMENT,
run_id INTEGER,
test_name TEXT NOT NULL,
status TEXT,
duration REAL,
error_message TEXT,
stack_trace TEXT,
FOREIGN KEY (run_id) REFERENCES test_runs (id)
);
开发指南
添加新工具
- 在
src/tools/目录下创建新的工具模块 - 实现工具函数并添加装饰器
- 在
src/tools/__init__.py中注册工具
扩展数据库模型
- 在
src/database/models.py中添加新模型 - 更新数据库迁移脚本
- 添加相应的 CRUD 操作
许可证
MIT License