proofline-mcp
This MCP server exposes a single tool to validate a candidate NYC taxi pipeline against a trusted reference, with optional fault injection.
Compare a candidate taxi pipeline to a trusted reference and get structured evidence.
Inject faults:
duplicate_rows,missing_partition,timezone_shift,wrong_zone_mapping.Configure the run with
seed(default 42) androw_count(default 1000).The provided schema defines no other tools (README describes additional Gavel tools not present here).
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@proofline-mcpValidate my candidate pipeline with timezone_shift and give me the evidence report."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
๐ Quick start
Prerequisites: Python 3.11+.
git clone https://github.com/Abhishek249/gavel-mcp.git
cd gavel-mcp
make install # creates .venv, copies .env.example โ .env
make smoke # lint + 22 tests + MCP prove + offline sandboxes โ no secretsTry it:
# Clean NYC taxi data (expect PASS)
gavel sandbox taxi-clean --params '{"candidate_key":"trip-0000000"}'
# Taxi data with duplicate rows (expect FAIL)
gavel sandbox taxi-duplicate-rows --params '{"candidate_key":"trip-0000000"}'Related MCP server: MCP Gatekeeper
๐ Releases (what shipped when)
Version | Focus | Try it |
v0.4 | Renamed from Proofline โ Gavel ( |
|
v0.1 | Taxi benchmark + geospatial evidence MCP tools |
|
v0.2 | Sandbox spec + golden/candidate + metric DSL |
|
v0.3 | Live DevInt collector (Postgres + WO + Dagster) |
|
Full sandbox spec: docs/sandbox-platform.md ยท Architecture: docs/architecture.md
๐งฐ MCP server (local)
make mcp-config # prints JSON snippet for CursorSix tools:
MCP tool | Purpose |
| Discover sandboxes under |
| Golden vs candidate metrics (snapshot or inline rows) |
| Live DevInt evidence for one |
| Collect + validate in one call |
| Synthetic NYC taxi reference vs candidate |
| BYO orchestrator/worker/DB evidence envelope |
Restart Cursor after editing MCP config. Walkthrough: docs/mcp-setup.md.
โจ What's inside
Declarative sandboxes โ YAML spec: components, golden/candidate datasets, metric rubric
Deterministic metrics โ
exact,jaccard,area_ratio,not_null,row_count,gte,lteSilent-success detection โ catches green orchestration with missing/wrong data
Shipped examples โ NYC taxi clean data (PASS), duplicate rows (FAIL)
Structured evidence reports โ every check: name, expected, actual, status, context
MCP stdio boundary โ real client/server tests in CI (
prove_it.py, benchmark)
Stack: Python, Pydantic, Shapely, PyYAML, MCP SDK.
๐๏ธ Architecture
sandbox.yaml โ golden.json + candidate.json (file | inline | live)
โ
metric engine (deterministic)
โ
ValidationReport โ MCP tool responseExample: NYC taxi duplicate-row detection
trip_id
โ load golden: 500 clean trips
โ load candidate: 600 trips (100 duplicates)
โ validate: row_count, key_uniqueness, fare_total โ FAIL๐ Project structure
gavel-mcp/
โโโ assets/
โ โโโ gavel-readme-banner.png # README banner
โ โโโ gavel-icon.png # square icon (social preview)
โโโ sandboxes/
โ โโโ taxi-clean/ # Clean NYC taxi data (PASS)
โ โโโ taxi-duplicate-rows/ # Duplicate detection (FAIL)
โโโ src/gavel/
โ โโโ server.py # MCP stdio server (6 tools)
โ โโโ cli.py # gavel CLI
โ โโโ sandbox/ # spec loader, metrics, runner
โ โโโ adapters/ # Postgres, WO, Dagster HTTP clients
โ โโโ collectors/ # manual_report evidence composer
โโโ scripts/
โ โโโ prove_it.py # MCP boundary proof
โ โโโ demo_live.py # interactive demo
โ โโโ validate_manual_report_devint.sh
โโโ docs/
โ โโโ mcp-setup.md
โ โโโ architecture.md
โ โโโ sandbox-platform.md
โโโ Makefile
โโโ .env.example
โโโ tests/ # 21 tests, network mocked๐ง Commands
make install # venv + pip install -e ".[dev,live]"
make test # pytest
make smoke # lint + test + prove + offline sandboxes
make prove # MCP boundary script
make sandbox-offline # taxi-clean validation (expect PASS)
make sandbox-fail # taxi-duplicate-rows (expect FAIL)
make demo # interactive MCP demo
make mcp-config # Cursor MCP JSON snippet
make lint # ruffCLI equivalents:
gavel list-sandboxes
gavel smoke
gavel sandbox taxi-clean --params '{"candidate_key":"trip-0000000"}'
gavel sandbox taxi-duplicate-rows --params '{"candidate_key":"trip-0000000"}'๐ ๏ธ Troubleshooting
MCP tools missing in Cursor: run
make mcp-config, use absolute paths, restart Cursor.Sandbox not found: check
sandboxes/directory structure and YAML syntax.
๐ Taxi benchmark (v0.1)
Controlled fault injection on synthetic NYC taxi data โ verified benchmark record:
Signal | Result |
Defect detection recall | 100% |
False-positive rate | 0% |
MCP call latency p50 | ~3 ms |
These numbers apply to the published taxi fault model, not arbitrary production pipelines.
Roadmap
Sandbox eval platform with NYC taxi examples
Live adapters for production data warehouses
Signed evidence bundles ยท OTel traces ยท PR gates
๐ License
MIT โ see LICENSE.
Available Tools
1 toolvalidate_candidate_pipelineC
Compare a candidate taxi pipeline with a trusted reference and return evidence.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| faults | No | ||
| row_count | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description alone must disclose side effects and operational behavior. It only says 'compare' and 'return evidence,' but does not clarify whether the pipeline is executed, whether the operation is read-only, or what the evidence consists of.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It is concise, but the brevity contributes to important missing details about behavior and parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three parameters, no annotations, no output schema, and no sibling tools, the description is too thin. It does not define what the returned 'evidence' looks like, what 'trusted reference' means, or what the parameters control.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain seed, faults, or row_count, nor how they affect the comparison. The enum values for faults hint at their meaning, but the description adds no parameter-level semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action: compare a candidate taxi pipeline with a trusted reference, then return evidence. The verb and object are clear, though 'trusted reference' and 'pipeline' remain somewhat domain-specific and undefined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance about when to use this tool versus alternatives, no prerequisites, and no mention of when it should not be used. The only implicit cue is that it is for validating a candidate pipeline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.1.0- First observed
validate_candidate_pipeline
TDQS
Scored across 1 tool
With only one tool, there is no possibility of ambiguity between tools. However, the tool set is so minimal that the single tool must serve all purposes, which can lead to confusion about what it actually does despite its description.
The single tool name 'validate_candidate_pipeline' follows a verb_noun pattern and is descriptive. However, with only one tool, it's hard to assess consistency across a set; it scores a neutral 3.
One tool is extremely thin for a server named 'proofline-mcp'. The purpose seems to be validating pipelines, but a single tool likely cannot handle the full scope of validation, comparison, and evidence retrieval without additional supporting operations.
The server provides only one operation, which likely requires multiple steps (e.g., retrieving reference, comparing, generating evidence). Without additional tools for setup, retrieval, or even getting evidence details, the surface is severely incomplete for a meaningful workflow.
Maintenance
Related MCP Connectors
MCP-native AI evaluation: rubric audits, eval suites, and proof reports for AI/LLM output.
Deterministic validation for AI-generated artifacts: JSON Schema, OpenAPI response, SQL syntax.
Tamper-evident proof creation and verification for AI agents via MCP, A2A, and REST.
Evidence-readiness MCP server: validate, audit, and score briefs, memos, and evidence packs.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables AI agents to programmatically inspect, test, and validate other MCP servers by exposing MCP Workbench capabilities as structured tools. It supports automated test spec generation, execution, and detailed failure analysis to ensure server reliability.47 npmApache 2.0
- FlicenseNot gradedqualityCmaintenanceEnables users to validate MCP servers, skills, extensions, and packages for schema, security, functional, and semantic quality directly from their MCP client.-
- FlicenseNot gradedqualityBmaintenanceEnables MCP-compatible AI clients to validate healthcare claims data quality by running completeness, integrity, and temporal checks on CSV files via five callable tools, including profiling and full scans.-
- FlicenseNot gradedqualityCmaintenanceProvides FHIR resource validation, synthetic test fixture generation, and HIPAA-safe logging review as MCP tools for AI agents.-