Velrim
Server Details
Document extraction against a JSON Schema with a calibrated confidence per field; async job status.
- Status
- Healthy
- Uptime
- 95.4% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 2 tools
The two tools have clearly distinct roles: velrim_extract performs synchronous extraction, while velrim_job_status polls asynchronous jobs. The descriptions explicitly state that velrim_extract never creates jobs, preventing overlap.
Both tools use snake_case with a velrim_ prefix, but the pattern is not strictly verb_noun: velrim_extract is verb_noun, while velrim_job_status is noun_phrase. This minor deviation is still readable and consistent in style.
Only two tools are provided, which feels thin for a document extraction service. A job creation tool is missing, making the asynchronous workflow incomplete from the MCP server's perspective.
The surface lacks a tool to create asynchronous jobs (POST /v1/jobs), so velrim_job_status cannot be used without an external API call. No job management (list, cancel) or batch extraction tools are present, leaving significant gaps.
Available Tools
2 toolsvelrim_extractAInspect
Extract structured data from a document (PDF or image, passed as document_base64 or as the upload_key of a staged upload) against a JSON Schema you supply. Returns a typed object and, for every field, a state (present, null, or missing), a calibrated confidence score, and an anchor (the source page and bounding box). The confidence is calibrated against published reliability curves (https://velrim.com/reliability), so a 0.9 means the field is right about 90% of the time on that document class — branch on it directly: act on a field at or above your accept threshold, escalate the fields below it and any that are missing. Use each field's anchor to check it against the source page.
| Name | Required | Description | Default |
|---|---|---|---|
| hints | No | Discriminator hints for union schemas. | |
| schema | Yes | The JSON Schema (draft 2020-12) the extracted object must conform to (required). | |
| doc_class | No | Opaque tag (<=128 chars) echoed back in meta.doc_class. | |
| upload_key | No | The upload_key of a staged Velrim upload. Mutually exclusive with document_base64. | |
| document_base64 | No | The document bytes, base64-encoded. Provide exactly one of document_base64 or upload_key. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| meta | No | |
| error | No | |
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (readOnlyHint=false, openWorldHint=true, idempotentHint=false) by disclosing the return contract: a typed object with per-field state, calibrated confidence, and source anchors. The calibration claim is even backed by a reference URL, so the 0.9 semantics are defined rather than asserted.
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 front-loaded sentences: what it does, what it returns, and how to use the return. Every sentence carries distinct information and none restates the name or schema.
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?
An output schema exists, yet the description still supplies the non-obvious behavioral facts an agent needs (confidence calibration, per-field state, anchors). Input modes, required schema, and the escalation workflow are all covered, leaving no material gap for calling it correctly.
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 100%, so the schema already documents all five parameters including the required 'schema' object and the mutually exclusive base64/upload_key pair. The description reinforces the document-input mechanism but adds no syntax or format detail beyond the schema, so baseline 3 applies.
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 verb and resource ('Extract structured data from a document') and immediately distinguishes the two supported input modes (PDF/image via document_base64 or upload_key). An agent can tell this apart from the sibling velrim_job_status, which is a polling tool.
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?
Gives concrete operational guidance on when to act versus escalate ('act on a field at or above your accept threshold, escalate the fields below it and any that are missing'), plus the input-mode choice. It never names the sibling or an alternative tool or an explicit when-not, so it falls short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
velrim_job_statusARead-onlyIdempotentInspect
Poll an asynchronous extraction job by its job_id (from POST /v1/jobs on the Velrim API; velrim_extract itself is synchronous and never creates jobs). Returns the job status and, once complete, the same typed result as velrim_extract: per field a state (present, null, or missing), a calibrated confidence score, and an anchor (source page and bounding box). Confidence is calibrated against published reliability curves (https://velrim.com/reliability) — branch the same way: act on a field at or above your accept threshold, escalate the rest, and use each anchor to check a field against its source page.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | The job_id returned by an asynchronous Velrim extraction job (created via the Velrim API or an SDK). |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| job_id | No | |
| result | No | |
| status | No | "running" | "succeeded" | "failed" (additive-tolerant). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, openWorld), and the description adds substantive behavior beyond them: the polling lifecycle, that the result only appears once the job completes, the per-field result shape (state/confidence/anchor), and how calibration curves should drive accept-vs-escalate branching. This is unusually rich operational context.
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?
Front-loaded with the polling action and the sibling distinction, which is exactly what an agent needs first. The final sentence on reliability curves and branching is longer and advisory, but it still carries actionable decision guidance rather than filler.
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?
An output schema exists, yet the description still summarizes the return contract (state, confidence, anchor) and explains how to act on it. For a single-parameter polling tool, nothing an agent needs to call it correctly is missing.
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% for the single job_id parameter, so the baseline is 3. The description adds origin and traceability context ('from POST /v1/jobs', 'velrim_extract itself is synchronous and never creates jobs') that helps an agent source a valid value rather than guess.
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 opens with a specific verb and resource ('Poll an asynchronous extraction job by its job_id') and immediately contrasts itself with the sibling tool by noting velrim_extract is synchronous and never creates jobs. An agent can route between the two without opening either schema.
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?
It explicitly states the condition that selects this tool (a job_id from POST /v1/jobs, or a job created via the Velrim API/SDK) and names the alternative plus why that alternative is not applicable. The when-to-use boundary is unambiguous.
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.
2 tool updates
- First observed
velrim_extract - First observed
velrim_job_status
Related MCP Connectors
PDFs, images and messy text to schema-guaranteed JSON. try_parse runs a real extraction, no key.
Turn documents into verified, structured data: fields, tables, and automatic checks.
Verified extraction: source-backed JSON from PDFs/URLs; honest null + signed receipt.
Turn documents into structured data: parse, extract, classify, split, and fill PDF forms.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables conversion of PDFs, images, and messy text into schema-guaranteed JSON, with tools for schema inference, validation, and credit management.MIT
- FlicenseNot gradedqualityBmaintenanceEnables reading entire PDF documents into validated structured JSON, including tables, key-values, and markdown, with read-only extraction tools and layout reconstruction.-
- AlicenseAqualityCmaintenanceProvides deterministic, schema-driven structured data extraction from PDF documents via regex/heuristic matching, enabling repeatable, inspectable, and cost-free field extraction without LLM API calls.3MIT
- FlicenseNot gradedqualityDmaintenanceEnables extraction of text, tables, and structured data from PDFs, images, and office documents using LandingAI's Agentic Document Extraction API. Supports both direct parsing and background job processing for large files with privacy-focused processing.-
Glama MCP Gateway
Add one secure layer between your agents and this server.