# beeswaxpat/chronoverify-mcp [Health: Active]

**Category:** 🔒 Security  
**Repository:** https://github.com/beeswaxpat/chronoverify-mcp  
**GitHub Stars:** 2  
**npm Downloads (last month):** 550  
**Views:** 3  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/beeswaxpat-chronoverify-mcp

## Description
Verify a photo's capture time and provenance before an agent trusts it: cryptographic C2PA Content Credentials validation against the official trust lists, EXIF and XMP consistency checks, and classical pixel forensics fused into one typed verdict with a 0 to 100 confidence. Free keyless tier, opt-in shareable verdict permalinks, and key-gated signed PDF audit reports. Provenance validation, not a deepfake detector. npx chronoverify-mcp

## Tools
Capabilities this server exposes over MCP:

- **verify_image** — Verify a photo's capture time and provenance: when it was captured, on what device and where, whether it carries valid C2PA Content Credentials, and whether it shows signs of editing. Runs a deterministic pipeline (cryptographic C2PA Content Credentials validation against the official trust lists, EXIF and XMP metadata consistency, and classical pixel forensics such as error-level and noise analysis) and returns ONE verdict with a 0 to 100 confidence and the signals behind it. The verdict is one of: provenance_confirmed (a Content Credential that validated against a recognized trust list), consistent (metadata holds up, no manipulation signal fired), inconclusive (not enough signal), metadata_anomaly (the metadata contradicts itself), or manipulation_indicated (pixel forensics flagged possible editing). provenance_confirmed means the credential validated, not that the image is a camera capture: a valid credential can itself declare generative-AI origin, so read c2pa.ai_declared and c2pa.digital_source_type, and the headline, which states any such declaration, before treating the image as a photograph. Structured output also returns the capture time, device, location, the C2PA validation state, the consolidated validation status codes, the signer, the credential's own AI declaration (ai_declared, ai_in_ingredients, digital_source_type, software_agents, actions), any remote manifest URL, and the SHA-256 and SHA-512 fingerprints. Prefer this whenever you must trust a user-submitted or sourced image before acting on it: insurance claims, KYC and onboarding, dating or marketplace listings, journalism and OSINT, EU AI Act Article 50 transparency checks, or legal evidence. Works on any image, signed or not, and degrades gracefully (returns inconclusive instead of false-accusing) on unsigned or social-media-recompressed photos. ChronoVerify is a C2PA Conformant Validator, listed on the C2PA Conforming Products List (record 019f8a20-6452-7a43-b11b-59d0b0e4a84a; validation of JPEG, PNG, WebP, and AVIF). It validates provenance and is NOT a deepfake or AI-generation detector; results are investigative triage to support human review, not proof. Provide exactly one of url, file_path, or image_base64. Set permalink=true to also store the verdict (never the image) and get back an unlisted, shareable link to it, for citing the result to people or in reports; keyless links expire after 90 days, links minted with an API key do not expire. For a signed PDF audit record of the result, use get_signed_report.
- **get_signed_report** — Generate a signed PDF audit report for one image: the chain-of-custody record that captures the full verdict (capture time, the C2PA validation state and signer, metadata checks, pixel-forensic signals, and the SHA-256 and SHA-512 fingerprints) with an Ed25519 signature you can verify against the published key at /v1/key, plus an embedded RFC 3161 trusted timestamp token verifiable offline with OpenSSL (the report labels it plainly if the timestamp authority was unreachable). Use this when you need a durable, shareable artifact of a verification rather than just a verdict: an EU AI Act Article 50 transparency record, an insurance or legal evidence file, or a newsroom audit trail. REQUIRES a ChronoVerify API key (set CHRONOVERIFY_API_KEY) and is metered as a premium report unit. Provide exactly one of file_path or image_base64; the report is built from the uploaded file (this endpoint does not fetch URLs). The PDF is written to out_path, or to the current working directory when out_path is omitted. It validates provenance and is NOT a deepfake or AI-generation detector; the report is investigative triage to support human review, not proof.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "chronoverify-mcp": {
    "command": "npx",
    "args": ["-y","chronoverify-mcp"],
    "env": {
      "CHRONOVERIFY_API_KEY": ""
    }
  }
}
```

**Requires environment variables:** `CHRONOVERIFY_API_KEY` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What beeswaxpat/chronoverify-mcp MCP server does

The beeswaxpat/chronoverify-mcp MCP server exposes ChronoVerify image verification through MCP-compatible clients. It examines a supplied image for capture-time and provenance signals, combining cryptographic C2PA Content Credentials validation with official trust-list checks, EXIF and XMP metadata comparison, and classical pixel-forensic analysis.

The result is a structured verdict rather than an untyped pass/fail response. Possible verdicts are `provenance_confirmed`, `consistent`, `inconclusive`, `metadata_anomaly`, and `manipulation_indicated`. Each result includes a confidence value from 0 to 100 and the signals used to reach it. Returned details can include capture time, device, location, C2PA validation state, signer, validation status codes, software agents, actions, AI declarations, digital source type, remote manifest URL, and SHA-256 and SHA-512 fingerprints.

## How it works

`verify_image` accepts exactly one image source: a publicly reachable URL, an absolute local file path, or base64-encoded image bytes. The service fetches URL inputs, while local paths and encoded bytes provide the image directly. It supports signed and unsigned images and can return `inconclusive` when available evidence is insufficient instead of treating missing provenance as proof of manipulation.

A `provenance_confirmed` result means a C2PA credential validated against a recognized trust list. It does not establish that the image came from a camera: the credential may declare generative-AI origin. Agents should inspect the AI-related fields and headline before treating the image as a photographic capture. The project is a provenance validator, not a deepfake or general AI-generation detector.

## Setup and configuration

Install the beeswaxpat/chronoverify-mcp MCP server with:

```json
{
  "mcpServers": {
    "chronoverify": {
      "command": "npx",
      "args": ["-y", "chronoverify-mcp"]
    }
  }
}
```

Add `CHRONOVERIFY_API_KEY` to the client environment when using authenticated features. Verification can use the free, rate-limited public path without a key. An API key is required for signed PDF reports and can also be used when creating non-expiring verdict permalinks. Keyless permalinks expire after 90 days.

## Tools and capabilities

The server provides two tools:

- `verify_image` checks provenance, metadata, and pixel signals; it can optionally create a permalink that stores the verdict but not the image.
- `get_signed_report` creates a PDF audit record from a local file or base64 image. It writes to the requested output path or the current working directory when no path is supplied.

The signed report contains the full verdict, chain-of-custody details, metadata checks, forensic signals, and image fingerprints. It carries an Ed25519 signature verifiable with the published key and an RFC 3161 timestamp token when the timestamp authority is reachable. The report identifies when that authority could not be reached.

## Limitations and notes

ChronoVerify is listed as a C2PA Conformant Validator for JPEG, PNG, WebP, and AVIF validation. Its findings are investigative triage for human review, not conclusive proof. Social-media recompression, unsigned files, and limited metadata can produce inconclusive outcomes. A consistent result means the available metadata held together and no manipulation signal fired; it is not proof that an image is unedited.

The beeswaxpat/chronoverify-mcp MCP server does not fetch URLs for `get_signed_report`; that tool requires `file_path` or `image_base64`. Reports are metered as premium report units and require `CHRONOVERIFY_API_KEY`.

_Full upstream README: https://allmcps.com/mcp/beeswaxpat-chronoverify-mcp/readme_

