MCP-Server

Velrim

com.velrim/extract
Daten & Analytik Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Extracts structured fields from PDFs or images using a supplied JSON Schema, with confidence scores and source anchors.

velrim_extract
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.
Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['schema'], 'properties': {'hints': {'type': 'object', 'description': 'Discriminator hints for union schemas.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'schema': {'type': 'object', 'description': 'The JSON Schema (draft 2020-12) the extracted object must conform to (required).', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'doc_class': {'type': 'string', 'maxLength': 128, 'description': 'Opaque tag (<=128 chars) echoed back in meta.doc_class.'}, 'upload_key': {'type': 'string', 'description': 'The upload_key of a staged Velrim upload. Mutually exclusive with document_base64.'}, 'document_base64': {'type': 'string', 'description': 'The document bytes, base64-encoded. Provide exactly one of document_base64 or upload_key.'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'data': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'meta': {'type': 'object', 'required': ['model', 'tier', 'batched', 'calibrator_version', 'routing_policy_version', 'pages', 'billed_pages', 'request_id', 'warnings'], 'properties': {'tier': {'type': 'string', 'description': 'Routing tier, e.g. "default" | "resampled" | "verify".'}, 'model': {'type': 'string'}, 'pages': {'type': 'number'}, 'batched': {'type': 'boolean'}, 'warnings': {'type': 'array', 'items': {}}, 'doc_class': {'type': 'string'}, 'request_id': {'type': 'string'}, 'billed_pages': {'type': 'number'}, 'calibrator_version': {'type': 'string'}, 'routing_policy_version': {'type': 'string'}}, 'additionalProperties': {}}, 'error': {'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string'}, 'message': {'type': 'string'}, 'request_id': {'type': 'string'}, 'top_up_url': {'type': 'string'}, 'retry_after': {'type': 'number'}}, 'additionalProperties': {}}, 'fields': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'object', 'required': ['state', 'reason'], 'properties': {'state': {'enum': ['present', 'null', 'missing'], 'type': 'string'}, 'value': {}, 'anchor': {'type': 'object', 'required': ['page', 'bbox', 'snippet', 'page_dims'], 'properties': {'bbox': {'type': 'array', 'items': [{'type': 'number'}, {'type': 'number'}, {'type': 'number'}, {'type': 'number'}], 'description': 'Corner rectangle [x0,y0,x1,y1] â\x80\x94 NOT [x,y,w,h].'}, 'page': {'type': 'number'}, 'snippet': {'type': 'string'}, 'page_dims': {'type': 'object', 'required': ['width', 'height'], 'properties': {'width': {'type': 'number'}, 'height': {'type': 'number'}}, 'additionalProperties': {}}}, 'additionalProperties': {}}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'conflict': {'type': 'boolean'}, 'confidence': {'type': 'number'}}, 'additionalProperties': {}}}}, 'additionalProperties': {}}
velrim_job_status
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.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['job_id'], 'properties': {'job_id': {'type': 'string', 'minLength': 1, 'description': 'The job_id returned by an asynchronous Velrim extraction job (created via the Velrim API or an SDK).'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string'}, 'message': {'type': 'string'}, 'request_id': {'type': 'string'}, 'top_up_url': {'type': 'string'}, 'retry_after': {'type': 'number'}}, 'additionalProperties': {}}, 'job_id': {'type': 'string'}, 'result': {'type': 'object', 'required': ['data', 'fields', 'meta'], 'properties': {'data': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'meta': {'type': 'object', 'required': ['model', 'tier', 'batched', 'calibrator_version', 'routing_policy_version', 'pages', 'billed_pages', 'request_id', 'warnings'], 'properties': {'tier': {'type': 'string', 'description': 'Routing tier, e.g. "default" | "resampled" | "verify".'}, 'model': {'type': 'string'}, 'pages': {'type': 'number'}, 'batched': {'type': 'boolean'}, 'warnings': {'type': 'array', 'items': {}}, 'doc_class': {'type': 'string'}, 'request_id': {'type': 'string'}, 'billed_pages': {'type': 'number'}, 'calibrator_version': {'type': 'string'}, 'routing_policy_version': {'type': 'string'}}, 'additionalProperties': {}}, 'fields': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'object', 'required': ['state', 'reason'], 'properties': {'state': {'enum': ['present', 'null', 'missing'], 'type': 'string'}, 'value': {}, 'anchor': {'type': 'object', 'required': ['page', 'bbox', 'snippet', 'page_dims'], 'properties': {'bbox': {'type': 'array', 'items': [{'type': 'number'}, {'type': 'number'}, {'type': 'number'}, {'type': 'number'}], 'description': 'Corner rectangle [x0,y0,x1,y1] â\x80\x94 NOT [x,y,w,h].'}, 'page': {'type': 'number'}, 'snippet': {'type': 'string'}, 'page_dims': {'type': 'object', 'required': ['width', 'height'], 'properties': {'width': {'type': 'number'}, 'height': {'type': 'number'}}, 'additionalProperties': {}}}, 'additionalProperties': {}}, 'reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'conflict': {'type': 'boolean'}, 'confidence': {'type': 'number'}}, 'additionalProperties': {}}}}, 'additionalProperties': {}}, 'status': {'type': 'string', 'description': '"running" | "succeeded" | "failed" (additive-tolerant).'}}, 'additionalProperties': {}}
Hinzugefügt
velrim_job_status
17. September 2026 12:38
Hinzugefügt
velrim_extract
17. September 2026 12:38