MCP 서버

Velrim

com.velrim/extract
데이터 및 분석 공개 · 연결 가능 MCP 2025-11-25

이 MCP로 할 수 있는 일

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.
외부 접근 가능
입력 스키마
{'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.'}}}
출력 스키마
{'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.
읽기 전용 외부 접근 가능 멱등성
입력 스키마
{'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).'}}}
출력 스키마
{'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': {}}
추가됨
velrim_job_status
2026년 9월 17일 12:38 PM
추가됨
velrim_extract
2026년 9월 17일 12:38 PM