Velrim
Document extraction against a JSON Schema with a calibrated confidence per field; async job status.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (3)
- HIGH
- MEDIUMin velrim_extract
- MEDIUMin velrim_job_status
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"extract": {
"url": "https://mcp.velrim.com/mcp"
}
}
}Remote-Endpunkte
https://mcp.velrim.com/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (2)
🟡velrim_extract(schema, document_base64, upload_key, doc_class, hints)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"schema": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {},
"description": "The JSON Schema (draft 2020-12) the extracted object must conform to (required)."
},
"document_base64": {
"description": "The document bytes, base64-encoded. Provide exactly one of document_base64 or upload_key.",
"type": "string"
},
"upload_key": {
"description": "The upload_key of a staged Velrim upload. Mutually exclusive with document_base64.",
"type": "string"
},
"doc_class": {
"description": "Opaque tag (<=128 chars) echoed back in meta.doc_class.",
"type": "string",
"maxLength": 128
},
"hints": {
"description": "Discriminator hints for union schemas.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"schema"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"fields": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"properties": {
"value": {},
"state": {
"type": "string",
"enum": [
"present",
"null",
"missing"
]
},
"confidence": {
"type": "number"
},
"anchor": {
"type": "object",
"properties": {
"page": {
"type": "number"
},
"bbox": {
"type": "array",
"items": [
{
"type": "number"
},
{
"type": "number"
},
{
"type": "number"
},
{
"type": "number"
}
],
"description": "Corner rectangle [x0,y0,x1,y1] — NOT [x,y,w,h]."
},
"snippet": {
"type": "string"
},
"page_dims": {
"type": "object",
"properties": {
"width": {
"type": "number"
},
"height": {
"type": "number"
}
},
"required": [
"width",
"height"
],
"additionalProperties": {}
}
},
"required": [
"page",
"bbox",
"snippet",
"page_dims"
],
"additionalProperties": {}
},
"conflict": {
"type": "boolean"
},
"reason": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"state",
"reason"
],
"additionalProperties": {}
}
},
"meta": {
"type": "object",
"properties": {
"model": {
"type": "string"
},
"tier": {
"type": "string",
"description": "Routing tier, e.g. \"default\" | \"resampled\" | \"verify\"."
},
"batched": {
"type": "boolean"
},
"calibrator_version": {
"type": "string"
},
"routing_policy_version": {
"type": "string"
},
"pages": {
"type": "number"
},
"billed_pages": {
"type": "number"
},
"request_id": {
"type": "string"
},
"warnings": {
"type": "array",
"items": {}
},
"doc_class": {
"type": "string"
}
},
"required": [
"model",
"tier",
"batched",
"calibrator_version",
"routing_policy_version",
"pages",
"billed_pages",
"request_id",
"warnings"
],
"additionalProperties": {}
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"top_up_url": {
"type": "string"
},
"retry_after": {
"type": "number"
},
"request_id": {
"type": "string"
}
},
"required": [
"code"
],
"additionalProperties": {}
}
},
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢velrim_job_status(job_id)
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.
Eingabe-Schema
{
"type": "object",
"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)."
}
},
"required": [
"job_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"job_id": {
"type": "string"
},
"status": {
"description": "\"running\" | \"succeeded\" | \"failed\" (additive-tolerant).",
"type": "string"
},
"result": {
"type": "object",
"properties": {
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"fields": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"properties": {
"value": {},
"state": {
"type": "string",
"enum": [
"present",
"null",
"missing"
]
},
"confidence": {
"type": "number"
},
"anchor": {
"type": "object",
"properties": {
"page": {
"type": "number"
},
"bbox": {
"type": "array",
"items": [
{
"type": "number"
},
{
"type": "number"
},
{
"type": "number"
},
{
"type": "number"
}
],
"description": "Corner rectangle [x0,y0,x1,y1] — NOT [x,y,w,h]."
},
"snippet": {
"type": "string"
},
"page_dims": {
"type": "object",
"properties": {
"width": {
"type": "number"
},
"height": {
"type": "number"
}
},
"required": [
"width",
"height"
],
"additionalProperties": {}
}
},
"required": [
"page",
"bbox",
"snippet",
"page_dims"
],
"additionalProperties": {}
},
"conflict": {
"type": "boolean"
},
"reason": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"state",
"reason"
],
"additionalProperties": {}
}
},
"meta": {
"type": "object",
"properties": {
"model": {
"type": "string"
},
"tier": {
"type": "string",
"description": "Routing tier, e.g. \"default\" | \"resampled\" | \"verify\"."
},
"batched": {
"type": "boolean"
},
"calibrator_version": {
"type": "string"
},
"routing_policy_version": {
"type": "string"
},
"pages": {
"type": "number"
},
"billed_pages": {
"type": "number"
},
"request_id": {
"type": "string"
},
"warnings": {
"type": "array",
"items": {}
},
"doc_class": {
"type": "string"
}
},
"required": [
"model",
"tier",
"batched",
"calibrator_version",
"routing_policy_version",
"pages",
"billed_pages",
"request_id",
"warnings"
],
"additionalProperties": {}
}
},
"required": [
"data",
"fields",
"meta"
],
"additionalProperties": {}
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"top_up_url": {
"type": "string"
},
"retry_after": {
"type": "number"
},
"request_id": {
"type": "string"
}
},
"required": [
"code"
],
"additionalProperties": {}
}
},
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}Community
Nachweis