List registered tools (all protocols)
const url = 'http://localhost:8693/v1/tools';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url http://localhost:8693/v1/toolsReturns all tools across all protocols. Filter by protocol using
the protocol query parameter. MCP-only callers may continue using
/v1/mcp/tools which is preserved as a backwards-compatible alias.
Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters ”Filter by protocol (e.g. “mcp”, “http”, “a2a/2025-draft-01”)
Responses
Section titled “ Responses ”Array of registered tools
Tool registration entry for the universal tool-call layer (ADR-0022 / UTC-008).
Extends ToolEntry with protocol declarations and adapter metadata.
Backwards-compatible: omitting protocols defaults to ["mcp"].
object
Protocols this tool accepts. Verifier rejects calls arriving via an unlisted protocol. Supported values: “mcp”, “http”, “a2a/2025-draft-01”. Omit to default to [“mcp”].
Human-readable tool description (shown in tool listings)
Tool schema version (semver)
Unique identifier for the tool
Human-readable name
RFC 8707 resource indicator. Token aud must match this.
Capabilities the token must include
Maximum blast radius scope (e.g., “namespace:analytics”)
Whether execution binding checks (exec_act, inp_hash, target) are enforced
Valid exec_act values (when requires_execution is true)
Valid target URIs (when requires_execution is true)
Example
[ { "protocols": [ "mcp", "http" ] }]Tool registry not initialised
object
Error code (RFC 8693 compatible)
Human-readable error detail
Example
{ "error": "invalid_request"}