Eclipse Benchkit
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., "@Eclipse Benchkitrun my declared check battery and seal the scorecard"
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.
Eclipse Benchkit
A free, local SDK a vendor runs against their own MCP server to execute their declared check battery and emit a scorecard in the Assay scorecard format — check ids, verdicts, evidence hashes, environment fingerprint — with a spot-check hook embedded in every check entry as it runs. A separate local harness draws a random sample from the sealed scorecard and re-runs those checks, issuing a counter-signed verification receipt.
Scope label: LOCAL / fixture. v0.1 is exercised only against fixture vendor servers. No live vendor server, no network call, no registry.
Status: v0.1.1 — CERTIFIED (local/fixture). Verity re-bench 2026-10-27: all v0.1.0 FAIL defects (D1/D2 blockers, M1–M4 majors, m1–m5 minors) closed and independently verified; builder suite 27/27. Two new minors (N1 fence-encoding edges, N2 seed-commitment provenance) are recorded for the next fix loop and do not gate this scope. The certification binds exactly this scope: the SDK, emitter, and spot-check harness against fixture vendor servers only. A spot-check receipt is a statement about a sample of one sealed scorecard — not a house bench verdict and not a certification of any vendor server.
v0.1.1 protocol notes
Commit-then-sample, unpredictable (D1). The verifier nonce is generated verifier-side from a secret seed held in
keys/plus fresh CSPRNG entropy, and revealed only in the sample manifest after the seal is verified. It is never a caller input for a new draw and cannot be precomputed from the scorecard hash or any public state. A supplied nonce is honoured only as a replay key for an already-issued(scorecard_hash, verifier_nonce)pair, which returns the recorded receipt (§3.3); a novel supplied nonce is refused by name.Verifier token (§5, M4). Verifier verbs require the verifier token: the fixture token in
keys/verifier-token.fixture.key(chmod 600, gitignored), presented per call asverifier_tokenor viaBENCHKIT_VERIFIER_TOKENin the verifier process.Config fence (§7.3, F-B14). Startup hard-exits with
CONFIG_FENCE_REFUSED:<class>on a non-local endpoint, a live-key string, a vendor-nonce config, a non-testvalue_class, or an Assay/Cupel price-or-checkout config; live-URL server descriptors are refused atbenchkit_run_beginwith the same named code.Authenticated artefacts (M1/M2). The seal signature binds the head hash, all counts, and the format version; recompute verifies receipt signatures, the outcome record chain, and the rerun chain head, and rejects extra outcomes.
Keys (§7.4, M3). All fixture keys are locally generated in
keys/(chmod 600, gitignored, fixture-labelled). No key material exists in source.
Related MCP server: mcp-spec-compliance-mcp
Novel mechanism
Vendor-run scorecards embed spot-check hooks; the house bench re-runs
a random sample, so a fabricated self-bench is statistically
detectable. The protocol is commit-then-sample: the scorecard is
sealed (hash-chained, vendor-signed) before any sample exists, and the
sample seed derives from scorecard_hash ‖ verifier_nonce, the nonce
revealed only after the seal is presented. The receipt states the
arithmetic on its face: at sample size k and fabricated fraction
f, detection probability is 1 − (1−f)^k — default k = 30 (or all
hook-bearing checks if fewer), powered at f ≥ 0.10 → detection
≥ 95%. A check without a hook is labelled HOOKLESS on the
scorecard's face and is outside every sample and every verified
claim; a sampled non-deterministic or secret-requiring check resolves
to UNVERIFIABLE, never to a silent pass. Receipt verdicts:
VERIFIED_SAMPLE · DIVERGENT (mismatched check ids named) ·
UNVERIFIABLE.
Every vendor scorecard is labelled vendor-run / self-bench on its
face. A spot-check receipt says only that a random sample of k of
N hook-bearing checks was re-run and matched (or diverged — verdict
as issued), powered to detect fabrication at fraction ≥ f with
probability p. It is not a house bench verdict and not a
certification of the vendor's server, and it never upgrades a
self-bench into one. Unverifiable scorecards export only as
DOWNGRADED_EXPORT, never upgraded post-hoc.
Format attribution, exact and minimal: scorecard emitted in the
Assay scorecard format. Eclipse Assay and Eclipse Cupel are internal
tools; Benchkit consumes their scorecard format as a specification
only and contains no product surface, price, licence, or buy path for
them. The full bench is a paid service engagement; intake via the
existing route — Benchkit contains no intake form, no engagement
checkout, and no service pricing. Benchkit's own metering point is
one spotcheck_verification_completed event per completed
verification ($10/verification shape, metering record only, no charge
path in this build), keyed to (scorecard_hash, verifier_nonce) so
idempotent returns do not double-meter.
Tools
Vendor surface (default, ECLIPSE_BENCHKIT_SURFACE=vendor):
benchkit_run_begin, benchkit_check_record,
benchkit_scorecard_seal, benchkit_scorecard_get,
benchkit_export_get.
Verifier surface (ECLIPSE_BENCHKIT_SURFACE=verifier):
spotcheck_request, spotcheck_run, spotcheck_receipt_get,
spotcheck_recompute, anomaly_queue_read.
Surfaces are disjoint; cross-surface calls return the identical unknown-tool refusal as a nonsense name. Pre-seal sample attempts, vendor-supplied nonces, and same-nonce re-draws after a verdict are refused by name and receipted in the anomaly queue.
Fixtures
fixtures/battery-*.json — deterministic fixture batteries over
fixture vendor servers: good (40 checks), small (8), honest failures
(3 genuinely failing checks sealed as failures), hookless (5 of 12),
flaky (one non-deterministic check), secret-hook (one un-runnable
hook), fabricated (40 claimed checks, 12 fabricated, over the
fabricated-source server — the decisive fixture: the seeded
spot-check must catch at least one).
Run
python3 server.py # MCP over stdio JSON-RPC
python3 -m unittest discover -s tests -vState lives in data/ or BENCHKIT_DATA_DIR. Python 3, standard
library only.
Powered by Cyan Eclipse Technologies — https://cetech.ai
MIT License · Copyright © 2026 Cyan Eclipse Technologies LLC · cetech.ai
This server cannot be deployed
Maintenance
Related MCP Connectors
Scan any website or MCP server for agent-trust-readiness; returns a signed, verifiable scorecard.
Remote MCP for A2A failure replay MCP, structured receipts, audit logs, and reviewer-ready evidence.
Pre-install canonical-identity verification for MCP servers and skills, with signed verdicts.
Remote MCP for C2PA intake verifier MCP, structured receipts, audit logs, and reviewer-ready evidenc
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables users to validate MCP servers, skills, extensions, and packages for schema, security, functional, and semantic quality directly from their MCP client.MIT
- AlicenseAqualityCmaintenanceAudits any MCP server against the official spec, providing HMAC-signed conformity reports.630 PyPIMIT
- FlicenseAqualityAmaintenanceEnables local auditing of trading strategies through MCP checkers for point-in-time data provenance, pre-trade order validation, and regime-fragility testing, while deferring promotion verdicts to a hosted service.881 PyPI-
- AlicenseAqualityBmaintenanceFree seven-tool proof loop for MCP agents: scoped sessions, bounded authorization, typed outcomes, evidence-bound claims, and tamper-evident local closure. Upgrade to Complete Local for durable memory, recovery, signed traces, release verification, and multi-agent workflows.7Apache 2.0