Model Context Protocol server for TestIO Customer API integration
Project description
TestIO MCP Server
Query TestIO test data through AI tools - no UI required.
Quick Start
Get started in 3 steps:
1. Setup (One-time configuration)
uvx testio-mcp setup
Creates ~/.testio-mcp.env with your API credentials and preferences.
Reference docs are copied to ~/.testio-mcp/ including .env.example for all available options.
2. Sync Data
uvx testio-mcp sync
Loads your products, features, and tests into local cache (~30s-2min).
3. Start Server
uvx testio-mcp serve --transport http
Runs at http://127.0.0.1:8080 (keep terminal open).
Next: Configure your AI client → MCP_SETUP.md
Optional: Open http://127.0.0.1:8080/docs for interactive API explorer.
Access Methods
| Method | Endpoint | Best For |
|---|---|---|
| MCP | http://127.0.0.1:8080/mcp |
Claude, Cursor, AI assistants |
| REST | http://127.0.0.1:8080/api/* |
Scripts, dashboards, integrations |
| Swagger | http://127.0.0.1:8080/docs |
API exploration, testing |
Example: Same Query, Two Ways
# Via AI (MCP)
"What's the status of test 109363?"
# Via REST
curl http://127.0.0.1:8080/api/tests/109363/summary
Tools (17)
Data Discovery
| Tool | Example Query |
|---|---|
list_products |
"Show all mobile apps" |
list_tests |
"List running tests for product 598" |
list_features |
"What features does product 598 have?" |
list_users |
"Who are our testers?" |
list_bugs |
"Show critical bugs for test 109363" |
Entity Summaries
| Tool | Example Query |
|---|---|
get_test_summary |
"Status of test 109363" |
get_product_summary |
"Overview of product 598" |
get_feature_summary |
"Details on feature 1234" |
get_user_summary |
"Show tester 5678's activity" |
get_bug_summary |
"Details on bug 91011" |
Analytics & Reports
| Tool | Example Query |
|---|---|
generate_quality_report |
"Quality report for products 598, 599" |
query_metrics |
"Bug counts by severity for product 598" |
get_analytics_capabilities |
"What metrics can I query?" |
See ANALYTICS.md for the full analytics guide with query patterns and examples.
Search & Sync
| Tool | Example Query |
|---|---|
search |
"Find bugs mentioning login" |
sync_data |
"Refresh data for product 598" |
Diagnostics
| Tool | Example Query |
|---|---|
get_server_diagnostics |
"Check server health" |
get_problematic_tests |
"Which tests failed to sync?" |
Prompts (2)
Interactive workflows for common tasks:
| Prompt | Use Case |
|---|---|
analyze-product-quality |
Deep-dive quality analysis with artifacts |
prep-meeting |
Generate meeting materials from analysis |
Resources (2)
Knowledge bases accessible via testio:// URIs:
| Resource | Content |
|---|---|
testio://knowledge/playbook |
CSM heuristics and templates |
testio://knowledge/programmatic-access |
REST API discovery guide |
CLI Reference
# Configuration
uvx testio-mcp setup # Interactive setup
uvx testio-mcp --version # Show version
# Server
uvx testio-mcp serve --transport http # HTTP mode (multi-client)
uvx testio-mcp serve --transport http --port 9000 # Custom port
uvx testio-mcp # stdio mode (single client)
# Sync
uvx testio-mcp sync --status # Check sync status
uvx testio-mcp sync # Manual sync
uvx testio-mcp sync --force # Full refresh
Data Flow
┌─────────────────────────────────────────┐
│ AI Client (Claude, Cursor) │
│ or REST Client (curl, scripts) │
└─────────────┬───────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ TestIO MCP Server │
│ localhost:8080 │
└─────────────┬───────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ Local SQLite Cache │
│ ~/.testio-mcp/cache.db │
│ (queries: ~10ms, auto-sync: 1h) │
└─────────────┬───────────────────────────┘
↓ (read-through cache + sync)
┌─────────────────────────────────────────┐
│ TestIO Customer API │
│ https://api.test.io/customer/v2 │
└─────────────────────────────────────────┘
Caching: Background sync refreshes products, features, and discovers new tests every hour. Bug and test metadata use read-through caching—refreshed on-demand when queried if stale (>1 hour). Immutable tests (archived/cancelled) always serve from cache. See CLAUDE.md for details on test mutability and caching logic.
Configuration
Created by uvx testio-mcp setup at ~/.testio-mcp.env:
| Variable | Description |
|---|---|
TESTIO_CUSTOMER_API_TOKEN |
Your API token |
TESTIO_CUSTOMER_NAME |
Your subdomain |
TESTIO_CUSTOMER_ID |
Customer ID (default: 1) |
TESTIO_PRODUCT_IDS |
Filter to specific products |
TESTIO_HTTP_PORT |
Server port (default: 8080) |
Full options: see .env.example (repo root or ~/.testio-mcp/.env.example for uvx users).
Client Setup
See MCP_SETUP.md for connecting:
- Claude Desktop
- Claude Code (CLI)
- Cursor
- Gemini Code
Troubleshooting
# Server won't start?
curl http://127.0.0.1:8080/health
# Data seems stale?
uvx testio-mcp sync --status
uvx testio-mcp sync --force
# Token issues?
uvx testio-mcp setup # Reconfigure
Documentation
- MCP_SETUP.md - Client configuration
- ANALYTICS.md - Analytics engine guide
- CLAUDE.md - Development guide
- CHANGELOG.md - Version history
- docs/architecture/ - Technical architecture
License
Proprietary - See LICENSE for terms.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file testio_mcp-0.4.0.tar.gz.
File metadata
- Download URL: testio_mcp-0.4.0.tar.gz
- Upload date:
- Size: 2.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6de4f88d1caf83bb4ee43910ec6fafa39500a00c123d266ca980a791d402849
|
|
| MD5 |
fd440b372f04930b02db33c89abf7acc
|
|
| BLAKE2b-256 |
da152bfc79c96c184e20e6ec37706e92f0339edb9c476f4c3e40c097a787e21d
|
File details
Details for the file testio_mcp-0.4.0-py3-none-any.whl.
File metadata
- Download URL: testio_mcp-0.4.0-py3-none-any.whl
- Upload date:
- Size: 337.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76ef61353ab5248f85538865ca2e9c0bf858c0eb41ecd7cadbf4e3ab032cc437
|
|
| MD5 |
dfaa6479ce5b6a526b03bb06f9096aab
|
|
| BLAKE2b-256 |
5dc9b06765feb73825a0dd068ddf657ded8d1f4fdd1cdb27cf7c62a794df8724
|