Check whether an AI answer is grounded in its context β deterministic, no LLM judge.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Deterministic, gold-anchored verification for evidence-grounded AI β no LLM judge.
Quick start Β· Architecture Β· Surfaces Β· Examples Β· Roadmap Β· Contributing Β· Changelog
Evidence over plausibility. OpenGATE verifies AI systems that must justify every answer from source material β RAG pipelines, document-QA tools, legal and scientific assistants. It answers one question above all: can the system prove its answer from the evidence it was given?
The check is deterministic β no LLM-as-judge, no grader model, no six-point verdict scale. Required facts must be present, every number must trace back to the source, and when the context can't answer, the system must abstain rather than fabricate. Because it's pure logic, it's reproducible, free, and fast enough to run on every answer or gate on every commit.
As AI moves into high-stakes domains, evaluation is becoming as fundamental as automated testing is in traditional software. OpenGATE turns grounding failures into numbers you can track, and gates every prompt, model, or workflow change against a baseline β so reliability can't quietly regress.
No API key needed β the offline suite runs deterministic scorers against the bundled gold set:
Point opengate.http.json at your endpoint and add --online --ci to gate your own system. Full walkthrough: Getting Started.
The same deterministic grounding logic ships wherever your stack lives:
| Surface | Install | Use it for |
|---|---|---|
| CLI + framework | npx @pharmatools/opengate | Full eval suite, adapters, regression gate |
| GitHub Action | uses: nickjlamb/opengate@v0 | Drop-in CI gate in any repo |
| Python package | pip install opengate-grounding | check_grounding(), pytest gate, DeepEval metric |
| MCP server | npx @pharmatools/opengate-mcp | Agents that verify their own answers inline |
| Docker image | docker run pharmatools/opengate | CPU-only, containerised pipelines |
Scorers never talk to a system directly β they reach it through a small adapter, so the methodology travels and only the gold set changes. In the development loop it sits where CI sits: change a prompt, model, or pipeline; the regression gate diffs the new scorecard against the baseline β improved or held deploys, regressed fails the build.
Use both β evals measure, OpenGATE verifies. General-purpose frameworks like DeepEval and OpenAI Evals evaluate AI systems broadly, usually with an LLM judging the output. OpenGATE verifies the narrower, harder promise: that every answer is grounded in evidence:
Pair a general framework for broad quality metrics with OpenGATE to gate the grounding.
Gold cases β hand-labelled benchmark cases (datasets/cases/): source text, the claims that should be extracted, the sentences that should not be, and reference snippets with known-correct verdicts. Copy _template.json to add one; format in datasets/SCHEMA.md, labelling rules in datasets/LABELING-GUIDE.md.
Scorers β one module per metric family (src/scorers/):
| Scorer | Mode | Measures |
|---|---|---|
citation-detection | offline | per-claim citation set exact-match & Jaccard; supported-style accuracy |
claim-extraction | online | precision / recall / F1 vs gold; non-claim leakage; fidelity (claim is verbatim from source) |
verdict-accuracy | online | exact & adjacency accuracy on a six-point scale; passage hallucination rate; consistency; latency & token cost |
redaction | online | recall on gold identifiers with leaks as named failures; over-redaction; known-gap tracking |
simplification | online | faithfulness of rewrites: anchor recall (critical facts survive), fabricated numbers, length gates |
retrieval | online | fidelity of retrieved records vs the authority: anchor fields + structural invariants |
grounding | online | generic RAG: answer-anchor recall, fabrication vs context, and abstention. The turnkey path |
Offline scorers run with no API key β fast enough for every commit. Online scorers exercise a live system through an adapter.
Scorecards β every run writes results/<timestamp>.json stamped with the git SHA, so any result is reproducible and auditable. Per-model runs carry a run_model label, turning the results directory into a measured comparison (accuracy Γ hallucination Γ latency Γ cost).
Regression gate β --baseline saves a reference; later runs print per-metric deltas (β²/βΌ in percentage points) and --ci fails the build on any drop. Baselines are per-adapter, so one system's scorecard can't clobber another's.
HTML report β add --report (or opengate report) for a self-contained dashboard: pass/fail per scorer, deltas vs baseline, every named failure. One file, no server, no dependencies.
An adapter is one file: two base exports β onlineAvailable(), onlineConfigHint() β plus at least one complete capability (e.g. grounding β answer()). Scorers check adapter.capabilities and skip cleanly across the boundary; adapters are validated at load with messages naming every missing export.
For REST-backed systems there's a no-code path: the bundled generic HTTP adapter reads endpoint paths and headers from opengate.http.json (${ENV} interpolation, built-in latency/token capture). Full contract and a minimal skeleton: ADAPTERS.md.
opengate-grounding) and a Node adapter for the CI gate.Four PharmaTools products run on OpenGATE in CI β four different capability shapes, one evaluation standard. Run against RefCheckr's gold set, OpenGATE:
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/opengate-mcp)<a href="https://allmcps.com/mcp/opengate-mcp"><img src="https://allmcps.com/api/badge/opengate-mcp?style=directory" alt="Opengate MCP on AllMCPs" /></a>