We recommend Ask TFY in the product for most workflows. It runs the same tools as the MCP server, plus capabilities that aren’t available when you connect from an external tool:
Higher accuracy, lower cost
Skills, MCP servers are constantly kept up-to-date and includes additional context like TrueFoundry docs. The agent is tuned to use fewer tokens, lower cost and provide better insights.
Charts and visualizations
Ask TFY renders charts and visualizations inline, so usage, cost, and observability answers come back as graphs instead of raw text.
Built-in approval flows
Ask TFY recognizes write actions, shows you a diff of what will change, and asks for approval before applying it. Connecting from another tool gives you the raw tools without this safety layer.
Connect Claude, Cursor, or another tool when you want TrueFoundry operations inside the editor or assistant you already use, or need to combine them with other MCP servers in a single session.
TrueFoundry provides an MCP server and a set of skills that you can plug into Claude, Cursor, Codex, or any tool that speaks MCP. The MCP server exposes platform operations as tools the agent can call; skills give it tested, step-by-step procedures for common workflows.
The MCP server is available starting v0.155.
Connecting the MCP server directly gives you the raw tools without the diff previews, approval flows, or inline visualizations available in Ask TFY.
The TrueFoundry MCP server runs at https://<CONTROL_PLANE_URL>/<tenant>/mcp with Streamable HTTP transport. Add this URL to your MCP client and sign in with TrueFoundry, or register that same URL on the MCP Gateway and connect through the gateway. You do not need to create or configure an API key.All actions run as the authenticated user and follow the same RBAC as the dashboard and CLI.Replace <CONTROL_PLANE_URL> with your control plane host and <tenant> with your TrueFoundry tenant name.
Sign in directly
OAuth via MCP Gateway
1
Add the TrueFoundry MCP server
Cursor
Claude Code
Claude Desktop
Other clients
Add the server to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):
claude mcp add --transport http truefoundry \ https://<CONTROL_PLANE_URL>/<tenant>/mcp
Go to Settings > Connectors > Add custom connector and set the URL to:
https://<CONTROL_PLANE_URL>/<tenant>/mcp
Add the following Streamable HTTP server URL to any OAuth-compatible MCP client:
https://<CONTROL_PLANE_URL>/<tenant>/mcp
2
Sign in with TrueFoundry
Your MCP client opens TrueFoundry in your browser. Sign in and approve the connection. The client completes the remaining setup automatically.
3
Start using the server
Ask your client in natural language, for example: “Using TrueFoundry, list the model accounts I can access.”
To sign in with TrueFoundry from your IDE, register the MCP server on the MCP Gateway first. The gateway handles OAuth inbound auth and forwards your token to the control plane using Token Passthrough.
1
Register the server in MCP Gateway
In MCP Gateway, click Add Server > Connect any Remote MCP Server. Set:
Name:truefoundry-mcp (or any unique name)
URL:https://<CONTROL_PLANE_URL>/<tenant>/mcp
Auth Data:Token Passthrough — forwards the user’s existing auth token directly to the MCP server
Register the TrueFoundry MCP server with Token Passthrough auth
2
Connect from your IDE
Open the server’s How To Use tab and copy the AI Gateway URL — it looks like https://<gateway>/<tenant>/mcp/<server-name>/server. Use that URL (not the control plane MCP URL) in your IDE config.Your IDE opens a browser to Sign in with TrueFoundry on first connect. Because the server uses Token Passthrough, the gateway forwards your TrueFoundry token to the control plane MCP server automatically.For step-by-step IDE instructions, see Connect MCP Servers from Your IDE.
claude mcp add --transport http truefoundry \ https://<gateway>/<tenant>/mcp/truefoundry-mcp/server
Go to Settings > Connectors > Add custom connector and set the URL to the AI Gateway URL from the How To Use tab. Claude prompts you to sign in with TrueFoundry.
Every tool carries an MCP annotation: readOnlyHint: true tools only read data and are safe to call without confirmation, while destructiveHint: true tools create, update, or delete a resource and should be confirmed by a human.
Full tool reference
Category
Tool
Read / Write
Description
Resource management
apply_manifest
Write
Apply a manifest to create or update a resource.
Resource management
delete_manifest
Write
Delete a resource identified by the provided manifest.
Resource management
validate_manifest
Read
Validate a manifest object against the schema for the given type.
Resource management
get_manifest_json_schema
Read
Get the JSON schema for the specified manifest type.
AI Gateway
generate_multi_lang_code_snippets
Read
Generate code snippets for calling an AI Gateway model.
AI Gateway
gateway_execute_sql
Read
Query AI Gateway observability data using SQL.
AI Gateway
get_gateway_config
Read
Get the AI Gateway configuration for a given type.
AI Gateway
get_budget_usage
Read
Get the current budget usage for every budget rule configured in the tenant.
AI Gateway
list_data_routing_destinations
Read
List data routing destination names for the current tenant.
AI Gateway
list_mcp_servers
Read
List MCP servers for the current tenant.
AI Gateway
get_mcp_server
Read
Get a single MCP server by its ID.
AI Gateway
delete_mcp_server
Write
Permanently delete an MCP server by ID.
AI Gateway
list_mcp_server_tools
Read
List the tools available on a given MCP server.
AI Gateway
list_mcp_catalogue
Read
Returns the TFY-managed MCP server catalogue and the MCP integrations catalogue.
AI Gateway
get_mcp_server_oauth_config
Read
Get the OAuth authorization server configuration for an MCP server URL.
Provider accounts
list_providers
Read
List all provider types along with their supported integrations, models, and model types.
Provider accounts
list_provider_accounts
Read
List provider accounts the caller can read.
Provider accounts
get_provider_account
Read
Get a single provider account by its ID.
Secrets
list_secrets
Read
List secrets the caller has access to.
Secrets
delete_secret
Write
Delete a secret and all its versions permanently.
Secrets
list_secret_groups
Read
List secret groups along with associated secrets. Secret values are not included.
Secrets
get_secret_group
Read
Get a secret group by ID.
Secrets
list_secret_active_deployments
Read
Get active deployments associated with the given secret IDs.
Secrets
get_secret_deployments
Read
List active deployments that reference a specific secret.
Identity and user management
get_me
Read
Returns the identity and role information of the currently authenticated user or service account.
Identity and user management
list_users
Read
List users in the current tenant.
Identity and user management
get_user
Read
Get a single user by their ID.
Identity and user management
delete_user
Write
Permanently delete a user by ID.
Identity and user management
check_user_registration
Read
Check whether a user with the given email is registered in the current tenant.
Teams
list_teams_for_user
Read
List teams accessible to the current user.
Teams
get_team
Read
Get a single team by its ID.
Teams
list_team_members
Read
List users who are members of a team.
Teams
list_team_managers
Read
List users who hold the team-manager role on a team.
Teams
get_team_permissions
Read
Get all role bindings associated with a team.
Teams
delete_team
Write
Permanently delete a team.
Roles and access control
list_roles
Read
List roles for the current tenant.
Roles and access control
delete_role
Write
Permanently delete a role.
Roles and access control
get_actions_for_resource_type
Read
Get all permission actions available for a given resource type.
Virtual accounts and tokens
list_virtual_accounts
Read
List virtual accounts accessible to the current user.
Virtual accounts and tokens
get_virtual_account
Read
Get a single virtual account by its ID.
Virtual accounts and tokens
check_virtual_account_exists
Read
Check whether a virtual account with the given name exists.
Virtual accounts and tokens
delete_virtual_account
Write
Permanently delete a virtual account.
Virtual accounts and tokens
list_personal_access_tokens
Read
List personal access tokens created by the current user.
Virtual accounts and tokens
create_personal_access_token
Write
Create a new personal access token for the current user.
Virtual accounts and tokens
check_personal_access_token_exists
Read
Check whether a personal access token with the given name exists.
Skills give the agent tested, step-by-step procedures for TrueFoundry operations — the right field values, ordering, edge cases, and validations. They follow the open Agent Skills standard and work in any tool that supports skills, including Cursor, Claude Code, Codex, and TrueFoundry’s Agent Harness.
Skill
What it helps you do
Gateway
Set up models, model accounts, virtual models with routing and failover
Browse the source and see exactly what each skill does.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"TrueFoundry Docs","description":"TrueFoundry documentation — enterprise-grade AI Gateway combining LLM, MCP, and Agent Gateways to connect, monitor, and govern agentic AI applications across providers from a unified control plane.","colors":{"primary":"#4f46e5","light":"#4f46e5","dark":"#4f46e5"},"logo":{"light":"https://mintcdn.com/truefoundry/e2uUimEwX30qkWxc/logo/light.svg?fit=max\u0026auto=format\u0026n=e2uUimEwX30qkWxc\u0026q=85\u0026s=6068d83664aeda0239bec2422657dd20","dark":"https://mintcdn.com/truefoundry/e2uUimEwX30qkWxc/logo/dark.svg?fit=max\u0026auto=format\u0026n=e2uUimEwX30qkWxc\u0026q=85\u0026s=c1cb26554a546d84500b40f7057bece8"},"favicon":"https://mintcdn.com/truefoundry/6bbtTt95c1iCcyph/favicon.svg?fit=max\u0026auto=format\u0026n=6bbtTt95c1iCcyph\u0026q=85\u0026s=f55bde34214b38034126d05b08ea16c7","appearance":{"default":"light"},"background":{"decoration":"grid"},"navbar":{"links":[{"href":"https://www.truefoundry.com/book-demo","label":"Book Demo"},{"href":"https://www.truefoundry.com/blog","label":"Blog"}],"primary":{"type":"button","label":"Sign Up","href":"https://www.truefoundry.com/register"}},"footer":{"socials":{"x":"https://twitter.com/truefoundry","linkedin":"https://in.linkedin.com/company/truefoundry"}},"seo":{"metatags":{"og:type":"website","og:site_name":"TrueFoundry Docs","og:image":"https://assets.production.truefoundry.com/logo.svg","og:description":"TrueFoundry offers an enterprise-grade AI Gateway combining LLM, MCP, and Agent Gateways—empowering businesses to connect, monitor, and govern agentic AI applications across providers from a unified control plane.","description":"TrueFoundry offers an enterprise-grade AI Gateway combining LLM, MCP, and Agent Gateways—empowering businesses to connect, monitor, and govern agentic AI applications across providers from a unified control plane."}},"icons":{"library":"fontawesome"},"styling":{"codeblocks":"dark","latex":true},"contextual":{"options":["copy","view","chatgpt","claude","mcp","cursor","vscode"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"truefoundry","hasAudioNarration":false,"actualSubdomain":"truefoundry","customDomains":["www.truefoundry.com"],"gitSource":{"type":"github","owner":"truefoundry","repo":"docs-mintlify","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6af187b96ed814e4b8edb9ef","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"AI Gateway","count":233},{"language":"default","tag":"API Reference","count":202},{"language":"default","tag":"Platform","count":198},{"language":"default","tag":"Integrations","count":132},{"language":"default","tag":"AI Deployment","count":108},{"language":"default","tag":"LLM Gateway","count":100},{"language":"default","tag":"Integrate Models","count":50},{"language":"default","tag":"Observability","count":47},{"language":"default","tag":"Guardrails and Security","count":46},{"language":"default","tag":"Installation Guides","count":44}]},"assistantConfig":{"enableAskAiButton":true,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@truefoundry.com","showHelpButton":true}},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".line-highlight{background:rgb(var(--primary-light)/.7)!important}.tfy-cat-anchor{scroll-margin-top:6rem;margin-block:1.75rem}.line-highlight:before{background:rgb(var(--primary-light)/.7)!important}.line-highlight:after{background:rgb(var(--primary-light)/.7)!important}"}],"page":{"pagePath":"docs/interact-with-tfy-using-ai","slug":"/docs/interact-with-tfy-using-ai","pageMetadata":{"title":"Interact with TrueFoundry using AI","sidebarTitle":"Interact using AI","description":"Manage your TrueFoundry platform through natural language using AI agents.","href":"/docs/interact-with-tfy-using-ai"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Manage your TrueFoundry platform through natural language using AI agents.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,Card,CardGroup,CodeBlock,Frame,Heading,Note,OptimizedImage,Step,Steps,Tab,Table,Tabs,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`You can manage models, MCP servers, users, teams, secrets, and policies on TrueFoundry through natural language. There are two ways to do it:`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Ask TFY (recommended)`,icon:`message-bot`,children:_jsx(_components.p,{children:`The agent built into the TrueFoundry dashboard. No setup — open it and start typing.`})}),_jsx(Card,{title:`Claude, Cursor \u0026 other tools`,icon:`plug`,children:_jsx(_components.p,{children:`Connect TrueFoundry to Claude, Cursor, Codex, or any other tool you already use, through the TrueFoundry MCP server.`})})]}),`\n`,_jsx(_components.p,{children:`Both run on the same MCP server and skills. Actions run as the authenticated user and follow the same RBAC as the dashboard and CLI.`}),`\n`,_jsx(Heading,{level:`2`,id:`which-one-should-you-use`,children:`Which one should you use?`}),`\n`,_jsxs(_components.p,{children:[`We recommend `,_jsx(_components.strong,{children:`Ask TFY`}),` in the product for most workflows. It runs the same tools as the MCP server, plus capabilities that aren’t available when you connect from an external tool:`]}),`\n`,_jsxs(CardGroup,{cols:3,children:[_jsx(Card,{title:`Higher accuracy, lower cost`,icon:`bullseye`,children:_jsx(_components.p,{children:`Skills, MCP servers are constantly kept up-to-date and includes additional context like TrueFoundry docs. The agent is tuned to use fewer tokens, lower cost and provide better insights.`})}),_jsx(Card,{title:`Charts and visualizations`,icon:`chart-column`,children:_jsx(_components.p,{children:`Ask TFY renders charts and visualizations inline, so usage, cost, and observability answers come back as graphs instead of raw text.`})}),_jsx(Card,{title:`Built-in approval flows`,icon:`shield-check`,children:_jsx(_components.p,{children:`Ask TFY recognizes write actions, shows you a diff of what will change, and asks for approval before applying it. Connecting from another tool gives you the raw tools without this safety layer.`})})]}),`\n`,_jsxs(_components.p,{children:[`Connect `,_jsx(_components.strong,{children:`Claude, Cursor, or another tool`}),` when you want TrueFoundry operations inside the editor or assistant you already use, or need to combine them with other MCP servers in a single session.`]}),`\n`,_jsx(Heading,{level:`2`,id:`ask-tfy`,children:`Ask TFY`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Open Ask TFY`,children:[_jsxs(_components.p,{children:[`Find `,_jsx(_components.strong,{children:`Ask TFY`}),` in the left sidebar under `,_jsx(_components.strong,{children:`Shared`}),`.`]}),_jsx(Frame,{caption:`Ask TFY in the TrueFoundry sidebar`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/truefoundry/Hbvk9_1i0ypVjNcq/images/docs/platform/ask-tfy-sidebar.png?fit=max\u0026auto=format\u0026n=Hbvk9_1i0ypVjNcq\u0026q=85\u0026s=50eedecb28b35650f39405b6a22b40cd`,alt:`TrueFoundry dashboard sidebar with Ask TFY highlighted under the Shared section.`,\"data-og-width\":`3022`,width:`3022`,\"data-og-height\":`1650`,height:`1650`,\"data-path\":`images/docs/platform/ask-tfy-sidebar.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/truefoundry/Hbvk9_1i0ypVjNcq/images/docs/platform/ask-tfy-sidebar.png?w=280\u0026fit=max\u0026auto=format\u0026n=Hbvk9_1i0ypVjNcq\u0026q=85\u0026s=23d4992332734749464693178a07d7e0 280w, https://mintcdn.com/truefoundry/Hbvk9_1i0ypVjNcq/images/docs/platform/ask-tfy-sidebar.png?w=560\u0026fit=max\u0026auto=format\u0026n=Hbvk9_1i0ypVjNcq\u0026q=85\u0026s=3aad3a246672f6516b9c5fe6e0f5e58c 560w, https://mintcdn.com/truefoundry/Hbvk9_1i0ypVjNcq/images/docs/platform/ask-tfy-sidebar.png?w=840\u0026fit=max\u0026auto=format\u0026n=Hbvk9_1i0ypVjNcq\u0026q=85\u0026s=0b8705d12830f0a2eb5a6a53bbeda62b 840w, https://mintcdn.com/truefoundry/Hbvk9_1i0ypVjNcq/images/docs/platform/ask-tfy-sidebar.png?w=1100\u0026fit=max\u0026auto=format\u0026n=Hbvk9_1i0ypVjNcq\u0026q=85\u0026s=b531e57dc342c116edaa33b7c43ef47b 1100w, https://mintcdn.com/truefoundry/Hbvk9_1i0ypVjNcq/images/docs/platform/ask-tfy-sidebar.png?w=1650\u0026fit=max\u0026auto=format\u0026n=Hbvk9_1i0ypVjNcq\u0026q=85\u0026s=a546ef857feca6281d51e9415cebbd75 1650w, https://mintcdn.com/truefoundry/Hbvk9_1i0ypVjNcq/images/docs/platform/ask-tfy-sidebar.png?w=2500\u0026fit=max\u0026auto=format\u0026n=Hbvk9_1i0ypVjNcq\u0026q=85\u0026s=69a36a27f530b80f1a4a3c94fdefb9cd 2500w`})})]}),_jsxs(Step,{title:`Describe what you want`,children:[_jsx(_components.p,{children:`Type a request in natural language. The agent picks the right tools and skills and executes them.`}),_jsx(Frame,{caption:`Ask TFY listing its capabilities in response to a prompt`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/truefoundry/I0TfG1L0uUgcJZdE/images/docs/platform/ask-ai-capabilities.png?fit=max\u0026auto=format\u0026n=I0TfG1L0uUgcJZdE\u0026q=85\u0026s=d2dd9b855551753bdc8708069eaeee5a`,alt:`Ask TFY chat interface showing a list of capabilities including model setup, policies, access management, and observability.`,\"data-og-width\":`1024`,width:`1024`,\"data-og-height\":`571`,height:`571`,\"data-path\":`images/docs/platform/ask-ai-capabilities.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/truefoundry/I0TfG1L0uUgcJZdE/images/docs/platform/ask-ai-capabilities.png?w=280\u0026fit=max\u0026auto=format\u0026n=I0TfG1L0uUgcJZdE\u0026q=85\u0026s=cb2efcf9f7870d2babdeb800df7acf5c 280w, https://mintcdn.com/truefoundry/I0TfG1L0uUgcJZdE/images/docs/platform/ask-ai-capabilities.png?w=560\u0026fit=max\u0026auto=format\u0026n=I0TfG1L0uUgcJZdE\u0026q=85\u0026s=b1c7e0e8d90bbc5e533aae273a2a95b1 560w, https://mintcdn.com/truefoundry/I0TfG1L0uUgcJZdE/images/docs/platform/ask-ai-capabilities.png?w=840\u0026fit=max\u0026auto=format\u0026n=I0TfG1L0uUgcJZdE\u0026q=85\u0026s=3d1adc29e76debf482c4d8b82934fdce 840w, https://mintcdn.com/truefoundry/I0TfG1L0uUgcJZdE/images/docs/platform/ask-ai-capabilities.png?w=1100\u0026fit=max\u0026auto=format\u0026n=I0TfG1L0uUgcJZdE\u0026q=85\u0026s=722b9ca3e798081d0ef3b0971b9584ed 1100w, https://mintcdn.com/truefoundry/I0TfG1L0uUgcJZdE/images/docs/platform/ask-ai-capabilities.png?w=1650\u0026fit=max\u0026auto=format\u0026n=I0TfG1L0uUgcJZdE\u0026q=85\u0026s=db66d20e7332b2b3e76776e765d30169 1650w, https://mintcdn.com/truefoundry/I0TfG1L0uUgcJZdE/images/docs/platform/ask-ai-capabilities.png?w=2500\u0026fit=max\u0026auto=format\u0026n=I0TfG1L0uUgcJZdE\u0026q=85\u0026s=2dfd430579409dd9e6f1bb551749453b 2500w`})})]}),_jsxs(Step,{title:`Review and approve`,children:[_jsx(_components.p,{children:`For write operations, Ask TFY shows a diff of what will change and asks for confirmation before applying.`}),_jsx(Frame,{caption:`Diff view with approval prompt before applying a manifest change`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/truefoundry/I0TfG1L0uUgcJZdE/images/docs/platform/ask-ai-diff-approval.png?fit=max\u0026auto=format\u0026n=I0TfG1L0uUgcJZdE\u0026q=85\u0026s=7e4477d16e79a589148b239fe4e7447d`,alt:`Ask TFY showing a Changes Diff with original and updated manifest versions, and an Approve or Deny prompt for the tool call.`,\"data-og-width\":`1024`,width:`1024`,\"data-og-height\":`570`,height:`570`,\"data-path\":`images/docs/platform/ask-ai-diff-approval.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/truefoundry/I0TfG1L0uUgcJZdE/images/docs/platform/ask-ai-diff-approval.png?w=280\u0026fit=max\u0026auto=format\u0026n=I0TfG1L0uUgcJZdE\u0026q=85\u0026s=387a72427656f888de0774ed7a3eed74 280w, https://mintcdn.com/truefoundry/I0TfG1L0uUgcJZdE/images/docs/platform/ask-ai-diff-approval.png?w=560\u0026fit=max\u0026auto=format\u0026n=I0TfG1L0uUgcJZdE\u0026q=85\u0026s=b4d4038674211cc20aae28a08c64ba3e 560w, https://mintcdn.com/truefoundry/I0TfG1L0uUgcJZdE/images/docs/platform/ask-ai-diff-approval.png?w=840\u0026fit=max\u0026auto=format\u0026n=I0TfG1L0uUgcJZdE\u0026q=85\u0026s=f1380a0568cea758107ca6ffc72eb19b 840w, https://mintcdn.com/truefoundry/I0TfG1L0uUgcJZdE/images/docs/platform/ask-ai-diff-approval.png?w=1100\u0026fit=max\u0026auto=format\u0026n=I0TfG1L0uUgcJZdE\u0026q=85\u0026s=2e025068c548b440adf6a4b0d908523c 1100w, https://mintcdn.com/truefoundry/I0TfG1L0uUgcJZdE/images/docs/platform/ask-ai-diff-approval.png?w=1650\u0026fit=max\u0026auto=format\u0026n=I0TfG1L0uUgcJZdE\u0026q=85\u0026s=bcb68fa4a34813bcc1720b819afd91e0 1650w, https://mintcdn.com/truefoundry/I0TfG1L0uUgcJZdE/images/docs/platform/ask-ai-diff-approval.png?w=2500\u0026fit=max\u0026auto=format\u0026n=I0TfG1L0uUgcJZdE\u0026q=85\u0026s=c68627f7370abce526b451122a72224d 2500w`})})]})]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Example prompts`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Add my OpenAI API key as a model account and give access to my team`}),`\n`,_jsx(_components.li,{children:`Create a virtual model that load-balances between Groq and Cerebras`}),`\n`,_jsx(_components.li,{children:`Rate limit the interns team to 100 requests per minute`}),`\n`,_jsx(_components.li,{children:`Show me the top 5 teams by token usage in the last 7 days`}),`\n`,_jsx(_components.li,{children:`Connect the Linear MCP server from the catalogue`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`connect-claude-cursor-or-other-tools`,children:`Connect Claude, Cursor, or other tools`}),`\n`,_jsxs(_components.p,{children:[`TrueFoundry provides an `,_jsx(_components.strong,{children:`MCP server`}),` and a set of `,_jsx(_components.strong,{children:`skills`}),` that you can plug into Claude, Cursor, Codex, or any tool that speaks MCP. The MCP server exposes platform operations as tools the agent can call; skills give it tested, step-by-step procedures for common workflows.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`The MCP server is available starting `,_jsx(_components.strong,{children:`v0.155`}),`.`]})}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Connecting the MCP server directly gives you the raw tools without the diff previews, approval flows, or inline visualizations available in Ask TFY.`})}),`\n`,_jsx(Heading,{level:`3`,id:`mcp-server`,children:`MCP server`}),`\n`,_jsxs(_components.p,{children:[`The TrueFoundry MCP server runs at `,_jsx(_components.code,{children:`https://\u003cCONTROL_PLANE_URL>/\u003ctenant>/mcp`}),` with `,_jsx(_components.strong,{children:`Streamable HTTP`}),` transport. Add this URL to your MCP client and sign in with TrueFoundry, or register that same URL on the MCP Gateway and connect through the gateway. You do not need to create or configure an API key.`]}),`\n`,_jsx(_components.p,{children:`All actions run as the authenticated user and follow the same RBAC as the dashboard and CLI.`}),`\n`,_jsxs(_components.p,{children:[`Replace `,_jsx(_components.code,{children:`\u003cCONTROL_PLANE_URL>`}),` with your control plane host and `,_jsx(_components.code,{children:`\u003ctenant>`}),` with your TrueFoundry tenant name.`]}),`\n`,_jsxs(Tabs,{children:[_jsx(Tab,{title:`Sign in directly`,id:`sign-in-directly`,\"data-child-tab-ids\":`[\"cursor\",\"claude-code\",\"claude-desktop\",\"other-clients\"]`,children:_jsxs(Steps,{children:[_jsx(Step,{title:`Add the TrueFoundry MCP server`,children:_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Cursor`,id:`cursor`,children:[_jsxs(_components.p,{children:[`Add the server to `,_jsx(_components.code,{children:`.cursor/mcp.json`}),` (project) or `,_jsx(_components.code,{children:`~/.cursor/mcp.json`}),` (global):`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"mcpServers\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"truefoundry\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"url\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"https://\u003cCONTROL_PLANE_URL>/\u003ctenant>/mcp\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})]}),_jsx(Tab,{title:`Claude Code`,id:`claude-code`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`claude`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` mcp`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --transport`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` http`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` truefoundry`}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` https://`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`CONTROL_PLANE_UR`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`L`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`/`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`tenan`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`t`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`/mcp`})]}),`\n`]})})})}),_jsxs(Tab,{title:`Claude Desktop`,id:`claude-desktop`,children:[_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Settings > Connectors > Add custom connector`}),` and set the URL to:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`https://\u003cCONTROL_PLANE_URL>/\u003ctenant>/mcp`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})})]}),_jsxs(Tab,{title:`Other clients`,id:`other-clients`,children:[_jsx(_components.p,{children:`Add the following Streamable HTTP server URL to any OAuth-compatible MCP client:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`https://\u003cCONTROL_PLANE_URL>/\u003ctenant>/mcp`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})})]})]})}),_jsx(Step,{title:`Sign in with TrueFoundry`,children:_jsx(_components.p,{children:`Your MCP client opens TrueFoundry in your browser. Sign in and approve the connection. The client completes the remaining setup automatically.`})}),_jsx(Step,{title:`Start using the server`,children:_jsxs(_components.p,{children:[`Ask your client in natural language, for example: `,_jsx(_components.em,{children:`“Using TrueFoundry, list the model accounts I can access.”`})]})})]})}),_jsxs(Tab,{title:`OAuth via MCP Gateway`,id:`oauth-via-mcp-gateway`,\"data-child-tab-ids\":`[\"cursor-2\",\"claude-code-2\",\"claude-desktop-2\"]`,children:[_jsxs(_components.p,{children:[`To sign in with TrueFoundry from your IDE, register the MCP server on the `,_jsx(_components.strong,{children:`MCP Gateway`}),` first. The gateway handles OAuth inbound auth and forwards your token to the control plane using `,_jsx(_components.strong,{children:`Token Passthrough`}),`.`]}),_jsxs(Steps,{children:[_jsxs(Step,{title:`Register the server in MCP Gateway`,children:[_jsxs(_components.p,{children:[`In `,_jsx(_components.strong,{children:`MCP Gateway`}),`, click `,_jsx(_components.strong,{children:`Add Server`}),` > `,_jsx(_components.strong,{children:`Connect any Remote MCP Server`}),`. Set:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Name:`}),` `,_jsx(_components.code,{children:`truefoundry-mcp`}),` (or any unique name)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`URL:`}),` `,_jsx(_components.code,{children:`https://\u003cCONTROL_PLANE_URL>/\u003ctenant>/mcp`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Auth Data:`}),` `,_jsx(_components.strong,{children:`Token Passthrough`}),` — forwards the user’s existing auth token directly to the MCP server`]}),`\n`]}),_jsx(Frame,{caption:`Register the TrueFoundry MCP server with Token Passthrough auth`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/truefoundry/r66kE_72pIvLrrCy/images/docs/platform/truefoundry-mcp-token-passthrough.png?fit=max\u0026auto=format\u0026n=r66kE_72pIvLrrCy\u0026q=85\u0026s=e8fdc8a00a89b1bcd63d0dd357796b97`,alt:`Update MCP Server form with Name truefoundry-mcp, URL pointing to the control plane tenant MCP endpoint, and Token Passthrough selected under Auth Data.`,\"data-og-width\":`956`,width:`956`,\"data-og-height\":`1024`,height:`1024`,\"data-path\":`images/docs/platform/truefoundry-mcp-token-passthrough.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/truefoundry/r66kE_72pIvLrrCy/images/docs/platform/truefoundry-mcp-token-passthrough.png?w=280\u0026fit=max\u0026auto=format\u0026n=r66kE_72pIvLrrCy\u0026q=85\u0026s=3c8745357720e9972170f29cf9de16c7 280w, https://mintcdn.com/truefoundry/r66kE_72pIvLrrCy/images/docs/platform/truefoundry-mcp-token-passthrough.png?w=560\u0026fit=max\u0026auto=format\u0026n=r66kE_72pIvLrrCy\u0026q=85\u0026s=e15cd25aa29a74a0fa78e09f9a320c8a 560w, https://mintcdn.com/truefoundry/r66kE_72pIvLrrCy/images/docs/platform/truefoundry-mcp-token-passthrough.png?w=840\u0026fit=max\u0026auto=format\u0026n=r66kE_72pIvLrrCy\u0026q=85\u0026s=a106a3cb66736765084fb7c2afa696ea 840w, https://mintcdn.com/truefoundry/r66kE_72pIvLrrCy/images/docs/platform/truefoundry-mcp-token-passthrough.png?w=1100\u0026fit=max\u0026auto=format\u0026n=r66kE_72pIvLrrCy\u0026q=85\u0026s=5d590bf43c9a18637a5c31f6e11d2ac0 1100w, https://mintcdn.com/truefoundry/r66kE_72pIvLrrCy/images/docs/platform/truefoundry-mcp-token-passthrough.png?w=1650\u0026fit=max\u0026auto=format\u0026n=r66kE_72pIvLrrCy\u0026q=85\u0026s=5fbb36c568f90e54e338aad9e29dc0db 1650w, https://mintcdn.com/truefoundry/r66kE_72pIvLrrCy/images/docs/platform/truefoundry-mcp-token-passthrough.png?w=2500\u0026fit=max\u0026auto=format\u0026n=r66kE_72pIvLrrCy\u0026q=85\u0026s=5e5c2df9facfbd4021782867662484b5 2500w`})})]}),_jsxs(Step,{title:`Connect from your IDE`,children:[_jsxs(_components.p,{children:[`Open the server’s `,_jsx(_components.strong,{children:`How To Use`}),` tab and copy the `,_jsx(_components.strong,{children:`AI Gateway URL`}),` — it looks like `,_jsx(_components.code,{children:`https://\u003cgateway>/\u003ctenant>/mcp/\u003cserver-name>/server`}),`. Use that URL (not the control plane MCP URL) in your IDE config.`]}),_jsxs(_components.p,{children:[`Your IDE opens a browser to `,_jsx(_components.strong,{children:`Sign in with TrueFoundry`}),` on first connect. Because the server uses Token Passthrough, the gateway forwards your TrueFoundry token to the control plane MCP server automatically.`]}),_jsxs(_components.p,{children:[`For step-by-step IDE instructions, see `,_jsx(_components.a,{href:`/docs/ai-gateway/mcp/connect-mcp-from-ide`,children:`Connect MCP Servers from Your IDE`}),`.`]}),_jsxs(Tabs,{children:[_jsx(Tab,{title:`Cursor`,id:`cursor-2`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"mcpServers\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"truefoundry\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"url\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"https://\u003cgateway>/\u003ctenant>/mcp/truefoundry-mcp/server\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),_jsx(Tab,{title:`Claude Code`,id:`claude-code-2`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`claude`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` mcp`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --transport`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` http`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` truefoundry`}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` https://`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`gatewa`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`y`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`/`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`tenan`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`t`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`/mcp/truefoundry-mcp/server`})]}),`\n`]})})})}),_jsx(Tab,{title:`Claude Desktop`,id:`claude-desktop-2`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Settings > Connectors > Add custom connector`}),` and set the URL to the AI Gateway URL from the `,_jsx(_components.strong,{children:`How To Use`}),` tab. Claude prompts you to sign in with TrueFoundry.`]})})]})]})]})]})]}),`\n`,_jsx(Heading,{level:`4`,id:`available-tools`,children:`Available tools`}),`\n`,_jsxs(_components.p,{children:[`Every tool carries an MCP annotation: `,_jsx(_components.code,{children:`readOnlyHint: true`}),` tools only read data and are safe to call without confirmation, while `,_jsx(_components.code,{children:`destructiveHint: true`}),` tools create, update, or delete a resource and should be confirmed by a human.`]}),`\n`,_jsx(Accordion,{title:`Full tool reference`,id:`full-tool-reference`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Category`}),_jsx(_components.th,{children:`Tool`}),_jsx(_components.th,{children:`Read / Write`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Resource management`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`apply_manifest`})}),_jsx(_components.td,{children:`Write`}),_jsx(_components.td,{children:`Apply a manifest to create or update a resource.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Resource management`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`delete_manifest`})}),_jsx(_components.td,{children:`Write`}),_jsx(_components.td,{children:`Delete a resource identified by the provided manifest.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Resource management`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`validate_manifest`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`Validate a manifest object against the schema for the given type.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Resource management`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`get_manifest_json_schema`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`Get the JSON schema for the specified manifest type.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`AI Gateway`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`generate_multi_lang_code_snippets`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`Generate code snippets for calling an AI Gateway model.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`AI Gateway`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`gateway_execute_sql`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`Query AI Gateway observability data using SQL.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`AI Gateway`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`get_gateway_config`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`Get the AI Gateway configuration for a given type.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`AI Gateway`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`get_budget_usage`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`Get the current budget usage for every budget rule configured in the tenant.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`AI Gateway`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`list_data_routing_destinations`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`List data routing destination names for the current tenant.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`AI Gateway`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`list_mcp_servers`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`List MCP servers for the current tenant.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`AI Gateway`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`get_mcp_server`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`Get a single MCP server by its ID.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`AI Gateway`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`delete_mcp_server`})}),_jsx(_components.td,{children:`Write`}),_jsx(_components.td,{children:`Permanently delete an MCP server by ID.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`AI Gateway`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`list_mcp_server_tools`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`List the tools available on a given MCP server.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`AI Gateway`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`list_mcp_catalogue`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`Returns the TFY-managed MCP server catalogue and the MCP integrations catalogue.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`AI Gateway`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`get_mcp_server_oauth_config`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`Get the OAuth authorization server configuration for an MCP server URL.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Provider accounts`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`list_providers`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`List all provider types along with their supported integrations, models, and model types.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Provider accounts`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`list_provider_accounts`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`List provider accounts the caller can read.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Provider accounts`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`get_provider_account`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`Get a single provider account by its ID.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Secrets`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`list_secrets`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`List secrets the caller has access to.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Secrets`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`delete_secret`})}),_jsx(_components.td,{children:`Write`}),_jsx(_components.td,{children:`Delete a secret and all its versions permanently.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Secrets`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`list_secret_groups`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`List secret groups along with associated secrets. Secret values are not included.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Secrets`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`get_secret_group`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`Get a secret group by ID.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Secrets`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`list_secret_active_deployments`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`Get active deployments associated with the given secret IDs.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Secrets`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`get_secret_deployments`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`List active deployments that reference a specific secret.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Identity and user management`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`get_me`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`Returns the identity and role information of the currently authenticated user or service account.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Identity and user management`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`list_users`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`List users in the current tenant.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Identity and user management`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`get_user`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`Get a single user by their ID.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Identity and user management`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`delete_user`})}),_jsx(_components.td,{children:`Write`}),_jsx(_components.td,{children:`Permanently delete a user by ID.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Identity and user management`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`check_user_registration`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`Check whether a user with the given email is registered in the current tenant.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Teams`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`list_teams_for_user`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`List teams accessible to the current user.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Teams`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`get_team`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`Get a single team by its ID.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Teams`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`list_team_members`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`List users who are members of a team.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Teams`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`list_team_managers`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`List users who hold the team-manager role on a team.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Teams`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`get_team_permissions`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`Get all role bindings associated with a team.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Teams`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`delete_team`})}),_jsx(_components.td,{children:`Write`}),_jsx(_components.td,{children:`Permanently delete a team.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Roles and access control`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`list_roles`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`List roles for the current tenant.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Roles and access control`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`delete_role`})}),_jsx(_components.td,{children:`Write`}),_jsx(_components.td,{children:`Permanently delete a role.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Roles and access control`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`get_actions_for_resource_type`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`Get all permission actions available for a given resource type.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Virtual accounts and tokens`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`list_virtual_accounts`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`List virtual accounts accessible to the current user.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Virtual accounts and tokens`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`get_virtual_account`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`Get a single virtual account by its ID.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Virtual accounts and tokens`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`check_virtual_account_exists`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`Check whether a virtual account with the given name exists.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Virtual accounts and tokens`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`delete_virtual_account`})}),_jsx(_components.td,{children:`Write`}),_jsx(_components.td,{children:`Permanently delete a virtual account.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Virtual accounts and tokens`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`list_personal_access_tokens`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`List personal access tokens created by the current user.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Virtual accounts and tokens`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`create_personal_access_token`})}),_jsx(_components.td,{children:`Write`}),_jsx(_components.td,{children:`Create a new personal access token for the current user.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Virtual accounts and tokens`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`check_personal_access_token_exists`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`Check whether a personal access token with the given name exists.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Virtual accounts and tokens`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`delete_personal_access_token`})}),_jsx(_components.td,{children:`Write`}),_jsx(_components.td,{children:`Permanently delete a personal access token.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Platform configuration`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`list_settings`})}),_jsx(_components.td,{children:`Read`}),_jsx(_components.td,{children:`List all settings configured for the tenant.`})]})]})]})}),`\n`,_jsx(Heading,{level:`3`,id:`skills`,children:`Skills`}),`\n`,_jsxs(_components.p,{children:[`Skills give the agent tested, step-by-step procedures for TrueFoundry operations — the right field values, ordering, edge cases, and validations. They follow the open `,_jsx(_components.a,{href:`https://agentskills.io/`,children:`Agent Skills`}),` standard and work in any tool that supports skills, including Cursor, Claude Code, Codex, and TrueFoundry’s Agent Harness.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Skill`}),_jsx(_components.th,{children:`What it helps you do`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Gateway`}),_jsx(_components.td,{children:`Set up models, model accounts, virtual models with routing and failover`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Integrate Gateway`}),_jsx(_components.td,{children:`Scan your codebase and migrate to AI Gateway`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Observability`}),_jsx(_components.td,{children:`Query usage, token consumption, cost breakdowns, error analysis`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`MCP servers`}),_jsx(_components.td,{children:`Register from catalogue, configure auth, manage lifecycle`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Platform`}),_jsx(_components.td,{children:`Workspaces, secrets, access control, tokens, CLI setup`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Agents`}),_jsx(_components.td,{children:`Build and manage agents in the Agent Registry`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Skills Registry`}),_jsx(_components.td,{children:`Publish and share reusable skills`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Prompts`}),_jsx(_components.td,{children:`Manage prompts in the Prompt Registry`})]})]})]}),`\n`,_jsx(Card,{title:`truefoundry/tfy-gateway-skills`,icon:`github`,href:`https://github.com/truefoundry/tfy-gateway-skills`,children:_jsx(_components.p,{children:`Browse the source and see exactly what each skill does.`})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"Interact with TrueFoundry using AI","sidebarTitle":"Interact using AI","description":"Manage your TrueFoundry platform through natural language using AI agents.","href":"/docs/interact-with-tfy-using-ai"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Which one should you use?","slug":"which-one-should-you-use","depth":2,"children":[]},{"title":"Ask TFY","slug":"ask-tfy","depth":2,"children":[]},{"title":"Connect Claude, Cursor, or other tools","slug":"connect-claude-cursor-or-other-tools","depth":2,"children":[{"title":"MCP server","slug":"mcp-server","depth":3,"children":[]},{"title":"Available tools","slug":"available-tools","depth":4,"children":[]},{"title":"Skills","slug":"skills","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/truefoundry/9e0085f7ed271180/scripts.js"],"subdomain":"truefoundry","siteName":"TrueFoundry Docs","title":"Interact with TrueFoundry using AI - TrueFoundry Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-05T19:27:36.023Z","originalFileLocation":"docs/interact-with-tfy-using-ai.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Manage your TrueFoundry platform through natural language using AI agents.\">\u003cmeta data-mint-head name=\"application-name\" content=\"TrueFoundry Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/truefoundry/DMuq4kzeTciVEGUc/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/truefoundry/DMuq4kzeTciVEGUc/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/truefoundry/DMuq4kzeTciVEGUc/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/truefoundry/DMuq4kzeTciVEGUc/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/truefoundry/DMuq4kzeTciVEGUc/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/truefoundry/DMuq4kzeTciVEGUc/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/truefoundry/DMuq4kzeTciVEGUc/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/truefoundry/DMuq4kzeTciVEGUc/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/truefoundry/DMuq4kzeTciVEGUc/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Interact with TrueFoundry using AI - TrueFoundry Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"TrueFoundry offers an enterprise-grade AI Gateway combining LLM, MCP, and Agent Gateways—empowering businesses to connect, monitor, and govern agentic AI applications across providers from a unified control plane.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"TrueFoundry Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://www.truefoundry.com/docs/interact-with-tfy-using-ai\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://assets.production.truefoundry.com/logo.svg\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Interact with TrueFoundry using AI - TrueFoundry Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"TrueFoundry offers an enterprise-grade AI Gateway combining LLM, MCP, and Agent Gateways—empowering businesses to connect, monitor, and govern agentic AI applications across providers from a unified control plane.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://assets.production.truefoundry.com/logo.svg\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/truefoundry/DMuq4kzeTciVEGUc/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"TrueFoundry Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4f46e5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://www.truefoundry.com/docs/interact-with-tfy-using-ai\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/interact-with-tfy-using-ai.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://www.truefoundry.com/#organization\",\"name\":\"TrueFoundry Docs\",\"url\":\"https://www.truefoundry.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/truefoundry/e2uUimEwX30qkWxc/logo/light.svg?fit=max\u0026auto=format\u0026n=e2uUimEwX30qkWxc\u0026q=85\u0026s=6068d83664aeda0239bec2422657dd20\"}},{\"@type\":\"WebSite\",\"@id\":\"https://www.truefoundry.com#website\",\"name\":\"TrueFoundry Docs\",\"url\":\"https://www.truefoundry.com\",\"publisher\":{\"@id\":\"https://www.truefoundry.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://www.truefoundry.com/docs/interact-with-tfy-using-ai#webpage\",\"url\":\"https://www.truefoundry.com/docs/interact-with-tfy-using-ai\",\"name\":\"Interact with TrueFoundry using AI\",\"description\":\"Manage your TrueFoundry platform through natural language using AI agents.\",\"dateModified\":\"2026-11-05T19:27:36.023Z\",\"isPartOf\":{\"@id\":\"https://www.truefoundry.com#website\"},\"breadcrumb\":{\"@id\":\"https://www.truefoundry.com/docs/interact-with-tfy-using-ai#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://www.truefoundry.com/docs/interact-with-tfy-using-ai#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Platform\",\"item\":\"https://www.truefoundry.com/docs/platform/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Interact with TrueFoundry using AI\",\"item\":\"https://www.truefoundry.com/docs/interact-with-tfy-using-ai\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://www.truefoundry.com/docs/interact-with-tfy-using-ai#article\",\"headline\":\"Interact with TrueFoundry using AI\",\"name\":\"Interact with TrueFoundry using AI\",\"description\":\"Manage your TrueFoundry platform through natural language using AI agents.\",\"url\":\"https://www.truefoundry.com/docs/interact-with-tfy-using-ai\",\"mainEntityOfPage\":{\"@id\":\"https://www.truefoundry.com/docs/interact-with-tfy-using-ai#webpage\"},\"image\":\"https://assets.production.truefoundry.com/logo.svg\",\"dateModified\":\"2026-11-05T19:27:36.023Z\",\"publisher\":{\"@id\":\"https://www.truefoundry.com/#organization\"},\"isPartOf\":{\"@id\":\"https://www.truefoundry.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"TrueFoundry Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"TrueFoundry Docs","nav":{"global":null,"tabs":[{"tab":"AI Gateway","pages":[{"title":"AI Gateway","href":"/docs/ai-gateway/intro-to-llm-gateway"}]},{"tab":"Agent Platform","pages":[{"title":"Agent Platform","href":"/docs/agent-platform/agent-harness/overview"}]},{"tab":"Platform","groups":[{"group":"Platform","pages":[{"title":"TrueFoundry Overview","sidebarTitle":"Overview","href":"/docs/platform/overview"},{"group":"Architecture","pages":[{"title":"TrueFoundry Architecture","sidebarTitle":"Overview","href":"/docs/platform/architecture"},{"title":"TrueFoundry Control Plane","sidebarTitle":"Control Plane","href":"/docs/platform/control-plane-architecture"},{"title":"TrueFoundry AI Gateway Plane Architecture","sidebarTitle":"Gateway Plane","href":"/docs/platform/gateway-plane-architecture"},{"title":"TrueFoundry Compute Plane Architecture","sidebarTitle":"Compute Plane","href":"/docs/platform/compute-plane-architecture"}]},{"group":"Identity and Access Management","pages":[{"title":"Identity and Access Management Overview","sidebarTitle":"Overview","href":"/docs/platform/user-team-account-management"},{"title":"Manage Users","href":"/docs/platform/user-management"},{"title":"Manage Teams","href":"/docs/platform/team-management"},{"title":"Manage Virtual Accounts","href":"/docs/platform/virtual-account-management"},{"title":"Manage User Roles \u0026 Permissions","href":"/docs/platform/manage-user-roles-and-permissions"},{"title":"API Keys","sidebarTitle":"API Keys","href":"/docs/generating-truefoundry-api-keys"},{"group":"Identity Providers","pages":[{"title":"Identity Providers","sidebarTitle":"Overview","href":"/docs/platform/identity-providers/overview"},{"title":"External JWT","sidebarTitle":"External JWT","href":"/docs/platform/identity-providers/external-jwt"},{"group":"Workload Identity Federation","pages":[{"title":"Workload Identity Federation","sidebarTitle":"Overview","href":"/docs/platform/identity-providers/workload-identity-federation/overview"},{"title":"GitHub Actions","sidebarTitle":"GitHub Actions","href":"/docs/platform/identity-providers/workload-identity-federation/github-actions"},{"title":"Kubernetes","sidebarTitle":"Kubernetes","href":"/docs/platform/identity-providers/workload-identity-federation/kubernetes"},{"title":"AWS","sidebarTitle":"AWS","href":"/docs/platform/identity-providers/workload-identity-federation/aws"},{"title":"GCP","sidebarTitle":"GCP","href":"/docs/platform/identity-providers/workload-identity-federation/gcp"}]}]}]},{"group":"SSO \u0026 SCIM Provisioning","pages":[{"title":"SSO \u0026 SCIM Overview","sidebarTitle":"Overview","href":"/docs/platform/sso/overview"},{"group":"Microsoft Entra ID","pages":[{"title":"SAML with Microsoft Entra ID","sidebarTitle":"SSO via SAML","href":"/docs/platform/sso/entra/saml"},{"title":"OIDC with Microsoft Entra ID","sidebarTitle":"SSO via OIDC","href":"/docs/platform/sso/entra/oidc"},{"title":"SCIM with Microsoft Entra ID","sidebarTitle":"Setup SCIM","href":"/docs/platform/sso/entra/scim"}]},{"group":"Okta","pages":[{"title":"SAML with Okta","sidebarTitle":"SSO via SAML","href":"/docs/platform/sso/okta/saml"},{"title":"SSO: OIDC with Okta","sidebarTitle":"SSO via OIDC","href":"/docs/platform/sso/okta/oidc"},{"title":"SSO: Okta OIN","sidebarTitle":"SSO via OIN","href":"/docs/platform/sso/okta/oin"},{"title":"SCIM with Okta","sidebarTitle":"Setup SCIM","href":"/docs/platform/sso/okta/scim"}]},{"group":"Google Workspace","pages":[{"title":"SAML with Google Workspace","sidebarTitle":"SSO via SAML","href":"/docs/platform/sso/google/saml"}]},{"group":"JumpCloud","pages":[{"title":"SAML with JumpCloud","sidebarTitle":"SSO via SAML","href":"/docs/platform/sso/jumpcloud/saml"},{"title":"SCIM with JumpCloud","sidebarTitle":"Setup SCIM","href":"/docs/platform/sso/jumpcloud/scim"}]},{"group":"OneLogin","pages":[{"title":"SAML with OneLogin","sidebarTitle":"SSO via SAML","href":"/docs/platform/sso/onelogin/saml"},{"title":"SCIM with OneLogin","sidebarTitle":"Setup SCIM","href":"/docs/platform/sso/onelogin/scim"}]},{"group":"Auth0","pages":[{"title":"OIDC with Auth0","sidebarTitle":"SSO via OIDC","href":"/docs/platform/sso/auth0/oidc"},{"title":"SAML with Auth0","sidebarTitle":"SSO via SAML","href":"/docs/platform/sso/auth0/saml"}]},{"group":"Keycloak","pages":[{"title":"SSO: OIDC with Keycloak","sidebarTitle":"SSO via OIDC","href":"/docs/platform/sso/keycloak/oidc"}]},{"group":"Microsoft AD FS","pages":[{"title":"SAML with Microsoft AD FS","sidebarTitle":"SSO via SAML","href":"/docs/platform/sso/adfs/saml"}]},{"group":"PingOne","pages":[{"title":"SAML with PingOne","sidebarTitle":"SSO via SAML","href":"/docs/platform/sso/pingone/saml"}]},{"group":"Rippling","pages":[{"title":"SAML with Rippling","sidebarTitle":"SSO via SAML","href":"/docs/platform/sso/rippling/saml"}]},{"title":"SAML with a Custom Identity Provider","sidebarTitle":"Custom SAML","href":"/docs/platform/sso/custom-saml"},{"title":"OIDC with a Custom Identity Provider","sidebarTitle":"Custom OIDC","href":"/docs/platform/sso/custom-oidc"},{"title":"External SSO (OIDC/SAML)","href":"/docs/deploy-control-plane-with-external-oauth"}]},{"title":"Setup For CLI","href":"/docs/setup-cli"},{"title":"Repositories","href":"/docs/platform/repositories"},{"group":"Integrations","pages":[{"title":"Integrations","sidebarTitle":"Overview","href":"/docs/integrations-overview"},{"title":"AWS Integration","sidebarTitle":"AWS","href":"/docs/integration-provider-aws"},{"title":"GCP Integration","sidebarTitle":"GCP","href":"/docs/integration-provider-gcp"},{"title":"Azure Integration","sidebarTitle":"Azure","href":"/docs/integration-provider-azure"},{"title":"Github","href":"/docs/github-integration-set-up"},{"title":"Gitlab","href":"/docs/gitlab-integration-set-up"},{"title":"Bitbucket","href":"/docs/bitbucket-integration-set-up"},{"title":"Bitbucket Integration using PAT","href":"/docs/bitbucket-data-center-pat-integration"},{"title":"Azure Repos","href":"/docs/azure-repos-integration-set-up"},{"title":"PagerDuty","href":"/docs/pagerduty-integration"},{"title":"MS Teams","href":"/docs/ms-teams-integration"},{"title":"Slack","href":"/docs/slack-bot-integration"},{"title":"Email Integration","href":"/docs/email-integration"},{"title":"Webhook Notification Channel","href":"/docs/webhook-notification-integration"},{"title":"HashiCorp Vault","href":"/docs/hashicorp"}]},{"title":"Setup GitOps","href":"/docs/setup-gitops-using-truefoundry"},{"title":"Audit Logging","description":"Track and monitor all platform activities with comprehensive audit logs for security, compliance, and troubleshooting.","href":"/docs/platform/audit-logging"},{"title":"Interact with TrueFoundry using AI","sidebarTitle":"Interact using AI","href":"/docs/interact-with-tfy-using-ai"},{"group":"Installation Guides","pages":[{"title":"Installation and Deployment Overview","sidebarTitle":"Overview","description":"Description of the different deployment options for TrueFoundry.","href":"/docs/platform/deployment-overview"},{"group":"Deploy Compute Plane","pages":[{"title":"Deploy Compute Plane","sidebarTitle":"Overview","href":"/docs/infrastructure/deploy-compute-plane"},{"group":"Installation Guides","pages":[{"title":"AWS Compute Plane Setup","sidebarTitle":"AWS","href":"/docs/infrastructure/aws-compute-plane-setup"},{"title":"GCP Compute Plane Setup","sidebarTitle":"GCP","href":"/docs/infrastructure/gcp-compute-plane-setup"},{"title":"Azure Compute Plane Setup","sidebarTitle":"Azure","href":"/docs/infrastructure/azure-compute-plane-setup"},{"title":"Generic","href":"/docs/infrastructure/generic-compute-plane-setup"}]},{"group":"Advanced Configuration","pages":[{"title":"LoadBalancer/Ingress","href":"/docs/loadbalancers"},{"title":"TFY Agent","href":"/docs/tfy-agent"},{"title":"Multiple clusters with one TFY Agent","href":"/docs/infrastructure/multi-logical-clusters-tfy-agent"},{"title":"Custom CA Certificate Injection","href":"/docs/infrastructure/custom-ca-certificate-injection"},{"title":"Cluster migration with Velero","href":"/docs/cluster-migration-with-velero"},{"title":"Infra Set Up For Workflows","href":"/docs/infra-set-up-for-workflows"},{"title":"Cost Monitoring","href":"/docs/cost-monitoring"}]}]},{"title":"Deploy Gateway Plane","href":"/docs/platform/deploy-gateway-plane"},{"group":"Deploy Control Plane and Gateway Plane","root":{"title":"Deploy AI Gateway (Control Plane)","sidebarTitle":"Overview","href":"/docs/platform/deploy-control-plane-and-gateway-plane"},"expanded":false,"directory":"accordion","pages":[{"title":"Deploy AI Gateway (Control Plane)","sidebarTitle":"Overview","href":"/docs/platform/deploy-control-plane-and-gateway-plane"},{"group":"Installation Guides","pages":[{"title":"Install on AWS","sidebarTitle":"AWS","href":"/docs/platform/deploy-control-plane-install-aws"},{"title":"Install on GCP","sidebarTitle":"GCP","href":"/docs/platform/deploy-control-plane-install-gcp"},{"title":"Install on Azure","sidebarTitle":"Azure","href":"/docs/platform/deploy-control-plane-install-azure"},{"title":"Install on OpenShift","sidebarTitle":"OpenShift","href":"/docs/platform/deploy-control-plane-install-openshift"},{"title":"Install on-prem","sidebarTitle":"On-prem","href":"/docs/platform/deploy-control-plane-install-onprem"}]},{"title":"Deploy AI Gateway FAQs","sidebarTitle":"FAQs","href":"/docs/platform/deploy-control-plane-faq"}]},{"group":"Deploy Control Plane and Compute Plane","pages":[{"title":"Deploy Control Plane and Compute Plane","sidebarTitle":"Overview","href":"/docs/deploy-control-and-compute-plane"},{"group":"Installation Guides","pages":[{"title":"AWS Control Plane Setup","sidebarTitle":"AWS","href":"/docs/aws-control-plane"},{"title":"GCP Control Plane Setup","sidebarTitle":"GCP","href":"/docs/gcp-control-plane"},{"title":"Azure Control Plane Setup","sidebarTitle":"Azure","href":"/docs/azure-control-plane"},{"title":"Deploy Generic Control Plane","sidebarTitle":"Generic","href":"/docs/generic-control-plane"},{"title":"Deploy on OpenShift / ROSA","sidebarTitle":"OpenShift / ROSA","href":"/docs/openshift-control-plane"}]},{"group":"Advanced Configuration","pages":[{"title":"Customize Build Workflow","href":"/docs/customize-build-workflow"},{"title":"Customizing CI/CD Templates","href":"/docs/customizing-cicd-templates"},{"title":"Customizing Workbench Images","href":"/docs/customizing-workbench-images"}]}]}]},{"group":"Control Plane Management","pages":[{"title":"Control Plane Monitoring","href":"/docs/platform/controlplane-monitoring"},{"title":"Manage Multi-Tenancy on the Control Plane","sidebarTitle":"Multi-Tenancy","href":"/docs/platform/controlplane-multitenant"},{"title":"Releases, Upgrades, and Rollbacks","href":"/docs/platform/control-plane-upgrade"}]},{"group":"Security","pages":[{"title":"Security settings","sidebarTitle":"Security Settings","href":"/docs/platform/security-settings"},{"title":"SaaS security","sidebarTitle":"SaaS Security","href":"/docs/platform/saas-security"},{"title":"Self-hosted security","sidebarTitle":"Self-Hosted Security","href":"/docs/platform/onprem-security"},{"title":"Delete the organization account","sidebarTitle":"Delete Tenant","href":"/docs/platform/tenant-deletion"}]},{"title":"Support","href":"/docs/platform/support"},{"group":"Reliability","pages":[{"title":"Disaster Recovery","sidebarTitle":"Disaster Recovery","href":"/docs/platform/disaster-recovery"}]}]}]},{"tab":"AI Deployment","pages":[{"title":"AI Deployment","href":"/docs/ai-deployment-overview"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/docs/truefoundry_sdk"}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/docs/ai-gateway/ecosystem"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/docs/changelog"}]}]},"basePath":"","title":"Interact with TrueFoundry using AI - TrueFoundry Docs","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-5Xwp92K7.js","DynamicMarkdown-BoyYAA8K.js","zoom-image-lightbox-DkE6VzSN.js","lightbox-handle-r17bVUz3.js"]}