MCPBundler Docs
MCPBundler Docs
Back to marketplaceGetting StartedAuthenticationTutorial - Bundle to Connected Agent
API Reference
Agent A2A Tools
Agent Channels
Agent Configuration (Staging)
Agent Configuration (Versions)
Agent Tools
Agents
Auth
Billing
Bundler
Bundler Tool
Bundles
Call Campaigns
Catalog
Conversations
Credentials
Deployments
Discover
Embedding
Fleet
Knowledge Bases
LLM
MCP Listings
Media
OAuth Clients
Create Oauth ClientGet Oauth Client Mcp ExposureList Mcp ToolsList Oauth ClientsRevoke Oauth ClientSet Oauth Client Mcp ExposureSet Oauth Client Resource Grants
OAuth2
Observability
Organisations
Realtime
Reviews
Roadmap
SCIM
STT
Suppression
Triggers
TTS
Users
Utils
Voices
Webhooks
Workflows
API ReferenceOAuth Clients

Set Oauth Client Mcp Exposure

PUT
/v1/organisations/{org_id}/oauth-clients/{client_id}/mcp-exposure

Replace one credential's MCP-exposure allow-list for one (resource, action) pair - controls which tools list_mcp_tools can ever surface for this credential, independent of and layered on top of the scope grant and the instance-grant allow-list from set_oauth_client_resource_grants.

Same org-scoping and 404 opacity as the sibling resource-grants and revoke routes: a credential belonging to a different organisation is a 404, not a 403.

A populated resource_ids list is rejected with a 422: list_mcp_tools does not yet intersect exposure rows against resource_id, so silently accepting an instance-scoped write here would mislead the caller into believing they had scoped a credential's tool access to specific resources when the write actually has no effect on what the credential can see. Only null (unrestricted) and [] (deny-all) are currently meaningful.

Authorization

OAuth2AuthorizationCodeBearer
AuthorizationBearer <token>

In: header

Path Parameters

org_id*Org Id
Formatuuid
client_id*Client Id
Formatuuid

Query Parameters

verify_locally?Verify Locally
Defaulttrue

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Replace one credential's MCP-exposure allow-list for one (resource, action) pair - the tool-catalog-visibility counterpart to SetResourceGrantsIn's instance-grant allow-list.

resource_ids carries the same three-way semantics as SetResourceGrantsIn: null writes the unrestricted-within-org sentinel row, [] is the explicit deny-all state, and a populated list allow-lists exactly those instance ids.

Response Body

application/json

curl -X PUT "https://example.com/v1/organisations/497f6eca-6276-4993-bfeb-53cbbbba6f08/oauth-clients/497f6eca-6276-4993-bfeb-53cbbbba6f08/mcp-exposure" \  -H "Content-Type: application/json" \  -d '{    "resource": "string",    "action": "string",    "resource_ids": [      "f3aaf7b6-b51a-43c8-8627-9e1a7630b22a"    ]  }'
Empty
{  "detail": [    {      "loc": [        "string"      ],      "msg": "string",      "type": "string"    }  ]}

Revoke Oauth Client

Previous Page

Set Oauth Client Resource Grants

Next Page

resource*Resource
action*Action
resource_ids*array<>|null