Skip to content

MCP Tools Reference

MCP Tools Reference

All tools follow the MCP 1.0 tool call protocol. Parameters are JSON objects. Results are JSON objects.

vb_sign

Sign a local file.

Scope required: sign

Parameters

ParameterTypeRequiredDescription
file_pathstringYesAbsolute path to the file to sign. Must be caller-provided.
recipestringYesRecipe ID (e.g. image-genai-v1)
metadataobjectNoAdditional assertions for the C2PA manifest

Example

{
"file_path": "/home/user/generated_image.png",
"recipe": "image-genai-v1",
"metadata": {
"generator": "stable-diffusion-xl",
"model": "sdxl-1.0"
}
}

Result

{
"asset_id": "a_01j...",
"watermark_id": "w_01j...",
"manifest_uri": "https://m.verbitas.io/manifests/a_01j.../manifest.c2pa",
"verifier_url": "https://v.verbitas.io/v/a_01j...",
"anchor": { "batch_id": "b_01j...", "status": "queued" }
}

For large files, the result includes job_id and status: "pending". The MCP server polls automatically and returns the final result.

Constraints enforced

  • file_path must be an absolute path
  • File size must be ≤ 100 MB
  • MIME type validated against the recipe’s allowed types
  • API key read from VERBITAS_API_KEY environment variable only — never from this parameter

vb_verify

Verify a file’s provenance, or verify by asset ID.

Scope required: verify

Parameters

ParameterTypeRequiredDescription
file_pathstringConditionalAbsolute path to file. One of file_path, asset_id, or manifest_uri is required.
asset_idstringConditionalAsset ID returned by a previous sign call
manifest_uristringConditionalManifest URI to verify

Example

{ "file_path": "/home/user/received_image.jpg" }
{ "asset_id": "a_01j..." }

Result

{
"status": "verified_manifest_and_watermark_match",
"confidence": 0.97,
"user_explanation": "Provenance verified — manifest intact and watermark agrees.",
"developer_explanation": "C2PA signature verified. OCSP: good. Watermark matches.",
"proves": [
"The C2PA manifest was signed by a trusted certificate.",
"The manifest has not been modified since signing."
],
"does_not_prove": [
"The assertions were accurate when submitted.",
"The content is semantically truthful."
],
"claims": {
"ai_generated": true,
"generator": "stable-diffusion-xl",
"created_at": "2026-05-09T08:32:00Z"
}
}

vb_lookup

Look up a file by perceptual fingerprint or watermark.

Scope required: verify

Parameters

ParameterTypeRequiredDescription
file_pathstringYesAbsolute path to the file to look up

Example

{ "file_path": "/home/user/cropped_image.jpg" }

Result

{
"matches": [
{
"asset_id": "a_01j...",
"match_type": "perceptual_hash",
"confidence": 0.81,
"distance": 12,
"verifier_url": "https://v.verbitas.io/v/a_01j..."
}
]
}

vb_recipes_list

List all recipes available to the current tenant.

Scope required: sign

Parameters

None.

Example

{}

Result

{
"recipes": [
{
"id": "image-genai-v1",
"version": 1,
"media_type": "image",
"description": "Standard AI image provenance",
"is_preset": true
},
{
"id": "my-pipeline-v1",
"version": 1,
"media_type": "image",
"description": "My custom pipeline",
"is_preset": false
}
]
}

vb_recipe_create

Create a custom recipe. Validates the YAML against the recipe schema before submitting.

Scope required: admin

If the key does not have admin scope, the tool returns an error and does not attempt to call the API. This prevents confusing partial failures.

Parameters

ParameterTypeRequiredDescription
yamlstringYesFull recipe YAML as a string

Example

{
"yaml": "id: my-recipe-v1\nversion: 1\nextends: image-genai-v1@1\nmedia_type: image\ndescription: My recipe\nc2pa:\n enabled: true\n assertions: [ai_generated, generator]\nwatermark:\n enabled: true\n engine: trustmark\nsoft_binding:\n enabled: true\n methods: [exact_watermark, perceptual_hash]\nanchoring:\n enabled: true\n methods: [opentimestamps]\nretention:\n manifest_days: 365\nbilling:\n meter: image_sign\n unit: asset\n"
}

Result

{
"recipe_id": "my-recipe-v1",
"version": 1,
"created_at": "2026-05-09T10:00:00Z"
}

On validation failure

{
"error": "verbitas.recipes.invalid_schema",
"detail": "Field 'watermark.engine' is required when watermark.enabled is true",
"request_id": "req_01j..."
}

vb_get_audit_log

Retrieve recent audit log entries for the tenant.

Scope required: admin

Parameters

ParameterTypeRequiredDescription
fromstringNoISO 8601 start time (default: 24h ago)
tostringNoISO 8601 end time (default: now)
event_typestringNoFilter by event type (e.g. asset.signed)
limitintNoMax entries (default 20, max 100)

Example

{
"from": "2026-05-09T00:00:00Z",
"event_type": "asset.signed",
"limit": 10
}

Result

{
"entries": [
{
"id": "audit_01j...",
"event_type": "asset.signed",
"timestamp": "2026-05-09T10:00:00Z",
"data": {
"asset_id": "a_01j...",
"recipe_id": "image-genai-v1",
"file_type": "image/jpeg"
}
}
],
"has_more": false
}