Add the doola MCP server to Claude, Claude Code, Grok Build, ChatGPT, Perplexity, Cursor, Replit, Lovable, Vercel v0, or any MCP client.
The doola MCP server lives at one URL:
https://mcp.doola.com
In many clients doola is a searchable app or connector — find it by name. In others, paste the URL above. In Claude Code and Grok Build it installs as a plugin, no URL needed. Either way, complete the OAuth sign-in, then prompt the agent: “Create a US LLC for me.”
Every client uses the same OAuth flow: find or add doola, then sign in to your existing doola account (or create one) and authorize. New users sign up during the flow. See Authentication for what happens under the hood.
Enter Namedoola and MCP Server URLhttps://mcp.doola.com.
Click Add connector, then sign in to (or create) your doola account and complete the OAuth flow.
Start a new conversation — the doola tools are available.
Custom MCP connectors are available on supported Claude plans and workspaces.
doola ships an installable plugin, so there’s no URL to paste.
claude plugin marketplace add doolahq/pluginsclaude plugin install doola@doola
Then run /reload-plugins, or restart Claude Code. The plugin’s MCP server is only registered when plugins load, so the doola tools won’t appear in the session you installed from until you do one of the two.The first doola tool call then triggers the OAuth flow: sign in to (or create) your doola account and authorize. Run /mcp to see the doola server and its connection state.
The same two commands work as slash commands inside the TUI: /plugin marketplace add doolahq/plugins, then /plugin install doola@doola.
To give a whole team the plugin without each person adding the marketplace, commit this to the project’s .claude/settings.json:
Prefer not to install a plugin? Declare the server in the project’s .mcp.json instead, same shape as the Cursor tab, pointing at the URL at the top of this page.
--trust is required. Grok refuses the install without it, because a plugin can run hooks, MCP servers and skills on your machine.Confirm it registered with grok inspect, which lists the server under MCP Servers as doola (http) plugin: doola. The first doola tool call triggers the OAuth flow: sign in to (or create) your doola account and authorize.
Grok Build reads Claude Code’s plugin configuration. If you already added the doola marketplace in Claude Code, grok plugin marketplace add reports it as already configured and you can go straight to the install.
You can also browse and install from inside the TUI with /marketplace.
Open ChatGPT → Settings → Apps → Browse Apps.
Search for doola and click Connect.
Sign in to (or create) your doola account and complete the OAuth flow.
doola is now connected and ready to use in ChatGPT.
Open your Perplexity Pro workspace → Settings → Connectors.
Search for doola and click + Connect.
Sign in to (or create) your doola account, review the requested permissions, and complete the OAuth flow.
You’re redirected back to Perplexity — doola now appears in your connectors list.
Restart Cursor. doola appears in the MCP panel with a login / authorize prompt — click it, sign in to (or create) your doola account, and complete OAuth. The tools then appear under doola.
Open your Replit workspace → Settings → Integrations → MCP Servers for Replit Agent.
Search for doola and click Sign in.
Sign in to (or create) your doola account and complete the OAuth flow.
Return to Replit Agent — doola is available in conversations.
Open your Lovable project → Connectors → Add Custom Connector.
Select Add MCP Server and enter Namedoola, MCP Server URLhttps://mcp.doola.com, AuthenticationOAuth.
Click Add & Authorize, then sign in to (or create) your doola account and complete the OAuth flow.
Return to your project — doola is available to the Lovable agent.
MCP support is available on supported Lovable Pro and Teams workspaces.
Open v0 → Settings → Integrations → Add MCP.
Select Custom MCP Server and enter Namedoola and MCP Server URLhttps://mcp.doola.com.
Choose OAuth as the authentication method and click Add.
Sign in to (or create) your doola account and complete the OAuth flow.
Start a new conversation — doola is available in v0.
Every POST / requires a bearer token. The example below uses the initialize handshake of 2025-06-18; on 2026-07-28 there is no handshake and no session header, and each request instead carries its own _meta and request-metadata headers (see Authentication).1. Authenticate. A POST / without a token returns 401 with a WWW-Authenticate challenge pointing at the OAuth metadata — that’s what bootstraps discovery. Complete the OAuth flow (authorization code + PKCE, or client credentials) to get a bearer token; MCP clients do this for you. See Authentication.2. Initialize (with the bearer — mints a session ID):
Agents and developers wiring up a custom client can read a compact reference straight off the server:
https://mcp.doola.com/.well-known/agents.md
It covers the connection details, what the server will and won’t do, and the full tool surface. No token needed. The tool section is generated from the server’s live tools/list contract, so it always matches what your client receives at runtime.
The initialize response includes an instructions block telling the agent how to drive the flow. From there the agent calls get_company_onboarding_status, then the formation tools in turn, following the nextAction and nextActionInput on each response. See the end-to-end flow.
Last modified on October 14, 2026
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"doola Developers","description":"Build US company formation and compliance into your product with the doola Partner API, the embedded doola SDK, webhooks and the doola Formation MCP server.","colors":{"primary":"#276EF1","light":"#4F8FF6","dark":"#1E5ED8"},"logo":{"light":"https://mintcdn.com/doola/SFeoF_TYCRlE4Apz/logo/doola_logo_black.svg?fit=max\u0026auto=format\u0026n=SFeoF_TYCRlE4Apz\u0026q=85\u0026s=fdd4abb64b5833608e513ef10fa97314","dark":"https://mintcdn.com/doola/SFeoF_TYCRlE4Apz/logo/doola_logo.svg?fit=max\u0026auto=format\u0026n=SFeoF_TYCRlE4Apz\u0026q=85\u0026s=1ca0b509d4e07ac2f28422c4612aa121"},"favicon":"https://mintcdn.com/doola/YGCgGm1CbPVX-ivx/logo/favicon.ico?fit=max\u0026auto=format\u0026n=YGCgGm1CbPVX-ivx\u0026q=85\u0026s=3df3336ae81325012cdcf6719483eeb5","api":{"examples":{"languages":["curl","javascript","node","python","go","java","php"],"prefill":true}},"appearance":{"default":"dark"},"navbar":{"links":[{"href":"/api/openapi-spec","label":"OpenAPI spec"},{"href":"/api/changelog","label":"Changelog"}],"primary":{"type":"button","label":"Get API access","href":"https://www.doola.com/partner-with-us/"}},"footer":{"socials":{"website":"https://www.doola.com"},"links":[{"header":"Partners","items":[{"label":"Partner Portal","href":"https://partners-portal.doola.com"},{"label":"Get API access","href":"https://www.doola.com/partner-with-us"}]},{"header":"Legal","items":[{"label":"Privacy policy","href":"https://www.doola.com/privacy-policy"},{"label":"Terms of service","href":"https://www.doola.com/terms-of-service"}]}]},"search":{"prompt":"Search the doola API docs"},"seo":{"organization":{"name":"doola","url":"https://www.doola.com"}},"fonts":{"family":"Inter"},"errors":{"404":{"redirect":false,"title":"Page not found","description":"This page moved or never existed. Start from the [introduction](/api/introduction), search the docs, or email [engineering@doola.com](mailto:engineering@doola.com)."}},"contextual":{"options":["copy","view","claude","chatgpt","download-spec",{"title":"Connect the doola MCP server","description":"Form a US LLC from your own AI client","icon":"plug","href":"https://docs.doola.com/mcp/connect"}],"display":"header"},"thumbnails":{"fonts":{"family":"Inter"}},"metadata":{"timestamp":true},"markdown":{"instructions":["Authenticate with the raw API key in the Authorization header. Never add a Bearer prefix.","Use the sandbox base URL https://api.test.doola.com and a dk_test_ key in examples unless the user asks for production.","Send an Idempotency-Key header on POST /v1/partner/customers and POST /v1/partner/companies. No other endpoint takes one.","Every response is wrapped as {payload, error}. Read fields from payload and branch on error.code, never on the message.","Drive formation progress from webhooks plus a reconciliation sweep, never a polling loop.","Embedded SDK (@doola/js): the dk_ key stays on the server and mints customer sessions; the browser gets only a pk_ key and the session. onFormed carries only companyId and can fire more than once. Before charging, read the company with the dk_ key, require formationSubmissionStatus AWAITING_PAYMENT, check the owner's email, and price on the server. Then POST payment-confirmed, which answers 200 with an empty body, and replace the SDK element with a new doola.create() (never append a second one).","The doola Formation MCP server at https://mcp.doola.com is for founders forming their own company with their own doola account. Partners integrate the Partner API or the Embedded SDK. The /mcp endpoint on this docs site only searches these docs.","For a full capability summary with the rules above, read https://docs.doola.com/skill.md."]},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"doola","hasAudioNarration":false,"actualSubdomain":"doola","customDomains":["docs.doola.com"],"gitSource":{"type":"github","owner":"doolahq","repo":"doola-data","deployBranch":"main","contentDirectory":"developer-docs","isPrivate":true,"mountPath":"","label":"","_id":"6adb9fb30954663ebe7b6469"},"chroma":{"liveDeploymentHistoryId":"6ae387b2f660141b8fd57caf","collectionId":"71791143-949f-40c8-aee1-9020fe631861","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae387b2f660141b8fd57caf"},"feedback":{"thumbs":false},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae387b2f660141b8fd57caf","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Partner API","count":51},{"language":"default","tag":"API reference","count":29},{"language":"default","tag":"Embedded SDK","count":18},{"language":"default","tag":"Core concepts","count":16},{"language":"default","tag":"Get started","count":9},{"language":"default","tag":"Reference","count":8},{"language":"default","tag":"MCP Server","count":7},{"language":"default","tag":"Required actions","count":6},{"language":"default","tag":"Annual Report Filing","count":6},{"language":"default","tag":"Company formation","count":4}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","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":"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":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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":"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":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"mcp/connect","slug":"/mcp/connect","pageMetadata":{"title":"Connect a client","description":"Add the doola MCP server to Claude, Claude Code, Grok Build, ChatGPT, Perplexity, Cursor, Replit, Lovable, Vercel v0, or any MCP client.","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: \"Add the doola MCP server to Claude, Claude Code, Grok Build, ChatGPT, Perplexity, Cursor, Replit, Lovable, Vercel v0, or any MCP client.\"\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`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,Tab,Tabs}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`The doola MCP server lives at one URL:`}),`\n`,_jsx(CodeBlock,{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://mcp.doola.com`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`In many clients `,_jsx(_components.strong,{children:`doola`}),` is a searchable app or connector — find it by name. In others, paste the URL above. In Claude Code and Grok Build it installs as a plugin, no URL needed. Either way, complete the OAuth sign-in, then prompt the agent: `,_jsx(_components.strong,{children:`“Create a US LLC for me.”`})]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Every client uses the same OAuth flow: find or add `,_jsx(_components.strong,{children:`doola`}),`, then sign in to your existing doola account (or create one) and authorize. New users sign up during the flow. See `,_jsx(_components.a,{href:`/mcp/authentication`,children:`Authentication`}),` for what happens under the hood.`]})}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Claude`,id:`claude`,children:[_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Open `,_jsx(_components.a,{href:`https://claude.ai`,children:`Claude`}),` → `,_jsx(_components.strong,{children:`Settings`}),` → `,_jsx(_components.strong,{children:`Connectors`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Add custom connector`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Enter `,_jsx(_components.strong,{children:`Name`}),` `,_jsx(_components.code,{children:`doola`}),` and `,_jsx(_components.strong,{children:`MCP Server URL`}),` `,_jsx(_components.code,{children:`https://mcp.doola.com`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Add connector`}),`, then sign in to (or create) your doola account and complete the OAuth flow.`]}),`\n`,_jsx(_components.li,{children:`Start a new conversation — the doola tools are available.`}),`\n`]}),_jsx(Note,{children:`Custom MCP connectors are available on supported Claude plans and workspaces.`})]}),_jsxs(Tab,{title:`Claude Code`,id:`claude-code`,children:[_jsx(_components.p,{children:`doola ships an installable plugin, so there’s no URL to paste.`}),_jsx(CodeBlock,{filename:``,numberOfLines:`2`,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:`2`,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:` plugin`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` marketplace`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` doolahq/plugins`})]}),`\n`,_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:` plugin`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` doola@doola`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`Then run `,_jsx(_components.code,{children:`/reload-plugins`}),`, or restart Claude Code. The plugin’s MCP server is only registered when plugins load, so the doola tools won’t appear in the session you installed from until you do one of the two.`]}),_jsxs(_components.p,{children:[`The first doola tool call then triggers the OAuth flow: sign in to (or create) your doola account and authorize. Run `,_jsx(_components.code,{children:`/mcp`}),` to see the doola server and its connection state.`]}),_jsx(Note,{children:_jsxs(_components.p,{children:[`The same two commands work as slash commands inside the TUI: `,_jsx(_components.code,{children:`/plugin marketplace add doolahq/plugins`}),`, then `,_jsx(_components.code,{children:`/plugin install doola@doola`}),`.`]})}),_jsxs(_components.p,{children:[`To give a whole team the plugin without each person adding the marketplace, commit this to the project’s `,_jsx(_components.code,{children:`.claude/settings.json`}),`:`]}),_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:` \"extraKnownMarketplaces\"`}),_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:` \"doola\"`}),_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:` \"source\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"source\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"github\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"repo\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"doolahq/plugins\"`}),_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.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"enabledPlugins\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"doola@doola\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_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:[`Prefer not to install a plugin? Declare the server in the project’s `,_jsx(_components.code,{children:`.mcp.json`}),` instead, same shape as the Cursor tab, pointing at the URL at the top of this page.`]})]}),_jsxs(Tab,{title:`Grok Build`,id:`grok-build`,children:[_jsx(_components.p,{children:`doola ships as an installable plugin here too.`}),_jsx(CodeBlock,{filename:``,numberOfLines:`2`,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:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`grok`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` plugin`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` marketplace`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` doolahq/plugins`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`grok`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` plugin`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` doola@doola`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --trust`})]}),`\n`]})})}),_jsxs(_components.p,{children:[_jsx(_components.code,{children:`--trust`}),` is required. Grok refuses the install without it, because a plugin can run hooks, MCP servers and skills on your machine.`]}),_jsxs(_components.p,{children:[`Confirm it registered with `,_jsx(_components.code,{children:`grok inspect`}),`, which lists the server under `,_jsx(_components.strong,{children:`MCP Servers`}),` as `,_jsx(_components.code,{children:`doola (http) plugin: doola`}),`. The first doola tool call triggers the OAuth flow: sign in to (or create) your doola account and authorize.`]}),_jsx(Note,{children:_jsxs(_components.p,{children:[`Grok Build reads Claude Code’s plugin configuration. If you already added the doola marketplace in Claude Code, `,_jsx(_components.code,{children:`grok plugin marketplace add`}),` reports it as already configured and you can go straight to the install.`]})}),_jsxs(_components.p,{children:[`You can also browse and install from inside the TUI with `,_jsx(_components.code,{children:`/marketplace`}),`.`]})]}),_jsxs(Tab,{title:`ChatGPT`,id:`chatgpt`,children:[_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Open `,_jsx(_components.strong,{children:`ChatGPT`}),` → `,_jsx(_components.strong,{children:`Settings`}),` → `,_jsx(_components.strong,{children:`Apps`}),` → `,_jsx(_components.strong,{children:`Browse Apps`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Search for `,_jsx(_components.strong,{children:`doola`}),` and click `,_jsx(_components.strong,{children:`Connect`}),`.`]}),`\n`,_jsx(_components.li,{children:`Sign in to (or create) your doola account and complete the OAuth flow.`}),`\n`]}),_jsx(_components.p,{children:`doola is now connected and ready to use in ChatGPT.`})]}),_jsx(Tab,{title:`Perplexity`,id:`perplexity`,children:_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Open your `,_jsx(_components.strong,{children:`Perplexity Pro`}),` workspace → `,_jsx(_components.strong,{children:`Settings`}),` → `,_jsx(_components.strong,{children:`Connectors`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Search for `,_jsx(_components.strong,{children:`doola`}),` and click `,_jsx(_components.strong,{children:`+ Connect`}),`.`]}),`\n`,_jsx(_components.li,{children:`Sign in to (or create) your doola account, review the requested permissions, and complete the OAuth flow.`}),`\n`,_jsxs(_components.li,{children:[`You’re redirected back to Perplexity — `,_jsx(_components.strong,{children:`doola`}),` now appears in your connectors list.`]}),`\n`]})}),_jsxs(Tab,{title:`Cursor`,id:`cursor`,children:[_jsxs(_components.p,{children:[`Add to `,_jsx(_components.code,{children:`~/.cursor/mcp.json`}),`:`]}),_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:` \"doola\"`}),_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://mcp.doola.com\"`})]}),`\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:[`Restart Cursor. doola appears in the MCP panel with a `,_jsx(_components.strong,{children:`login / authorize`}),` prompt — click it, sign in to (or create) your doola account, and complete OAuth. The tools then appear under `,_jsx(_components.strong,{children:`doola`}),`.`]})]}),_jsx(Tab,{title:`Replit`,id:`replit`,children:_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Open your Replit workspace → `,_jsx(_components.strong,{children:`Settings`}),` → `,_jsx(_components.strong,{children:`Integrations`}),` → `,_jsx(_components.strong,{children:`MCP Servers for Replit Agent`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Search for `,_jsx(_components.strong,{children:`doola`}),` and click `,_jsx(_components.strong,{children:`Sign in`}),`.`]}),`\n`,_jsx(_components.li,{children:`Sign in to (or create) your doola account and complete the OAuth flow.`}),`\n`,_jsx(_components.li,{children:`Return to Replit Agent — doola is available in conversations.`}),`\n`]})}),_jsxs(Tab,{title:`Lovable`,id:`lovable`,children:[_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Open your Lovable project → `,_jsx(_components.strong,{children:`Connectors`}),` → `,_jsx(_components.strong,{children:`Add Custom Connector`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Select `,_jsx(_components.strong,{children:`Add MCP Server`}),` and enter `,_jsx(_components.strong,{children:`Name`}),` `,_jsx(_components.code,{children:`doola`}),`, `,_jsx(_components.strong,{children:`MCP Server URL`}),` `,_jsx(_components.code,{children:`https://mcp.doola.com`}),`, `,_jsx(_components.strong,{children:`Authentication`}),` `,_jsx(_components.code,{children:`OAuth`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Add \u0026 Authorize`}),`, then sign in to (or create) your doola account and complete the OAuth flow.`]}),`\n`,_jsx(_components.li,{children:`Return to your project — doola is available to the Lovable agent.`}),`\n`]}),_jsx(Note,{children:`MCP support is available on supported Lovable Pro and Teams workspaces.`})]}),_jsx(Tab,{title:`Vercel v0`,id:`vercel-v0`,children:_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Open `,_jsx(_components.strong,{children:`v0`}),` → `,_jsx(_components.strong,{children:`Settings`}),` → `,_jsx(_components.strong,{children:`Integrations`}),` → `,_jsx(_components.strong,{children:`Add MCP`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Select `,_jsx(_components.strong,{children:`Custom MCP Server`}),` and enter `,_jsx(_components.strong,{children:`Name`}),` `,_jsx(_components.code,{children:`doola`}),` and `,_jsx(_components.strong,{children:`MCP Server URL`}),` `,_jsx(_components.code,{children:`https://mcp.doola.com`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Choose `,_jsx(_components.strong,{children:`OAuth`}),` as the authentication method and click `,_jsx(_components.strong,{children:`Add`}),`.`]}),`\n`,_jsx(_components.li,{children:`Sign in to (or create) your doola account and complete the OAuth flow.`}),`\n`,_jsx(_components.li,{children:`Start a new conversation — doola is available in v0.`}),`\n`]})}),_jsxs(Tab,{title:`curl`,id:`curl`,children:[_jsxs(_components.p,{children:[`Every `,_jsx(_components.code,{children:`POST /`}),` requires a bearer token. The example below uses the `,_jsx(_components.code,{children:`initialize`}),` handshake of `,_jsx(_components.code,{children:`2025-06-18`}),`; on `,_jsx(_components.code,{children:`2026-07-28`}),` there is no handshake and no session header, and each request instead carries its own `,_jsx(_components.code,{children:`_meta`}),` and request-metadata headers (see `,_jsx(_components.a,{href:`/mcp/authentication`,children:`Authentication`}),`).`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`1. Authenticate.`}),` A `,_jsx(_components.code,{children:`POST /`}),` without a token returns `,_jsx(_components.code,{children:`401`}),` with a `,_jsx(_components.code,{children:`WWW-Authenticate`}),` challenge pointing at the OAuth metadata — that’s what bootstraps discovery. Complete the OAuth flow (authorization code + PKCE, or client credentials) to get a bearer token; MCP clients do this for you. See `,_jsx(_components.a,{href:`/mcp/authentication`,children:`Authentication`}),`.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`2. Initialize`}),` (with the bearer — mints a session ID):`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`13`,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:`13`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -i`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://mcp.doola.com/`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer \u003ctoken>\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"jsonrpc\": \"2.0\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"id\": 1,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"method\": \"initialize\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"params\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"protocolVersion\": \"2025-06-18\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"capabilities\": {},`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"clientInfo\": { \"name\": \"my-client\", \"version\": \"0.1\" }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`3. List tools`}),` (echo the session ID + bearer):`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`5`,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:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://mcp.doola.com/`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Mcp-Session-Id: \u003cuuid>\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer \u003ctoken>\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{ \"jsonrpc\": \"2.0\", \"id\": 2, \"method\": \"tools/list\" }'`})]}),`\n`]})})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`4. Call a tool`}),` — start every session with `,_jsx(_components.code,{children:`get_company_onboarding_status`}),`:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`10`,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:`10`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://mcp.doola.com/`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Mcp-Session-Id: \u003cuuid>\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer \u003ctoken>\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"jsonrpc\": \"2.0\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"id\": 3,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"method\": \"tools/call\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"params\": { \"name\": \"get_company_onboarding_status\", \"arguments\": {} }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`point-your-own-agent-at-it`,children:`Point your own agent at it`}),`\n`,_jsx(_components.p,{children:`Agents and developers wiring up a custom client can read a compact reference straight off the server:`}),`\n`,_jsx(CodeBlock,{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://mcp.doola.com/.well-known/agents.md`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`It covers the connection details, what the server will and won’t do, and the full tool surface. No token needed. The tool section is generated from the server’s live `,_jsx(_components.code,{children:`tools/list`}),` contract, so it always matches what your client receives at runtime.`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-the-agent-does-next`,children:`What the agent does next`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`initialize`}),` response includes an `,_jsx(_components.code,{children:`instructions`}),` block telling the agent how to drive the flow. From there the agent calls `,_jsx(_components.code,{children:`get_company_onboarding_status`}),`, then the formation tools in turn, following the `,_jsx(_components.code,{children:`nextAction`}),` and `,_jsx(_components.code,{children:`nextActionInput`}),` on each response. See the `,_jsx(_components.a,{href:`/mcp/flow`,children:`end-to-end flow`}),`.`]})]})}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 a client","description":"Add the doola MCP server to Claude, Claude Code, Grok Build, ChatGPT, Perplexity, Cursor, Replit, Lovable, Vercel v0, or any MCP client.","href":"/mcp/connect"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Point your own agent at it","slug":"point-your-own-agent-at-it","depth":2,"children":[]},{"title":"What the agent does next","slug":"what-the-agent-does-next","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"doola","siteName":"doola Developers","title":"Connect a client - doola Developers","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-14T20:31:09.604Z","gitLastModified":"2026-10-14T20:30:54.000Z","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=\"dark\"}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=\"Add the doola MCP server to Claude, Claude Code, Grok Build, ChatGPT, Perplexity, Cursor, Replit, Lovable, Vercel v0, or any MCP client.\">\u003cmeta data-mint-head name=\"application-name\" content=\"doola Developers\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/doola/CgqtkROOt5ypSrSx/_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/doola/CgqtkROOt5ypSrSx/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/doola/CgqtkROOt5ypSrSx/_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/doola/CgqtkROOt5ypSrSx/_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/doola/CgqtkROOt5ypSrSx/_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/doola/CgqtkROOt5ypSrSx/_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/doola/CgqtkROOt5ypSrSx/_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/doola/CgqtkROOt5ypSrSx/_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/doola/CgqtkROOt5ypSrSx/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Connect a client - doola Developers\">\u003cmeta data-mint-head property=\"og:description\" content=\"Add the doola MCP server to Claude, Claude Code, Grok Build, ChatGPT, Perplexity, Cursor, Replit, Lovable, Vercel v0, or any MCP client.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"doola Developers\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.doola.com/mcp/connect\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://doola.mintlify.app/_mintlify/api/og/v2?division=Get+started\u0026amp;title=Connect+a+client\u0026amp;description=Add+the+doola+MCP+server+to+Claude%2C+Claude+Code%2C+Grok+Build%2C+ChatGPT%2C+Perplexity%2C+Cursor%2C+Replit%2C+Lovable%2C+Vercel+v0%2C+or+any+MCP+client.\u0026amp;theme=d4e17b9ecf13deadca62a6e7\u0026amp;signature=7ad3301473d40113b42f2ee634d83acd5c15e08c0d4e3316ebd9207dab4cb5fd\">\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 a client - doola Developers\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Add the doola MCP server to Claude, Claude Code, Grok Build, ChatGPT, Perplexity, Cursor, Replit, Lovable, Vercel v0, or any MCP client.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://doola.mintlify.app/_mintlify/api/og/v2?division=Get+started\u0026amp;title=Connect+a+client\u0026amp;description=Add+the+doola+MCP+server+to+Claude%2C+Claude+Code%2C+Grok+Build%2C+ChatGPT%2C+Perplexity%2C+Cursor%2C+Replit%2C+Lovable%2C+Vercel+v0%2C+or+any+MCP+client.\u0026amp;theme=d4e17b9ecf13deadca62a6e7\u0026amp;signature=7ad3301473d40113b42f2ee634d83acd5c15e08c0d4e3316ebd9207dab4cb5fd\">\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/doola/CgqtkROOt5ypSrSx/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"doola Developers\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#276EF1\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.doola.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://www.doola.com/#organization\",\"name\":\"doola\",\"url\":\"https://www.doola.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/doola/SFeoF_TYCRlE4Apz/logo/doola_logo_black.svg?fit=max\u0026auto=format\u0026n=SFeoF_TYCRlE4Apz\u0026q=85\u0026s=fdd4abb64b5833608e513ef10fa97314\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.doola.com#website\",\"name\":\"doola Developers\",\"url\":\"https://docs.doola.com\",\"publisher\":{\"@id\":\"https://www.doola.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.doola.com/mcp/connect#webpage\",\"url\":\"https://docs.doola.com/mcp/connect\",\"name\":\"Connect a client\",\"description\":\"Add the doola MCP server to Claude, Claude Code, Grok Build, ChatGPT, Perplexity, Cursor, Replit, Lovable, Vercel v0, or any MCP client.\",\"dateModified\":\"2026-10-14T20:30:54.000Z\",\"isPartOf\":{\"@id\":\"https://docs.doola.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.doola.com/mcp/connect#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.doola.com/mcp/connect#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Get started\",\"item\":\"https://docs.doola.com/mcp/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Connect a client\",\"item\":\"https://docs.doola.com/mcp/connect\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.doola.com/mcp/connect#article\",\"headline\":\"Connect a client\",\"name\":\"Connect a client\",\"description\":\"Add the doola MCP server to Claude, Claude Code, Grok Build, ChatGPT, Perplexity, Cursor, Replit, Lovable, Vercel v0, or any MCP client.\",\"url\":\"https://docs.doola.com/mcp/connect\",\"mainEntityOfPage\":{\"@id\":\"https://docs.doola.com/mcp/connect#webpage\"},\"dateModified\":\"2026-10-14T20:30:54.000Z\",\"publisher\":{\"@id\":\"https://www.doola.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.doola.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"doola Developers\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"doola Developers","nav":{"global":null,"dropdowns":[{"dropdown":"Partner API","icon":"plug","groups":[{"group":"Get started","pages":[{"title":"doola Partner API","href":"/api/introduction"},{"title":"Authentication","href":"/api/authentication"}]},{"group":"Core concepts","pages":[{"group":"Company formation","expanded":true,"pages":[{"title":"Company formation","href":"/api/formation"},{"title":"SS-4 and Form 8821 signing","href":"/api/non-us-formation"},{"title":"Expedited EIN","href":"/api/expedited-ein"},{"title":"Choosing an industry","href":"/api/naics-industry"}]},{"title":"Company services","href":"/api/company-services"},{"title":"Compliance Calendar","href":"/api/compliance/calendar"},{"title":"Annual Report Filing","href":"/api/compliance/annual-report-filing"},{"title":"Webhooks","href":"/api/webhooks"},{"group":"Required actions","pages":[{"title":"Required actions","href":"/api/required-actions"},{"title":"New company names needed","href":"/api/required-actions/name-options"},{"title":"SS-4 signature needed again","href":"/api/required-actions/ss4-reset"},{"title":"Form 8821 signature needed","href":"/api/required-actions/form8821-required"},{"title":"Founder address needed","href":"/api/required-actions/founder-address"},{"title":"Annual report correction","href":"/api/required-actions/annual-report-correction"}]},{"title":"Sandbox playground","href":"/api/sandbox-playground"},{"title":"Errors","href":"/api/errors"}]},{"group":"Reference","pages":[{"title":"Domain objects","href":"/api/domain-objects"},{"title":"OpenAPI specification","href":"/api/openapi-spec"}]},{"group":"API reference","pages":[{"group":"Playground (sandbox only)","pages":[{"title":"Complete Formation (sandbox)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/partner/playground/companies/{companyId}/formation/complete","href":"/api/api-reference/playground-sandbox-only/complete-formation-sandbox"},{"title":"Complete EIN creation (sandbox)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/partner/playground/companies/{companyId}/eincreation/complete","href":"/api/api-reference/playground-sandbox-only/complete-ein-creation-sandbox"}]},{"group":"Customers","pages":[{"title":"List customers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/partner/customers","href":"/api/api-reference/customers/list-customers"},{"title":"Create a customer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/partner/customers","href":"/api/api-reference/customers/create-a-customer"},{"title":"Get a customer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/partner/customers/{customerId}","href":"/api/api-reference/customers/get-a-customer"}]},{"group":"Customer sessions","pages":[{"title":"Create a customer session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/partner/customer-sessions","href":"/api/api-reference/customer-sessions/create-a-customer-session"}]},{"group":"Companies","pages":[{"title":"List companies","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/partner/companies","href":"/api/api-reference/companies/list-companies"},{"title":"Create a company","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/partner/companies","href":"/api/api-reference/companies/create-a-company"},{"title":"Confirm payment for a draft formation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/partner/companies/{companyId}/payment-confirmed","href":"/api/api-reference/companies/confirm-payment-for-a-draft-formation"},{"title":"Get a company","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/partner/companies/{companyId}","href":"/api/api-reference/companies/get-a-company"}]},{"group":"Signatures","pages":[{"title":"Create a signature session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/partner/companies/{companyId}/signatures","href":"/api/api-reference/signatures/create-a-signature-session"}]},{"group":"Required Actions","pages":[{"title":"Resolve a required action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/partner/companies/{companyId}/required-actions/{requiredActionId}/resolution","href":"/api/api-reference/required-actions/resolve-a-required-action"},{"title":"List open required actions across your companies","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/partner/required-actions","href":"/api/api-reference/required-actions/list-open-required-actions-across-your-companies"},{"title":"List a company's required actions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/partner/companies/{companyId}/required-actions","href":"/api/api-reference/required-actions/list-a-companys-required-actions"},{"title":"Retrieve a required action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/partner/companies/{companyId}/required-actions/{requiredActionId}","href":"/api/api-reference/required-actions/retrieve-a-required-action"}]},{"group":"Annual Report Filing","pages":[{"title":"List a company's annual reports","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/partner/companies/{companyId}/compliance/annual-reports","href":"/api/api-reference/annual-report-filing/list-a-companys-annual-reports"},{"title":"Submit a company's annual report","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/partner/companies/{companyId}/compliance/annual-reports","href":"/api/api-reference/annual-report-filing/submit-a-companys-annual-report"},{"title":"Confirm an annual report and hand it to doola to file","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/partner/companies/{companyId}/compliance/annual-reports/{annualReportId}/confirm","href":"/api/api-reference/annual-report-filing/confirm-an-annual-report-and-hand-it-to-doola-to-file"},{"title":"Get one annual report","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/partner/companies/{companyId}/compliance/annual-reports/{annualReportId}","href":"/api/api-reference/annual-report-filing/get-one-annual-report"},{"title":"Get the state fee for a company's annual report","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/partner/companies/{companyId}/compliance/annual-reports/state-fees","href":"/api/api-reference/annual-report-filing/get-the-state-fee-for-a-companys-annual-report"},{"title":"Get the annual report requirements for a company","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/partner/companies/{companyId}/compliance/annual-reports/requirements","href":"/api/api-reference/annual-report-filing/get-the-annual-report-requirements-for-a-company"}]},{"group":"SDK","pages":[{"title":"Get your publishable key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/partner/sdk/keys","href":"/api/api-reference/sdk/get-your-publishable-key"}]},{"group":"Reference data","pages":[{"title":"List states","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/partner/references/states","href":"/api/api-reference/reference-data/list-states"},{"title":"List state filing fees","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/partner/references/state-fees","href":"/api/api-reference/reference-data/list-state-filing-fees"},{"title":"List NAICS codes","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/partner/references/naics-codes","href":"/api/api-reference/reference-data/list-naics-codes"},{"title":"List countries","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/partner/references/countries","href":"/api/api-reference/reference-data/list-countries"}]},{"group":"Documents","pages":[{"title":"List company documents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/partner/companies/{doolaCompanyId}/documents","href":"/api/api-reference/documents/list-company-documents"},{"title":"Get a document download URL","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/partner/companies/{doolaCompanyId}/documents/{documentId}","href":"/api/api-reference/documents/get-a-document-download-url"}]},{"group":"Compliance","pages":[{"title":"Get a company's compliance calendar","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/partner/companies/{companyId}/compliance/calendar","href":"/api/api-reference/compliance/get-a-companys-compliance-calendar"}]}]},{"group":"Help","pages":[{"title":"FAQ","href":"/api/faq"}]},{"group":"Updates","pages":[{"title":"Changelog","href":"/api/changelog"}]}]},{"dropdown":"Embedded SDK","icon":"window-maximize","groups":[{"group":"Get started","pages":[{"title":"doola Embedded SDK","sidebarTitle":"Overview","href":"/sdk/overview"},{"title":"Quickstart","href":"/sdk/quickstart"},{"title":"How it works","href":"/sdk/how-it-works"},{"title":"Customer experience","href":"/sdk/customer-experience"}]},{"group":"Integrate","pages":[{"title":"Create sessions","href":"/sdk/sessions"},{"title":"Embed the SDK","href":"/sdk/embed"},{"title":"Take payment","href":"/sdk/payments"},{"title":"After payment","href":"/sdk/after-payment"}]},{"group":"Customize","pages":[{"title":"Branding","href":"/sdk/branding"},{"title":"Presentation and mobile","href":"/sdk/presentation"}]},{"group":"Test and launch","pages":[{"title":"Testing","href":"/sdk/testing"},{"title":"Go-live checklist","href":"/sdk/go-live"}]},{"group":"Reference","pages":[{"title":"Client reference","href":"/sdk/reference/client"},{"title":"Server reference","href":"/sdk/reference/server"},{"title":"Errors","href":"/sdk/reference/errors"},{"title":"Security and data","href":"/sdk/security"}]},{"group":"Help","pages":[{"title":"FAQ","href":"/sdk/faq"},{"title":"Changelog","href":"/sdk/changelog"}]}]},{"dropdown":"MCP Server","icon":"robot","groups":[{"group":"Get started","pages":[{"title":"doola Formation MCP Server","description":"Let AI agents form a US LLC or C-Corp end to end through doola, over the Model Context Protocol.","href":"/mcp/introduction"},{"title":"Connect a client","href":"/mcp/connect"},{"title":"Authentication","description":"OAuth 2.0 Bearer auth, discovery endpoints, and the MCP session lifecycle.","href":"/mcp/authentication"}]},{"group":"Tools","pages":[{"title":"Tools reference","href":"/mcp/tools"},{"title":"End-to-end flow","href":"/mcp/flow"}]},{"group":"Reference","pages":[{"title":"Errors","href":"/mcp/errors"},{"title":"Limitations","href":"/mcp/limitations"}]}]}]},"basePath":"","title":"Connect a client - doola Developers","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":[],"chunks":[]}