review-gate-mcp
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., "@review-gate-mcpExtract invoice fields from this document and hold uncertain ones for review"
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.
review-gate-mcp
An MCP server that asks a human when it isn't sure.
Most extraction demos guess. This one implements the pattern that makes automation safe to run on documents that matter: fields extracted with high confidence flow through; anything uncertain is held in a review queue for a person to resolve - never silently guessed into your systems.
document ──▶ extract_with_gate ──▶ confident fields ──▶ your system
│
└──▶ uncertain fields ──▶ review_queue ──▶ a human ──▶ resolve_reviewTools
tool | what it does |
| extract |
| list items waiting for a human decision |
| a human supplies the verified value, closing the loop |
Related MCP server: PDF Reader MCP Server
Run it
npm install
npm test # end-to-end over real MCP stdio: extract -> hold -> human resolveAdd to Claude Code / Claude Desktop / Cursor (any MCP client):
{
"mcpServers": {
"review-gate": { "command": "node", "args": ["/path/to/review-gate-mcp/server.js"] }
}
}Then ask your agent to extract fields from a pasted document and watch what it does with the smudged one.
The point
The extractors here are deliberately transparent heuristics - swap in a model-backed extractor and the gate stays identical. The pattern is the product: a system that escalates its hard cases beats one that guesses them. This is the standard RavnLab builds automation to; the evaluation side of the same idea lives in ravnlab-eval-harness.
MIT. Built by RavnLab.
Available Tools
3 toolsextract_with_gateA
Extract fields from a document. High-confidence values return immediately; uncertain values are held in a human-review queue instead of guessed. Fields: invoice_number, total_amount, date, email, vendor_name.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The document text | |
| fields | Yes | Field names to extract |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the key behavioral trait of the gate (review queue for uncertain values) without annotations. Does not cover authentication or rate limits, but the core behavior is well explained.
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?
Three focused sentences: purpose, behavior, and field list. No redundant information.
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?
Adequate for a 2-parameter tool with no output schema. Explains extraction and gating. Could note what happens if all values are high-confidence or all uncertain, but overall sufficient.
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 coverage is 100% with basic descriptions. The description adds value by enumerating valid field names (invoice_number, total_amount, date, email, vendor_name), which is not in the schema.
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?
Clearly states it extracts fields from a document and lists the specific fields: invoice_number, total_amount, date, email, vendor_name. Distinguishes from siblings by explaining the gating behavior.
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?
Explains that high-confidence values return immediately and uncertain values go to a review queue, guiding when to expect immediate vs. deferred results. Does not explicitly state when not to use or mention alternatives, but siblings hint at post-extraction steps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_reviewB
A human supplies the correct value for a held item, closing the loop.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | The human-verified value | |
| review_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It only states that the tool 'closes the loop' without explaining side effects, permissions, or state changes, leaving significant ambiguity.
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, concise sentence that efficiently conveys the core purpose without unnecessary words.
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?
While the description covers the basic purpose, it lacks details about return values, error conditions, or the full lifecycle of a review, leaving the agent with some uncertainty.
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 50%, with only 'value' having a description. The tool description adds no additional parameter information, failing to compensate for the missing review_id description.
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?
The description clearly states the tool's action ('supplies the correct value') and resource ('held item'), and distinguishes from sibling tools (extract_with_gate and review_queue) by emphasizing human intervention.
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?
The description implies usage when a human is needed to resolve a held item, but it does not explicitly state when not to use the tool or mention alternatives like extract_with_gate or review_queue.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_queueA
List extraction items currently waiting for a human decision.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and while the description correctly indicates a read-only listing, it lacks details about permissions, pagination, or returned fields. This is adequate for a simple tool but not fully transparent.
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?
Single sentence, no fluff, directly communicates the tool's function. Perfectly concise and front-loaded.
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 no parameters, no output schema, and low complexity, the description covers the core purpose. It could mention sorting or filtering but is complete enough for a zero-param list tool.
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?
With zero parameters, schema coverage is 100% trivially. Baseline for 0 params is 4; the description does not add parameter info but none is needed.
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?
The description clearly states the verb 'List' and the resource 'extraction items' with a specific condition 'waiting for a human decision', making the tool's purpose unambiguous and distinct from siblings.
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?
The description implies when to use the tool (to view pending items) and the sibling context provides alternatives (extract_with_gate creates, resolve_review processes), but no explicit exclusions or when-not-to-use guidance is provided.
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.
3 tool updates
v0.1.0- First observed
extract_with_gate - First observed
resolve_review - First observed
review_queue
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: extraction, resolving held items, and listing the queue. No overlap or ambiguity between the three.
All tool names use snake_case and follow a verb-focused pattern (extract_with_gate, resolve_review, review_queue). The 'with_gate' modifier is slightly unconventional but consistent within the set.
Three tools is appropriate for the narrow domain of document extraction with human review. The count feels minimal but sufficient for the core workflow.
The toolset covers the primary extraction workflow (extract, review queue, resolve). Minor gaps like skipping or rejecting items are absent but not critical for the stated purpose.
Maintenance
Related MCP Connectors
MCP server for detecting and redacting PII (Personally Identifiable Information) in PDF documents.
Hybrid human + AI expertise for faster, trusted answers and decisions via MCP Server.
Hosted MCP for denial, prior auth, reimbursement, workflow validation, batch scoring, and feedback.
MCP server for VC pitch-deck scoring, thesis-fit matching, and deal-flow management.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn intelligent document processing system that automatically classifies, extracts information from, and routes business documents using the Model Context Protocol (MCP).3GPL 3.0
- FlicenseNot gradedqualityDmaintenanceAn MCP server that provides comprehensive PDF processing capabilities including text extraction, image extraction, table detection, annotation extraction, metadata retrieval, page rendering, and document structure analysis.-
- AlicenseNot gradedqualityCmaintenanceA document intelligence MCP server that extracts text and structured fields from business documents, routes low-confidence extractions to a human review queue, and enables searching across processed documents.MIT

clichefactory-mcpofficial
AlicenseNot gradedqualityDmaintenanceMCP server for ClicheFactory, enabling structured data extraction from documents such as PDFs, images, and office files via AI assistants.MIT