Connect Enginy to Claude — claude.ai web, desktop, Team, and Enterprise, the way most teams use Enginy MCP day to day — plus Claude Code for developers who prefer the CLI.
Most teams — especially non-technical roles like SDRs — will use Enginy from Claude itself (claude.ai on the
web, desktop, Team, or Enterprise), not from a terminal. This is the recommended starting point.
An Enginy admin just needs to enable the MCP integration for the workspace — that’s it to get started. Enginy
grants full access by default and already allowlists the standard redirect URI for Claude.
Restricting policy scopes, pinning trusted client IDs, or customizing allowed redirect URIs are optional,
advanced steps for later — not something you need to set up before the first connection. If you do want to
manage redirect URIs yourself, Claude’s callback is https://claude.ai/api/mcp/auth_callback (Anthropic has
indicated this may migrate to https://claude.com/api/mcp/auth_callback — allowlist both to stay covered
through that change).
Pro or Max plan: go to Customize → Connectors, click +, choose Add custom connector, paste
https://openapi.enginy.ai/mcp, and click Add.
Team or Enterprise plan: an Owner must add it first, via Organization Settings → Connectors → Add
→ Custom → Web. Individual members then connect from their own account — a non-admin user won’t see the
option to add a connector themselves.
Adding the connector doesn’t turn it on everywhere. In any chat, click the + button (bottom-left of the
message box), select Connectors, and toggle Enginy on for that conversation.
Nothing to configure — Enginy already allowlists the standard fixed-port callback Claude Code uses by
default:
http://localhost:3118/callback
A fixed port lets Enginy allowlist one stable redirect URI instead of a random one. If your workspace has
customized the allowed redirect URIs, just make sure this one is still on the list.
Approve the request and return to Claude Code after the browser lands on:
http://localhost:3118/callback?...
That callback page is usually served by Claude Code’s local receiver, not by Enginy. Seeing a success screen there usually means the code exchange completed.
You can ignore this section unless your team is testing a local Enginy environment.If you are running the local OpenAPI service, the MCP URL defaults to:
http://127.0.0.1:8081/mcp
A local setup typically needs:
the OpenAPI service running
the API OAuth routes running
an Enginy frontend you can sign into for the browser approval step
the same callback URI allowlisted in the workspace settings
Example local registration command:
claude mcp add --transport http --callback-port 3118 enginy-local http://127.0.0.1:8081/mcp
Your workspace is pinning trusted client IDs and Claude Code’s client ID is not on the allowlist. Either add that exact client ID or temporarily remove the allowlist while you establish the first connection.
This usually means the client tried a shorthand token path. Enginy supports both the canonical token endpoint and common compatibility aliases, so if you still see this error, you are usually hitting a stale server, a proxy, or the wrong base URL.
the OAuth flow completed all the way through the browser callback
the token exchange did not fail after the consent screen
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Enginy API Docs","description":"Developer docs for Enginy, the B2B prospecting platform: REST API, hosted MCP server, Advanced Workflows reference, and custom CRM integration.","colors":{"primary":"#1EC371","light":"#47E194","dark":"#171717"},"logo":{"light":"https://mintcdn.com/genesyai/WDIQAoU7a8DJAxu4/logo/enginy-dark.svg?fit=max\u0026auto=format\u0026n=WDIQAoU7a8DJAxu4\u0026q=85\u0026s=939acf98e42633af0faae66d57713e73","dark":"https://mintcdn.com/genesyai/WDIQAoU7a8DJAxu4/logo/enginy-light.svg?fit=max\u0026auto=format\u0026n=WDIQAoU7a8DJAxu4\u0026q=85\u0026s=e25861810973f70a5bcf4ff3e9e07b2a"},"favicon":"https://mintcdn.com/genesyai/WDIQAoU7a8DJAxu4/favicon.svg?fit=max\u0026auto=format\u0026n=WDIQAoU7a8DJAxu4\u0026q=85\u0026s=29e39121b8aed81a43a6f121813c4ee0","navbar":{"links":[{"href":"mailto:support@enginy.ai","label":"Support"}],"primary":{"type":"button","label":"App","href":"https://app.enginy.ai"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/enginy-ai"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Help Center","icon":"book-open-cover","href":"https://help.enginy.ai/"},{"anchor":"API Dashboard","icon":"key","href":"https://app.enginy.ai/api-access"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"genesyai","hasAudioNarration":false,"actualSubdomain":"genesyai","customDomains":["docs.enginy.ai"],"gitSource":{"type":"github","owner":"genesy-ai","repo":"leads-gpt","deployBranch":"main","contentDirectory":"openapi-docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adb0409aa8f362a306d917d","collectionId":"1b918f07-3295-4564-8126-46ee4b0bb6ae","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adb0409aa8f362a306d917d"},"entitlements":{},"buildId":"6adb096d35d195450e7200af","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"API reference","count":226},{"language":"default","tag":"Endpoints","count":213},{"language":"default","tag":"AI Variables","count":46},{"language":"default","tag":"Workflows","count":39},{"language":"default","tag":"Custom CRM","count":24},{"language":"default","tag":"Contacts","count":21},{"language":"default","tag":"Lists","count":21},{"language":"default","tag":"Companies","count":20},{"language":"default","tag":"Campaigns","count":19},{"language":"default","tag":"Tasks","count":17}]},"assistantConfig":{},"hasChatPermissions":false,"hasWebMcpPermissions":false,"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":"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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"mcp/claude-code","slug":"/mcp/claude-code","pageMetadata":{"title":"Claude \u0026 Claude Code","description":"Connect Enginy to Claude — claude.ai web, desktop, Team, and Enterprise, the way most teams use Enginy MCP day to day — plus Claude Code for developers who prefer the CLI.","icon":"comments","href":"/mcp/claude-code"},"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: \"Connect Enginy to Claude — claude.ai web, desktop, Team, and Enterprise, the way most teams use Enginy MCP day to day — plus Claude Code for developers who prefer the CLI.\"\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={code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`claude`,children:`Claude`}),`\n`,_jsx(_components.p,{children:`Most teams — especially non-technical roles like SDRs — will use Enginy from Claude itself (claude.ai on the\nweb, desktop, Team, or Enterprise), not from a terminal. This is the recommended starting point.`}),`\n`,_jsx(Heading,{level:`3`,id:`before-you-start`,children:`Before you start`}),`\n`,_jsx(_components.p,{children:`An Enginy admin just needs to enable the MCP integration for the workspace — that’s it to get started. Enginy\ngrants full access by default and already allowlists the standard redirect URI for Claude.`}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Restricting policy scopes, pinning trusted client IDs, or customizing allowed redirect URIs are optional,\nadvanced steps for later — not something you need to set up before the first connection. If you do want to\nmanage redirect URIs yourself, Claude’s callback is `,_jsx(_components.code,{children:`https://claude.ai/api/mcp/auth_callback`}),` (Anthropic has\nindicated this may migrate to `,_jsx(_components.code,{children:`https://claude.com/api/mcp/auth_callback`}),` — allowlist both to stay covered\nthrough that change).`]})}),`\n`,_jsx(Heading,{level:`3`,id:`add-the-connector`,children:`Add the connector`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Pro or Max plan`}),`: go to `,_jsx(_components.strong,{children:`Customize → Connectors`}),`, click `,_jsx(_components.strong,{children:`+`}),`, choose `,_jsx(_components.strong,{children:`Add custom connector`}),`, paste\n`,_jsx(_components.code,{children:`https://openapi.enginy.ai/mcp`}),`, and click `,_jsx(_components.strong,{children:`Add`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Team or Enterprise plan`}),`: an `,_jsx(_components.strong,{children:`Owner`}),` must add it first, via `,_jsx(_components.strong,{children:`Organization Settings → Connectors → Add\n→ Custom → Web`}),`. Individual members then connect from their own account — a non-admin user won’t see the\noption to add a connector themselves.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`turn-it-on-for-a-conversation`,children:`Turn it on for a conversation`}),`\n`,_jsxs(_components.p,{children:[`Adding the connector doesn’t turn it on everywhere. In any chat, click the `,_jsx(_components.strong,{children:`+`}),` button (bottom-left of the\nmessage box), select `,_jsx(_components.strong,{children:`Connectors`}),`, and toggle Enginy on for that conversation.`]}),`\n`,_jsx(Heading,{level:`3`,id:`complete-the-browser-flow`,children:`Complete the browser flow`}),`\n`,_jsx(_components.p,{children:`When you approve the connection, Claude validates the same things any Enginy connection does:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`the `,_jsx(_components.code,{children:`redirect_uri`}),` against your workspace allowlist`]}),`\n`,_jsx(_components.li,{children:`the requested scopes against your MCP policy ceiling`}),`\n`,_jsxs(_components.li,{children:[`the optional `,_jsx(_components.code,{children:`client_id`}),` allowlist, if your workspace uses one`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`verify-the-connection`,children:`Verify the connection`}),`\n`,_jsx(_components.p,{children:`Ask Claude to use the Enginy connector and run:`}),`\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:`mcp_whoami`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`That confirms the hosted MCP server is reachable, OAuth completed, and the granted scopes match what Enginy approved.`}),`\n`,_jsx(Heading,{level:`2`,id:`claude-code`,children:`Claude Code`}),`\n`,_jsx(_components.p,{children:`Prefer the terminal? Claude Code is Anthropic’s CLI, and connects to the same hosted Enginy MCP server.`}),`\n`,_jsx(Heading,{level:`3`,id:`before-you-start-2`,children:`Before you start`}),`\n`,_jsx(_components.p,{children:`Nothing to configure — Enginy already allowlists the standard fixed-port callback Claude Code uses by\ndefault:`}),`\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:`http://localhost:3118/callback`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`A fixed port lets Enginy allowlist one stable redirect URI instead of a random one. If your workspace has\ncustomized the allowed redirect URIs, just make sure this one is still on the list.`}),`\n`,_jsx(Heading,{level:`3`,id:`add-the-hosted-server`,children:`Add the hosted server`}),`\n`,_jsx(_components.p,{children:`Run:`}),`\n`,_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:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --callback-port`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 3118`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` enginy`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://openapi.enginy.ai/mcp`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Then start Claude Code and open the MCP manager:`}),`\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:`/mcp`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`Select `,_jsx(_components.code,{children:`enginy`}),` and start authentication.`]}),`\n`,_jsx(Heading,{level:`3`,id:`complete-the-browser-flow-2`,children:`Complete the browser flow`}),`\n`,_jsx(_components.p,{children:`Approve the request and return to Claude Code after the browser lands on:`}),`\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:`http://localhost:3118/callback?...`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`That callback page is usually served by Claude Code’s local receiver, not by Enginy. Seeing a success screen there usually means the code exchange completed.`}),`\n`,_jsx(Heading,{level:`3`,id:`verify-the-connection-2`,children:`Verify the connection`}),`\n`,_jsx(_components.p,{children:`After authorization, ask Claude Code to use Enginy MCP and run:`}),`\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:`mcp_whoami`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`That verifies:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`the hosted MCP server is reachable`}),`\n`,_jsx(_components.li,{children:`OAuth completed successfully`}),`\n`,_jsx(_components.li,{children:`Claude Code is sending the correct bearer token`}),`\n`,_jsx(_components.li,{children:`the granted scopes match what Enginy approved`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`advanced-local-development`,children:`Advanced: local development`}),`\n`,_jsx(_components.p,{children:`You can ignore this section unless your team is testing a local Enginy environment.`}),`\n`,_jsx(_components.p,{children:`If you are running the local OpenAPI service, the MCP URL defaults to:`}),`\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:`http://127.0.0.1:8081/mcp`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`A local setup typically needs:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`the OpenAPI service running`}),`\n`,_jsx(_components.li,{children:`the API OAuth routes running`}),`\n`,_jsx(_components.li,{children:`an Enginy frontend you can sign into for the browser approval step`}),`\n`,_jsx(_components.li,{children:`the same callback URI allowlisted in the workspace settings`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Example local registration command:`}),`\n`,_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:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --callback-port`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 3118`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` enginy-local`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` http://127.0.0.1:8081/mcp`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`common-claude-code-issues`,children:`Common Claude Code issues`}),`\n`,_jsx(Heading,{level:`4`,id:`redirect_uri-is-not-allowed`,children:_jsx(_components.code,{children:`redirect_uri is not allowed`})}),`\n`,_jsxs(_components.p,{children:[`The callback URI in Claude Code must exactly match one of the workspace allowed redirect URIs. With `,_jsx(_components.code,{children:`--callback-port 3118`}),`, that means:`]}),`\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:`http://localhost:3118/callback`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`4`,id:`oauth-client_id-is-not-allowed`,children:_jsx(_components.code,{children:`OAuth client_id is not allowed`})}),`\n`,_jsx(_components.p,{children:`Your workspace is pinning trusted client IDs and Claude Code’s client ID is not on the allowlist. Either add that exact client ID or temporarily remove the allowlist while you establish the first connection.`}),`\n`,_jsx(Heading,{level:`4`,id:`requested-scopes-are-not-allowed`,children:_jsx(_components.code,{children:`Requested scopes are not allowed`})}),`\n`,_jsx(_components.p,{children:`Claude Code requested a scope set outside the workspace policy ceiling. Reduce the requested scope set or expand the policy in Enginy.`}),`\n`,_jsxs(Heading,{level:`4`,id:`needs-authentication-or-cannot-post-/token`,children:[_jsx(_components.code,{children:`needs authentication`}),` or `,_jsx(_components.code,{children:`Cannot POST /token`})]}),`\n`,_jsx(_components.p,{children:`This usually means the client tried a shorthand token path. Enginy supports both the canonical token endpoint and common compatibility aliases, so if you still see this error, you are usually hitting a stale server, a proxy, or the wrong base URL.`}),`\n`,_jsx(Heading,{level:`4`,id:`no-active-connection-appears-in-enginy`,children:`No active connection appears in Enginy`}),`\n`,_jsx(_components.p,{children:`Check that:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`MCP is enabled for the workspace`}),`\n`,_jsx(_components.li,{children:`the policy is active and has at least one scope`}),`\n`,_jsx(_components.li,{children:`the OAuth flow completed all the way through the browser callback`}),`\n`,_jsx(_components.li,{children:`the token exchange did not fail after the consent screen`}),`\n`]})]})}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":"Claude \u0026 Claude Code","description":"Connect Enginy to Claude — claude.ai web, desktop, Team, and Enterprise, the way most teams use Enginy MCP day to day — plus Claude Code for developers who prefer the CLI.","icon":"comments","href":"/mcp/claude-code"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Claude","slug":"claude","depth":2,"children":[{"title":"Before you start","slug":"before-you-start","depth":3,"children":[]},{"title":"Add the connector","slug":"add-the-connector","depth":3,"children":[]},{"title":"Turn it on for a conversation","slug":"turn-it-on-for-a-conversation","depth":3,"children":[]},{"title":"Complete the browser flow","slug":"complete-the-browser-flow","depth":3,"children":[]},{"title":"Verify the connection","slug":"verify-the-connection","depth":3,"children":[]}]},{"title":"Claude Code","slug":"claude-code","depth":2,"children":[{"title":"Before you start","slug":"before-you-start-2","depth":3,"children":[]},{"title":"Add the hosted server","slug":"add-the-hosted-server","depth":3,"children":[]},{"title":"Complete the browser flow","slug":"complete-the-browser-flow-2","depth":3,"children":[]},{"title":"Verify the connection","slug":"verify-the-connection-2","depth":3,"children":[]},{"title":"Advanced: local development","slug":"advanced-local-development","depth":3,"children":[]},{"title":"Common Claude Code issues","slug":"common-claude-code-issues","depth":3,"children":[]},{"title":"redirect_uri is not allowed","slug":"redirect_uri-is-not-allowed","depth":4,"children":[]},{"title":"OAuth client_id is not allowed","slug":"oauth-client_id-is-not-allowed","depth":4,"children":[]},{"title":"Requested scopes are not allowed","slug":"requested-scopes-are-not-allowed","depth":4,"children":[]},{"title":"needs authentication or Cannot POST /token","slug":"needs-authentication-or-cannot-post-/token","depth":4,"children":[]},{"title":"No active connection appears in Enginy","slug":"no-active-connection-appears-in-enginy","depth":4,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"genesyai","siteName":"Enginy API Docs","title":"Claude \u0026 Claude Code - Enginy API Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-07-31T08:43:45.492Z","originalFileLocation":"mcp/claude-code.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=\"Connect Enginy to Claude — claude.ai web, desktop, Team, and Enterprise, the way most teams use Enginy MCP day to day — plus Claude Code for developers who prefer the CLI.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Enginy API 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/genesyai/KC8b0RpuY3wjR47N/_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/genesyai/KC8b0RpuY3wjR47N/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/genesyai/KC8b0RpuY3wjR47N/_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/genesyai/KC8b0RpuY3wjR47N/_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/genesyai/KC8b0RpuY3wjR47N/_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/genesyai/KC8b0RpuY3wjR47N/_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/genesyai/KC8b0RpuY3wjR47N/_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/genesyai/KC8b0RpuY3wjR47N/_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/genesyai/KC8b0RpuY3wjR47N/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Claude \u0026amp; Claude Code - Enginy API Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Connect Enginy to Claude — claude.ai web, desktop, Team, and Enterprise, the way most teams use Enginy MCP day to day — plus Claude Code for developers who prefer the CLI.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Enginy API Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.enginy.ai/mcp/claude-code\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://genesyai.mintlify.app/_mintlify/api/og/v2?division=Clients\u0026amp;title=Claude+%26+Claude+Code\u0026amp;description=Connect+Enginy+to+Claude+%E2%80%94+claude.ai+web%2C+desktop%2C+Team%2C+and+Enterprise%2C+the+way+most+teams+use+Enginy+MCP+day+to+day+%E2%80%94+plus+Claude+Code+for+developers+who+pref\u0026amp;theme=f2b1053b8a2ac574395c5658\u0026amp;signature=9d14c9fc6c465c592292f2b46afd1de9254dca4289160654d0855a0ae5a94659\">\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=\"Claude \u0026amp; Claude Code - Enginy API Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Connect Enginy to Claude — claude.ai web, desktop, Team, and Enterprise, the way most teams use Enginy MCP day to day — plus Claude Code for developers who prefer the CLI.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://genesyai.mintlify.app/_mintlify/api/og/v2?division=Clients\u0026amp;title=Claude+%26+Claude+Code\u0026amp;description=Connect+Enginy+to+Claude+%E2%80%94+claude.ai+web%2C+desktop%2C+Team%2C+and+Enterprise%2C+the+way+most+teams+use+Enginy+MCP+day+to+day+%E2%80%94+plus+Claude+Code+for+developers+who+pref\u0026amp;theme=f2b1053b8a2ac574395c5658\u0026amp;signature=9d14c9fc6c465c592292f2b46afd1de9254dca4289160654d0855a0ae5a94659\">\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/genesyai/KC8b0RpuY3wjR47N/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Enginy API Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1EC371\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.enginy.ai/mcp/claude-code\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/mcp/claude-code.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.enginy.ai/#organization\",\"name\":\"Enginy API Docs\",\"url\":\"https://docs.enginy.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/genesyai/WDIQAoU7a8DJAxu4/logo/enginy-dark.svg?fit=max\u0026auto=format\u0026n=WDIQAoU7a8DJAxu4\u0026q=85\u0026s=939acf98e42633af0faae66d57713e73\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.enginy.ai#website\",\"name\":\"Enginy API Docs\",\"url\":\"https://docs.enginy.ai\",\"publisher\":{\"@id\":\"https://docs.enginy.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.enginy.ai/mcp/claude-code#webpage\",\"url\":\"https://docs.enginy.ai/mcp/claude-code\",\"name\":\"Claude \u0026 Claude Code\",\"description\":\"Connect Enginy to Claude — claude.ai web, desktop, Team, and Enterprise, the way most teams use Enginy MCP day to day — plus Claude Code for developers who prefer the CLI.\",\"dateModified\":\"2026-07-31T08:43:45.492Z\",\"isPartOf\":{\"@id\":\"https://docs.enginy.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.enginy.ai/mcp/claude-code#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.enginy.ai/mcp/claude-code#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Enginy API Docs\",\"item\":\"https://docs.enginy.ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Claude \u0026 Claude Code\",\"item\":\"https://docs.enginy.ai/mcp/claude-code\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.enginy.ai/mcp/claude-code#article\",\"headline\":\"Claude \u0026 Claude Code\",\"name\":\"Claude \u0026 Claude Code\",\"description\":\"Connect Enginy to Claude — claude.ai web, desktop, Team, and Enterprise, the way most teams use Enginy MCP day to day — plus Claude Code for developers who prefer the CLI.\",\"url\":\"https://docs.enginy.ai/mcp/claude-code\",\"mainEntityOfPage\":{\"@id\":\"https://docs.enginy.ai/mcp/claude-code#webpage\"},\"dateModified\":\"2026-07-31T08:43:45.492Z\",\"publisher\":{\"@id\":\"https://docs.enginy.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.enginy.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Enginy API Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Enginy API Docs","nav":{"global":{"anchors":[{"anchor":"Help Center","icon":"book-open-cover","href":"https://help.enginy.ai/"},{"anchor":"API Dashboard","icon":"key","href":"https://app.enginy.ai/api-access"}]},"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API reference","pages":[{"title":"API reference","href":"/api-reference/introduction"}]},{"tab":"MCP","groups":[{"group":"Getting started","pages":[{"title":"Overview","icon":"plug","href":"/mcp/overview"},{"title":"Client Support Matrix","description":"Compare how Claude, ChatGPT, Claude Code, Codex, Cursor, VS Code, Gemini CLI, Microsoft 365 Copilot, and other MCP clients connect to Enginy MCP.","icon":"table-list","href":"/mcp/client-support-matrix"}]},{"group":"Clients","pages":[{"title":"Claude \u0026 Claude Code","icon":"comments","href":"/mcp/claude-code"},{"title":"ChatGPT \u0026 Codex","description":"Connect Enginy to ChatGPT — including Developer Mode custom connectors, now in beta on every paid plan — plus Codex for developers who prefer the CLI.","icon":"comment-dots","href":"/mcp/codex"},{"title":"Connect Cursor","icon":"i-cursor","href":"/mcp/cursor"},{"title":"Connect VS Code","icon":"laptop-code","href":"/mcp/vscode"},{"title":"Connect Gemini CLI","icon":"gem","href":"/mcp/gemini-cli"},{"title":"Connect Microsoft 365 Copilot","icon":"building-user","href":"/mcp/microsoft-365-copilot"},{"title":"Custom \u0026 Other MCP Clients","icon":"code","href":"/mcp/custom-clients"},{"title":"Server-to-Server (API key)","icon":"key","href":"/mcp/api-key-auth"}]},{"group":"Guides","pages":[{"title":"Supported Tools","icon":"list-check","href":"/mcp/supported-tools"},{"title":"Example Prompts","icon":"message-lines","href":"/mcp/example-prompts"},{"title":"Events (automations)","icon":"bolt","href":"/mcp/events"}]},{"group":"Reference","pages":[{"title":"Scopes","icon":"shield-check","href":"/mcp/scopes"},{"title":"Security \u0026 Troubleshooting","icon":"triangle-exclamation","href":"/mcp/security-troubleshooting"},{"title":"FAQ / Known Limitations","icon":"circle-question","href":"/mcp/faq-known-limitations"}]}]},{"tab":"Workflows","pages":[{"title":"Workflows","href":"/workflows/overview"}]},{"tab":"Custom CRM","pages":[{"title":"Custom CRM","href":"/api-reference/custom-crm/overview"}]}]},"title":"Claude \u0026 Claude Code - Enginy API Docs","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":[],"chunks":[]}