Revenue Influence and Performance Tools (May 2026)
These tools are now available for revenue attribution and performance storytelling directly through MCP.
| Tool | What It Answers | Typical Output |
|---|---|---|
content_get_revenue_influence |
How much pipeline/revenue is influenced by one or more content assets? | Linked deal room counts, revenue by currency, external link/open summary, and per-content influence rows. |
content_get_top_performing |
What are the top performing assets in a time window? | Ranked content with views/engagement/downloads/revenue indicators and optional linked deal room context. |
content_get_revenue_influence Example
{
"jsonrpc": "2.0",
"id": "content_get_revenue_influence-1",
"method": "tools/call",
"params": {
"name": "content_get_revenue_influence",
"arguments": {
"content_ids": ["KBD0215806635290000000000", "KBD5567454989590000000000"],
"include_deal_rooms": true,
"deal_room_limit": 50
}
}
}
Success response shape (example):
{
"success": true,
"data": {
"summary": {
"linked_deal_rooms_count": 8,
"revenue": {
"by_currency": [{"currency_iso": "USD", "total_amount": 1240000}]
},
"external_links": {
"total_links_generated": 22,
"total_external_opens": 184
}
},
"contents": [{"content_id": "KBD0215806635290000000000", "linked_deal_rooms_count": 5}]
},
"error": null
}
content_get_top_performing Example
{
"jsonrpc": "2.0",
"id": "content_get_top_performing-1",
"method": "tools/call",
"params": {
"name": "content_get_top_performing",
"arguments": {
"time_range": "this_week",
"sort_by": "views",
"sort_order": "desc",
"top_limit": 10,
"include_deal_rooms": true
}
}
}
Failure response shape (example):
{
"success": false,
"data": null,
"error": {
"code": "INVALID_ARGUMENTS",
"message": "Missing parameters: content_ids.",
"status": 400,
"retryable": false,
"details": {
"missing_parameters": ["content_ids"]
}
}
}
Content tools include field-level argument descriptions and runnable examples for MCP clients.
Pagination: list responses return items with a pagination object. Default page size is 50 (max 200).
Tools Covered
| Tool | Mutation | Backend Routes |
|---|---|---|
content_get_thumbnails |
No | /batch-open-thumbnails |
content_get_access_info |
No | /batch-open-thumbnails |
content_list_dashboard |
No | /view-content-and-folders-sorted, /tags/get-folder-content-tags |
content_check_visibility |
No | /content-visibility/check-entities |
content_move_items |
Yes | /move-folder |
content_copy_items |
Yes | /duplicate-content |
content_archive_items |
Yes | /archive-items |
content_unarchive_items |
Yes | /unarchive-items |
content_delete_items |
Yes | /delete-record-impact, /flag-for-deletion, /unflag-for-deletion |
content_update_visibility |
Yes | /content-visibility/update-item-settings |
content_share_link_create |
Yes | – |
content_share_link_expire |
Yes | /expire-all-content-share-links, /expire-content-share-link |
content_get_thumbnails
Fetch thumbnails for content IDs.
Backend routes: /batch-open-thumbnails
Arguments
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
content_ids |
array | Yes | List of content IDs to operate on. | ["KBD0215806635290000000000","KBD5567454989590000000000"] |
viewer_id |
string | No | Optional explicit user context override. If omitted, MCP resolves this from the authenticated token/session. | IGH6969811447860000000000 |
organisation_id |
string | No | Optional explicit organisation context override. If omitted, MCP resolves this from the authenticated token/session. | PDX7478889578460000000000 |
Example Request
Fetch thumbnails for selected content
{
"jsonrpc": "2.0",
"id": "content_get_thumbnails-1",
"method": "tools/call",
"params": {
"name": "content_get_thumbnails",
"arguments": {
"content_ids": [
"KBD0215806635290000000000",
"KBD5567454989590000000000"
]
}
}
}
Example Success
{
"success": true,
"data": {
"tool": "content_get_thumbnails",
"note": "Payload shape depends on tenant data and backend route output."
},
"error": null
}
Example Failure
{
"success": false,
"data": null,
"error": {
"code": "INVALID_ARGUMENTS",
"message": "Missing or invalid parameters for content_get_thumbnails.",
"status": 400,
"retryable": false
}
}
content_get_access_info
Get safe access metadata for content IDs (internal portal links, thumbnails, and optional external links).
Backend routes: /batch-open-thumbnails
Arguments
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
content_ids |
array | Yes | List of content IDs to operate on. | ["KBD0215806635290000000000","KBD5567454989590000000000"] |
include_thumbnails |
boolean | No | When true, fetch thumbnail payloads for provided/returned content IDs. | true |
include_external_link |
boolean | No | When true, includes or creates external share links in the response. | true |
reuse_active |
boolean | No | When true, reuses an existing active external link before creating a new one. | true |
expiry_date |
string | No | Link expiry date/time expected by backend date parsing (ISO datetime recommended). | 2026-06-30T23:59:59Z |
max_downloads |
number | No | Maximum allowed downloads for generated external links. | 50 |
comment |
string | No | Optional audit/comment text saved with the external link action. | Shared for customer security review |
viewer_id |
string | No | Optional explicit user context override. If omitted, MCP resolves this from the authenticated token/session. | IGH6969811447860000000000 |
organisation_id |
string | No | Optional explicit organisation context override. If omitted, MCP resolves this from the authenticated token/session. | PDX7478889578460000000000 |
Example Request
Get internal links and reusable external links
{
"jsonrpc": "2.0",
"id": "content_get_access_info-1",
"method": "tools/call",
"params": {
"name": "content_get_access_info",
"arguments": {
"content_ids": [
"KBD0215806635290000000000"
],
"include_thumbnails": true,
"include_external_link": true,
"reuse_active": true,
"expiry_date": "2026-06-30T23:59:59Z",
"max_downloads": 20
}
}
}
Example Success
{
"success": true,
"data": {
"tool": "content_get_access_info",
"note": "Payload shape depends on tenant data and backend route output."
},
"error": null
}
Example Failure
{
"success": false,
"data": null,
"error": {
"code": "INVALID_ARGUMENTS",
"message": "Missing or invalid parameters for content_get_access_info.",
"status": 400,
"retryable": false
}
}
content_list_dashboard
List dashboard content/folders and optionally associated tags.
Backend routes: /view-content-and-folders-sorted, /tags/get-folder-content-tags
Arguments
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
folder_id |
string | No | Folder identifier used as scope for listing/tag fetch. | WRS1777477248002807551754 |
content_state |
string (active | archived) | No | Controls whether active or archived records are listed. | active |
include_tags |
boolean | No | When true, returns tag metadata alongside dashboard listing. | true |
training_assets_only |
boolean | No | When true, limits dashboard listing to training-tagged assets. | false |
force_refresh_contents |
boolean | No | When true, bypasses cached sorted payload and rebuilds listing. | false |
viewer_id |
string | No | Optional explicit user context override. If omitted, MCP resolves this from the authenticated token/session. | IGH6969811447860000000000 |
organisation_id |
string | No | Optional explicit organisation context override. If omitted, MCP resolves this from the authenticated token/session. | PDX7478889578460000000000 |
Example Request
List active folder dashboard payload and tags
{
"jsonrpc": "2.0",
"id": "content_list_dashboard-1",
"method": "tools/call",
"params": {
"name": "content_list_dashboard",
"arguments": {
"folder_id": "WRS1777477248002807551754",
"content_state": "active",
"include_tags": true,
"page": 1,
"page_size": 50
}
}
}
Example Success
{
"success": true,
"data": {
"tool": "content_list_dashboard",
"note": "Payload shape depends on tenant data and backend route output."
},
"error": null
}
Example Failure
{
"success": false,
"data": null,
"error": {
"code": "INVALID_ARGUMENTS",
"message": "Missing or invalid parameters for content_list_dashboard.",
"status": 400,
"retryable": false
}
}
content_check_visibility
Check entity visibility for content and folders.
Backend routes: /content-visibility/check-entities
Arguments
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
content_ids |
array | No | List of content IDs to operate on. | ["KBD0215806635290000000000","KBD5567454989590000000000"] |
folder_ids |
array | No | List of folder IDs used for visibility checks. | ["WRS1777477248002807551754"] |
content_items |
array | No | Detailed content rows for visibility checks. Each item typically includes `id` and `folder`. | [{"id":"KBD0215806635290000000000","folder":"WRS1777477248002807551754"}] |
viewer_id |
string | No | Optional explicit user context override. If omitted, MCP resolves this from the authenticated token/session. | IGH6969811447860000000000 |
organisation_id |
string | No | Optional explicit organisation context override. If omitted, MCP resolves this from the authenticated token/session. | PDX7478889578460000000000 |
Example Request
Check visibility for content and folders
{
"jsonrpc": "2.0",
"id": "content_check_visibility-1",
"method": "tools/call",
"params": {
"name": "content_check_visibility",
"arguments": {
"content_ids": [
"KBD0215806635290000000000"
],
"folder_ids": [
"WRS1777477248002807551754"
],
"content_items": [
{
"id": "KBD0215806635290000000000",
"folder": "WRS1777477248002807551754"
}
]
}
}
}
Example Success
{
"success": true,
"data": {
"tool": "content_check_visibility",
"note": "Payload shape depends on tenant data and backend route output."
},
"error": null
}
Example Failure
{
"success": false,
"data": null,
"error": {
"code": "INVALID_ARGUMENTS",
"message": "Missing or invalid parameters for content_check_visibility.",
"status": 400,
"retryable": false
}
}
content_move_items
Move folders/content into another folder.
Backend routes: /move-folder
Arguments
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
ids |
array | Yes | Generic list of IDs for bulk folder/content operations. | ["KBD0215806635290000000000","WRS1777477248002807551754"] |
move_folder_id |
string | Yes | Destination folder ID for move operation. | WRS1777477248002807551754 |
set_direct_pitch_content |
boolean | No | When true, marks moved content as direct pitch content in destination. | false |
viewer_id |
string | No | Optional explicit user context override. If omitted, MCP resolves this from the authenticated token/session. | IGH6969811447860000000000 |
organisation_id |
string | No | Optional explicit organisation context override. If omitted, MCP resolves this from the authenticated token/session. | PDX7478889578460000000000 |
idempotency_key |
string | No | Client supplied unique key for mutation safety. Re-using the same key returns the cached mutation result instead of executing again. | mcp-mutation-2026-05-13-001 |
Example Request
Move records into destination folder
{
"jsonrpc": "2.0",
"id": "content_move_items-1",
"method": "tools/call",
"params": {
"name": "content_move_items",
"arguments": {
"ids": [
"KBD0215806635290000000000"
],
"move_folder_id": "WRS1777477248002807551754",
"set_direct_pitch_content": false
}
}
}
Example Success
{
"success": true,
"data": {
"tool": "content_move_items",
"note": "Payload shape depends on tenant data and backend route output."
},
"error": null
}
Example Failure
{
"success": false,
"data": null,
"error": {
"code": "INVALID_ARGUMENTS",
"message": "Missing or invalid parameters for content_move_items.",
"status": 400,
"retryable": false
}
}
content_copy_items
Duplicate selected content records into a destination folder.
Backend routes: /duplicate-content
Arguments
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
content_ids |
array | Yes | List of content IDs to operate on. | ["KBD0215806635290000000000","KBD5567454989590000000000"] |
target_folder_id |
string | No | Optional destination folder for archive/copy/unarchive flows. | WRS1777477248002807551754 |
direct_pitch_content |
boolean | No | When true, copied content is flagged for direct pitch visibility. | false |
viewer_id |
string | No | Optional explicit user context override. If omitted, MCP resolves this from the authenticated token/session. | IGH6969811447860000000000 |
organisation_id |
string | No | Optional explicit organisation context override. If omitted, MCP resolves this from the authenticated token/session. | PDX7478889578460000000000 |
idempotency_key |
string | No | Client supplied unique key for mutation safety. Re-using the same key returns the cached mutation result instead of executing again. | mcp-mutation-2026-05-13-001 |
Example Request
Copy records to another folder
{
"jsonrpc": "2.0",
"id": "content_copy_items-1",
"method": "tools/call",
"params": {
"name": "content_copy_items",
"arguments": {
"content_ids": [
"KBD0215806635290000000000"
],
"target_folder_id": "WRS1777477248002807551754",
"direct_pitch_content": false
}
}
}
Example Success
{
"success": true,
"data": {
"tool": "content_copy_items",
"note": "Payload shape depends on tenant data and backend route output."
},
"error": null
}
Example Failure
{
"success": false,
"data": null,
"error": {
"code": "INVALID_ARGUMENTS",
"message": "Missing or invalid parameters for content_copy_items.",
"status": 400,
"retryable": false
}
}
content_archive_items
Archive content/folders.
Backend routes: /archive-items
Arguments
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
ids |
array | Yes | Generic list of IDs for bulk folder/content operations. | ["KBD0215806635290000000000","WRS1777477248002807551754"] |
target_folder_id |
string | No | Optional destination folder for archive/copy/unarchive flows. | WRS1777477248002807551754 |
viewer_id |
string | No | Optional explicit user context override. If omitted, MCP resolves this from the authenticated token/session. | IGH6969811447860000000000 |
organisation_id |
string | No | Optional explicit organisation context override. If omitted, MCP resolves this from the authenticated token/session. | PDX7478889578460000000000 |
idempotency_key |
string | No | Client supplied unique key for mutation safety. Re-using the same key returns the cached mutation result instead of executing again. | mcp-mutation-2026-05-13-001 |
Example Request
Archive selected items
{
"jsonrpc": "2.0",
"id": "content_archive_items-1",
"method": "tools/call",
"params": {
"name": "content_archive_items",
"arguments": {
"ids": [
"KBD0215806635290000000000"
],
"target_folder_id": "WRS1777477248002807551754"
}
}
}
Example Success
{
"success": true,
"data": {
"tool": "content_archive_items",
"note": "Payload shape depends on tenant data and backend route output."
},
"error": null
}
Example Failure
{
"success": false,
"data": null,
"error": {
"code": "INVALID_ARGUMENTS",
"message": "Missing or invalid parameters for content_archive_items.",
"status": 400,
"retryable": false
}
}
content_unarchive_items
Unarchive content/folders.
Backend routes: /unarchive-items
Arguments
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
ids |
array | Yes | Generic list of IDs for bulk folder/content operations. | ["KBD0215806635290000000000","WRS1777477248002807551754"] |
target_folder_id |
string | No | Optional destination folder for archive/copy/unarchive flows. | WRS1777477248002807551754 |
viewer_id |
string | No | Optional explicit user context override. If omitted, MCP resolves this from the authenticated token/session. | IGH6969811447860000000000 |
organisation_id |
string | No | Optional explicit organisation context override. If omitted, MCP resolves this from the authenticated token/session. | PDX7478889578460000000000 |
idempotency_key |
string | No | Client supplied unique key for mutation safety. Re-using the same key returns the cached mutation result instead of executing again. | mcp-mutation-2026-05-13-001 |
Example Request
Unarchive selected items
{
"jsonrpc": "2.0",
"id": "content_unarchive_items-1",
"method": "tools/call",
"params": {
"name": "content_unarchive_items",
"arguments": {
"ids": [
"KBD0215806635290000000000"
]
}
}
}
Example Success
{
"success": true,
"data": {
"tool": "content_unarchive_items",
"note": "Payload shape depends on tenant data and backend route output."
},
"error": null
}
Example Failure
{
"success": false,
"data": null,
"error": {
"code": "INVALID_ARGUMENTS",
"message": "Missing or invalid parameters for content_unarchive_items.",
"status": 400,
"retryable": false
}
}
content_delete_items
Preview, execute, or restore delete lifecycle for content/folders.
Backend routes: /delete-record-impact, /flag-for-deletion, /unflag-for-deletion
Arguments
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
ids |
array | Yes | Generic list of IDs for bulk folder/content operations. | ["KBD0215806635290000000000","WRS1777477248002807551754"] |
action |
string (preview | execute | restore) | Yes | Delete flow mode: `preview` (impact only), `execute` (mark/delete), or `restore` (undo delete flag). | preview |
dry_run |
boolean | No | Safety gate for preview actions. Must be true when action is preview. | true |
confirm |
boolean | No | Safety confirmation for destructive execution actions. | true |
permanent_delete |
boolean | No | If true during delete execute, backend can perform permanent deletion where allowed. | false |
viewer_id |
string | No | Optional explicit user context override. If omitted, MCP resolves this from the authenticated token/session. | IGH6969811447860000000000 |
organisation_id |
string | No | Optional explicit organisation context override. If omitted, MCP resolves this from the authenticated token/session. | PDX7478889578460000000000 |
idempotency_key |
string | No | Client supplied unique key for mutation safety. Re-using the same key returns the cached mutation result instead of executing again. | mcp-mutation-2026-05-13-001 |
Example Request
Preview delete impact before execute
{
"jsonrpc": "2.0",
"id": "content_delete_items-1",
"method": "tools/call",
"params": {
"name": "content_delete_items",
"arguments": {
"ids": [
"KBD0215806635290000000000"
],
"action": "preview",
"dry_run": true
}
}
}
Example Success
{
"success": true,
"data": {
"tool": "content_delete_items",
"note": "Payload shape depends on tenant data and backend route output."
},
"error": null
}
Example Failure
{
"success": false,
"data": null,
"error": {
"code": "INVALID_ARGUMENTS",
"message": "Missing or invalid parameters for content_delete_items.",
"status": 400,
"retryable": false
}
}
content_update_visibility
Update content/folder visibility settings in bulk.
Backend routes: /content-visibility/update-item-settings
Arguments
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
ids |
array | Yes | Generic list of IDs for bulk folder/content operations. | ["KBD0215806635290000000000","WRS1777477248002807551754"] |
visibility_mode |
string (INTERNAL_AND_EXTERNAL | INTERNAL_ONLY | SCOPED) | Yes | Visibility strategy to apply to selected records. | SCOPED |
scope_assignees |
object | No | Scope assignment payload for SCOPED visibility updates. | {"users":["IGH6969811447860000000000"],"teams":[]} |
apply_to_descendants_for_folders |
boolean | No | When true, folder visibility changes cascade to descendants. | true |
inherit_from_parent |
boolean | No | When true, children inherit parent visibility where supported. | true |
preserve_external_links_when_scoped |
boolean | No | When true, existing external links are preserved during scope updates where possible. | true |
viewer_id |
string | No | Optional explicit user context override. If omitted, MCP resolves this from the authenticated token/session. | IGH6969811447860000000000 |
organisation_id |
string | No | Optional explicit organisation context override. If omitted, MCP resolves this from the authenticated token/session. | PDX7478889578460000000000 |
idempotency_key |
string | No | Client supplied unique key for mutation safety. Re-using the same key returns the cached mutation result instead of executing again. | mcp-mutation-2026-05-13-001 |
Example Request
Scope content to selected users
{
"jsonrpc": "2.0",
"id": "content_update_visibility-1",
"method": "tools/call",
"params": {
"name": "content_update_visibility",
"arguments": {
"ids": [
"KBD0215806635290000000000"
],
"visibility_mode": "SCOPED",
"scope_assignees": {
"users": [
"IGH6969811447860000000000"
],
"teams": []
},
"apply_to_descendants_for_folders": true,
"inherit_from_parent": true,
"preserve_external_links_when_scoped": true
}
}
}
Example Success
{
"success": true,
"data": {
"tool": "content_update_visibility",
"note": "Payload shape depends on tenant data and backend route output."
},
"error": null
}
Example Failure
{
"success": false,
"data": null,
"error": {
"code": "INVALID_ARGUMENTS",
"message": "Missing or invalid parameters for content_update_visibility.",
"status": 400,
"retryable": false
}
}
content_share_link_create
Create external share link for content.
Backend routes: Derived/indirect handler route.
Arguments
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
content_id |
string | Yes | Primary content ID targeted by this operation. | KBD0215806635290000000000 |
reuse_active |
boolean | No | When true, reuses an existing active external link before creating a new one. | true |
expiry_date |
string | No | Link expiry date/time expected by backend date parsing (ISO datetime recommended). | 2026-06-30T23:59:59Z |
max_downloads |
number | No | Maximum allowed downloads for generated external links. | 50 |
comment |
string | No | Optional audit/comment text saved with the external link action. | Shared for customer security review |
viewer_id |
string | No | Optional explicit user context override. If omitted, MCP resolves this from the authenticated token/session. | IGH6969811447860000000000 |
organisation_id |
string | No | Optional explicit organisation context override. If omitted, MCP resolves this from the authenticated token/session. | PDX7478889578460000000000 |
idempotency_key |
string | No | Client supplied unique key for mutation safety. Re-using the same key returns the cached mutation result instead of executing again. | mcp-mutation-2026-05-13-001 |
Example Request
Create/reuse external share link
{
"jsonrpc": "2.0",
"id": "content_share_link_create-1",
"method": "tools/call",
"params": {
"name": "content_share_link_create",
"arguments": {
"content_id": "KBD0215806635290000000000",
"reuse_active": true,
"expiry_date": "2026-06-30T23:59:59Z",
"max_downloads": 25,
"comment": "Shared for procurement review"
}
}
}
Example Success
{
"success": true,
"data": {
"tool": "content_share_link_create",
"note": "Payload shape depends on tenant data and backend route output."
},
"error": null
}
Example Failure
{
"success": false,
"data": null,
"error": {
"code": "INVALID_ARGUMENTS",
"message": "Missing or invalid parameters for content_share_link_create.",
"status": 400,
"retryable": false
}
}
content_share_link_expire
Expire one link or all links for content.
Backend routes: /expire-all-content-share-links, /expire-content-share-link
Arguments
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
link_id |
number | No | Numeric ID of an external share link record. | 1042 |
content_id |
string | No | Primary content ID targeted by this operation. | KBD0215806635290000000000 |
expire_all |
boolean | No | When true, expires all links for `content_id` instead of a single `link_id`. | false |
viewer_id |
string | No | Optional explicit user context override. If omitted, MCP resolves this from the authenticated token/session. | IGH6969811447860000000000 |
organisation_id |
string | No | Optional explicit organisation context override. If omitted, MCP resolves this from the authenticated token/session. | PDX7478889578460000000000 |
idempotency_key |
string | No | Client supplied unique key for mutation safety. Re-using the same key returns the cached mutation result instead of executing again. | mcp-mutation-2026-05-13-001 |
Example Request
Expire one specific link
{
"jsonrpc": "2.0",
"id": "content_share_link_expire-1",
"method": "tools/call",
"params": {
"name": "content_share_link_expire",
"arguments": {
"link_id": 1042
}
}
}
Example Success
{
"success": true,
"data": {
"tool": "content_share_link_expire",
"note": "Payload shape depends on tenant data and backend route output."
},
"error": null
}
Example Failure
{
"success": false,
"data": null,
"error": {
"code": "INVALID_ARGUMENTS",
"message": "Missing or invalid parameters for content_share_link_expire.",
"status": 400,
"retryable": false
}
}