MEOK MCP Test MCP — golden-file + schema-drift + tool-failure tests for any MCP server. Drop-in pre-publish gate. Generates pytest templates. HMAC-signed test reports + Shields.io grade badge. By MEOK AI Labs.
Project description
mcp-name: io.github.CSOAI-ORG/meok-mcp-test-mcp
MEOK MCP Test MCP
Drop-in golden-file + schema-drift + tool-failure test harness for ANY MCP server. Generates a pytest template, produces an HMAC-signed test report, prints a Shields.io grade badge for your README.
🧪 Part of the MEOK Governance Substrate (£499/mo) — combine with
mcp-spec-compliance-mcp(spec audit) +meok-mcp-hardening-mcp(security red-team) for the full pre-publish gate.
Why this exists
Thousands of MCPs ship zero tests. MCP Inspector is debug-only. Anthropic Registry will probably enforce some baseline by Q4 2026. Every MCP author wants a green check before submitting.
This MCP gives you:
| Test | What it catches |
|---|---|
validate_server_json |
Missing name/version/description/repo |
validate_tool_schema |
Tool name not alphanumeric, description <5 or >1024 chars, invalid JSON Schema type |
diff_server_json |
Breaking changes (removed keys, type flips) |
run_golden_diff |
Snapshot drift |
check_idempotency_static |
Non-deterministic read-only tools |
generate_test_template |
Pytest scaffolding so authors can drop tests in CI |
run_test_suite |
The full default flow above as one call |
sign_test_report |
HMAC seal + Shields.io badge URL |
Quick start
pip install meok-mcp-test-mcp
# or
uvx meok-mcp-test-mcp
from server import run_test_suite, sign_test_report
report = run_test_suite(
server_json=my_server_json,
golden_pairs=[
{"name": "list_chains", "actual": actual_out, "expected": expected_out},
],
schema_drift_baseline=last_known_good_server_json,
)
sealed = sign_test_report(report)
print(sealed["badge_url"]) # paste in your README
Tools exposed
run_test_suite(server_json, golden_pairs?, schema_drift_baseline?)— full default suitevalidate_server_json(server_json)— structural validationvalidate_tool_schema(tool)— single tool deep-checkdiff_server_json(old, new)— structural diff with breaking-change flagrun_golden_diff(actual, expected)— single snapshot checkcheck_idempotency_static(samples)— given N samples, return whether all equalgenerate_test_template()— pytest scaffoldingsign_test_report(report)— HMAC-seal + Shields.io badge
Wire it up to your CI
# .github/workflows/mcp-test.yml
name: MEOK MCP Test
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with: { python-version: "3.11" }
- run: pip install meok-mcp-test-mcp
- run: python -m server # runs the included pytest scaffold
Scoring
- A ≥ 90% passed
- B ≥ 75%
- C ≥ 60%
- D ≥ 40%
- F otherwise
Verify any signed report
Paste any signed test report at https://meok.ai/verify — the HMAC signature is checked against MEOK's public JWKS.
Pricing
- Self-host: free (MIT)
- Starter: £29/mo — 1K test runs/mo + signed badge SLA
- Pro: £79/mo — 10K runs/mo + custom badge + public dashboard
- Governance Substrate: £499/mo — bundled with 10 governance MCPs
- A2A Substrate: £999/mo — bundled with all 12 A2A MCPs
Companion MCPs
mcp-spec-compliance-mcp— registry-spec conformity auditmeok-mcp-hardening-mcp— OWASP LLM Top 10 + 5 MCP-specific risksmeok-mcp-cardgen-mcp— generate.well-known/mcpcardsmeok-agents-md-lint-mcp— AGENTS.md spec lint
Legal
Built by MEOK AI Labs — trading name of CSOAI LTD, UK Companies House 16939677.
Founder: Nicholas Templeman (nicholas@meok.ai).
License: MIT.
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 meok_mcp_test_mcp-1.0.0.tar.gz.
File metadata
- Download URL: meok_mcp_test_mcp-1.0.0.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
696980476a82162eb4e66c51ef747601c5286cff22b5d078bfa550ab85d83b38
|
|
| MD5 |
7b96f3dadd6a5e7d2be278880b20f7ab
|
|
| BLAKE2b-256 |
1efb1c3eb7594a92b2347664d51bf674d565a348fae2d4a4033b7315f79b7a97
|
File details
Details for the file meok_mcp_test_mcp-1.0.0-py3-none-any.whl.
File metadata
- Download URL: meok_mcp_test_mcp-1.0.0-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7780f0e4a2d955e0bca30e70ba8deae566df43482b021ff85c8bdfb5818332d6
|
|
| MD5 |
96b23e634c263cd9fd416ef07e15047f
|
|
| BLAKE2b-256 |
2c39e0769f670b9eadda57ef1f54c9e48cf3380c7968c3d1545f0b46f62965ff
|