Set up Exec MCP in Claude, ChatGPT, Microsoft Copilot, GitHub Copilot, Cursor, or any assistant that supports MCP.
Everything you need is one URL, and it is the same for every assistant:
https://api.exec.com/mcp
There is nothing to switch on inside Exec. Your normal Exec login authorizes the connection, and your existing Exec permissions are what it gets. Sign-in is handled by Exec, so there is no API key to generate, paste, or rotate, and no client ID or secret to fill in. If a tool offers advanced OAuth fields, leave them blank.
The desktop app and claude.ai. Available on Free, Pro, Max, Team, and Enterprise, though Free allows only one custom connector in total.
1
Owner: add Exec to the organization
Only on Team and Enterprise, and only an Owner can do this. Go to Organization settings > Connectors, click Add, hover Custom and choose Web, then paste the URL and name it Exec.
https://api.exec.com/mcp
On an individual plan, skip this step.
2
Add or find Exec in your own connectors
Go to Customize > Connectors. On Team or Enterprise, Exec is already listed and shows as not connected. On an individual plan, click +, choose Add custom connector, paste the URL above, and click Add.
3
Sign in to Exec
Click Connect. A browser tab opens on an Exec page titled Connect to Exec. Enter your work email, then sign in with single sign-on or your Exec password.
4
Choose a workspace, if asked
Only if you belong to more than one Exec workspace. The connection is bound to whichever you pick.
5
Turn it on in your chat
In a conversation, click + at the lower left, open Connectors, and make sure Exec is on.
6
Check it worked
Ask:
Show me my most recent roleplay sessions in Exec.
Your own recent sessions should come back.
Claude has no way to edit a connector once it exists. If the URL or the name needs changing, remove it and add it again.
claude mcp add --transport http exec https://api.exec.com/mcp
This adds it for the current project. Add --scope user to make it available in all your projects, or --scope project to share it with your team through a checked-in .mcp.json.
2
Sign in to Exec
Run /mcp inside Claude Code, choose Exec, and follow the browser prompts. Your token is stored and refreshed automatically.You can also run claude mcp login exec directly.
Available on Plus, Pro, Business, Enterprise, and Education, but not on Free. Custom MCP servers live under Plugins, and they require Developer mode.
1
Turn on Developer mode
In ChatGPT, open Settings > Security and login and switch on Developer mode. Nothing below appears until you do.ChatGPT shows a broad caution here about connectors that can change or delete things. That caution applies to Exec: it can make changes such as assigning a roleplay or enrolling someone in a course, always with your own Exec permissions and always previewed before it runs. It cannot delete anything.On Business and Enterprise workspaces, Developer mode can be restricted by workspace policy, so you may need your ChatGPT admin here.
2
Create the connection
Go to chatgpt.com/plugins and click +. Give it a name and description, such as Exec and “Practice and performance data from our Exec workspace.”
3
Point it at Exec
Under Connection, paste the URL, including the /mcp on the end:
https://api.exec.com/mcp
Create the connection, then review the tools it discovered. Your new app appears under Drafts.
4
Sign in to Exec
The same Exec sign-in page as everywhere else. Enter your work email, then sign in with single sign-on or your Exec password.
5
Enable it for a conversation
ChatGPT does not use it automatically. In a chat, open the Plus menu, choose Developer mode, and select Exec for that conversation.
6
Check it worked
Using the Exec connector, show me my most recentroleplay sessions.
Name Exec in your first message, or ChatGPT may answer from general knowledge instead of reaching for the connector.
The ChatGPT desktop app and the IDE extension read this same file, but you need to restart them to pick up a change. Both also offer a settings screen: MCP servers > Add server, choose Streamable HTTP, paste the URL, then use the Authenticate action on the row.ChatGPT on the web is different. It does not read your local Codex configuration at all. There, use the ChatGPT steps above instead.
Microsoft 365 Copilot connects to Exec through an agent in Copilot Studio. Somebody builds the agent once and shares it, and each person signs in to Exec the first time they use it.
1
Add Exec to an agent
In Copilot Studio, open an agent and go to Tools > Add a tool > New tool > Model Context Protocol. Name it Exec and paste the URL:
https://api.exec.com/mcp
2
Choose Dynamic discovery
For authentication, choose OAuth 2.0 > Dynamic discovery and select Create. There is no client ID or secret to enter.
3
Sign in to Exec
Select Create a new connection, sign in on the Exec page that opens, then select Add to agent. Make sure the connection uses End user credentials, so each person sees Exec with their own permissions rather than yours.
4
Publish and check it worked
Publish the agent to the Teams and Microsoft 365 Copilot channel and share it. Then ask:
Show me my most recent roleplay sessions in Exec.
If Copilot asks you to connect first, select Open Connection Manager, connect Exec, then Retry.
Copilot Chat in VS Code, Visual Studio, and JetBrains IDEs uses MCP tools in Agent mode.
1
Add Exec to your MCP config
Create or edit .vscode/mcp.json in a project, or run MCP: Add Server from the Command Palette and choose Global to make Exec available in every project:
The top-level key is servers, where most other tools use mcpServers. Visual Studio and JetBrains IDEs read the same format.
2
Sign in to Exec
The first time Exec starts, VS Code asks whether you trust the server. Trust it, and a browser opens on the Exec sign-in page. In Visual Studio, select Auth in the line of links above the server entry in mcp.json.
3
Check it worked
Switch Copilot Chat to Agent mode and ask:
Show me my most recent roleplay sessions in Exec.
On Copilot Business and Enterprise, MCP servers are off until an organization owner turns them on under Organization settings > Copilot > Policies > Features > MCP servers in Copilot. If Exec never starts, ask them to enable it.
A remote server needs only url. The type field is for local servers.
2
Sign in to Exec
Open the Customize page in the sidebar, find Exec in the MCP list, and use the sign-in prompt on its row. A browser tab opens on the Exec sign-in page.
3
Check it worked
Show me my most recent roleplay sessions in Exec.
If nothing happens, open the Output panel and select MCP Logs.
On Cursor Enterprise, admins can restrict which MCP servers run, under Team Settings > MCP Configuration. If Exec never appears, ask them to allowlist https://api.exec.com/mcp.
Exec speaks the standard Model Context Protocol, so anything supporting remote MCP servers over HTTP can connect. Paste the URL wherever your tool asks for a custom MCP server, then sign in.
https://api.exec.com/mcp
If your tool takes a JSON config file rather than a URL field, this is the same connection:
Two reasons to take this route: your client can only run an MCP server as a local process, or you are on a Team or Enterprise plan and would rather not wait for an owner to add the connector. A small bridge makes the remote server look local:
This needs Node.js 18 or newer, and the Exec sign-in appears the first time the connection is used. If sign-in gets stuck, deleting the ~/.mcp-auth folder and restarting your client clears it.
This also sidesteps the connector list entirely, which makes it a way to evaluate Exec before your IT team has approved anything. That does mean it sits outside whatever governance your company has around AI tool connectors, so move to the approved route once somebody can approve it.
A connection is always scoped to one person and one workspace. There is no service account, and access is exactly the signed-in person’s Exec permissions, so an agent acting for a team sees only what the person who authorized it can see.If you already hold an Exec API key it can be used as a bearer token instead of signing in, which suits an unattended service. Treat it carefully: it reads with workspace admin access and does not expire. It cannot make changes, so assigning, enrolling, and inviting need the normal sign-in. For anything a person drives, prefer the normal sign-in. To build directly against Exec rather than through an assistant, see the API Reference.
The first time it reaches for Exec, most assistants ask your permission, usually offering something like ask every time, always allow, or block. This is your assistant’s own setting rather than Exec’s.Always allow is the usual choice for reading your own data. If your assistant later says it cannot see your Exec data even though the connector shows as connected, check whether the capability got blocked here.
Staying connected. It refreshes quietly. In normal use you should not have to sign in again for about a month.Reconnecting is often silent. If you already hold a live authorization and reconnect, you may go straight through with no sign-in and no consent screen, reusing the workspace you picked originally. That is expected. To change workspace, disconnect first.Disconnecting. Remove the connector in your assistant. That ends the whole authorization, not just the current session.
There is no MCP screen in Exec, so disconnecting happens on your assistant’s side. For offboarding you do not need to touch anyone’s assistant: deactivating someone in Exec, or removing them from the workspace, cuts their access on their next request.
An empty answer usually means the sign-in did not finish. The connection still looks present, so your assistant reports an empty workspace rather than a problem. If an answer you expect comes back empty, reconnect before concluding there is no data.
Exec is not in my connectors list
On Free, Pro, or Max, add it yourself as a custom connector using the URL above. On a Team or Enterprise plan, an owner has to add Exec for the organization before it appears for anyone else. In ChatGPT, check that Developer mode is on. In Microsoft 365 Copilot, Exec appears once someone publishes the Exec agent from Copilot Studio and shares it with you.
It says connected but every answer is empty
The sign-in almost certainly did not complete. Disconnect, reconnect, and make sure you reach the Exec sign-in page and authorize. An unfinished sign-in fails quietly rather than showing an error. If you have several tools connected, it can also mean your assistant used a different one, so try starting with “Using the Exec MCP, …”.
My assistant ignores Exec and answers from general knowledge
Name it explicitly: “Using the Exec MCP, …”. Common with ChatGPT. Also check the connector is switched on for that conversation.
I cannot sign in
It is the same sign-in as the Exec app, including the lockout after repeated failed attempts, so somebody locked out of Exec is locked out of connecting until that clears. Reset your password in Exec if needed. If single sign-on sends you back with an error, your email may not be attached to that workspace.
I picked the wrong workspace
Disconnect the connector and connect again, choosing the right one. The connection is bound to whichever you picked.
An error about the authorization already being completed
Two sign-ins raced each other and one won. Harmless. Reconnect.
It says it does not have permission
Either the capability is blocked in your assistant’s own permission settings, or you genuinely do not have access to that data in Exec. Skill and scenario analytics, for example, are limited to admins and group admins. See What the AI can see.
Charts and dashboards do not appear
Charts need an assistant that can display interactive panels. In a text-only assistant you get the numbers instead, which is not a failure. See Limits.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Exec Docs","colors":{"primary":"#1478E3","light":"#4794E7","dark":"#0D6DD4"},"logo":{"light":"https://mintcdn.com/exec-79a6bbdb/Z6LikiTtpJT_5O91/logo/exec-logo.svg?fit=max\u0026auto=format\u0026n=Z6LikiTtpJT_5O91\u0026q=85\u0026s=d1f375d808dadeba59a187ca85d7bfe0","dark":"https://mintcdn.com/exec-79a6bbdb/Z6LikiTtpJT_5O91/logo/exec-logo-white.svg?fit=max\u0026auto=format\u0026n=Z6LikiTtpJT_5O91\u0026q=85\u0026s=e39088e3a0bf7dfc6b214a13bb374767"},"favicon":"https://api.exec.com/static/img/exec/favicon-32x32.png","navbar":{"links":[{"href":"mailto:[email protected]","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://www.exec.com"}},"footer":{"socials":{"x":"https://x.com/withexec","linkedin":"https://www.linkedin.com/company/withexec"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"exec-79a6bbdb","hasAudioNarration":false,"actualSubdomain":"exec-79a6bbdb","customDomains":["docs.exec.com"],"gitSource":{"type":"github","owner":"placementco","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adc626cf631fa2a8cdb1809","collectionId":"0bb16df7-eace-49fd-8cb3-f726d407fafd","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adc626cf631fa2a8cdb1809"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6adc626cf631fa2a8cdb1809","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"Documentation","count":140},{"language":"default","tag":"Roleplays","count":37},{"language":"default","tag":"API Reference","count":34},{"language":"default","tag":"Endpoints","count":31},{"language":"default","tag":"Knowledge Hub","count":21},{"language":"default","tag":"Integrations","count":19},{"language":"default","tag":"Courses","count":16},{"language":"default","tag":"Coaching","count":15},{"language":"default","tag":"Creating Scenarios","count":15},{"language":"default","tag":"Platform Administration","count":14}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"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":"editor-v7-file-tree","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":"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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"mcp/connect","slug":"/mcp/connect","pageMetadata":{"title":"Connect Your AI Tool","description":"Set up Exec MCP in Claude, ChatGPT, Microsoft Copilot, GitHub Copilot, Cursor, or any assistant that supports MCP.","href":"/mcp/connect"},"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: \"Set up Exec MCP in Claude, ChatGPT, Microsoft Copilot, GitHub Copilot, Cursor, or any assistant that supports MCP.\"\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`,hr:`hr`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,CardGroup,CodeBlock,Heading,Note,Step,Steps,Table,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Everything you need is one URL, and it is the same for every assistant:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--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://api.exec.com/mcp`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`There is nothing to switch on inside Exec. Your normal Exec login authorizes the connection, and your existing Exec permissions are what it gets. Sign-in is handled by Exec, so there is no API key to generate, paste, or rotate, and no client ID or secret to fill in. If a tool offers advanced OAuth fields, leave them blank.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`find-your-tool`,children:`Find your tool`}),`\n`,_jsx(_components.p,{children:`Each section below is self-contained, so you only need to read your own.`}),`\n`,_jsxs(CardGroup,{cols:3,children:[_jsx(Card,{title:`Claude`,href:`#claude`,children:_jsx(_components.p,{children:`Desktop and web`})}),_jsx(Card,{title:`Claude Code`,href:`#claude-code`,children:_jsx(_components.p,{children:`Terminal`})}),_jsx(Card,{title:`ChatGPT`,href:`#chatgpt`,children:_jsx(_components.p,{children:`Desktop and web`})}),_jsx(Card,{title:`Codex`,href:`#codex`,children:_jsx(_components.p,{children:`Terminal`})}),_jsx(Card,{title:`Microsoft Copilot`,href:`#microsoft-copilot`,children:_jsx(_components.p,{children:`Microsoft 365 and Teams`})}),_jsx(Card,{title:`GitHub Copilot`,href:`#github-copilot`,children:_jsx(_components.p,{children:`VS Code, Visual Studio, JetBrains`})}),_jsx(Card,{title:`Cursor`,href:`#cursor`,children:_jsx(_components.p,{children:`Editor`})}),_jsx(Card,{title:`Anything else`,href:`#any-other-mcp-client`,children:_jsx(_components.p,{children:`Any MCP client`})})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`claude`,children:`Claude`}),`\n`,_jsx(_components.p,{children:`The desktop app and claude.ai. Available on Free, Pro, Max, Team, and Enterprise, though Free allows only one custom connector in total.`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Owner: add Exec to the organization`,children:[_jsxs(_components.p,{children:[`Only on Team and Enterprise, and only an Owner can do this. Go to `,_jsx(_components.strong,{children:`Organization settings > Connectors`}),`, click `,_jsx(_components.strong,{children:`Add`}),`, hover `,_jsx(_components.strong,{children:`Custom`}),` and choose `,_jsx(_components.strong,{children:`Web`}),`, then paste the URL and name it `,_jsx(_components.strong,{children:`Exec`}),`.`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--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://api.exec.com/mcp`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(_components.p,{children:`On an individual plan, skip this step.`})]}),_jsx(Step,{title:`Add or find Exec in your own connectors`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Customize > Connectors`}),`. On Team or Enterprise, Exec is already listed and shows as not connected. On an individual plan, click `,_jsx(_components.strong,{children:`+`}),`, choose `,_jsx(_components.strong,{children:`Add custom connector`}),`, paste the URL above, and click `,_jsx(_components.strong,{children:`Add`}),`.`]})}),_jsx(Step,{title:`Sign in to Exec`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Connect`}),`. A browser tab opens on an Exec page titled `,_jsx(_components.strong,{children:`Connect to Exec`}),`. Enter your work email, then sign in with single sign-on or your Exec password.`]})}),_jsx(Step,{title:`Choose a workspace, if asked`,children:_jsx(_components.p,{children:`Only if you belong to more than one Exec workspace. The connection is bound to whichever you pick.`})}),_jsx(Step,{title:`Turn it on in your chat`,children:_jsxs(_components.p,{children:[`In a conversation, click `,_jsx(_components.strong,{children:`+`}),` at the lower left, open `,_jsx(_components.strong,{children:`Connectors`}),`, and make sure Exec is on.`]})}),_jsxs(Step,{title:`Check it worked`,children:[_jsx(_components.p,{children:`Ask:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Show me my most recent roleplay sessions in Exec.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(_components.p,{children:`Your own recent sessions should come back.`})]})]}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`Claude has no way to edit a connector once it exists. If the URL or the name needs changing, remove it and add it again.`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`claude-code`,children:`Claude Code`}),`\n`,_jsx(_components.p,{children:`One command in your terminal:`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Add the server`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`claude`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mcp`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --transport`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` http`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` exec`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.exec.com/mcp`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`This adds it for the current project. Add `,_jsx(_components.code,{children:`--scope user`}),` to make it available in all your projects, or `,_jsx(_components.code,{children:`--scope project`}),` to share it with your team through a checked-in `,_jsx(_components.code,{children:`.mcp.json`}),`.`]})]}),_jsxs(Step,{title:`Sign in to Exec`,children:[_jsxs(_components.p,{children:[`Run `,_jsx(_components.code,{children:`/mcp`}),` inside Claude Code, choose Exec, and follow the browser prompts. Your token is stored and refreshed automatically.`]}),_jsxs(_components.p,{children:[`You can also run `,_jsx(_components.code,{children:`claude mcp login exec`}),` directly.`]})]}),_jsx(Step,{title:`Check it worked`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Show me my most recent roleplay sessions in Exec.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})})})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`chatgpt`,children:`ChatGPT`}),`\n`,_jsxs(_components.p,{children:[`Available on Plus, Pro, Business, Enterprise, and Education, but not on Free. Custom MCP servers live under `,_jsx(_components.strong,{children:`Plugins`}),`, and they require Developer mode.`]}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Turn on Developer mode`,children:[_jsxs(_components.p,{children:[`In ChatGPT, open `,_jsx(_components.strong,{children:`Settings > Security and login`}),` and switch on `,_jsx(_components.strong,{children:`Developer mode`}),`. Nothing below appears until you do.`]}),_jsx(_components.p,{children:`ChatGPT shows a broad caution here about connectors that can change or delete things. That caution applies to Exec: it can make changes such as assigning a roleplay or enrolling someone in a course, always with your own Exec permissions and always previewed before it runs. It cannot delete anything.`}),_jsx(_components.p,{children:`On Business and Enterprise workspaces, Developer mode can be restricted by workspace policy, so you may need your ChatGPT admin here.`})]}),_jsx(Step,{title:`Create the connection`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`chatgpt.com/plugins`}),` and click `,_jsx(_components.strong,{children:`+`}),`. Give it a name and description, such as `,_jsx(_components.strong,{children:`Exec`}),` and “Practice and performance data from our Exec workspace.”`]})}),_jsxs(Step,{title:`Point it at Exec`,children:[_jsxs(_components.p,{children:[`Under `,_jsx(_components.strong,{children:`Connection`}),`, paste the URL, including the `,_jsx(_components.code,{children:`/mcp`}),` on the end:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--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://api.exec.com/mcp`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.p,{children:[`Create the connection, then review the tools it discovered. Your new app appears under `,_jsx(_components.strong,{children:`Drafts`}),`.`]})]}),_jsx(Step,{title:`Sign in to Exec`,children:_jsx(_components.p,{children:`The same Exec sign-in page as everywhere else. Enter your work email, then sign in with single sign-on or your Exec password.`})}),_jsx(Step,{title:`Enable it for a conversation`,children:_jsxs(_components.p,{children:[`ChatGPT does not use it automatically. In a chat, open the `,_jsx(_components.strong,{children:`Plus`}),` menu, choose `,_jsx(_components.strong,{children:`Developer mode`}),`, and select Exec for that conversation.`]})}),_jsxs(Step,{title:`Check it worked`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Using the Exec connector, show me my most recent`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`roleplay sessions.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(_components.p,{children:`Name Exec in your first message, or ChatGPT may answer from general knowledge instead of reaching for the connector.`})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`codex`,children:`Codex`}),`\n`,_jsx(_components.p,{children:`The Codex CLI, the ChatGPT desktop app, and the Codex IDE extension share one configuration, so you set this up once.`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Add the server`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`codex`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mcp`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` exec`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.exec.com/mcp`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`--url`}),` flag is what makes this a remote server rather than a local command.`]})]}),_jsxs(Step,{title:`Sign in to Exec`,children:[_jsx(_components.p,{children:`Sign-in does not happen automatically here. Run:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`codex`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mcp`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` login`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` exec`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`A browser opens on the Exec sign-in page. Add `,_jsx(_components.code,{children:`--no-browser`}),` if you would rather paste the URL yourself.`]})]}),_jsxs(Step,{title:`Check it worked`,children:[_jsxs(_components.p,{children:[`Run `,_jsx(_components.code,{children:`codex mcp list`}),` to confirm Exec is there, then ask:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Show me my most recent roleplay sessions in Exec.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.p,{children:[`Inside the Codex TUI, `,_jsx(_components.code,{children:`/mcp`}),` shows which servers are active.`]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Editing the config file instead.`}),` The command above writes to `,_jsx(_components.code,{children:`~/.codex/config.toml`}),`. You can add the same thing by hand:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`toml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`toml`,children:_jsxs(_components.code,{language:`toml`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:`mcp_servers`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:`exec`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`url`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://api.exec.com/mcp\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Then run `,_jsx(_components.code,{children:`codex mcp login exec`}),` as above.`]}),`\n`,_jsxs(Note,{children:[_jsxs(_components.p,{children:[`The ChatGPT desktop app and the IDE extension read this same file, but you need to restart them to pick up a change. Both also offer a settings screen: `,_jsx(_components.strong,{children:`MCP servers > Add server`}),`, choose `,_jsx(_components.strong,{children:`Streamable HTTP`}),`, paste the URL, then use the `,_jsx(_components.strong,{children:`Authenticate`}),` action on the row.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`ChatGPT on the web is different.`}),` It does not read your local Codex configuration at all. There, use the `,_jsx(_components.a,{href:`#chatgpt`,children:`ChatGPT`}),` steps above instead.`]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`microsoft-copilot`,children:`Microsoft Copilot`}),`\n`,_jsx(_components.p,{children:`Microsoft 365 Copilot connects to Exec through an agent in Copilot Studio. Somebody builds the agent once and shares it, and each person signs in to Exec the first time they use it.`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Add Exec to an agent`,children:[_jsxs(_components.p,{children:[`In Copilot Studio, open an agent and go to `,_jsx(_components.strong,{children:`Tools > Add a tool > New tool > Model Context Protocol`}),`. Name it `,_jsx(_components.strong,{children:`Exec`}),` and paste the URL:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--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://api.exec.com/mcp`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})})]}),_jsx(Step,{title:`Choose Dynamic discovery`,children:_jsxs(_components.p,{children:[`For authentication, choose `,_jsx(_components.strong,{children:`OAuth 2.0 > Dynamic discovery`}),` and select `,_jsx(_components.strong,{children:`Create`}),`. There is no client ID or secret to enter.`]})}),_jsx(Step,{title:`Sign in to Exec`,children:_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Create a new connection`}),`, sign in on the Exec page that opens, then select `,_jsx(_components.strong,{children:`Add to agent`}),`. Make sure the connection uses `,_jsx(_components.strong,{children:`End user credentials`}),`, so each person sees Exec with their own permissions rather than yours.`]})}),_jsxs(Step,{title:`Publish and check it worked`,children:[_jsxs(_components.p,{children:[`Publish the agent to the `,_jsx(_components.strong,{children:`Teams and Microsoft 365 Copilot`}),` channel and share it. Then ask:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Show me my most recent roleplay sessions in Exec.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.p,{children:[`If Copilot asks you to connect first, select `,_jsx(_components.strong,{children:`Open Connection Manager`}),`, connect Exec, then `,_jsx(_components.strong,{children:`Retry`}),`.`]})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`github-copilot`,children:`GitHub Copilot`}),`\n`,_jsxs(_components.p,{children:[`Copilot Chat in VS Code, Visual Studio, and JetBrains IDEs uses MCP tools in `,_jsx(_components.strong,{children:`Agent`}),` mode.`]}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Add Exec to your MCP config`,children:[_jsxs(_components.p,{children:[`Create or edit `,_jsx(_components.code,{children:`.vscode/mcp.json`}),` in a project, or run `,_jsx(_components.strong,{children:`MCP: Add Server`}),` from the Command Palette and choose `,_jsx(_components.strong,{children:`Global`}),` to make Exec available in every project:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"servers\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"exec\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"http\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://api.exec.com/mcp\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsxs(_components.p,{children:[`The top-level key is `,_jsx(_components.code,{children:`servers`}),`, where most other tools use `,_jsx(_components.code,{children:`mcpServers`}),`. Visual Studio and JetBrains IDEs read the same format.`]})]}),_jsx(Step,{title:`Sign in to Exec`,children:_jsxs(_components.p,{children:[`The first time Exec starts, VS Code asks whether you trust the server. Trust it, and a browser opens on the Exec sign-in page. In Visual Studio, select `,_jsx(_components.strong,{children:`Auth`}),` in the line of links above the server entry in `,_jsx(_components.code,{children:`mcp.json`}),`.`]})}),_jsxs(Step,{title:`Check it worked`,children:[_jsxs(_components.p,{children:[`Switch Copilot Chat to `,_jsx(_components.strong,{children:`Agent`}),` mode and ask:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Show me my most recent roleplay sessions in Exec.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})})]})]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`On Copilot Business and Enterprise, MCP servers are off until an organization owner turns them on under `,_jsx(_components.strong,{children:`Organization settings > Copilot > Policies > Features > MCP servers in Copilot`}),`. If Exec never starts, ask them to enable it.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`cursor`,children:`Cursor`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Add Exec to your MCP config`,children:[_jsxs(_components.p,{children:[`Create or edit `,_jsx(_components.code,{children:`~/.cursor/mcp.json`}),` to make Exec available everywhere, or `,_jsx(_components.code,{children:`.cursor/mcp.json`}),` in a project to keep it to that project:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--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:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"mcpServers\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"exec\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://api.exec.com/mcp\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsxs(_components.p,{children:[`A remote server needs only `,_jsx(_components.code,{children:`url`}),`. The `,_jsx(_components.code,{children:`type`}),` field is for local servers.`]})]}),_jsx(Step,{title:`Sign in to Exec`,children:_jsxs(_components.p,{children:[`Open the `,_jsx(_components.strong,{children:`Customize`}),` page in the sidebar, find Exec in the MCP list, and use the sign-in prompt on its row. A browser tab opens on the Exec sign-in page.`]})}),_jsxs(Step,{title:`Check it worked`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Show me my most recent roleplay sessions in Exec.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.p,{children:[`If nothing happens, open the Output panel and select `,_jsx(_components.strong,{children:`MCP Logs`}),`.`]})]})]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`On Cursor Enterprise, admins can restrict which MCP servers run, under `,_jsx(_components.strong,{children:`Team Settings > MCP Configuration`}),`. If Exec never appears, ask them to allowlist `,_jsx(_components.code,{children:`https://api.exec.com/mcp`}),`.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`any-other-mcp-client`,children:`Any other MCP client`}),`\n`,_jsx(_components.p,{children:`Exec speaks the standard Model Context Protocol, so anything supporting remote MCP servers over HTTP can connect. Paste the URL wherever your tool asks for a custom MCP server, then sign in.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--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://api.exec.com/mcp`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`If your tool takes a JSON config file rather than a URL field, this is the same connection:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"mcpServers\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"exec\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"http\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://api.exec.com/mcp\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Your tool needs two things:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Requirement`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Detail`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Remote MCP servers over HTTP`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Exec is hosted. Tools that only launch servers locally need the bridge below.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Sign-in support`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Your assistant opens Exec’s sign-in page and stores the result. Nearly every current client handles this.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`using-a-local-config-file`,children:`Using a local config file`}),`\n`,_jsx(_components.p,{children:`Two reasons to take this route: your client can only run an MCP server as a local process, or you are on a Team or Enterprise plan and would rather not wait for an owner to add the connector. A small bridge makes the remote server look local:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"mcpServers\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"exec\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"command\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"npx\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"args\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"-y\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"mcp-remote\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://api.exec.com/mcp\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`This needs Node.js 18 or newer, and the Exec sign-in appears the first time the connection is used. If sign-in gets stuck, deleting the `,_jsx(_components.code,{children:`~/.mcp-auth`}),` folder and restarting your client clears it.`]}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`This also sidesteps the connector list entirely, which makes it a way to evaluate Exec before your IT team has approved anything. That does mean it sits outside whatever governance your company has around AI tool connectors, so move to the approved route once somebody can approve it.`})}),`\n`,_jsx(Heading,{level:`3`,id:`in-house-assistants-and-agents`,children:`In-house assistants and agents`}),`\n`,_jsx(_components.p,{children:`A connection is always scoped to one person and one workspace. There is no service account, and access is exactly the signed-in person’s Exec permissions, so an agent acting for a team sees only what the person who authorized it can see.`}),`\n`,_jsxs(_components.p,{children:[`If you already hold an Exec API key it can be used as a bearer token instead of signing in, which suits an unattended service. Treat it carefully: it reads with workspace admin access and does not expire. It cannot make changes, so assigning, enrolling, and inviting need the normal sign-in. For anything a person drives, prefer the normal sign-in. To build directly against Exec rather than through an assistant, see the `,_jsx(_components.a,{href:`/api-reference/overview`,children:`API Reference`}),`.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`your-assistant-will-ask-before-it-uses-exec`,children:`Your assistant will ask before it uses Exec`}),`\n`,_jsx(_components.p,{children:`The first time it reaches for Exec, most assistants ask your permission, usually offering something like ask every time, always allow, or block. This is your assistant’s own setting rather than Exec’s.`}),`\n`,_jsx(_components.p,{children:`Always allow is the usual choice for reading your own data. If your assistant later says it cannot see your Exec data even though the connector shows as connected, check whether the capability got blocked here.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`staying-connected-and-disconnecting`,children:`Staying connected, and disconnecting`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Staying connected.`}),` It refreshes quietly. In normal use you should not have to sign in again for about a month.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Reconnecting is often silent.`}),` If you already hold a live authorization and reconnect, you may go straight through with no sign-in and no consent screen, reusing the workspace you picked originally. That is expected. To change workspace, disconnect first.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Disconnecting.`}),` Remove the connector in your assistant. That ends the whole authorization, not just the current session.`]}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`There is no MCP screen in Exec, so disconnecting happens on your assistant’s side. For offboarding you do not need to touch anyone’s assistant: deactivating someone in Exec, or removing them from the workspace, cuts their access on their next request.`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`common-problems`,children:`Common problems`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`An empty answer usually means the sign-in did not finish.`}),` The connection still looks present, so your assistant reports an empty workspace rather than a problem. If an answer you expect comes back empty, reconnect before concluding there is no data.`]})}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Exec is not in my connectors list`,id:`exec-is-not-in-my-connectors-list`,children:_jsx(_components.p,{children:`On Free, Pro, or Max, add it yourself as a custom connector using the URL above. On a Team or Enterprise plan, an owner has to add Exec for the organization before it appears for anyone else. In ChatGPT, check that Developer mode is on. In Microsoft 365 Copilot, Exec appears once someone publishes the Exec agent from Copilot Studio and shares it with you.`})}),_jsx(Accordion,{title:`It says connected but every answer is empty`,id:`it-says-connected-but-every-answer-is-empty`,children:_jsx(_components.p,{children:`The sign-in almost certainly did not complete. Disconnect, reconnect, and make sure you reach the Exec sign-in page and authorize. An unfinished sign-in fails quietly rather than showing an error. If you have several tools connected, it can also mean your assistant used a different one, so try starting with “Using the Exec MCP, …”.`})}),_jsx(Accordion,{title:`My assistant ignores Exec and answers from general knowledge`,id:`my-assistant-ignores-exec-and-answers-from-general-knowledge`,children:_jsx(_components.p,{children:`Name it explicitly: “Using the Exec MCP, …”. Common with ChatGPT. Also check the connector is switched on for that conversation.`})}),_jsx(Accordion,{title:`I cannot sign in`,id:`i-cannot-sign-in`,children:_jsx(_components.p,{children:`It is the same sign-in as the Exec app, including the lockout after repeated failed attempts, so somebody locked out of Exec is locked out of connecting until that clears. Reset your password in Exec if needed. If single sign-on sends you back with an error, your email may not be attached to that workspace.`})}),_jsx(Accordion,{title:`I picked the wrong workspace`,id:`i-picked-the-wrong-workspace`,children:_jsx(_components.p,{children:`Disconnect the connector and connect again, choosing the right one. The connection is bound to whichever you picked.`})}),_jsx(Accordion,{title:`An error about the authorization already being completed`,id:`an-error-about-the-authorization-already-being-completed`,children:_jsx(_components.p,{children:`Two sign-ins raced each other and one won. Harmless. Reconnect.`})}),_jsx(Accordion,{title:`It says it does not have permission`,id:`it-says-it-does-not-have-permission`,children:_jsxs(_components.p,{children:[`Either the capability is blocked in your assistant’s own permission settings, or you genuinely do not have access to that data in Exec. Skill and scenario analytics, for example, are limited to admins and group admins. See `,_jsx(_components.a,{href:`/mcp/what-the-ai-can-see`,children:`What the AI can see`}),`.`]})}),_jsx(Accordion,{title:`Charts and dashboards do not appear`,id:`charts-and-dashboards-do-not-appear`,children:_jsxs(_components.p,{children:[`Charts need an assistant that can display interactive panels. In a text-only assistant you get the numbers instead, which is not a failure. See `,_jsx(_components.a,{href:`/mcp/limits`,children:`Limits`}),`.`]})})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/mcp/troubleshooting`,children:`Full troubleshooting guide`}),`.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`next`,children:`Next`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Prompts and reliable answers`,href:`/mcp/prompts-and-answers`,children:_jsx(_components.p,{children:`Prompts by role, ready to copy`})}),_jsx(Card,{title:`Managing your team`,href:`/mcp/for-team-leads`,children:_jsx(_components.p,{children:`The video walkthrough, if you run a team`})})]})]})}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":{"config":{},"pageMetadata":{"title":"Connect Your AI Tool","description":"Set up Exec MCP in Claude, ChatGPT, Microsoft Copilot, GitHub Copilot, Cursor, or any assistant that supports MCP.","href":"/mcp/connect"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Find your tool","slug":"find-your-tool","depth":2,"children":[]},{"title":"Claude","slug":"claude","depth":2,"children":[]},{"title":"Claude Code","slug":"claude-code","depth":2,"children":[]},{"title":"ChatGPT","slug":"chatgpt","depth":2,"children":[]},{"title":"Codex","slug":"codex","depth":2,"children":[]},{"title":"Microsoft Copilot","slug":"microsoft-copilot","depth":2,"children":[]},{"title":"GitHub Copilot","slug":"github-copilot","depth":2,"children":[]},{"title":"Cursor","slug":"cursor","depth":2,"children":[]},{"title":"Any other MCP client","slug":"any-other-mcp-client","depth":2,"children":[{"title":"Using a local config file","slug":"using-a-local-config-file","depth":3,"children":[]},{"title":"In-house assistants and agents","slug":"in-house-assistants-and-agents","depth":3,"children":[]}]},{"title":"Your assistant will ask before it uses Exec","slug":"your-assistant-will-ask-before-it-uses-exec","depth":2,"children":[]},{"title":"Staying connected, and disconnecting","slug":"staying-connected-and-disconnecting","depth":2,"children":[]},{"title":"Common problems","slug":"common-problems","depth":2,"children":[]},{"title":"Next","slug":"next","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"exec-79a6bbdb","siteName":"Exec Docs","title":"Connect Your AI Tool - Exec Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-15T14:34:31.015Z","originalFileLocation":"mcp/connect.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=\"system\"}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=\"Set up Exec MCP in Claude, ChatGPT, Microsoft Copilot, GitHub Copilot, Cursor, or any assistant that supports MCP.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Exec Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://api.exec.com/static/img/exec/favicon-32x32.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://api.exec.com/static/img/exec/favicon-32x32.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://api.exec.com/static/img/exec/favicon-32x32.png\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/png\" href=\"https://api.exec.com/static/img/exec/favicon-32x32.png\">\u003cmeta data-mint-head property=\"og:title\" content=\"Connect Your AI Tool - Exec Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Set up Exec MCP in Claude, ChatGPT, Microsoft Copilot, GitHub Copilot, Cursor, or any assistant that supports MCP.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Exec Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.exec.com/mcp/connect\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://exec-79a6bbdb.mintlify.app/_mintlify/api/og/v2?division=Exec+MCP\u0026amp;title=Connect+Your+AI+Tool\u0026amp;description=Set+up+Exec+MCP+in+Claude%2C+ChatGPT%2C+Microsoft+Copilot%2C+GitHub+Copilot%2C+Cursor%2C+or+any+assistant+that+supports+MCP.\u0026amp;theme=118d0f222b1b19634e7f765a\u0026amp;signature=77033bf3e78588661817bb7fc2818302cb8dfe0320b9ba9551dab998aeca97b3\">\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=\"Connect Your AI Tool - Exec Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Set up Exec MCP in Claude, ChatGPT, Microsoft Copilot, GitHub Copilot, Cursor, or any assistant that supports MCP.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://exec-79a6bbdb.mintlify.app/_mintlify/api/og/v2?division=Exec+MCP\u0026amp;title=Connect+Your+AI+Tool\u0026amp;description=Set+up+Exec+MCP+in+Claude%2C+ChatGPT%2C+Microsoft+Copilot%2C+GitHub+Copilot%2C+Cursor%2C+or+any+assistant+that+supports+MCP.\u0026amp;theme=118d0f222b1b19634e7f765a\u0026amp;signature=77033bf3e78588661817bb7fc2818302cb8dfe0320b9ba9551dab998aeca97b3\">\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=\"https://mintlify.s3.us-west-1.amazonaws.com/exec-79a6bbdb/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Exec Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1478E3\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.exec.com/mcp/connect\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/mcp/connect.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.exec.com/#organization\",\"name\":\"Exec Docs\",\"url\":\"https://docs.exec.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/exec-79a6bbdb/Z6LikiTtpJT_5O91/logo/exec-logo.svg?fit=max\u0026auto=format\u0026n=Z6LikiTtpJT_5O91\u0026q=85\u0026s=d1f375d808dadeba59a187ca85d7bfe0\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.exec.com#website\",\"name\":\"Exec Docs\",\"url\":\"https://docs.exec.com\",\"publisher\":{\"@id\":\"https://docs.exec.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.exec.com/mcp/connect#webpage\",\"url\":\"https://docs.exec.com/mcp/connect\",\"name\":\"Connect Your AI Tool\",\"description\":\"Set up Exec MCP in Claude, ChatGPT, Microsoft Copilot, GitHub Copilot, Cursor, or any assistant that supports MCP.\",\"dateModified\":\"2026-10-15T14:34:31.015Z\",\"isPartOf\":{\"@id\":\"https://docs.exec.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.exec.com/mcp/connect#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.exec.com/mcp/connect#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Integrations\",\"item\":\"https://docs.exec.com/sso-directory-sync\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Exec MCP\",\"item\":\"https://docs.exec.com/mcp/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Connect Your AI Tool\",\"item\":\"https://docs.exec.com/mcp/connect\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.exec.com/mcp/connect#article\",\"headline\":\"Connect Your AI Tool\",\"name\":\"Connect Your AI Tool\",\"description\":\"Set up Exec MCP in Claude, ChatGPT, Microsoft Copilot, GitHub Copilot, Cursor, or any assistant that supports MCP.\",\"url\":\"https://docs.exec.com/mcp/connect\",\"mainEntityOfPage\":{\"@id\":\"https://docs.exec.com/mcp/connect#webpage\"},\"dateModified\":\"2026-10-15T14:34:31.015Z\",\"publisher\":{\"@id\":\"https://docs.exec.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.exec.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Exec Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Exec Docs","nav":{"global":null,"tabs":[{"tab":"Documentation","groups":[{"group":"Getting Started","pages":[{"title":"Welcome to Exec","href":""},{"title":"Platform Onboarding Guide","href":"/onboarding-guide"},{"title":"Complete Your First Roleplay","href":"/your-first-roleplay"}]},{"group":"Guides","icon":"map","pages":[{"title":"Rolling Exec Out to Your Team","href":"/guides/rollout"},{"title":"Training Sales Teams with Exec","href":"/guides/train-sales-teams"},{"title":"Training Support Teams with Exec","href":"/guides/train-support-teams"},{"title":"Training Customer Success Teams with Exec","href":"/guides/train-customer-success"},{"title":"Training Managers and Leaders with Exec","href":"/guides/train-managers"}]},{"group":"Roleplays","icon":"circle-play","pages":[{"group":"Creating Scenarios","pages":[{"title":"Creating Scenarios","href":"/roleplays/ai-agent"},{"title":"Advanced Roleplay Building","href":"/roleplays/advanced-building"},{"title":"Use a Template","href":"/roleplays/template"},{"title":"Using Sources","href":"/roleplays/attachments"},{"title":"Edit a Scenario","href":"/roleplays/edit-scenario"},{"title":"Clone a Scenario","href":"/roleplays/clone-scenario"},{"title":"Use the Remix Feature","href":"/roleplays/remix-scenario"},{"title":"Conversation Guidelines","sidebarTitle":"Conversation Guidelines","href":"/roleplays/conversation-guidelines"},{"title":"Multi-Persona Scenarios","href":"/roleplays/multi-persona"},{"title":"Group Roleplays","href":"/roleplays/group-sessions"},{"title":"Multilingual Scenarios","href":"/roleplays/multilingual"},{"title":"Conditional Context","href":"/roleplays/conditional-context"},{"title":"Sharing \u0026 Viewing Permissions","href":"/roleplays/distribute-roleplays"},{"title":"Collections","href":"/roleplays/collections"},{"title":"Restore a Deleted Scenario","href":"/roleplays/restore-scenario"}]},{"group":"Assignments","pages":[{"title":"Assign Scenarios","href":"/roleplays/assign-scenarios"},{"title":"Manage Assignments","href":"/roleplays/manage-assignments"}]},{"group":"Running Roleplays","pages":[{"title":"Filter to Find a Roleplay","href":"/roleplays/filter"},{"title":"Screen Sharing","href":"/roleplays/screenshare/enable"},{"title":"View Previous Sessions","href":"/roleplays/previous-sessions"},{"title":"Share Session Results","href":"/roleplays/share-session"},{"title":"Session Visibility","href":"/roleplays/session-visibility"},{"title":"Retake a Roleplay","href":"/roleplays/retake-roleplay"}]},{"group":"Feedback \u0026 Progress","pages":[{"title":"Interpret Your Results","href":"/roleplays/interpret-results"},{"title":"Use the AI Coach","href":"/roleplays/ai-coach"},{"title":"Delete a Session","href":"/roleplays/delete-session"}]},{"group":"Building Resources","pages":[{"title":"Scenario Studio Prompt Library","href":"/prompt-library"},{"title":"Building Tips \u0026 Techniques","href":"/building-tips"}]},{"group":"Troubleshooting","pages":[{"title":"Roleplay Doesn't Load","href":"/roleplays/troubleshooting/doesnt-load"},{"title":"Microphone Not Working","href":"/roleplays/troubleshooting/microphone-not-working"},{"title":"Can't Hear the AI","href":"/roleplays/troubleshooting/cant-hear-ai"},{"title":"AI Can't See My Screen","href":"/roleplays/troubleshooting/cant-see-screen"},{"title":"Glitching AI","href":"/roleplays/troubleshooting/glitching"},{"title":"AI Interrupts Me","href":"/roleplays/troubleshooting/interrupting"},{"title":"Feedback Page Not Loading","href":"/roleplays/troubleshooting/feedback-not-loading"},{"title":"Session Not Scored","href":"/roleplays/troubleshooting/session-not-scored"},{"title":"AI Asks \"Are You Still There?\"","href":"/roleplays/troubleshooting/still-there"}]}]},{"group":"Courses","icon":"graduation-cap","pages":[{"title":"Courses Overview","href":"/courses/overview"},{"group":"Build a Course","pages":[{"title":"Create a Course","href":"/courses/create-course"},{"title":"Generate a Course with AI","href":"/courses/generate-with-ai"},{"title":"Import a Course","href":"/courses/import-course"},{"title":"Build Sections and Pages","href":"/courses/build-sections-and-pages"},{"title":"Add Content Blocks","href":"/courses/add-content-blocks"},{"title":"Add a Quiz","href":"/courses/add-quiz"},{"title":"Add a Roleplay","href":"/courses/add-roleplay"},{"title":"Publish and Versioning","href":"/courses/publish-and-versioning"},{"title":"Remix a Course","href":"/courses/remix-course"},{"title":"Collections","href":"/courses/collections"}]},{"group":"Distribute \u0026 Enroll","pages":[{"title":"Enroll Participants","href":"/courses/enroll-participants"},{"title":"Nudges and Re-enrollment","href":"/courses/nudges-and-reenrollment"}]},{"group":"Track Progress","pages":[{"title":"Track Progress and Analytics","href":"/courses/track-progress-and-analytics"},{"title":"Certifications","href":"/courses/certifications"}]},{"group":"For Learners","pages":[{"title":"Taking a Course","href":"/courses/taking-a-course"}]}]},{"group":"Skills","icon":"head-side-gear","pages":[{"title":"Skills Overview","href":"/skills/overview"},{"title":"Create and Manage Skills","href":"/skills/create-and-manage"},{"title":"Analyze Skill Performance","href":"/skills/analyze-performance"},{"title":"Skill Proficiency and Reports","href":"/skills/proficiency-reports"},{"title":"Skill Insights and Resources","href":"/skills/insights-and-resources"},{"title":"Understand Your Skill Scores","href":"/skills/understand-your-scores"}]},{"group":"Knowledge Hub","icon":"book-open","pages":[{"title":"Knowledge Hub Overview","href":"/knowledge-hub/overview"},{"title":"Hubs and Organization","href":"/knowledge-hub/hubs"},{"title":"Pages","href":"/knowledge-hub/pages"},{"title":"Sources","href":"/knowledge-hub/sources"},{"title":"AI Chat","href":"/knowledge-hub/ai-chat"},{"title":"Using the Knowledge Hub in Roleplays","href":"/knowledge-hub/using-in-roleplays"},{"title":"Notion Integration","href":"/knowledge-hub/notion-integration"},{"title":"Microsoft 365 Integration","href":"/knowledge-hub/microsoft-365-integration"},{"title":"Permissions and Sharing","href":"/knowledge-hub/permissions"}]},{"group":"Calls","icon":"phone","pages":[{"title":"Call Scoring Overview","href":"/calls/overview"},{"title":"Set Up Call Scoring","href":"/calls/set-up-call-scoring"},{"title":"Microsoft Teams Call Sync","href":"/calls/microsoft-teams"},{"title":"Call Categories and Scorecards","href":"/calls/categories-and-scorecards"},{"title":"Review Scored Calls","href":"/calls/review-scored-calls"},{"title":"Upload Calls Manually","href":"/calls/upload-calls-manually"}]},{"group":"Coaching","icon":"calendar","pages":[{"group":"For Participants","pages":[{"title":"Coaching Session Types","href":"/coaching/session-types"},{"title":"Find a Coach","href":"/coaching/find-a-coach"},{"title":"Choosing the Right Coach","href":"/coaching/choosing-a-coach"},{"title":"What to Expect in an Intro Session","href":"/coaching/intro-session"},{"title":"What to Expect in a Three-Way Alignment Call","href":"/coaching/alignment-call"},{"title":"Coaching Credits","href":"/coaching/credits"},{"title":"Schedule a Coaching Session","href":"/coaching/schedule-session"},{"title":"Joining Your Coaching Session","href":"/coaching/joining-a-session"},{"title":"Reschedule a Coaching Session","href":"/coaching/reschedule-session"},{"title":"Cancel a Coaching Session","href":"/coaching/cancel-session"}]},{"group":"For Admins","pages":[{"title":"Add or Remove Member Credits","href":"/coaching/admin/member-credits"},{"title":"View a Member's Coaching History","href":"/coaching/admin/coaching-history"},{"title":"A Guide to Groups","href":"/coaching/admin/groups"},{"title":"Check Your Workspace Credit Balance","href":"/coaching/admin/workspace-credits"},{"title":"Credit Expiration \u0026 Renewal","href":"/coaching/admin/credit-expiration"}]}]},{"group":"Programs","icon":"rectangle-list","pages":[{"title":"Programs Overview","href":"/programs/overview"},{"title":"Create a Program","href":"/programs/create-program"},{"title":"Add Program Components","href":"/programs/add-components"},{"title":"Manage Program Participants","href":"/programs/manage-participants"},{"title":"Launch and Manage Your Program","href":"/programs/launch-and-lifecycle"},{"title":"Track Program Progress","href":"/programs/track-progress"},{"title":"Programs and Certifications","href":"/programs/certifications"}]},{"group":"Certifications","icon":"certificate","pages":[{"title":"Create a Certification","href":"/certificates/create-certification"},{"title":"Certify Others","href":"/certificates/certify-others"},{"title":"Share and view earned certificates","href":"/certificates/share-certificates"}]},{"group":"Platform Administration","icon":"users-gear","pages":[{"title":"Create Your Exec Account","href":"/platform/create-account"},{"title":"Plans and Feature Availability","href":"/platform/plans"},{"title":"Platform Credits","href":"/platform/platform-credits"},{"title":"Login and Access Issues","href":"/platform/login-issues"},{"title":"Admin Capabilities","href":"/platform/admin-capabilities"},{"title":"Add a New User","href":"/platform/add-user"},{"title":"Remove a User","href":"/platform/remove-user"},{"title":"Basic Seats vs. Full Seats","href":"/platform/basic-full-seats"},{"title":"Understand the Settings Tab","href":"/platform/settings-tab"},{"title":"Profile Fields","href":"/platform/profile-fields"},{"title":"Feature Access","href":"/platform/feature-access"},{"title":"Export Data","href":"/platform/export-data"},{"title":"Digest Emails","href":"/platform/digest-emails"},{"title":"Network and Email Whitelist Requirements","href":"/platform/whitelist-requirements"}]},{"group":"Integrations","icon":"gear-code","pages":[{"title":"Single Sign-On and Directory Sync","href":"/sso-directory-sync"},{"group":"Exec MCP","pages":[{"title":"Exec MCP Overview","description":"Ask about your team's practice in plain language, from the AI assistant you already work in.","href":"/mcp/overview"},{"title":"Connect Your AI Tool","href":"/mcp/connect"},{"group":"Using Exec MCP","pages":[{"title":"Practicing on Your Own","description":"Prep for the call you actually have, check how you are doing, and stay on top of what is assigned.","href":"/mcp/for-members"},{"title":"Managing Your Team","href":"/mcp/for-team-leads"},{"title":"Managing the Org","href":"/mcp/for-executives"},{"title":"Prompts and Reliable Answers","href":"/mcp/prompts-and-answers"}]},{"group":"Permissions \u0026 Admin","pages":[{"title":"What the AI Can See","href":"/mcp/what-the-ai-can-see"},{"title":"Admin Controls","href":"/mcp/admin-controls"}]},{"group":"Reference \u0026 Troubleshooting","pages":[{"title":"Available Tools","href":"/mcp/available-tools"},{"title":"Limits","href":"/mcp/limits"},{"title":"MCP Troubleshooting","href":"/mcp/troubleshooting"}]}]},{"title":"LMS Integrations","href":"/lms-integration"},{"title":"Embed Exec in an iframe","href":"/platform/iframe-embedding"},{"group":"LTI 1.3","pages":[{"title":"LTI 1.3 Overview","href":"/lti/overview"},{"title":"Connect an LMS","href":"/lti/connect-lms"},{"title":"Add Roleplays to a Course","href":"/lti/add-roleplays"},{"title":"Grade Passback","href":"/lti/grade-passback"},{"title":"LTI Troubleshooting","href":"/lti/troubleshooting"}]}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/overview"}]}]},"title":"Connect Your AI Tool - Exec Docs","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":[],"chunks":[]}