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
| Parameter | Type | Required | Description |
|---|---|---|---|
file_path | string | Yes | Absolute path to the file to sign. Must be caller-provided. |
recipe | string | Yes | Recipe ID (e.g. image-genai-v1) |
metadata | object | No | Additional 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_pathmust 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_KEYenvironment variable only — never from this parameter
vb_verify
Verify a file’s provenance, or verify by asset ID.
Scope required: verify
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
file_path | string | Conditional | Absolute path to file. One of file_path, asset_id, or manifest_uri is required. |
asset_id | string | Conditional | Asset ID returned by a previous sign call |
manifest_uri | string | Conditional | Manifest 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
| Parameter | Type | Required | Description |
|---|---|---|---|
file_path | string | Yes | Absolute 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
| Parameter | Type | Required | Description |
|---|---|---|---|
yaml | string | Yes | Full 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
| Parameter | Type | Required | Description |
|---|---|---|---|
from | string | No | ISO 8601 start time (default: 24h ago) |
to | string | No | ISO 8601 end time (default: now) |
event_type | string | No | Filter by event type (e.g. asset.signed) |
limit | int | No | Max 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}