MCP-Server

api

com.docimprint/api
KI & Agenten Wissen & Dokumentation Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Extracts, summarizes, translates, searches, and fact-checks documents and web pages, with evidence bundles, citations, receipts, and optional on-chain notarization.

add_document_to_collection
Add Document to Collection
Add an evidence bundle to a collection and trigger async vector indexing. Use after create_collection to populate a collection with documents. Once indexed, documents become searchable via search_collection and ask_collection. Indexing is async — poll get_job_status with the returned job_id until status is "complete". PREREQUISITE: Bundle must have status "complete" (check with get_bundle). Collection must be owned by your API key. Returns: { collection_id, bundle_id, job_id (poll for indexing completion) } Example prompts: - "Add my contract bundle ev_550e8400 to the Q4 Contracts collection." - "Put this evidence bundle into my Due Diligence Docs collection for search." - "Add document [bundle_id] to collection [col_id] with a title."
Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['collection_id', 'bundle_id'], 'properties': {'title': {'type': 'string', 'description': 'Optional display title for the document in this collection. Example: "Q4 2025 Financial Report"'}, 'bundle_id': {'type': 'string', 'description': 'Evidence bundle ID (ev_...) to add. Bundle must have status "complete". Example: "ev_550e8400-e29b-41d4-a716-446655440000"'}, 'collection_id': {'type': 'string', 'description': 'Collection ID (col_...) returned by create_collection. Example: "col_550e8400-e29b-41d4-a716-446655440000"'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['collection_id', 'bundle_id', 'job_id', 'receipt'], 'properties': {'job_id': {'type': 'string'}, 'receipt': {'anyOf': [{'type': 'object', 'required': ['receipt_id', 'bundle_id', 'agent_id', 'action', 'manifest_sha256', 'signed_at', 'signature', 'signer_address', 'key_id', 'algorithm'], 'properties': {'action': {'type': 'string'}, 'key_id': {'type': 'string'}, 'agent_id': {'type': 'string'}, 'algorithm': {'type': 'string', 'const': 'secp256k1-eip191'}, 'bundle_id': {'type': 'string'}, 'signature': {'type': 'string'}, 'signed_at': {'type': 'string'}, 'receipt_id': {'type': 'string'}, 'signer_address': {'type': 'string'}, 'manifest_sha256': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'bundle_id': {'type': 'string'}, 'collection_id': {'type': 'string'}}, 'additionalProperties': False}
ask_collection
Ask Collection
Answer a question using RAG over a document collection. Retrieves relevant chunks then synthesizes a cited answer with source attribution. Use when you need a direct answer grounded in your collection documents. For raw matching chunks (without synthesis), use search_collection instead. For single-document Q&A, use qa_url instead. PREREQUISITE: Collection must be populated via add_document_to_collection and indexed before results appear. Returns: { answer: string, sources: [{ bundle_id, chunk_id }], retrieval: [{ bundle_id, chunk_id, text, score }] } Example prompts: - "What are the key terms of the service agreement in my collection?" - "Based on my due diligence docs, what are the main risks?" - "Answer this question using all documents in the Q4 Contracts collection."
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['collection_id', 'question'], 'properties': {'question': {'type': 'string', 'description': 'Natural language question to answer from collection documents. Example: "What are the key terms of the service agreement?"'}, 'max_chunks': {'type': 'number', 'description': 'Max chunks to retrieve for context (default 8). Increase for broad questions, decrease for precision. Example: 12'}, 'collection_id': {'type': 'string', 'description': 'Collection ID (col_...) returned by create_collection. Example: "col_550e8400-e29b-41d4-a716-446655440000"'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['answer', 'sources', 'retrieval'], 'properties': {'answer': {'type': 'object', 'required': ['value', 'confidence', 'citations'], 'properties': {'value': {}, 'citations': {'type': 'array', 'items': {'type': 'object', 'required': ['quote', 'paragraphs', 'confidence'], 'properties': {'page': {'type': 'number'}, 'quote': {'type': 'string'}, 'artifact': {'type': 'string'}, 'char_end': {'type': 'number'}, 'chunk_id': {'type': 'string'}, 'char_start': {'type': 'number'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'paragraphs': {'type': 'array', 'items': {'type': 'number'}}}, 'additionalProperties': False}}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}}, 'additionalProperties': False}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['bundle_id', 'chunk_id'], 'properties': {'chunk_id': {'type': 'string'}, 'bundle_id': {'type': 'string'}}, 'additionalProperties': False}}, 'retrieval': {'type': 'array', 'items': {'type': 'object', 'required': ['bundle_id', 'chunk_id', 'text', 'score'], 'properties': {'text': {'type': 'string'}, 'score': {'type': 'number'}, 'chunk_id': {'type': 'string'}, 'bundle_id': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
check_claims
Check Claims
Verify a list of factual claims against document text. Uses a quality AI model with citation-level evidence. Use after extract_text or extract_url when you need to validate specific factual assertions. For open-ended questions about a document, use qa_url instead. For multi-document investigation, use ask_collection. Typical workflow: extract_text/extract_url → check_claims. Returns: { claims: [{ claim, status: "supported"|"contradicted"|"not_found", evidence: { quote, paragraphs[] }, confidence: "high"|"medium"|"low" }], truncated: boolean } Example prompts: - "Check whether this contract mentions a liability cap of $1M." - "Verify these claims against the document: [claims list]." - "Does the report actually say revenue grew 23%?"
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['text', 'claims'], 'properties': {'text': {'type': 'string', 'description': 'Document text to check claims against. Obtain via extract_text or extract_url. Example: "ACME Corp was founded in 2010. Revenue exceeded $1M in 2024."'}, 'claims': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1, 'description': 'Factual statements to verify. Each claim is checked independently against the text. Example: ["Founded in 2010", "Revenue exceeded $1M"]'}, 'max_tokens': {'type': 'number', 'description': 'Input length cap (1 token â\x89\x88 4 chars). Default ~3000 tokens. Truncates input text, not the output. Example: 4000'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['claims', 'truncated'], 'properties': {'claims': {'type': 'array', 'items': {'type': 'object', 'required': ['claim', 'status', 'evidence', 'confidence'], 'properties': {'claim': {'type': 'string'}, 'status': {'enum': ['supported', 'contradicted', 'not_found'], 'type': 'string'}, 'evidence': {'type': 'object', 'required': ['quote', 'paragraphs'], 'properties': {'quote': {'type': 'string'}, 'paragraphs': {'type': 'array', 'items': {'type': 'number'}}}, 'additionalProperties': False}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}}, 'additionalProperties': False}}, 'truncated': {'type': 'boolean'}}, 'additionalProperties': False}
create_collection
Create Collection
Create a named document collection for cross-document semantic search and RAG-based Q&A. Free — no credits consumed. Use when you want to group related evidence bundles for unified search (search_collection) or question answering (ask_collection). NOTE: Collections start empty. Add evidence bundles with add_document_to_collection. Indexing is async — once complete, use search_collection or ask_collection. Returns: { collection_id: string (col_...), name: string } Example prompts: - "Create a collection called Q4 Contracts for my quarterly reports." - "Set up a new document group named Due Diligence Docs." - "Make a collection to organize my vendor agreements."
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Human-readable collection name. Example: "Q4 Contracts" or "Due Diligence Docs"'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['collection_id', 'name'], 'properties': {'name': {'type': 'string'}, 'collection_id': {'type': 'string'}}, 'additionalProperties': False}
extract_structured
Extract Structured Data
Extract typed fields from document text using a caller-defined schema. Uses a quality AI model with retry logic. Use when you need specific data points from a document rather than full text. For invoices with known fields, parse_invoice (prebuilt schema) may be simpler. For general summarization, use summarize_document instead. Schema format: { "field_name": "type hint or description" } — e.g. { "contract_date": "ISO date", "party_a": "string", "penalty_usd": "number" }. Returns: { data: { <field>: value }, data_cited: { <field>: { value, confidence: "high"|"medium"|"low", citations: [{ quote, paragraphs[] }] } } } Example prompts: - "Extract the contract date, parties, and penalty amount from this agreement." - "Pull the vendor name, PO number, and total from this document." - "Get me all named fields from this form using my custom schema."
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['text', 'schema'], 'properties': {'text': {'type': 'string', 'description': 'Document text to extract from. Obtain via extract_text or extract_url. Example: "This Service Agreement is entered into on 2025-03-15 between ACME Corp and Beta Inc..."'}, 'schema': {'type': 'object', 'description': 'Field map: describe each field you want extracted with a type hint. Example: { "total_usd": "number", "vendor": "string", "invoice_date": "ISO date YYYY-MM-DD" }', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'max_tokens': {'type': 'number', 'description': 'Input length cap (1 token â\x89\x88 4 chars). Default ~2500 tokens. Truncates input, not output. Example: 3000'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['data', 'data_cited'], 'properties': {'data': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'data_cited': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'object', 'required': ['value', 'confidence', 'citations'], 'properties': {'value': {}, 'citations': {'type': 'array', 'items': {'type': 'object', 'required': ['quote', 'paragraphs', 'confidence'], 'properties': {'page': {'type': 'number'}, 'quote': {'type': 'string'}, 'artifact': {'type': 'string'}, 'char_end': {'type': 'number'}, 'chunk_id': {'type': 'string'}, 'char_start': {'type': 'number'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'paragraphs': {'type': 'array', 'items': {'type': 'number'}}}, 'additionalProperties': False}}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
extract_tables
Extract Tables
Extract tables and forms as Markdown from a PDF or image (base64-encoded). Use when the document contains structured tabular data such as financial statements, data sheets, or forms. For plain prose documents, use extract_text instead. Returns: { pages: number, text: string } — text contains Markdown-formatted tables. Example prompts: - "Extract the tables from this financial statement." - "Pull the data table from this PDF into Markdown format." - "Get the tabular data from this form document."
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['document_base64', 'mime_type'], 'properties': {'mime_type': {'enum': ['application/pdf', 'image/jpeg', 'image/png', 'image/webp'], 'type': 'string', 'description': 'MIME type of the document. Example: "application/pdf" for PDF bank statements, "image/jpeg" for photo of a form.'}, 'document_base64': {'type': 'string', 'description': 'Base64-encoded PDF or image bytes (max ~15 MB). Example: "JVBERi0xLjcNJeLjz9MNCj..." (truncated PDF base64)'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['pages', 'text'], 'properties': {'text': {'type': 'string'}, 'pages': {'type': 'number'}}, 'additionalProperties': False}
extract_text
Extract Text
Extract plain text from a PDF or image (base64-encoded). Use when you need raw text for downstream AI analysis (summarization, claim checking, structured extraction). For documents at a public URL, use extract_url instead (no base64 encoding needed). Returns: { pages: number, text: string } Example prompts: - "Extract the text from this scanned contract so I can search it." - "Give me the raw text from this PDF document." - "OCR this image and return the text content."
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['document_base64', 'mime_type'], 'properties': {'mime_type': {'enum': ['application/pdf', 'image/jpeg', 'image/png', 'image/webp'], 'type': 'string', 'description': 'MIME type of the document. Example: "application/pdf" for PDFs, "image/png" for PNG screenshots.'}, 'document_base64': {'type': 'string', 'description': 'Base64-encoded PDF or image bytes (max ~15 MB). Example: "JVBERi0xLjcNJeLjz9MNCj..." (truncated PDF base64)'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['pages', 'text'], 'properties': {'text': {'type': 'string'}, 'pages': {'type': 'number'}}, 'additionalProperties': False}
extract_url
Extract Text from URL
Fetch a public HTTPS URL and return extracted text and page metadata. Lean mode — no evidence bundle stored, no bundle_id returned. Use for raw text extraction from web pages and online documents. Use summarize_url for summaries, qa_url for Q&A, translate_url for translation, extract_text for base64 file uploads. Returns: { url, title, word_count, text, final_url (after redirects) } Example prompts: - "Extract the text from https://example.com/report.pdf for me." - "Get me the raw content of this web page: [URL]." - "Pull the text from this online article so I can analyze it."
Nur Lesen Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Public HTTPS URL to fetch and extract. Example: "https://example.com/report.pdf" or "https://blog.example.com/article"'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url', 'text'], 'properties': {'url': {'type': 'string'}, 'text': {'type': 'string'}, 'title': {'type': 'string'}, 'final_url': {'type': 'string'}, 'word_count': {'type': 'number'}}, 'additionalProperties': False}
get_bundle
Get Evidence Bundle
Retrieve metadata for an evidence bundle (ev_...) owned by your API key. Free — no credits consumed. Use for quick status/metadata lookups such as checking if a bundle is complete, finding its notarization status, or viewing retention/legal hold info. For deep cryptographic integrity verification (hash + signature + artifact checks), use verify_bundle instead. Returns: { bundle_id, source_url, mode, status: "pending"|"complete"|"failed", manifest_sha256, manifest_signature, signer_address, attestation_tx, attestation_at, eas_uid, parent_bundle_id, superseded_by, legal_hold: boolean, retention_until, created_at } Example prompts: - "Show me the metadata for bundle ev_550e8400." - "Check the status and notarization info of my evidence bundle." - "Get me the details of bundle [ev_id] — is it complete?"
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['bundle_id'], 'properties': {'bundle_id': {'type': 'string', 'description': 'Evidence bundle ID (ev_...) returned by extract or notarize_bundle. Example: "ev_550e8400-e29b-41d4-a716-446655440000"'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['bundle_id', 'source_url', 'mode', 'status', 'manifest_sha256', 'manifest_signature', 'signer_address', 'attestation_tx', 'attestation_at', 'eas_uid', 'parent_bundle_id', 'superseded_by', 'legal_hold', 'retention_until', 'created_at', 'receipt'], 'properties': {'mode': {'type': 'string'}, 'status': {'enum': ['pending', 'complete', 'failed'], 'type': 'string'}, 'eas_uid': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'receipt': {'anyOf': [{'type': 'object', 'required': ['receipt_id', 'bundle_id', 'agent_id', 'action', 'manifest_sha256', 'signed_at', 'signature', 'signer_address', 'key_id', 'algorithm'], 'properties': {'action': {'type': 'string'}, 'key_id': {'type': 'string'}, 'agent_id': {'type': 'string'}, 'algorithm': {'type': 'string', 'const': 'secp256k1-eip191'}, 'bundle_id': {'type': 'string'}, 'signature': {'type': 'string'}, 'signed_at': {'type': 'string'}, 'receipt_id': {'type': 'string'}, 'signer_address': {'type': 'string'}, 'manifest_sha256': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'bundle_id': {'type': 'string'}, 'created_at': {'type': 'string'}, 'legal_hold': {'type': 'boolean'}, 'source_url': {'type': 'string'}, 'superseded_by': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'attestation_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'attestation_tx': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'signer_address': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'manifest_sha256': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'retention_until': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'parent_bundle_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'manifest_signature': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}
get_job_status
Get Job Status
Poll the status of an async job (extract, indexing, batch). Free — no credits consumed. Use after add_document_to_collection or async extract to check when processing completes. Poll this endpoint in a loop until status is "complete" or "failed". Completed jobs include the bundle_id or result_json in the response. Jobs are created when you POST /v1/extract with a webhook, or when add_document_to_collection triggers async indexing. Returns: { id, type: "extract"|"extract_batch"|"index_collection", status: "queued"|"processing"|"complete"|"failed"|"cancelled", progress_pct: number (0–100), progress_message, bundle_id (when complete), result_json (when complete), error (when failed), created_at, completed_at } Example prompts: - "Check the status of my indexing job job_550e8400." - "Is my async extract job done yet?" - "Poll job [job_id] — what is the current progress?"
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['job_id'], 'properties': {'job_id': {'type': 'string', 'description': 'Job ID (job_...) returned by async extract or add_document_to_collection. Example: "job_550e8400-e29b-41d4-a716-446655440000"'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'type', 'status', 'progress_pct', 'progress_message', 'bundle_id', 'collection_id', 'result_json', 'error', 'created_at', 'completed_at'], 'properties': {'id': {'type': 'string'}, 'type': {'enum': ['extract', 'extract_batch', 'index_collection'], 'type': 'string'}, 'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'status': {'enum': ['queued', 'processing', 'complete', 'failed', 'cancelled'], 'type': 'string'}, 'bundle_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'created_at': {'type': 'string'}, 'result_json': {'anyOf': [{}, {'type': 'null'}]}, 'completed_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'progress_pct': {'type': 'number'}, 'collection_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'progress_message': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}
get_quota
Get Quota
Get current credit balance and plan details for your API key. Free — no credits consumed. Check this before running credit-consuming operations (extract, summarize, etc.) to avoid QUOTA_EXCEEDED errors. Returns plan tier, billing period, and usage breakdown. Returns: { plan_id, billing_period (YYYY-MM), credits_used, credits_limit, credits_remaining, status: "active"|"suspended" } Example prompts: - "How many credits do I have left this month?" - "Check my current quota and plan status." - "Am I going to hit my credit limit soon?"
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['plan_id', 'billing_period', 'credits_used', 'credits_limit', 'credits_remaining', 'status'], 'properties': {'status': {'enum': ['active', 'suspended', 'revoked'], 'type': 'string'}, 'plan_id': {'type': 'string'}, 'credits_used': {'type': 'number'}, 'credits_limit': {'type': 'number'}, 'billing_period': {'type': 'string'}, 'credits_remaining': {'type': 'number'}}, 'additionalProperties': False}
list_collections
List Collections
List all document collections owned by your API key. Free — no credits consumed. Use before search_collection or ask_collection when you need the collection ID. Supports pagination with limit and offset. Returns: { collections: [{ id, name, created_at }] } Example prompts: - "List all my document collections." - "Show me the collections I have created." - "What collections do I own? List them."
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'number', 'description': 'Max collections to return (default 50, max 100). Example: 20'}, 'offset': {'type': 'number', 'description': 'Pagination offset (default 0). Example: 0'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['collections'], 'properties': {'collections': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'created_at'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'created_at': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
notarize_bundle
Notarize Bundle On-Chain
Notarize an evidence bundle on-chain by writing its manifest SHA-256 to the blockchain (Base/EVM). Creates a permanent, tamper-evident on-chain record of the document fingerprint. If the bundle is already notarized, returns the existing attestation immediately (idempotent). Use when you need an immutable on-chain timestamp proving a document existed at a point in time. For quick integrity checks without on-chain cost, use verify_bundle instead. PREREQUISITE: Bundle status must be "complete". Check status with get_bundle first. NOTE: Costs gas (ETH). The on-chain record is permanent and cannot be deleted even if the bundle is later purged. Returns: { bundle_id, attestation: { tx_hash, network, attested_at, key_id, eas_uid?, schema_uid? } } Example prompts: - "Notarize bundle ev_550e8400 on-chain so I have a permanent record." - "Put the fingerprint of my evidence bundle on the blockchain." - "Create an on-chain timestamp for this document bundle."
Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['bundle_id'], 'properties': {'bundle_id': {'type': 'string', 'description': 'Evidence bundle ID (ev_...) to notarize. Bundle must have status "complete". Example: "ev_550e8400-e29b-41d4-a716-446655440000"'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['bundle_id', 'attestation', 'receipt'], 'properties': {'receipt': {'anyOf': [{'type': 'object', 'required': ['receipt_id', 'bundle_id', 'agent_id', 'action', 'manifest_sha256', 'signed_at', 'signature', 'signer_address', 'key_id', 'algorithm'], 'properties': {'action': {'type': 'string'}, 'key_id': {'type': 'string'}, 'agent_id': {'type': 'string'}, 'algorithm': {'type': 'string', 'const': 'secp256k1-eip191'}, 'bundle_id': {'type': 'string'}, 'signature': {'type': 'string'}, 'signed_at': {'type': 'string'}, 'receipt_id': {'type': 'string'}, 'signer_address': {'type': 'string'}, 'manifest_sha256': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'bundle_id': {'type': 'string'}, 'attestation': {'type': 'object', 'required': ['tx_hash', 'network', 'attested_at'], 'properties': {'key_id': {'type': 'string'}, 'eas_uid': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'network': {'type': 'string'}, 'tx_hash': {'type': 'string'}, 'schema_uid': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'attested_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'additionalProperties': False}
parse_invoice
Parse Invoice
Parse a receipt or invoice document into structured fields. Uses a quality AI model for accuracy. Use when you need to extract line items, totals, and merchant info from financial documents. For general document text, use extract_text instead. Returns: { invoice: { merchant, date (YYYY-MM-DD), line_items[], subtotal, tax, total }, cited: { <field>: { value, confidence: "high"|"medium"|"low", citations: [{ quote, paragraphs[] }] } } } Example prompts: - "Parse this invoice and give me the line items and total." - "Extract the merchant, date, and amounts from this receipt." - "Read this scanned invoice and return structured data."
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['document_base64', 'mime_type'], 'properties': {'mime_type': {'enum': ['application/pdf', 'image/jpeg', 'image/png', 'image/webp'], 'type': 'string', 'description': 'MIME type of the document. Example: "application/pdf" for scanned invoice PDF, "image/jpeg" for a receipt photo.'}, 'document_base64': {'type': 'string', 'description': 'Base64-encoded PDF or image of the receipt/invoice (max ~15 MB). Example: "JVBERi0xLjcNJeLjz9MNCj..." (base64-encoded invoice PDF)'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['invoice', 'cited'], 'properties': {'cited': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'object', 'required': ['value', 'confidence', 'citations'], 'properties': {'value': {}, 'citations': {'type': 'array', 'items': {'type': 'object', 'required': ['quote', 'paragraphs', 'confidence'], 'properties': {'page': {'type': 'number'}, 'quote': {'type': 'string'}, 'artifact': {'type': 'string'}, 'char_end': {'type': 'number'}, 'chunk_id': {'type': 'string'}, 'char_start': {'type': 'number'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'paragraphs': {'type': 'array', 'items': {'type': 'number'}}}, 'additionalProperties': False}}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}}, 'additionalProperties': False}}, 'invoice': {'type': 'object', 'required': ['merchant', 'date', 'line_items', 'subtotal', 'tax', 'total'], 'properties': {'tax': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'date': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'total': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'merchant': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'subtotal': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': ['description', 'quantity', 'unit_price', 'total'], 'properties': {'total': {'type': 'number'}, 'quantity': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'unit_price': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'description': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}}, 'additionalProperties': False}
qa_url
Ask a Question About a URL
Fetch a public HTTPS URL and answer a specific question about its content. Lean mode — no bundle stored. Use when you have a precise question about a web page. For a broad summary, use summarize_url. For multi-document Q&A, use ask_collection instead. Returns: { url, answer, answer_cited: { value, confidence, citations[] }, confidence: "high"|"medium"|"low", truncated } Example prompts: - "What is the refund policy at https://docs.example.com/policy?" - "Look at [URL] and tell me what the delivery terms are." - "Answer this question based on the content of [URL]: [question]."
Nur Lesen Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url', 'question'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Public HTTPS URL to fetch and question. Example: "https://docs.example.com/policy"'}, 'question': {'type': 'string', 'description': 'Specific question to answer from the page content. Example: "What is the refund policy?"'}, 'max_tokens': {'type': 'number', 'description': 'Input length cap (1 token â\x89\x88 4 chars). Truncates fetched page content, not the answer. Example: 4000'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url', 'truncated'], 'properties': {'url': {'type': 'string'}, 'answer': {'type': 'string'}, 'truncated': {'type': 'boolean'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'answer_cited': {'type': 'object', 'required': ['value', 'confidence', 'citations'], 'properties': {'value': {}, 'citations': {'type': 'array', 'items': {'type': 'object', 'required': ['quote', 'paragraphs', 'confidence'], 'properties': {'page': {'type': 'number'}, 'quote': {'type': 'string'}, 'artifact': {'type': 'string'}, 'char_end': {'type': 'number'}, 'chunk_id': {'type': 'string'}, 'char_start': {'type': 'number'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'paragraphs': {'type': 'array', 'items': {'type': 'number'}}}, 'additionalProperties': False}}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
search_collection
Search Collection
Semantic (vector) search across documents in a collection. Returns ranked text chunks with relevance scores. Free — no credits consumed. Use when you need raw matching chunks from a collection. For a synthesized cited answer from the same context, use ask_collection instead. PREREQUISITE: Collection must be populated via add_document_to_collection and async indexing must complete (poll get_job_status) before results appear. Returns: { results: [{ bundle_id, chunk_id, text, score: number (0–1), title? }] } Example prompts: - "Search my Q4 Contracts collection for mentions of liability cap." - "Find the clause about data retention in my due diligence docs." - "Search for revenue numbers across my quarterly reports."
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['collection_id', 'query'], 'properties': {'limit': {'type': 'number', 'description': 'Max chunks to return (default 10, max 50). Example: 5'}, 'query': {'type': 'string', 'description': 'Natural language search query. Example: "What were the revenue numbers for Q4?"'}, 'collection_id': {'type': 'string', 'description': 'Collection ID (col_...) returned by create_collection. Example: "col_550e8400-e29b-41d4-a716-446655440000"'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['bundle_id', 'chunk_id', 'text', 'score'], 'properties': {'text': {'type': 'string'}, 'score': {'type': 'number'}, 'chunk_id': {'type': 'string'}, 'bundle_id': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
summarize_document
Summarize Document
Summarize document text into a prose summary and key points with citations. Use after extract_text or extract_url when you need a condensed understanding of a long document. For single-sentence Q&A, use qa_url instead. For extracting specific fields, use extract_structured. Typical workflow: extract_text/extract_url → summarize_document. Returns: { summary: string, key_points: string[], summary_cited: { value, confidence, citations[] }, key_points_cited: [{ text, citations[] }], truncated: boolean, strategy: "full"|"truncated"|"chunked" } Example prompts: - "Summarize this financial report and give me the key points." - "What are the main takeaways from this document?" - "Give me a concise summary of this 50-page report."
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'Document text to summarize. Obtain via extract_text or extract_url. Example: "The Q4 2025 financial report shows revenue growth of 23% year-over-year..."'}, 'max_tokens': {'type': 'number', 'description': 'Input length cap (1 token â\x89\x88 4 chars). Default ~3000 tokens. Truncates input, not output. Example: 4000'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['summary', 'key_points', 'summary_cited', 'key_points_cited', 'truncated', 'strategy'], 'properties': {'summary': {'type': 'string'}, 'strategy': {'enum': ['full', 'truncated', 'chunked'], 'type': 'string'}, 'truncated': {'type': 'boolean'}, 'key_points': {'type': 'array', 'items': {'type': 'string'}}, 'summary_cited': {'type': 'object', 'required': ['value', 'confidence', 'citations'], 'properties': {'value': {}, 'citations': {'type': 'array', 'items': {'type': 'object', 'required': ['quote', 'paragraphs', 'confidence'], 'properties': {'page': {'type': 'number'}, 'quote': {'type': 'string'}, 'artifact': {'type': 'string'}, 'char_end': {'type': 'number'}, 'chunk_id': {'type': 'string'}, 'char_start': {'type': 'number'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'paragraphs': {'type': 'array', 'items': {'type': 'number'}}}, 'additionalProperties': False}}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}}, 'additionalProperties': False}, 'key_points_cited': {'type': 'array', 'items': {'type': 'object', 'required': ['text', 'citations'], 'properties': {'text': {'type': 'string'}, 'citations': {'type': 'array', 'items': {'type': 'object', 'required': ['quote', 'paragraphs', 'confidence'], 'properties': {'page': {'type': 'number'}, 'quote': {'type': 'string'}, 'artifact': {'type': 'string'}, 'char_end': {'type': 'number'}, 'chunk_id': {'type': 'string'}, 'char_start': {'type': 'number'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'paragraphs': {'type': 'array', 'items': {'type': 'number'}}}, 'additionalProperties': False}}}, 'additionalProperties': False}}}, 'additionalProperties': False}
summarize_url
Summarize URL
Fetch a public HTTPS URL and return a prose summary with key points. Lean mode — no bundle stored. Use when you need a condensed understanding of a web page. For raw text, use extract_url. For asking a specific question about a page, use qa_url. Returns: { url, summary, key_points: string[], truncated: boolean, word_count } Example prompts: - "Summarize https://en.wikipedia.org/wiki/Artificial_intelligence for me." - "Give me the key points from this blog post: [URL]." - "What is this article about? Summarize [URL]."
Nur Lesen Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Public HTTPS URL to fetch and summarize. Example: "https://en.wikipedia.org/wiki/Artificial_intelligence"'}, 'max_tokens': {'type': 'number', 'description': 'Input length cap (1 token â\x89\x88 4 chars). Truncates fetched page content, not the output summary. Example: 4000'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url', 'truncated'], 'properties': {'url': {'type': 'string'}, 'summary': {'type': 'string'}, 'truncated': {'type': 'boolean'}, 'key_points': {'type': 'array', 'items': {'type': 'string'}}, 'word_count': {'type': 'number'}}, 'additionalProperties': False}
translate_url
Translate URL
Fetch a public HTTPS URL and return its content translated into a target language. Lean mode — no bundle stored. Use when you need to understand web content in a different language. For extracting raw untranslated text, use extract_url instead. Returns: { url, translated_text, target_lang, truncated } Example prompts: - "Translate https://example.de/artikel into English for me." - "Translate this German article into Spanish: [URL]." - "Fetch [URL] and give me the French translation."
Nur Lesen Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url', 'target_lang'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Public HTTPS URL to fetch and translate. Example: "https://example.de/artikel"'}, 'max_tokens': {'type': 'number', 'description': 'Input length cap (1 token â\x89\x88 4 chars). Truncates fetched page content before translation. Example: 4000'}, 'target_lang': {'type': 'string', 'description': 'ISO 639-1 language code for the target language. Example: "es" for Spanish, "fr" for French, "de" for German, "ja" for Japanese, "zh" for Chinese'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url', 'target_lang', 'truncated'], 'properties': {'url': {'type': 'string'}, 'truncated': {'type': 'boolean'}, 'target_lang': {'type': 'string'}, 'translated_text': {'type': 'string'}}, 'additionalProperties': False}
verify_action_receipt
Verify Action Receipt
Independently verify a signed action receipt (rcpt_...) returned by get_bundle, verify_bundle, notarize_bundle, or add_document_to_collection. Free — no credits consumed. Proves both that the receipt signature is authentic AND that the manifest_sha256 it was bound to still matches the bundle's current manifest — i.e. that the action was not performed against a stale or since-superseded document. Use for third-party audit of an agent's prior actions. Returns: { receipt_id, valid: boolean, signature_valid: boolean, manifest_matches_current: boolean, bundle_id, agent_id, action, manifest_sha256, signer_address, signed_at, tampered: string[] } Example prompts: - "Verify action receipt rcpt_550e8400 is authentic and still current." - "Was this receipt signed against the real document, or a stale copy?"
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['receipt_id'], 'properties': {'receipt_id': {'type': 'string', 'description': 'Action receipt ID (rcpt_...) returned in the receipt field of another tool\'s response. Example: "rcpt_550e8400-e29b-41d4-a716-446655440000"'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['receipt_id', 'valid', 'signature_valid', 'manifest_matches_current', 'bundle_id', 'agent_id', 'action', 'manifest_sha256', 'signer_address', 'signed_at', 'tampered'], 'properties': {'valid': {'type': 'boolean'}, 'action': {'type': 'string'}, 'agent_id': {'type': 'string'}, 'tampered': {'type': 'array', 'items': {'type': 'string'}}, 'bundle_id': {'type': 'string'}, 'signed_at': {'type': 'string'}, 'receipt_id': {'type': 'string'}, 'signer_address': {'type': 'string'}, 'manifest_sha256': {'type': 'string'}, 'signature_valid': {'type': 'boolean'}, 'manifest_matches_current': {'type': 'boolean'}}, 'additionalProperties': False}
verify_bundle
Verify Evidence Bundle
Verify the cryptographic integrity of an evidence bundle (ev_...) owned by your API key. Checks manifest hash, EIP-191 signature, and R2 artifact hashes. Free — no credits consumed. Use when you need to confirm a bundle has not been tampered with. For quick metadata lookups (without full crypto verification), use get_bundle instead. Returns: { valid: boolean, bundle_id, manifest_sha256, checks: { status, manifest_hash, signature, artifacts: [{ name, ok }] }, tampered: string[], signer_address: string|null, attestation_tx: string|null, url: string, captured_at: string } Example prompts: - "Verify the cryptographic integrity of bundle ev_550e8400." - "Is this evidence bundle still valid and untampered?" - "Deep-check the manifest hash and signature of my bundle."
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['bundle_id'], 'properties': {'bundle_id': {'type': 'string', 'description': 'Evidence bundle ID (ev_...) returned by extract or notarize. Example: "ev_550e8400-e29b-41d4-a716-446655440000"'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['bundle_id', 'valid', 'manifest_sha256', 'checks', 'tampered', 'receipt'], 'properties': {'url': {'type': 'string'}, 'valid': {'type': 'boolean'}, 'checks': {'type': 'object', 'required': ['status', 'manifest_hash', 'signature', 'artifacts', 'attestation'], 'properties': {'status': {'type': 'boolean'}, 'artifacts': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'ok'], 'properties': {'ok': {'type': 'boolean'}, 'name': {'type': 'string'}, 'actual': {'type': 'string'}, 'expected': {'type': 'string'}}, 'additionalProperties': False}}, 'signature': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'attestation': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'manifest_hash': {'type': 'boolean'}}, 'additionalProperties': False}, 'receipt': {'anyOf': [{'type': 'object', 'required': ['receipt_id', 'bundle_id', 'agent_id', 'action', 'manifest_sha256', 'signed_at', 'signature', 'signer_address', 'key_id', 'algorithm'], 'properties': {'action': {'type': 'string'}, 'key_id': {'type': 'string'}, 'agent_id': {'type': 'string'}, 'algorithm': {'type': 'string', 'const': 'secp256k1-eip191'}, 'bundle_id': {'type': 'string'}, 'signature': {'type': 'string'}, 'signed_at': {'type': 'string'}, 'receipt_id': {'type': 'string'}, 'signer_address': {'type': 'string'}, 'manifest_sha256': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'tampered': {'type': 'array', 'items': {'type': 'string'}}, 'bundle_id': {'type': 'string'}, 'captured_at': {'type': 'string'}, 'attestation_tx': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'signer_address': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'manifest_sha256': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}
Entfernt
url.translate
1. October 2026 02:53
Entfernt
url.summarize
1. October 2026 02:53
Entfernt
url.qa
1. October 2026 02:53
Entfernt
url.extract
1. October 2026 02:53
Entfernt
receipt.verify
1. October 2026 02:53
Entfernt
receipt.list
1. October 2026 02:53
Entfernt
job.status
1. October 2026 02:53
Entfernt
document.summarize
1. October 2026 02:53
Entfernt
document.parse_invoice
1. October 2026 02:53
Entfernt
document.extract_text
1. October 2026 02:53
Entfernt
document.extract_tables
1. October 2026 02:53
Entfernt
document.extract_structured
1. October 2026 02:53
Entfernt
document.check_claims
1. October 2026 02:53
Entfernt
collection.search
1. October 2026 02:53
Entfernt
collection.list
1. October 2026 02:53
Entfernt
collection.create
1. October 2026 02:53
Entfernt
collection.ask
1. October 2026 02:53
Entfernt
collection.add_document
1. October 2026 02:53
Entfernt
bundle.verify
1. October 2026 02:53
Entfernt
bundle.notarize
1. October 2026 02:53
Entfernt
bundle.get
1. October 2026 02:53
Entfernt
account.quota
1. October 2026 02:53
Hinzugefügt
get_quota
1. October 2026 02:53
Hinzugefügt
add_document_to_collection
1. October 2026 02:53
Hinzugefügt
list_collections
1. October 2026 02:53
Hinzugefügt
get_job_status
1. October 2026 02:53
Hinzugefügt
verify_action_receipt
1. October 2026 02:53
Hinzugefügt
notarize_bundle
1. October 2026 02:53
Hinzugefügt
get_bundle
1. October 2026 02:53
Hinzugefügt
translate_url
1. October 2026 02:53