Skip to main content
Glama

Synthex Forge — x402 Paid Agent Services

Verify C2Pa Provenance

verify_c2pa_provenance
Read-onlyIdempotent

Whether a media file carries a valid C2PA provenance manifest. use it rather than verify_mcp_uptime for c2pa provenance, not mcp uptime; an object with 34 fields including algorithm, analyzed_at. $0.25 USDC.

Input Schema

NameRequiredDescriptionDefault
manifestNoThe manifest describing the delivered or expected artifact.
content_hashNoThe hash of the content the manifest describes.
expected_creatorNoThe creator the manifest is expected to name.
expected_generatorNoThe generator the manifest is expected to name.

Output Schema

NameRequiredDescriptionDefault
kindNoThe `kind` field of the response.
noteNoA note on how the answer was produced.
detailYesHuman-readable explanation of the verdict.
issuesNoThe `issues` field of the response.
sha256NoThe `sha256` field of the response.
creatorNoThe `creator` field of the response.
verdictYesThe decision this tool returned.
signedByNoThe `signedBy` field of the response.
algorithmNoThe `algorithm` field of the response.
generatorNoThe `generator` field of the response.
stored_atNoThe `stored_at` field of the response.
ed25519SigNoThe `ed25519Sig` field of the response.
analyzed_atNoThe `analyzed_at` field of the response.
attestationNoThe `attestation` field of the response.
content_hashNoThe `content_hash` field of the response.
evidenceCoreNoThe `evidenceCore` field of the response.
observationsNoThe `observations` field of the response.
publicKeyHexNoThe `publicKeyHex` field of the response.
attestation_idNoThe `attestation_id` field of the response.
evidenceDigestNoThe `evidenceDigest` field of the response.
software_agentNoThe `software_agent` field of the response.
assertion_countNoThe `assertion_count` field of the response.
canonicalSha256NoThe `canonicalSha256` field of the response.
reproducibilityNoThe `reproducibility` field of the response.
ingredient_countNoThe `ingredient_count` field of the response.
manifest_versionNoThe `manifest_version` field of the response.
verificationHintNoThe `verificationHint` field of the response.
assertions_sha256NoThe `assertions_sha256` field of the response.
signature_presentNoThe `signature_present` field of the response.
timestamp_presentNoThe `timestamp_present` field of the response.
declared_asset_hashNoThe `declared_asset_hash` field of the response.
manifest_wellformedNoThe `manifest_wellformed` field of the response.
content_binding_matchNoThe `content_binding_match` field of the response.
content_binding_presentNoThe `content_binding_present` field of the response.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed36 schema fields changed
    • addedOutput schema / properties / algorithm
      Added value: +{
      +  "description": "The `algorithm` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / analyzed_at
      Added value: +{
      +  "description": "The `analyzed_at` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / assertion_count
      Added value: +{
      +  "description": "The `assertion_count` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / assertions_sha256
      Added value: +{
      +  "description": "The `assertions_sha256` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / attestation
      Added value: +{
      +  "description": "The `attestation` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / attestation_id
      Added value: +{
      +  "description": "The `attestation_id` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / canonicalSha256
      Added value: +{
      +  "description": "The `canonicalSha256` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / content_binding_match
      Added value: +{
      +  "description": "The `content_binding_match` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / content_binding_present
      Added value: +{
      +  "description": "The `content_binding_present` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / content_hash
      Added value: +{
      +  "description": "The `content_hash` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / creator
      Added value: +{
      +  "description": "The `creator` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / declared_asset_hash
      Added value: +{
      +  "description": "The `declared_asset_hash` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / detail
      Added value: +{
      +  "description": "Human-readable explanation of the verdict.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / ed25519Sig
      Added value: +{
      +  "description": "The `ed25519Sig` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / evidenceCore
      Added value: +{
      +  "description": "The `evidenceCore` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / evidenceDigest
      Added value: +{
      +  "description": "The `evidenceDigest` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / generator
      Added value: +{
      +  "description": "The `generator` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / ingredient_count
      Added value: +{
      +  "description": "The `ingredient_count` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / issues
      Added value: +{
      +  "description": "The `issues` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / kind
      Added value: +{
      +  "description": "The `kind` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / manifest_version
      Added value: +{
      +  "description": "The `manifest_version` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / manifest_wellformed
      Added value: +{
      +  "description": "The `manifest_wellformed` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / note
      Added value: +{
      +  "description": "A note on how the answer was produced.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / observations
      Added value: +{
      +  "description": "The `observations` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / publicKeyHex
      Added value: +{
      +  "description": "The `publicKeyHex` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / reproducibility
      Added value: +{
      +  "description": "The `reproducibility` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / sha256
      Added value: +{
      +  "description": "The `sha256` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / signature_present
      Added value: +{
      +  "description": "The `signature_present` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / signedBy
      Added value: +{
      +  "description": "The `signedBy` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / software_agent
      Added value: +{
      +  "description": "The `software_agent` field of the response.",
      +  "type": "object"
      +}
    • removedOutput schema / properties / status
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / stored_at
      Added value: +{
      +  "description": "The `stored_at` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / timestamp_present
      Added value: +{
      +  "description": "The `timestamp_present` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / verdict
      Added value: +{
      +  "description": "The decision this tool returned.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / verificationHint
      Added value: +{
      +  "description": "The `verificationHint` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / required
      Added value: +[
      +  "detail",
      +  "verdict"
      +]
  2. Added

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds genuinely useful non-schema context in the $0.25 USDC cost, but the 'object with 34 fields including algorithm, analyzed_at' is redundant with the existing output schema and does not explain what 'valid' means or what a failed/absent-manifest result looks like.

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

Conciseness2/5

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

The text is short but structurally poor: it begins with a sentence fragment ('Whether a media file carries...'), then a lowercase run-on that crams routing, return shape, and price together with semicolons. The most actionable fact for an agent (the $0.25 cost) is buried at the end rather than front-loaded.

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

Completeness3/5

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

With an output schema present and full annotation coverage, the description need not explain return values, and the cost line helps. However, for a verification tool where all inputs are optional, it leaves unclear what constitutes a positive vs negative verification and how partial inputs (e.g., only expected_creator) affect the verdict.

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?

Schema description coverage is 100%, so all four parameters (manifest, content_hash, expected_creator, expected_generator) are already documented in the schema. The description adds nothing about how they interact — notably why every parameter is optional and what is verified when they are omitted — so the baseline 3 applies.

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

Purpose4/5

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

States a specific check: whether a media file carries a valid C2PA provenance manifest, and explicitly excludes the closest-sounding sibling (verify_mcp_uptime). It does not distinguish itself from other provenance/verification siblings such as verify_bio_provenance, create_provenance_overlay, or verify_digital_deliverable, so an agent comparing those must infer the boundary.

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

Usage Guidelines3/5

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

There is one explicit routing instruction ('use it rather than verify_mcp_uptime ... not mcp uptime'), which is useful but aimed at a sibling that is unlikely to be genuinely confused with C2PA verification. It gives no guidance on when to skip this tool, how it relates to verify_bio_provenance or create_provenance_overlay, or what to do if no manifest is supplied (all four params are optional).

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.