Agent
List permission-filtered named contract tools
GET/agent/mcp/tools
MCP discovery maps only x-mcp-tool contract operations. Filter using current tenant membership and OAuth scopes; paginate with opaque cursor. Writes are proposals only and require a separate human approval. Full static inventory is mcp-tools.json; omitted tools are unavailable to this caller.
Authentication
mcpOAuth
mcpOAuth
MCP authorization code + PKCE S256, resource-bound tokens; no token passthrough. Scope cannot elevate membership.
Required roles
advertiser:owneradvertiser:manageradvertiser:analystpublisher:ownerpublisher:integration_managerpublisher:analystinternal:organization_ownerinternal:support_operatorinternal:finance_operatorinternal:risk_operator
Parameters
cursor
query · Optional · string
Opaque tenant/filter-scoped cursor. Invalid or expired values return 400 invalid_cursor.
Inspect JSON schema
{
"type": "string",
"minLength": 1,
"maxLength": 512
}limit
query · Optional · integer
Page size, default 20.
Inspect JSON schema
{
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
}Request body
This operation has no request body.
Responses
200List permission-filtered named contract tools
X-Request-Id · Opaque trace reference; never contains user data.
application/json
itemsRequiredMcpTool[]nextCursorRequiredstring | null
Inspect JSON schema
{
"type": "object",
"additionalProperties": false,
"required": [
"items",
"nextCursor"
],
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/McpTool"
},
"minItems": 0,
"maxItems": 100
},
"nextCursor": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 512
},
{
"type": "null"
}
]
}
}
}400Invalid request
X-Request-Id · Opaque trace reference; never contains user data.
application/problem+json
typeRequiredstringformat:
urititleRequiredstringminLength:
1maxLength:
200statusRequiredintegerminimum:
400maximum:
599codeRequiredstringminLength:
1maxLength:
80pattern:
^[a-z][a-z0-9_]+$detailOptionalstringminLength:
1maxLength:
2000instanceOptionalstringminLength:
1maxLength:
512errorsOptionalobject
Inspect JSON schema
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"status",
"code"
],
"properties": {
"type": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "integer",
"minimum": 400,
"maximum": 599
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[a-z][a-z0-9_]+$"
},
"detail": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"instance": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"errors": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"minItems": 1,
"maxItems": 10
}
}
}
}401Authentication required
X-Request-Id · Opaque trace reference; never contains user data.
application/problem+json
typeRequiredstringformat:
urititleRequiredstringminLength:
1maxLength:
200statusRequiredintegerminimum:
400maximum:
599codeRequiredstringminLength:
1maxLength:
80pattern:
^[a-z][a-z0-9_]+$detailOptionalstringminLength:
1maxLength:
2000instanceOptionalstringminLength:
1maxLength:
512errorsOptionalobject
Inspect JSON schema
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"status",
"code"
],
"properties": {
"type": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "integer",
"minimum": 400,
"maximum": 599
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[a-z][a-z0-9_]+$"
},
"detail": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"instance": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"errors": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"minItems": 1,
"maxItems": 10
}
}
}
}403Insufficient permission
X-Request-Id · Opaque trace reference; never contains user data.
application/problem+json
typeRequiredstringformat:
urititleRequiredstringminLength:
1maxLength:
200statusRequiredintegerminimum:
400maximum:
599codeRequiredstringminLength:
1maxLength:
80pattern:
^[a-z][a-z0-9_]+$detailOptionalstringminLength:
1maxLength:
2000instanceOptionalstringminLength:
1maxLength:
512errorsOptionalobject
Inspect JSON schema
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"status",
"code"
],
"properties": {
"type": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "integer",
"minimum": 400,
"maximum": 599
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[a-z][a-z0-9_]+$"
},
"detail": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"instance": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"errors": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"minItems": 1,
"maxItems": 10
}
}
}
}404Resource not found
X-Request-Id · Opaque trace reference; never contains user data.
application/problem+json
typeRequiredstringformat:
urititleRequiredstringminLength:
1maxLength:
200statusRequiredintegerminimum:
400maximum:
599codeRequiredstringminLength:
1maxLength:
80pattern:
^[a-z][a-z0-9_]+$detailOptionalstringminLength:
1maxLength:
2000instanceOptionalstringminLength:
1maxLength:
512errorsOptionalobject
Inspect JSON schema
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"status",
"code"
],
"properties": {
"type": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "integer",
"minimum": 400,
"maximum": 599
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[a-z][a-z0-9_]+$"
},
"detail": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"instance": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"errors": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"minItems": 1,
"maxItems": 10
}
}
}
}409State changed
X-Request-Id · Opaque trace reference; never contains user data.
application/problem+json
typeRequiredstringformat:
urititleRequiredstringminLength:
1maxLength:
200statusRequiredintegerminimum:
400maximum:
599codeRequiredstringminLength:
1maxLength:
80pattern:
^[a-z][a-z0-9_]+$detailOptionalstringminLength:
1maxLength:
2000instanceOptionalstringminLength:
1maxLength:
512errorsOptionalobject
Inspect JSON schema
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"status",
"code"
],
"properties": {
"type": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "integer",
"minimum": 400,
"maximum": 599
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[a-z][a-z0-9_]+$"
},
"detail": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"instance": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"errors": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"minItems": 1,
"maxItems": 10
}
}
}
}422Validation failed
X-Request-Id · Opaque trace reference; never contains user data.
application/problem+json
typeRequiredstringformat:
urititleRequiredstringminLength:
1maxLength:
200statusRequiredintegerminimum:
400maximum:
599codeRequiredstringminLength:
1maxLength:
80pattern:
^[a-z][a-z0-9_]+$detailOptionalstringminLength:
1maxLength:
2000instanceOptionalstringminLength:
1maxLength:
512errorsOptionalobject
Inspect JSON schema
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"status",
"code"
],
"properties": {
"type": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "integer",
"minimum": 400,
"maximum": 599
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[a-z][a-z0-9_]+$"
},
"detail": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"instance": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"errors": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"minItems": 1,
"maxItems": 10
}
}
}
}429Too many requests
X-Request-Id · Opaque trace reference; never contains user data.
Retry-After · Seconds before retry; do not repeat an unknown write automatically.
application/problem+json
typeRequiredstringformat:
urititleRequiredstringminLength:
1maxLength:
200statusRequiredintegerminimum:
400maximum:
599codeRequiredstringminLength:
1maxLength:
80pattern:
^[a-z][a-z0-9_]+$detailOptionalstringminLength:
1maxLength:
2000instanceOptionalstringminLength:
1maxLength:
512errorsOptionalobject
Inspect JSON schema
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"status",
"code"
],
"properties": {
"type": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "integer",
"minimum": 400,
"maximum": 599
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[a-z][a-z0-9_]+$"
},
"detail": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"instance": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"errors": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"minItems": 1,
"maxItems": 10
}
}
}
}500Service failed
X-Request-Id · Opaque trace reference; never contains user data.
application/problem+json
typeRequiredstringformat:
urititleRequiredstringminLength:
1maxLength:
200statusRequiredintegerminimum:
400maximum:
599codeRequiredstringminLength:
1maxLength:
80pattern:
^[a-z][a-z0-9_]+$detailOptionalstringminLength:
1maxLength:
2000instanceOptionalstringminLength:
1maxLength:
512errorsOptionalobject
Inspect JSON schema
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"status",
"code"
],
"properties": {
"type": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "integer",
"minimum": 400,
"maximum": 599
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[a-z][a-z0-9_]+$"
},
"detail": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"instance": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"errors": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"minItems": 1,
"maxItems": 10
}
}
}
}503Service unavailable
X-Request-Id · Opaque trace reference; never contains user data.
Retry-After · Seconds before retry; do not repeat an unknown write automatically.
application/problem+json
typeRequiredstringformat:
urititleRequiredstringminLength:
1maxLength:
200statusRequiredintegerminimum:
400maximum:
599codeRequiredstringminLength:
1maxLength:
80pattern:
^[a-z][a-z0-9_]+$detailOptionalstringminLength:
1maxLength:
2000instanceOptionalstringminLength:
1maxLength:
512errorsOptionalobject
Inspect JSON schema
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"status",
"code"
],
"properties": {
"type": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "integer",
"minimum": 400,
"maximum": 599
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[a-z][a-z0-9_]+$"
},
"detail": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"instance": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"errors": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"minItems": 1,
"maxItems": 10
}
}
}
}