MCP Server

Document Integrity Validator

io.github.OjasKord/document-integrity-validator-mcp
Legal & Compliance Payments & Fintech Public & reachable MCP 2025-11-25

What this MCP does

Validates individual documents and trade-finance document packages for completeness, standards compliance, and cross-document consistency.

check_document
Check Document Integrity
Validates a document for internal consistency and completeness against the applicable international standard for its type. Call this BEFORE approving a payment, releasing funds, or accepting a document submission -- at the moment a document arrives from an external party and no action has been taken. Use this when your agent has received a document from a counterparty and is about to take a financial or legal action based on its contents. Returns PASS / FLAG / FAIL / UNKNOWN_DOCUMENT_TYPE verdict on internal consistency and completeness, naming the applicable standard for the document type -- ICAO 9303 (passports), Hague-Visby Rules 1968 (bills of lading), ICC UCP 600 (letters of credit and certificates of origin), or ISPM 12 (phytosanitary certificates). A FAIL verdict means the document is internally inconsistent in a way that may indicate tampering -- acting on it creates unrecoverable compliance and financial exposure. Returns machine-readable verdict with named standard and specific flags. When you have 2-20 related documents (e.g. invoice, bill of lading, certificate of origin), call check_document_package instead (paid tier) -- it performs cross-document consistency checks check_document cannot see.
Read only Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'document_text': {'type': 'string', 'maxLength': 50000, 'description': 'Extracted text content from the document. Provide this or document_image or both.'}, 'document_image': {'type': 'string', 'maxLength': 10000000, 'description': 'Base64 encoded document image. Accepts raw base64 or a data URL (data:image/jpeg;base64,...). Supported types: JPEG, PNG, GIF, WEBP.'}, 'document_type_hint': {'type': 'string', 'maxLength': 200, 'description': 'What the calling agent believes the document type is, e.g. "bill_of_lading", "passport", "certificate_of_origin". Optional -- the validator identifies the type independently.'}, 'issuing_jurisdiction': {'type': 'string', 'maxLength': 200, 'description': 'Country or issuing body, e.g. "Singapore", "ICAO", "United Kingdom". Narrows jurisdiction-specific standard selection.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['agent_action', 'verdict', 'confidence', 'document_type_identified', 'assessed_against', 'known_issuing_standard', 'flags', 'reason', 'analysis_type', 'checked_at', '_disclaimer', 'calls_remaining', 'verdict_ttl', 'data_source_status'], 'properties': {'flags': {'type': 'array', 'items': {'type': 'string'}}, 'reason': {'type': 'string'}, 'verdict': {'enum': ['PASS', 'FLAG', 'FAIL', 'UNKNOWN_DOCUMENT_TYPE'], 'type': 'string'}, 'checked_at': {'type': 'string'}, 'confidence': {'enum': ['HIGH', 'MEDIUM', 'LOW', 'NONE'], 'type': 'string'}, '_disclaimer': {'type': 'string'}, 'hold_reason': {'type': 'string'}, 'retry_after': {'type': ['number', 'null']}, 'verdict_ttl': {'type': 'number'}, 'agent_action': {'enum': ['PROCEED', 'VERIFY_MANUALLY', 'HOLD', 'REFER_TO_HUMAN', 'UPGRADE_REQUIRED'], 'type': 'string'}, 'analysis_type': {'type': 'string'}, '_upgrade_notice': {'type': 'string'}, 'calls_remaining': {'anyOf': [{'type': 'number'}, {'type': 'string', 'const': 'unlimited'}]}, 'escalation_path': {'type': ['string', 'null']}, 'assessed_against': {'type': ['string', 'null'], 'description': 'Named standard, e.g. "ICAO Document 9303" -- null for UNKNOWN_DOCUMENT_TYPE'}, 'data_source_status': {'enum': ['full', 'degraded', 'partial'], 'type': 'string'}, 'known_issuing_standard': {'type': ['string', 'null']}, 'document_type_identified': {'type': ['string', 'null']}}, 'additionalProperties': False}
check_document_package
Check Document Package Integrity
Validates a package of 2-20 related trade finance documents for cross-document consistency. Call this BEFORE approving any multi-document trade finance transaction or cross-border shipment -- at the moment a set of 2-20 related documents arrives from an external party and funds have not been released. Use this when your agent has received a full trade finance package — such as invoice, bill of lading, and certificate of origin together — and must verify all documents are consistent with each other before releasing funds. Returns PASS/FLAG/FAIL verdict per document with mismatch details. Cross-checks all documents for consistency across numeric values, party names, reference numbers, dates, and commodity descriptions. A single inconsistency in a trade finance document package may indicate fraud -- funds released on a mismatched package have no recovery path. Do not use as a substitute for check_document when only one document requires verification.
Read only Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['documents'], 'properties': {'documents': {'type': 'array', 'items': {'type': 'object', 'required': ['label'], 'properties': {'label': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Agent-assigned identifier for this document in the package, e.g. "packing_list", "certificate_of_origin", "commercial_invoice". Used in cross-document conflict reporting.'}, 'document_text': {'type': 'string', 'maxLength': 50000, 'description': 'Extracted text content from this document.'}, 'document_image': {'type': 'string', 'maxLength': 10000000, 'description': 'Base64 encoded image of this document.'}, 'document_type_hint': {'type': 'string', 'maxLength': 200, 'description': 'Agent-suggested document type, e.g. "commercial_invoice".'}, 'issuing_jurisdiction': {'type': 'string', 'maxLength': 200, 'description': 'Country or issuing body for this specific document.'}}, 'additionalProperties': False}, 'maxItems': 20, 'minItems': 2, 'description': 'Array of 2 to 20 related documents to assess individually and cross-check against each other. Each document must have a unique label.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['agent_action', 'verdict', 'confidence', 'documents', 'cross_document_conflicts', 'package_verdict', 'package_agent_action', 'analysis_type', 'checked_at', '_disclaimer', 'calls_remaining', 'verdict_ttl', 'data_source_status'], 'properties': {'verdict': {'enum': ['PASS', 'FLAG', 'FAIL', 'UNKNOWN_DOCUMENT_TYPE'], 'type': 'string'}, 'documents': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'agent_action', 'verdict', 'confidence', 'document_type_identified', 'assessed_against', 'known_issuing_standard', 'flags', 'reason'], 'properties': {'flags': {'type': 'array', 'items': {'type': 'string'}}, 'label': {'type': 'string'}, 'reason': {'type': 'string'}, 'verdict': {'$ref': '#/properties/verdict'}, 'confidence': {'$ref': '#/properties/confidence'}, 'agent_action': {'$ref': '#/properties/agent_action'}, 'assessed_against': {'type': ['string', 'null']}, 'known_issuing_standard': {'type': ['string', 'null']}, 'document_type_identified': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'checked_at': {'type': 'string'}, 'confidence': {'enum': ['HIGH', 'MEDIUM', 'LOW', 'NONE'], 'type': 'string'}, '_disclaimer': {'type': 'string'}, 'verdict_ttl': {'type': 'number'}, 'agent_action': {'enum': ['PROCEED', 'VERIFY_MANUALLY', 'HOLD', 'REFER_TO_HUMAN', 'UPGRADE_REQUIRED'], 'type': 'string'}, 'analysis_type': {'type': 'string'}, 'calls_remaining': {'anyOf': [{'type': 'number'}, {'type': 'string', 'const': 'unlimited'}]}, 'package_verdict': {'$ref': '#/properties/verdict'}, 'data_source_status': {'enum': ['full', 'degraded', 'partial'], 'type': 'string'}, 'package_agent_action': {'$ref': '#/properties/agent_action'}, 'cross_document_conflicts': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}
Added
check_document_package
Sept. 17, 2026, 12:45 p.m.
Added
check_document
Sept. 17, 2026, 12:45 p.m.