Rules and code for marking AI images, video and audio with C2PA and watermarks
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
How to add Kennmarq.com marking to an app's code: the package to install, a server-side example that marks each generated file before it's stored or shown, the fields to send, the API key and how to check the result. Stacks: ai-sdk (Vercel AI SDK middleware), javascript (Node.js, Next.js, Bun, Deno, edge), python, comfyui, http (any other language).
The app's stack.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http kennmarq https://api.kennmarq.com/mcp
How to add Kennmarq.com marking to an app's code: the package to install, a server-side example that marks each generated file before it's stored or shown, the fields to send, the API key and how to check the result. Stacks: ai-sdk (Vercel AI SDK middleware), javascript (Node.js, Next.js, Bun, Deno, edge), python, comfyui, http (any other language).
| Argument | Type | Description |
|---|---|---|
| stack* | string | The app's stack. |
{
"type": "object",
"required": [
"stack"
],
"properties": {
"stack": {
"enum": [
"ai-sdk",
"javascript",
"python",
"comfyui",
"http"
],
"type": "string",
"description": "The app's stack."
}
},
"additionalProperties": false
}What the AI-labelling laws of the given markets ask of an AI-generated image, video or audio file, and what a call to POST /v1/mark must send for them: the fields required, whether the visible label is needed, and what can't be marked yet. Answers from the rules the API itself enforces, with links to the government texts.
| Argument | Type | Description |
|---|---|---|
| media* | string | The kind of file the app generates. |
| markets* | string | The countries the app serves, comma-separated: ISO codes (de, jp, br), "eu", US states (us-ca) or "us" for every US state with its own law. Profiles: eu, us-ca, us-wa, us-ut, kr, in. |
| deepfake | boolean | Whether the files realistically depict real people, places or events (deep fakes). Default false. |
{
"type": "object",
"required": [
"markets",
"media"
],
"properties": {
"media": {
"enum": [
"image",
"video",
"audio"
],
"type": "string",
"description": "The kind of file the app generates."
},
"markets": {
"type": "string",
"description": "The countries the app serves, comma-separated: ISO codes (de, jp, br), \"eu\", US states (us-ca) or \"us\" for every US state with its own law. Profiles: eu, us-ca, us-wa, us-ut, kr, in."
},
"deepfake": {
"type": "boolean",
"description": "Whether the files realistically depict real people, places or events (deep fakes). Default false."
}
},
"additionalProperties": false
}A Kennmarq.com documentation page as Markdown: the API reference, the guides, the SDKs and the laws pages. The index of every page, with one line each: https://kennmarq.com/llms.txt.
| Argument | Type | Description |
|---|---|---|
| path* | string | The page's path, e.g. /docs/api/mark. |
{
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"enum": [
"/docs",
"/docs/authentication",
"/docs/keys",
"/docs/laws",
"/docs/laws/eu-ai-act",
"/docs/laws/eu-code-of-practice",
"/docs/laws/california",
"/docs/laws/washington-utah",
"/docs/laws/south-korea",
"/docs/laws/india",
"/docs/guides/ai-coding-agents",
"/docs/guides/nextjs",
"/docs/guides/vercel-ai-sdk",
"/docs/c2pa",
"/docs/watermarks",
"/docs/guides/c2pa-yourself",
"/docs/api/mark",
"/docs/api/marks",
"/docs/api/uploads",
"/docs/api/check",
"/docs/api/sign",
"/docs/api/tsa",
"/docs/api/certificate",
"/docs/api/usage",
"/docs/api/verify",
"/docs/api/log",
"/docs/sdk/javascript",
"/docs/sdk/python",
"/docs/comfyui",
"/docs/webhooks",
"/docs/errors",
"/docs/rate-limits",
"/docs/robustness",
"/docs/versioning",
"/docs/changelog"
],
"type": "string",
"description": "The page's path, e.g. /docs/api/mark."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 4, 2026.