Skip to main content
Glama

Document Integrity Validator

Server Details

AI reasoning checks any document against known international standards before your agent acts on it.

Ownership verified
Status
Healthy
Uptime
99.8% over 41 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
OjasKord/document-integrity-validator-mcp
GitHub Stars
0
Server Listing
Document Integrity Validator MCP

TDQS

A4.5/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct scopes: one validates a single document, the other validates a multi-document package. The descriptions explicitly cross-reference each other and state when to use which, leaving no ambiguity.

Naming Consistency5/5

Both tool names follow the same verb_noun pattern: 'check_document' and 'check_document_package'. The suffix '_package' clearly extends the base name without changing the verb style, resulting in a consistent, predictable naming scheme.

Tool Count3/5

With only two tools, the server feels thin for a domain that could include single-document validation, multi-document validation, and possibly standard lookup or generation. However, the two tools cover the two distinct input types, making the count borderline rather than clearly insufficient.

Completeness3/5

The tools cover single-document standard compliance and multi-document cross-checking, but the package tool only performs cross-document checks, not internal standard compliance. The description telling users to call check_document_package 'instead' of check_document is misleading—a full package validation would require running both tools sequentially, representing a notable gap.

Available Tools

2 tools
check_documentCheck Document IntegrityA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
document_textNoExtracted text content from the document. Provide this or document_image or both.
document_imageNoBase64 encoded document image. Accepts raw base64 or a data URL (data:image/jpeg;base64,...). Supported types: JPEG, PNG, GIF, WEBP.
document_type_hintNoWhat 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_jurisdictionNoCountry or issuing body, e.g. "Singapore", "ICAO", "United Kingdom". Narrows jurisdiction-specific standard selection.

Output Schema

ParametersJSON Schema
NameRequiredDescription
flagsYes
reasonYes
verdictYes
checked_atYes
confidenceYes
_disclaimerYes
hold_reasonNo
retry_afterNo
verdict_ttlYes
agent_actionYes
analysis_typeYes
_upgrade_noticeNo
calls_remainingYes
escalation_pathNo
assessed_againstYesNamed standard, e.g. "ICAO Document 9303" -- null for UNKNOWN_DOCUMENT_TYPE
data_source_statusYes
known_issuing_standardYes
document_type_identifiedYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare read-only and non-destructive, but description adds rich behavioral context: verdicts (PASS/FLAG/FAIL/UNKNOWN_DOCUMENT_TYPE), applicable standards, and the significant warning that FAIL 'may indicate tampering' and acting 'creates unrecoverable compliance and financial exposure.' No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, followed by when-to-use, return values, and alternative tool. Each sentence earns its place with no filler; the length is justified by the need to explain multiple standards and risk implications.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Extremely complete: covers purpose, invocation timing, verdict outputs, risk consequences, and sibling differentiation. Output schema exists and the description still describes machine-readable verdicts and named standards, leaving no practical gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with descriptions for all 4 parameters, so baseline 3 applies. The description adds no parameter-specific semantics beyond the schema, though its listing of standards could inform document_type_hint.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it 'Validates a document for internal consistency and completeness against the applicable international standard for its type.' Specific verb, resource, and scope, and differentiates from sibling by noting check_document_package handles cross-document consistency.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to call 'BEFORE approving a payment, releasing funds, or accepting a document submission' and when about to 'take a financial or legal action.' Names the alternative tool check_document_package for 2-20 related documents, providing a clear exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_document_packageCheck Document Package IntegrityA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
documentsYesArray of 2 to 20 related documents to assess individually and cross-check against each other. Each document must have a unique label.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictYes
documentsYes
checked_atYes
confidenceYes
_disclaimerYes
verdict_ttlYes
agent_actionYes
analysis_typeYes
calls_remainingYes
package_verdictYes
data_source_statusYes
package_agent_actionYes
cross_document_conflictsYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and destructiveHint=false, and the description adds substantial behavioral detail: returns PASS/FLAG/FAIL verdicts per document, cross-checks numeric values, party names, reference numbers, dates, and commodity descriptions, and warns that a single inconsistency may indicate fraud with no recovery path. This goes well beyond what annotations alone convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than minimal, but every sentence contributes: purpose, timing, input composition, return format, checks performed, risk rationale, and an exclusion. It is front-loaded with the core purpose in the first sentence. Slightly verbose but not wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, safety-critical cross-document validation tool, the description covers purpose, input requirements, return style, what is checked, fraud risk, and when to avoid using it. The output schema exists, so return format details are not required, and the description still mentions the PASS/FLAG/FAIL verdict. This is fully complete for selecting and invoking the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'documents' has 100% schema description coverage, so the baseline is 3. The description enriches it by framing the array as a 'full trade finance package' with examples (invoice, bill of lading, certificate of origin) and emphasizing the cross-document consistency purpose. It doesn't add new syntax details, but the examples and context add practical meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Validates'), a specific resource ('a package of 2-20 related trade finance documents'), and a clear outcome ('for cross-document consistency'). It also explicitly distinguishes itself from the sibling tool check_document by warning not to use it when only one document needs verification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use guidance: 'Call this BEFORE approving any multi-document trade finance transaction or cross-border shipment' and 'when funds have not been released'. It also gives a concrete example of a full package and an explicit when-not-to-use: 'Do not use as a substitute for check_document when only one document requires verification.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedcheck_document4 fields changed
      • addedOutput schema / properties / calls_remaining
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "const": "unlimited",
        +      "type": "string"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / data_source_status
        Added value: +{
        +  "enum": [
        +    "full",
        +    "degraded",
        +    "partial"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / verdict_ttl
        Added value: +{
        +  "type": "number"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "agent_action",
        -  "verdict",
        -  "confidence",
        -  "document_type_identified",
        -  "assessed_against",
        -  "known_issuing_standard",
        -  "flags",
        -  "reason",
        -  "analysis_type",
        -  "checked_at",
        -  "_disclaimer"
        -]New value: +[
        +  "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"
        +]
    • Changedcheck_document_package4 fields changed
      • addedOutput schema / properties / calls_remaining
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "const": "unlimited",
        +      "type": "string"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / data_source_status
        Added value: +{
        +  "enum": [
        +    "full",
        +    "degraded",
        +    "partial"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / verdict_ttl
        Added value: +{
        +  "type": "number"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "agent_action",
        -  "verdict",
        -  "confidence",
        -  "documents",
        -  "cross_document_conflicts",
        -  "package_verdict",
        -  "package_agent_action",
        -  "analysis_type",
        -  "checked_at",
        -  "_disclaimer"
        -]New value: +[
        +  "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"
        +]
  2. 2 tool updates
    • Changedcheck_document1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "_disclaimer": {
        +      "type": "string"
        +    },
        +    "_upgrade_notice": {
        +      "type": "string"
        +    },
        +    "agent_action": {
        +      "enum": [
        +        "PROCEED",
        +        "VERIFY_MANUALLY",
        +        "HOLD",
        +        "REFER_TO_HUMAN",
        +        "UPGRADE_REQUIRED"
        +      ],
        +      "type": "string"
        +    },
        +    "analysis_type": {
        +      "type": "string"
        +    },
        +    "assessed_against": {
        +      "description": "Named standard, e.g. \"ICAO Document 9303\" -- null for UNKNOWN_DOCUMENT_TYPE",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "checked_at": {
        +      "type": "string"
        +    },
        +    "confidence": {
        +      "enum": [
        +        "HIGH",
        +        "MEDIUM",
        +        "LOW",
        +        "NONE"
        +      ],
        +      "type": "string"
        +    },
        +    "document_type_identified": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "escalation_path": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "flags": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "hold_reason": {
        +      "type": "string"
        +    },
        +    "known_issuing_standard": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "reason": {
        +      "type": "string"
        +    },
        +    "retry_after": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "verdict": {
        +      "enum": [
        +        "PASS",
        +        "FLAG",
        +        "FAIL",
        +        "UNKNOWN_DOCUMENT_TYPE"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "agent_action",
        +    "verdict",
        +    "confidence",
        +    "document_type_identified",
        +    "assessed_against",
        +    "known_issuing_standard",
        +    "flags",
        +    "reason",
        +    "analysis_type",
        +    "checked_at",
        +    "_disclaimer"
        +  ],
        +  "type": "object"
        +}
    • Changedcheck_document_package1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "_disclaimer": {
        +      "type": "string"
        +    },
        +    "agent_action": {
        +      "enum": [
        +        "PROCEED",
        +        "VERIFY_MANUALLY",
        +        "HOLD",
        +        "REFER_TO_HUMAN",
        +        "UPGRADE_REQUIRED"
        +      ],
        +      "type": "string"
        +    },
        +    "analysis_type": {
        +      "type": "string"
        +    },
        +    "checked_at": {
        +      "type": "string"
        +    },
        +    "confidence": {
        +      "enum": [
        +        "HIGH",
        +        "MEDIUM",
        +        "LOW",
        +        "NONE"
        +      ],
        +      "type": "string"
        +    },
        +    "cross_document_conflicts": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "documents": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "agent_action": {
        +            "$ref": "#/properties/agent_action"
        +          },
        +          "assessed_against": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "confidence": {
        +            "$ref": "#/properties/confidence"
        +          },
        +          "document_type_identified": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "flags": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "known_issuing_standard": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "reason": {
        +            "type": "string"
        +          },
        +          "verdict": {
        +            "$ref": "#/properties/verdict"
        +          }
        +        },
        +        "required": [
        +          "label",
        +          "agent_action",
        +          "verdict",
        +          "confidence",
        +          "document_type_identified",
        +          "assessed_against",
        +          "known_issuing_standard",
        +          "flags",
        +          "reason"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "package_agent_action": {
        +      "$ref": "#/properties/agent_action"
        +    },
        +    "package_verdict": {
        +      "$ref": "#/properties/verdict"
        +    },
        +    "verdict": {
        +      "enum": [
        +        "PASS",
        +        "FLAG",
        +        "FAIL",
        +        "UNKNOWN_DOCUMENT_TYPE"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "agent_action",
        +    "verdict",
        +    "confidence",
        +    "documents",
        +    "cross_document_conflicts",
        +    "package_verdict",
        +    "package_agent_action",
        +    "analysis_type",
        +    "checked_at",
        +    "_disclaimer"
        +  ],
        +  "type": "object"
        +}

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.