Markproof MCP¶
The obligation is already live and the deadline for existing content is a month out: content generated by an AI system and placed on the market before 2 August 2026 has to meet Article 50(2) by 2 December 2026. Markproof is the first connector in this catalogue that treats marking generated media as a tool call rather than a policy statement, and it does it in two layers, a watermark in the pixels or the waveform and a signed C2PA manifest on the file.
Server type: Local (stdio via npx)
Endpoint: none, the package runs on your machine
Auth: MARKPROOF_API_KEY, refused at startup without one
Tools: 3 (mark_file, verify_file, get_asset)
Pricing: Free 250 calls a month, Indie $29 for 25,000,
Pro $79 for 100,000
Category: Compliance / content provenance
Built by: Markproof (markproof.co), MIT, npm markproof-mcp
What it does¶
Article 50(2) asks providers of AI systems that generate synthetic audio, image, video or text to mark the output in a machine readable way that identifies it as artificially generated. A watermark alone answers half of that: it is a signal embedded in the media, it survives re-encoding to some degree, and it says nothing about who made the file or whether anyone edited it. Markproof pairs the watermark with a C2PA manifest, which is a tamper evident record attached to the file stating what generated it, readable by any C2PA aware tool, and broken by any edit.
The MCP server is the delivery vehicle: mark_file takes a local image or audio file, applies the watermark and the signed manifest, writes the marked copy beside the original and returns a watermark code plus a public verification URL. verify_file runs the check in reverse on any file. get_asset looks up something you marked by its id and does not count against the quota.
What this pass measured¶
The measured surface here is deliberately narrow, and the limits are stated first because the vendor's claims are the interesting part and the vendor is the one making them.
npx -y markproof-mcp on a machine with no key printed markproof-mcp: set MARKPROOF_API_KEY (create one at https://markproof.co/dashboard) and exited. The guard is real: without a key the server does not start, so initialize and tools/list could not be run and the tool list below is read from the published package rather than driven.
The published tarball, markproof-mcp 0.3.2 (the release shipped on 2026-11-01; 0.3.1 was current when this page was first written and the two carry the same three tools), MIT, carries mcpName io.github.Ajinkya710/markproof and registers one server named markproof with three tool definitions whose descriptions match the README table exactly. The three tools are the whole server. Patch releases move fast here, so treat the count as the claim worth checking and re-read the tarball if a tool call fails.
https://markproof.co/mcp returned 404, so there is no hosted MCP endpoint to probe and no way to test this connector without a key on the local machine. That is a real difference from the remote entries here and it is the first thing an operator should know: this one runs where the files are.
The vendor site answered 200 and states the plans plainly: Free at $0 with 250 API calls a month, Indie at $29 a month for 25,000 calls, Pro at $79 a month for 100,000, no card required for the free key, and files processed in the EU. It also publishes the two layer argument, names the models in use, TrustMark for images and AudioSeal for audio, and offers a free checker at markproof.co/check that needs no signup, which is the one path an operator can test before creating a key.
The regulatory dates were verified independently rather than taken from the vendor. The European AI Act implementation timeline lists 2 August 2026 as the date from which providers generating synthetic audio, image, video or text must comply with Article 50(2), and states that content placed on the market before that date must be brought into compliance by 2 December 2026.
Why This Matters for Operators¶
Most operators do not know whether the images and audio their tools produce are compliant, and the answer has a date attached. A marketing team generating product images, a support team generating audio replies, a founder shipping an AI generated hero image: each is a provider of synthetic content in the sense Article 50(2) uses, and none of them can answer the question from a screenshot.
The mechanism that makes this actionable is that marking becomes a step in the same loop that generates the file. An agent that writes an image and marks it before saving leaves a verification URL in the transcript, and a file with a manifest can be checked by anyone later without asking the vendor for a record.
The second layer is the one that matters in a dispute. A watermark proves the file was generated; a signed manifest proves which generator made it and that nobody changed it since. When a partner or a regulator asks whether a piece of media is synthetic, the difference between an assertion and a verifiable manifest is the whole answer.
Tools & Capabilities¶
| Tool | Purpose |
|---|---|
mark_file |
Watermark and C2PA-sign a local PNG, JPEG, WebP, WAV or MP3, writing <name>.marked.png or .wav beside the original and returning the watermark code and a public verification URL. Optional visible_label and label_position add a visible AI-generated label to images |
verify_file |
Check a file for a Markproof watermark and a C2PA manifest, whether the signature is valid, and whether it matches the account's records |
get_asset |
Fetch the record for a file this account marked, by the asset_id that mark_file returned. Does not count against the quota |
Both mark_file and verify_file count as one API call each. get_asset is free.
Installation¶
claude mcp add markproof --env MARKPROOF_API_KEY=lt_live_... -- npx -y markproof-mcp
Claude Desktop and Cursor take the same server as a config block:
{
"mcpServers": {
"markproof": {
"command": "npx",
"args": ["-y", "markproof-mcp"],
"env": { "MARKPROOF_API_KEY": "lt_live_..." }
}
}
}
Configuration¶
| Variable | Required | Notes |
|---|---|---|
MARKPROOF_API_KEY |
yes | Key from the Markproof dashboard. The server exits with a message if it is missing |
MARKPROOF_BASE_URL |
no | Default https://markproof.co/v1, for pointing at another deployment |
Business Relevance¶
The cost makes this a low risk decision: 250 calls a month on the free plan covers a small content operation entirely, and the paid step to 25,000 calls is $29. Nothing here requires an enterprise conversation.
The workflow change is small and it belongs where files are produced. An agent instructed to mark every generated asset before saving produces a directory where each file sits beside a marked twin with a verification URL, and the check at the end of the month is a listing rather than an audit.
Integration with CorpusIQ¶
The honest boundary is that this is not a data connector and CorpusIQ does not call it. The pairing is operational: the media this operation publishes is generated, and the monthly report that describes what shipped is also the moment to know whether each asset carried a mark. A CorpusIQ answer about published content plus a marked asset directory is a defensible record; either alone is not.
Limitations¶
- No hosted endpoint, so this connector was not exercised end to end. The tool surface is the publisher's, not a measured
tools/list. - Everything about watermark robustness, C2PA signature validity, re-encoding survival and the accuracy of
verify_fileis unverified by this pass. - The free checker at
markproof.co/checkwas not driven, so its verdicts are unknown. - Article 50 obligations for text content are outside what this server does: it marks images and audio only.
- Whether the C2PA manifest is trusted by a third party validator such as the Content Credentials verify site is a question for a live key.
- The API host:
https://markproof.co/v1/assetsanswered 404 from the static site, so the API path is not confirmable without a key.
FAQ¶
Does this make my content compliant with the EU AI Act?¶
No tool does. It produces the two artefacts Article 50(2) is read to require, a machine readable mark and a signed manifest, and the obligation to actually apply them is the operator's. The deadline worth knowing is 2 December 2026 for content placed on the market before 2 August 2026.
Can it mark text?¶
No. mark_file covers PNG, JPEG and WebP images and WAV and MP3 audio. Text marking is a separate problem this connector does not address.
Does it send my files to a server?¶
Yes. The MCP server runs locally but the marking is an API call to Markproof, and the vendor states files are processed in the EU. Anyone marking confidential media should read that before the first call.
What does it cost to find out if a file is already marked?¶
verify_file counts as one API call, and get_asset is free. The public checker needs no key at all, which is the cheapest way to see the output shape.