Get the tool inventory
/v1/tool-inventoryGet the tool inventory.
Lists every tool name seen in the window, most used first, merged from three sources: tools declared in tools on LLM requests, tools the model asked to call, and tools/call requests through the MCP Gateway. Each tool says whether an MCP Gateway integration in the organization exposes a tool of that name (registered: false marks a shadow tool) and whether it was declared under more than one definition. The window defaults to the 30 days before end_time (default now). Each source contributes at most 500 tool names; truncated says when more exist. The summary counts are not capped.
With workspace_id, requires access to that workspace: an organization owner or admin, a member of the workspace, an organization-scoped va_ key with the admin role, or a va_ key scoped to the workspace. Without it, requires an organization owner or admin, or an organization-scoped va_ key with the admin role. Errors: 400 when start_time is not before end_time; 402 when the organization's plan does not include the tool inventory.
Authorization
AuthorizationBearer va_A platform API key (
va_...), created under Settings > API keys. Scoped to an organization or one workspace, with an admin or member role. Used by the management API.
Query parameters
organizationstringrequiredthe organization's slug
workspace_idstring<uuid>a workspace id (UUID) to limit the inventory to that workspace's traffic and servers
start_timestring<date-time>start of the window, inclusive (ISO 8601 date-time with offset); default 30 days before
end_timeend_timestring<date-time>end of the window, exclusive (ISO 8601 date-time with offset); default now
Responses
start_timestring<date-time>Start of the window the inventory covers, inclusive (ISO 8601 date-time).
end_timestring<date-time>End of the window the inventory covers, exclusive (ISO 8601 date-time).
summaryobjectTotals for the tool inventory's window.
Child attributes
toolsinteger<int32>Distinct tool names in the inventory (the length of
data).unregistered_toolsinteger<int32>Tools seen in traffic that no MCP Gateway integration exposes.
changed_toolsinteger<int32>Tools declared with more than one definition in the window.
requests_with_toolsinteger<int64>LLM requests in the window that declared at least one tool.
tool_resultsinteger<int64>Tool-role messages (results fed back to the model) on LLM requests.
flagged_requestsinteger<int64>LLM requests whose tool results the always-on scan flagged (MONITOR, REDACT or BLOCK).
gateway_callsinteger<int64>Tool calls (
tools/call) made through the MCP Gateway in the window, whatever their outcome.
dataobject[]Most used first; capped at
limit.Child attributes
namestringThe tool's name, as declared or called. Names come from your agents and MCP servers and are not verified.
declared_requestsinteger<int64>LLM requests whose
tools[]declared it.model_callsinteger<int64>Times a model asked to call it.
gateway_callsinteger<int64>tools/calls through the MCP Gateway.definitionsinteger<int32>Distinct definitions (name + description + parameters) declared under this name. More than one means the tool changed - a rug pull or tool shadowing looks exactly like this.
first_seenstring<date-time>When the tool was first seen in the window, in any source (ISO 8601 date-time).
last_seenstring<date-time>When the tool was last seen in the window, in any source (ISO 8601 date-time).
virtual_keysstring[]Up to 10 virtual keys that declared it.
modelsstring[]Up to 10 models it was declared to.
registeredbooleanAn MCP Gateway integration in the org exposes a tool of this name. False = shadow tool.
serversobject[]Gateway servers that expose it (in the requested workspace, when one is given).
Child attributes
slugstringThe MCP Gateway server's slug.
namestringThe MCP Gateway server's display name.
truncatedbooleanTrue when more tool names exist than were returned.