Configure tools over Tilde Global MCP
Usehttps://api.trytilde.ai/mcp. Call tilde_whoami. Team operations target a workspace; personal REST operations use /api/v1/user/{user_id}/... and infer the effective user for ordinary creates.
Configured tool accounts and MCP servers support team or user ownership. Personal resources have no team ID. Runtime MCP servers use user_tool_federation_mode: none | all | selected, defaulting to none. Selected policies contain provider/tool-definition pairs only—not credentials, aliases, bound parameters, or user account IDs. At connection time Tilde authenticates and pins the effective user to the MCP session, then exposes the caller’s active matching personal accounts under stable user__<provider>__<account>__<tool> names.
Tool groups, proxied/custom providers, MCP server instances, resource-server credentials, and user credentials have independent visibility and ownership modes. For tool and MCP roots, visibility governs discovery and permitted use; ownership governs settings, mappings, grants, and deletion. Credential visibility governs redacted metadata discovery only. Credential ownership or an exact consuming-resource capability governs brokering, rotation, deletion, and secret material. Private user/group grants never cross the root organization or team. An ownership grant or administrator role does not grant visibility.
Credential list/get responses never include plaintext or decrypted values. Secret material is available only to ownership-authorized configuration flows or an exact bound consuming-resource capability. Never ask Global MCP to display, export, or relay a stored credential.
Common-provider installations are live policy parents for the MCP tool group,
ChatKit provider, signal provider, and reverse-proxy profiles generated from one
provider setup. Their initial modes and grants come from the source
resource-server credential, but later policy changes are made only through the
installation’s standard visibility/ownership APIs. Bound children cannot widen
the parent. Credential rotation and secret administration remain separate.
Cross-root use is an intersection: MCP invocation requires visibility of both
the server and tool group (or its installation parent). Reverse-proxy invocation
requires profile visibility and uses an internal exact credential-consumption
capability; it does not require or confer credential ownership.
Recommended workflow
- Call
tilde_search_available_capabilitieswith a specific intent such as"GitHub pull request tools". Useinclude_schemas: truewhen you need provider or tool input details.
https://dashboard.linqapp.com/api-tooling. Tilde creates the managed webhook subscription; do not instruct users to add a second webhook unless they deliberately chose a standalone Signals provider. See /guides/linq.
2. Configure the source:
- Managed provider:
tilde_enable_toolkit_provider. - Provider app that Tilde should provision:
tilde_auto_provision_toolkit_provider. - Existing Streamable HTTP MCP server:
tilde_connect_proxied_mcp_server. - Tilde SDK
toolEndpointbackend:tilde_register_custom_tool_backend.
- If the response contains
approval_url, send it to the user. Immediately invoke the returnednext_tool_namewithnext_tool_arguments. Do not continue until it returnsapproved. - Enable only the required provider functions with
tilde_set_toolkit_tool_enabled. - Create a runtime server with
tilde_create_mcp_server. Supply a stable lowercaseid, a human-readablename, andis_dynamic_tool_discovery: trueunless the toolset is very small and fixed. - Call
tilde_search_enabled_capabilitiesto obtain the exacttool_group_instance_id,tool_group_source_type_id, andtool_source_type_idvalues. - Map each function with
tilde_set_mcp_server_tool_enabled. - Call
tilde_search_enabled_capabilitiesagain, filtered bymcp_server_instance_id, to verify the final mapping.
/{resource_id}/visibility, /{resource_id}/ownership, and /{resource_id}/{plane}/grants operations described in OpenAPI. Use principal_type: group to share with a tenant-scoped Identity group. Child definitions and mappings inherit their root; do not try to grant them separately.
Add a registered agent as an MCP tool
Each ChatKit agent registration creates one credentiallesschatkit_agent_message provider bound to that target agent. Use the returned message_tool_provider_id, or find the provider with tilde_search_enabled_capabilities, then map both provider functions onto an existing runtime MCP server:
chatkit_agent_message_sendpersists an inbound ChatKit message and immediately returnsticket_id,session_id,next_tool, andnext_arguments.chatkit_agent_message_wait_for_responsesubscribes to the live ChatKit session, emits streaming and queue-status MCP notifications, and returns the final persisted ChatKit message.
next_tool instruction rather than guessing. Pass a prior session_id to continue the same child conversation. The target agent’s concurrency_policy controls queueing, interruption, and batching.
Managed providers
Never guess provider IDs or credential source IDs. Take them fromtilde_search_available_capabilities.
Call tilde_enable_toolkit_provider with:
team_idtool_group_source_type_idcredential_source_type_iddisplay_name- an existing credential ID only when the user supplied one
tilde_auto_provision_toolkit_provider when search results advertise an auto-provisioned provider app. It requires the provider and app identifiers returned by search.
Proxied MCP and custom HTTP tools
Usetilde_connect_proxied_mcp_server for an existing Streamable HTTP MCP URL. Set its declared auth_mode; do not put secrets in names, URLs, or descriptions. Call tilde_refresh_proxied_mcp_server after the upstream tool catalog changes.
For the server-authored hosted-provider catalog, direct the user to Tools → Proxied MCP servers → Browse provider catalog. Every published entry exposes reviewed tool definitions before credentials are supplied; providers without a validated snapshot are not published as connectable. Tilde records whether each snapshot is an exact public tools/list result or was inferred from official source or documentation; an authenticated tools/list response replaces the snapshot after connection.
Do not ask the user to paste provider secrets into chat or into MCP arguments. OAuth client secrets, API keys, and bearer tokens must be entered through Tilde’s credential setup. Dynamic OAuth client registrations are environment-specific and require authorization again after state import; pre-registered manual OAuth configurations remain declarative and their user credential is reconnected separately.
Use tilde_register_custom_tool_backend for a signed discovery endpoint created with Tilde SDK toolEndpoint. Save the one-time signing key in the tool server, then call tilde_refresh_custom_tool_backend after its manifest changes.
For implementation patterns, inspect the code review bot and the rest of the examples repository.
Reverse proxies
Reverse proxies let application code call a provider’s native API while Tilde injects its credential. Supported provider profiles are enabled by default.- Call
tilde_list_reverse_proxiesto find profile IDs and proxy base URLs. - Call
tilde_set_reverse_proxy_enabledonly when you need to change live traffic for a profile.
Connect the deployed agent
Pass the runtime MCP server ID to Tilde SDKcreateMCPClient. Follow the human Tools guide for the client code. The code review bot is the preferred reference for custom agents that combine MCP tools, local tools, and reverse proxies.
Within a chatKitEndpoint({ responseMode: "tool" }) handler, prefer context.session.tools, context.$provider.tools, or context.session.createMCPClient({ serverId }). These surfaces inject session-bound provider communication tools and prefill routing identifiers. sendMessage creates the visible ChatKit message; reactions, thread reads, and Linq poll operations are emitted as canonical tool-execution events.
Use context.mcp.connect({ serverId }) when a shared ChatKit agent should federate the verified speaker’s eligible personal tools. The SDK forwards an invocation-scoped capability outside model input. Never serialize that capability, user IDs, account IDs, or credentials into messages, state, logs, or tool arguments.
For an agent_job invocation, use the same context.mcp.connect surface. Tilde derives the human from the durable job’s private parent-session lineage and an actual ancestor message with a server-authored human actor; do not insert a fake human message into the child session. Capabilities retain the child session, original trigger, and job ID/generation. Their use revalidates the running generation, private owner and grants, active participants, current team membership, and original external sender verification and channel policy. A resumed generation cannot reuse an older capability. Hidden continuations must also match their trusted AgentRun generation and worker lease. Personal federation is withheld if the lineage or original policy cannot be validated.
Personal OAuth setup from an application
Use the official SDK transport with the authenticated user’s session. Discover provider/auth-method IDs from the team’s provider-setup catalog, then callPOST /api/v1/team/{team_id}/provider-setup/start with personal: true, domain: "mcp", provider_id, auth_method_id, a unique form_values.id, optional
form_values.displayName, and return_url. Follow the returned generic
next_action. List the resulting accounts through the user-scoped tool-group
route. Multiple accounts of the same provider remain distinct. Personal OAuth
brokering is restricted to the effective owner; user credentials are encrypted
and refreshed in the user scope. Omitting personal retains team setup.
Personal credential setup ensures organization, workspace (when required for
broker state), and user key defaults after validating the effective owner.
Callbacks repair missing defaults before token exchange. A missing personal key
must never be worked around by encrypting the user’s tokens under a team key.