Content

Last updated:

Revenue Influence and Performance Tools (May 2026)

These tools are now available for revenue attribution and performance storytelling directly through MCP.

ToolWhat It AnswersTypical Output
content_get_revenue_influenceHow 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_performingWhat 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

ToolMutationBackend Routes
content_get_thumbnailsNo/batch-open-thumbnails
content_get_access_infoNo/batch-open-thumbnails
content_list_dashboardNo/view-content-and-folders-sorted , /tags/get-folder-content-tags
content_check_visibilityNo/content-visibility/check-entities
content_move_itemsYes/move-folder
content_copy_itemsYes/duplicate-content
content_archive_itemsYes/archive-items
content_unarchive_itemsYes/unarchive-items
content_delete_itemsYes/delete-record-impact , /flag-for-deletion , /unflag-for-deletion
content_update_visibilityYes/content-visibility/update-item-settings
content_share_link_createYes–
content_share_link_expireYes/expire-all-content-share-links , /expire-content-share-link

content_get_thumbnails

Fetch thumbnails for content IDs.

Backend routes: /batch-open-thumbnails

Arguments

FieldTypeRequiredDescriptionExample
content_idsarrayYesList of content IDs to operate on.["KBD0215806635290000000000","KBD5567454989590000000000"]
viewer_idstringNoOptional explicit user context override. If omitted, MCP resolves this from the authenticated token/session.IGH6969811447860000000000
organisation_idstringNoOptional 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

FieldTypeRequiredDescriptionExample
content_idsarrayYesList of content IDs to operate on.["KBD0215806635290000000000","KBD5567454989590000000000"]
include_thumbnailsbooleanNoWhen true, fetch thumbnail payloads for provided/returned content IDs.true
include_external_linkbooleanNoWhen true, includes or creates external share links in the response.true
reuse_activebooleanNoWhen true, reuses an existing active external link before creating a new one.true
expiry_datestringNoLink expiry date/time expected by backend date parsing (ISO datetime recommended).2026-06-30T23:59:59Z
max_downloadsnumberNoMaximum allowed downloads for generated external links.50
commentstringNoOptional audit/comment text saved with the external link action.Shared for customer security review
viewer_idstringNoOptional explicit user context override. If omitted, MCP resolves this from the authenticated token/session.IGH6969811447860000000000
organisation_idstringNoOptional 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

FieldTypeRequiredDescriptionExample
folder_idstringNoFolder identifier used as scope for listing/tag fetch.WRS1777477248002807551754
content_statestring (active | archived)NoControls whether active or archived records are listed.active
include_tagsbooleanNoWhen true, returns tag metadata alongside dashboard listing.true
training_assets_onlybooleanNoWhen true, limits dashboard listing to training-tagged assets.false
force_refresh_contentsbooleanNoWhen true, bypasses cached sorted payload and rebuilds listing.false
viewer_idstringNoOptional explicit user context override. If omitted, MCP resolves this from the authenticated token/session.IGH6969811447860000000000
organisation_idstringNoOptional 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

FieldTypeRequiredDescriptionExample
content_idsarrayNoList of content IDs to operate on.["KBD0215806635290000000000","KBD5567454989590000000000"]
folder_idsarrayNoList of folder IDs used for visibility checks.["WRS1777477248002807551754"]
content_itemsarrayNoDetailed content rows for visibility checks. Each item typically includes `id` and `folder`.[{"id":"KBD0215806635290000000000","folder":"WRS1777477248002807551754"}]
viewer_idstringNoOptional explicit user context override. If omitted, MCP resolves this from the authenticated token/session.IGH6969811447860000000000
organisation_idstringNoOptional 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

FieldTypeRequiredDescriptionExample
idsarrayYesGeneric list of IDs for bulk folder/content operations.["KBD0215806635290000000000","WRS1777477248002807551754"]
move_folder_idstringYesDestination folder ID for move operation.WRS1777477248002807551754
set_direct_pitch_contentbooleanNoWhen true, marks moved content as direct pitch content in destination.false
viewer_idstringNoOptional explicit user context override. If omitted, MCP resolves this from the authenticated token/session.IGH6969811447860000000000
organisation_idstringNoOptional explicit organisation context override. If omitted, MCP resolves this from the authenticated token/session.PDX7478889578460000000000
idempotency_keystringNoClient 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

FieldTypeRequiredDescriptionExample
content_idsarrayYesList of content IDs to operate on.["KBD0215806635290000000000","KBD5567454989590000000000"]
target_folder_idstringNoOptional destination folder for archive/copy/unarchive flows.WRS1777477248002807551754
direct_pitch_contentbooleanNoWhen true, copied content is flagged for direct pitch visibility.false
viewer_idstringNoOptional explicit user context override. If omitted, MCP resolves this from the authenticated token/session.IGH6969811447860000000000
organisation_idstringNoOptional explicit organisation context override. If omitted, MCP resolves this from the authenticated token/session.PDX7478889578460000000000
idempotency_keystringNoClient 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

FieldTypeRequiredDescriptionExample
idsarrayYesGeneric list of IDs for bulk folder/content operations.["KBD0215806635290000000000","WRS1777477248002807551754"]
target_folder_idstringNoOptional destination folder for archive/copy/unarchive flows.WRS1777477248002807551754
viewer_idstringNoOptional explicit user context override. If omitted, MCP resolves this from the authenticated token/session.IGH6969811447860000000000
organisation_idstringNoOptional explicit organisation context override. If omitted, MCP resolves this from the authenticated token/session.PDX7478889578460000000000
idempotency_keystringNoClient 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

FieldTypeRequiredDescriptionExample
idsarrayYesGeneric list of IDs for bulk folder/content operations.["KBD0215806635290000000000","WRS1777477248002807551754"]
target_folder_idstringNoOptional destination folder for archive/copy/unarchive flows.WRS1777477248002807551754
viewer_idstringNoOptional explicit user context override. If omitted, MCP resolves this from the authenticated token/session.IGH6969811447860000000000
organisation_idstringNoOptional explicit organisation context override. If omitted, MCP resolves this from the authenticated token/session.PDX7478889578460000000000
idempotency_keystringNoClient 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

FieldTypeRequiredDescriptionExample
idsarrayYesGeneric list of IDs for bulk folder/content operations.["KBD0215806635290000000000","WRS1777477248002807551754"]
actionstring (preview | execute | restore)YesDelete flow mode: `preview` (impact only), `execute` (mark/delete), or `restore` (undo delete flag).preview
dry_runbooleanNoSafety gate for preview actions. Must be true when action is preview.true
confirmbooleanNoSafety confirmation for destructive execution actions.true
permanent_deletebooleanNoIf true during delete execute, backend can perform permanent deletion where allowed.false
viewer_idstringNoOptional explicit user context override. If omitted, MCP resolves this from the authenticated token/session.IGH6969811447860000000000
organisation_idstringNoOptional explicit organisation context override. If omitted, MCP resolves this from the authenticated token/session.PDX7478889578460000000000
idempotency_keystringNoClient 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

FieldTypeRequiredDescriptionExample
idsarrayYesGeneric list of IDs for bulk folder/content operations.["KBD0215806635290000000000","WRS1777477248002807551754"]
visibility_modestring (INTERNAL_AND_EXTERNAL | INTERNAL_ONLY | SCOPED)YesVisibility strategy to apply to selected records.SCOPED
scope_assigneesobjectNoScope assignment payload for SCOPED visibility updates.{"users":["IGH6969811447860000000000"],"teams":[]}
apply_to_descendants_for_foldersbooleanNoWhen true, folder visibility changes cascade to descendants.true
inherit_from_parentbooleanNoWhen true, children inherit parent visibility where supported.true
preserve_external_links_when_scopedbooleanNoWhen true, existing external links are preserved during scope updates where possible.true
viewer_idstringNoOptional explicit user context override. If omitted, MCP resolves this from the authenticated token/session.IGH6969811447860000000000
organisation_idstringNoOptional explicit organisation context override. If omitted, MCP resolves this from the authenticated token/session.PDX7478889578460000000000
idempotency_keystringNoClient 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

FieldTypeRequiredDescriptionExample
content_idstringYesPrimary content ID targeted by this operation.KBD0215806635290000000000
reuse_activebooleanNoWhen true, reuses an existing active external link before creating a new one.true
expiry_datestringNoLink expiry date/time expected by backend date parsing (ISO datetime recommended).2026-06-30T23:59:59Z
max_downloadsnumberNoMaximum allowed downloads for generated external links.50
commentstringNoOptional audit/comment text saved with the external link action.Shared for customer security review
viewer_idstringNoOptional explicit user context override. If omitted, MCP resolves this from the authenticated token/session.IGH6969811447860000000000
organisation_idstringNoOptional explicit organisation context override. If omitted, MCP resolves this from the authenticated token/session.PDX7478889578460000000000
idempotency_keystringNoClient 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

FieldTypeRequiredDescriptionExample
link_idnumberNoNumeric ID of an external share link record.1042
content_idstringNoPrimary content ID targeted by this operation.KBD0215806635290000000000
expire_allbooleanNoWhen true, expires all links for `content_id` instead of a single `link_id`.false
viewer_idstringNoOptional explicit user context override. If omitted, MCP resolves this from the authenticated token/session.IGH6969811447860000000000
organisation_idstringNoOptional explicit organisation context override. If omitted, MCP resolves this from the authenticated token/session.PDX7478889578460000000000
idempotency_keystringNoClient 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
  }
}