[{"data":1,"prerenderedAt":2150},["ShallowReactive",2],{"docs-navigation:en":3,"content-page:docs:jiKZeLa3tFSRPB4zdA7yUy_NXP0PmccmtM7yH3kKh8g":651,"content-page-surround:docs:jiKZeLa3tFSRPB4zdA7yUy_NXP0PmccmtM7yH3kKh8g":2136,"i-lucide:terminal":2141,"i-logos:typescript-icon":2145,"i-lucide:clipboard":2148},[4,41,110,418,485,550,601,646],{"title":5,"page":6,"canonicalKey":7,"locale":8,"id":9,"draft":6,"icon":10,"sidebar":11,"children":12},"Learn",false,"1","en","content:docs:1.overview:.navigation.yml","i-lucide-book-open","section",[13,20,27,34],{"title":14,"id":15,"canonicalKey":16,"locale":8,"draft":6,"navigation":17,"icon":18,"path":19},"Better Convex Nuxt","content:docs:1.overview:1.introduction.md","1\u002F1",{"icon":18},"i-lucide-orbit","\u002Fdocs\u002Foverview\u002Fintroduction",{"title":21,"id":22,"canonicalKey":23,"locale":8,"draft":6,"navigation":24,"icon":25,"path":26},"Who it is for","content:docs:1.overview:2.who-it-is-for.md","1\u002F2",{"icon":25},"i-lucide-users","\u002Fdocs\u002Foverview\u002Fwho-it-is-for",{"title":28,"id":29,"canonicalKey":30,"locale":8,"draft":6,"navigation":31,"icon":32,"path":33},"Limitations and trade-offs","content:docs:1.overview:3.limitations.md","1\u002F3",{"icon":32},"i-lucide-triangle-alert","\u002Fdocs\u002Foverview\u002Flimitations",{"title":35,"id":36,"canonicalKey":37,"locale":8,"draft":6,"navigation":38,"icon":39,"path":40},"Compare Nuxt integrations","content:docs:1.overview:4.comparison.md","1\u002F4",{"icon":39},"i-lucide-scale","\u002Fdocs\u002Foverview\u002Fcomparison",{"title":42,"page":6,"canonicalKey":43,"locale":8,"id":44,"draft":6,"icon":45,"children":46},"Get started","2","content:docs:2.get-started:.navigation.yml","i-lucide-rocket",[47,54,61,68,75,82,89,96,103],{"title":48,"id":49,"canonicalKey":50,"locale":8,"draft":6,"navigation":51,"icon":52,"path":53},"Choose your path","content:docs:2.get-started:1.choose-your-path.md","2\u002F1",{"icon":52},"i-lucide-signpost","\u002Fdocs\u002Fget-started\u002Fchoose-your-path",{"title":55,"id":56,"canonicalKey":57,"locale":8,"draft":6,"navigation":58,"icon":59,"path":60},"Installation","content:docs:2.get-started:2.installation.md","2\u002F2",{"icon":59},"i-lucide-download","\u002Fdocs\u002Fget-started\u002Finstallation",{"title":62,"id":63,"canonicalKey":64,"locale":8,"draft":6,"navigation":65,"icon":66,"path":67},"First real-time page","content:docs:2.get-started:3.first-realtime-page.md","2\u002F3",{"icon":66},"i-lucide-radio","\u002Fdocs\u002Fget-started\u002Ffirst-realtime-page",{"title":69,"id":70,"canonicalKey":71,"locale":8,"draft":6,"navigation":72,"icon":73,"path":74},"Add a mutation","content:docs:2.get-started:4.add-a-mutation.md","2\u002F4",{"icon":73},"i-lucide-square-pen","\u002Fdocs\u002Fget-started\u002Fadd-a-mutation",{"title":76,"id":77,"canonicalKey":78,"locale":8,"draft":6,"navigation":79,"icon":80,"path":81},"Add authentication","content:docs:2.get-started:5.add-authentication.md","2\u002F5",{"icon":80},"i-lucide-log-in","\u002Fdocs\u002Fget-started\u002Fadd-authentication",{"title":83,"id":84,"canonicalKey":85,"locale":8,"draft":6,"navigation":86,"icon":87,"path":88},"Protect data","content:docs:2.get-started:6.protect-data.md","2\u002F6",{"icon":87},"i-lucide-shield-check","\u002Fdocs\u002Fget-started\u002Fprotect-data",{"title":90,"id":91,"canonicalKey":92,"locale":8,"draft":6,"navigation":93,"icon":94,"path":95},"Project structure","content:docs:2.get-started:7.project-structure.md","2\u002F7",{"icon":94},"i-lucide-folder-tree","\u002Fdocs\u002Fget-started\u002Fproject-structure",{"title":97,"id":98,"canonicalKey":99,"locale":8,"draft":6,"navigation":100,"icon":101,"path":102},"Next steps","content:docs:2.get-started:8.next-steps.md","2\u002F8",{"icon":101},"i-lucide-arrow-right","\u002Fdocs\u002Fget-started\u002Fnext-steps",{"title":104,"id":105,"canonicalKey":106,"locale":8,"draft":6,"navigation":107,"icon":108,"path":109},"Plain Vue and Vite","content:docs:2.get-started:9.plain-vue.md","2\u002F9",{"icon":108},"i-lucide-panels-top-left","\u002Fdocs\u002Fget-started\u002Fplain-vue",{"title":111,"page":6,"canonicalKey":112,"locale":8,"id":113,"draft":6,"icon":114,"sidebar":11,"children":115},"Build","3","content:docs:3.build:.navigation.yml","i-lucide-blocks",[116,154,199,292,324,349,388],{"title":117,"page":6,"canonicalKey":118,"locale":8,"children":119},"Queries","3\u002F1",[120,126,133,140,147],{"title":117,"id":121,"canonicalKey":122,"locale":8,"draft":6,"navigation":123,"icon":124,"path":125},"content:docs:3.build:1.queries:1.queries.md","3\u002F1\u002F1",{"icon":124},"i-lucide-database","\u002Fdocs\u002Fbuild\u002Fqueries\u002Fqueries",{"title":127,"id":128,"canonicalKey":129,"locale":8,"draft":6,"navigation":130,"icon":131,"path":132},"Reactive arguments","content:docs:3.build:1.queries:2.reactive-arguments.md","3\u002F1\u002F2",{"icon":131},"i-lucide-sliders-horizontal","\u002Fdocs\u002Fbuild\u002Fqueries\u002Freactive-arguments",{"title":134,"id":135,"canonicalKey":136,"locale":8,"draft":6,"navigation":137,"icon":138,"path":139},"Loading and stale data","content:docs:3.build:1.queries:3.loading-and-stale-data.md","3\u002F1\u002F3",{"icon":138},"i-lucide-loader-circle","\u002Fdocs\u002Fbuild\u002Fqueries\u002Floading-and-stale-data",{"title":141,"id":142,"canonicalKey":143,"locale":8,"draft":6,"navigation":144,"icon":145,"path":146},"Query execution options","content:docs:3.build:1.queries:4.ssr-options.md","3\u002F1\u002F4",{"icon":145},"i-lucide-server-cog","\u002Fdocs\u002Fbuild\u002Fqueries\u002Fssr-options",{"title":148,"id":149,"canonicalKey":150,"locale":8,"draft":6,"navigation":151,"icon":152,"path":153},"Pagination","content:docs:3.build:1.queries:6.pagination.md","3\u002F1\u002F6",{"icon":152},"i-lucide-list-plus","\u002Fdocs\u002Fbuild\u002Fqueries\u002Fpagination",{"title":155,"page":6,"canonicalKey":156,"locale":8,"children":157},"Write Data","3\u002F2",[158,164,171,178,185,192],{"title":159,"id":160,"canonicalKey":161,"locale":8,"draft":6,"navigation":162,"icon":73,"path":163},"Mutations","content:docs:3.build:2.write-data:1.mutations.md","3\u002F2\u002F1",{"icon":73},"\u002Fdocs\u002Fbuild\u002Fwrite-data\u002Fmutations",{"title":165,"id":166,"canonicalKey":167,"locale":8,"draft":6,"navigation":168,"icon":169,"path":170},"Actions","content:docs:3.build:2.write-data:2.actions.md","3\u002F2\u002F2",{"icon":169},"i-lucide-zap","\u002Fdocs\u002Fbuild\u002Fwrite-data\u002Factions",{"title":172,"id":173,"canonicalKey":174,"locale":8,"draft":6,"navigation":175,"icon":176,"path":177},"Optimistic updates","content:docs:3.build:2.write-data:3.optimistic-updates.md","3\u002F2\u002F3",{"icon":176},"i-lucide-gauge","\u002Fdocs\u002Fbuild\u002Fwrite-data\u002Foptimistic-updates",{"title":179,"id":180,"canonicalKey":181,"locale":8,"draft":6,"navigation":182,"icon":183,"path":184},"Concurrent operations","content:docs:3.build:2.write-data:4.concurrent-operations.md","3\u002F2\u002F4",{"icon":183},"i-lucide-git-fork","\u002Fdocs\u002Fbuild\u002Fwrite-data\u002Fconcurrent-operations",{"title":186,"id":187,"canonicalKey":188,"locale":8,"draft":6,"navigation":189,"icon":190,"path":191},"Form submissions","content:docs:3.build:2.write-data:5.forms.md","3\u002F2\u002F5",{"icon":190},"i-lucide-list-checks","\u002Fdocs\u002Fbuild\u002Fwrite-data\u002Fforms",{"title":193,"id":194,"canonicalKey":195,"locale":8,"draft":6,"navigation":196,"icon":197,"path":198},"Multi-step operations","content:docs:3.build:2.write-data:6.multi-step-operations.md","3\u002F2\u002F6",{"icon":197},"i-lucide-list-ordered","\u002Fdocs\u002Fbuild\u002Fwrite-data\u002Fmulti-step-operations",{"title":200,"page":6,"canonicalKey":201,"locale":8,"children":202},"Authentication","3\u002F3",[203,209,216,223,229,236,243,250,257,264,271,278,285],{"title":200,"id":204,"canonicalKey":205,"locale":8,"draft":6,"navigation":206,"icon":207,"path":208},"content:docs:3.build:3.authentication:1.overview.md","3\u002F3\u002F1",{"icon":207},"i-lucide-shield","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Foverview",{"title":210,"id":211,"canonicalKey":212,"locale":8,"draft":6,"navigation":213,"icon":214,"path":215},"Better Auth setup","content:docs:3.build:3.authentication:2.better-auth-setup.md","3\u002F3\u002F2",{"icon":214},"i-lucide-settings-2","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fbetter-auth-setup",{"title":217,"id":218,"canonicalKey":219,"locale":8,"draft":6,"navigation":220,"icon":221,"path":222},"Auth state and user data","content:docs:3.build:3.authentication:3.auth-state-and-user.md","3\u002F3\u002F3",{"icon":221},"i-lucide-user-round","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fauth-state-and-user",{"title":224,"id":225,"canonicalKey":226,"locale":8,"draft":6,"navigation":227,"icon":80,"path":228},"Sign in and sign out","content:docs:3.build:3.authentication:4.sign-in-and-sign-out.md","3\u002F3\u002F4",{"icon":80},"\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fsign-in-and-sign-out",{"title":230,"id":231,"canonicalKey":232,"locale":8,"draft":6,"navigation":233,"icon":234,"path":235},"Route protection","content:docs:3.build:3.authentication:5.route-protection.md","3\u002F3\u002F5",{"icon":234},"i-lucide-route","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Froute-protection",{"title":237,"id":238,"canonicalKey":239,"locale":8,"draft":6,"navigation":240,"icon":241,"path":242},"Backend authorization","content:docs:3.build:3.authentication:6.backend-authorization.md","3\u002F3\u002F6",{"icon":241},"i-lucide-lock-keyhole","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fbackend-authorization",{"title":244,"id":245,"canonicalKey":246,"locale":8,"draft":6,"navigation":247,"icon":248,"path":249},"Better Auth plugins","content:docs:3.build:3.authentication:7.better-auth-plugins.md","3\u002F3\u002F7",{"icon":248},"i-lucide-plug","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fbetter-auth-plugins",{"title":251,"id":252,"canonicalKey":253,"locale":8,"draft":6,"navigation":254,"icon":255,"path":256},"Custom user fields","content:docs:3.build:3.authentication:8.custom-user-fields.md","3\u002F3\u002F8",{"icon":255},"i-lucide-user-cog","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fcustom-user-fields",{"title":258,"id":259,"canonicalKey":260,"locale":8,"draft":6,"navigation":261,"icon":262,"path":263},"User synchronization","content:docs:3.build:3.authentication:9.user-synchronization.md","3\u002F3\u002F9",{"icon":262},"i-lucide-refresh-ccw","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fuser-synchronization",{"title":265,"id":266,"canonicalKey":267,"locale":8,"draft":6,"navigation":268,"icon":269,"path":270},"Delegated OAuth and MCP","content:docs:3.build:3.authentication:10.delegated-oauth-and-mcp.md","3\u002F3\u002F10",{"icon":269},"i-lucide-bot","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fdelegated-oauth-and-mcp",{"title":272,"id":273,"canonicalKey":274,"locale":8,"draft":6,"navigation":275,"icon":276,"path":277},"Transactional auth email","content:docs:3.build:3.authentication:11.transactional-email.md","3\u002F3\u002F11",{"icon":276},"i-lucide-mail","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Ftransactional-email",{"title":279,"id":280,"canonicalKey":281,"locale":8,"draft":6,"navigation":282,"icon":283,"path":284},"Social sign-in","content:docs:3.build:3.authentication:12.social-sign-in.md","3\u002F3\u002F12",{"icon":283},"i-lucide-github","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fsocial-sign-in",{"title":286,"id":287,"canonicalKey":288,"locale":8,"draft":6,"navigation":289,"icon":290,"path":291},"Better Auth plugin support","content:docs:3.build:3.authentication:13.better-auth-plugin-support.md","3\u002F3\u002F13",{"icon":290},"i-lucide-puzzle","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fbetter-auth-plugin-support",{"title":293,"page":6,"canonicalKey":294,"locale":8,"children":295},"Server","3\u002F4",[296,303,310,317],{"title":297,"id":298,"canonicalKey":299,"locale":8,"draft":6,"navigation":300,"icon":301,"path":302},"serverConvex","content:docs:3.build:4.server:1.server-convex.md","3\u002F4\u002F1",{"icon":301},"i-lucide-server","\u002Fdocs\u002Fbuild\u002Fserver\u002Fserver-convex",{"title":304,"id":305,"canonicalKey":306,"locale":8,"draft":6,"navigation":307,"icon":308,"path":309},"Server routes","content:docs:3.build:4.server:2.server-routes.md","3\u002F4\u002F2",{"icon":308},"i-lucide-waypoints","\u002Fdocs\u002Fbuild\u002Fserver\u002Fserver-routes",{"title":311,"id":312,"canonicalKey":313,"locale":8,"draft":6,"navigation":314,"icon":315,"path":316},"Webhooks and jobs","content:docs:3.build:4.server:3.webhooks-and-jobs.md","3\u002F4\u002F3",{"icon":315},"i-lucide-webhook","\u002Fdocs\u002Fbuild\u002Fserver\u002Fwebhooks-and-jobs",{"title":318,"id":319,"canonicalKey":320,"locale":8,"draft":6,"navigation":321,"icon":322,"path":323},"Credentials and server security","content:docs:3.build:4.server:4.credentials-and-security.md","3\u002F4\u002F4",{"icon":322},"i-lucide-key-round","\u002Fdocs\u002Fbuild\u002Fserver\u002Fcredentials-and-security",{"title":325,"page":6,"canonicalKey":326,"locale":8,"children":327},"Files","3\u002F5",[328,335,342],{"title":329,"id":330,"canonicalKey":331,"locale":8,"draft":6,"navigation":332,"icon":333,"path":334},"Upload files","content:docs:3.build:5.files:1.upload-files.md","3\u002F5\u002F1",{"icon":333},"i-lucide-upload","\u002Fdocs\u002Fbuild\u002Ffiles\u002Fupload-files",{"title":336,"id":337,"canonicalKey":338,"locale":8,"draft":6,"navigation":339,"icon":340,"path":341},"Storage URLs","content:docs:3.build:5.files:3.storage-urls.md","3\u002F5\u002F3",{"icon":340},"i-lucide-link","\u002Fdocs\u002Fbuild\u002Ffiles\u002Fstorage-urls",{"title":343,"id":344,"canonicalKey":345,"locale":8,"draft":6,"navigation":346,"icon":347,"path":348},"File validation and deletion","content:docs:3.build:5.files:4.validation-and-deletion.md","3\u002F5\u002F4",{"icon":347},"i-lucide-file-x","\u002Fdocs\u002Fbuild\u002Ffiles\u002Fvalidation-and-deletion",{"title":350,"page":6,"canonicalKey":351,"locale":8,"children":352},"Application Behavior","3\u002F6",[353,360,367,374,381],{"title":354,"id":355,"canonicalKey":356,"locale":8,"draft":6,"navigation":357,"icon":358,"path":359},"Connection state","content:docs:3.build:6.application-behavior:1.connection-state.md","3\u002F6\u002F1",{"icon":358},"i-lucide-wifi","\u002Fdocs\u002Fbuild\u002Fapplication-behavior\u002Fconnection-state",{"title":361,"id":362,"canonicalKey":363,"locale":8,"draft":6,"navigation":364,"icon":365,"path":366},"Error handling","content:docs:3.build:6.application-behavior:2.error-handling.md","3\u002F6\u002F2",{"icon":365},"i-lucide-circle-alert","\u002Fdocs\u002Fbuild\u002Fapplication-behavior\u002Ferror-handling",{"title":368,"id":369,"canonicalKey":370,"locale":8,"draft":6,"navigation":371,"icon":372,"path":373},"Logging","content:docs:3.build:6.application-behavior:3.logging.md","3\u002F6\u002F3",{"icon":372},"i-lucide-scroll-text","\u002Fdocs\u002Fbuild\u002Fapplication-behavior\u002Flogging",{"title":375,"id":376,"canonicalKey":377,"locale":8,"draft":6,"navigation":378,"icon":379,"path":380},"DevTools","content:docs:3.build:6.application-behavior:4.devtools.md","3\u002F6\u002F4",{"icon":379},"i-lucide-wrench","\u002Fdocs\u002Fbuild\u002Fapplication-behavior\u002Fdevtools",{"title":382,"id":383,"canonicalKey":384,"locale":8,"draft":6,"navigation":385,"icon":386,"path":387},"Performance","content:docs:3.build:6.application-behavior:5.performance.md","3\u002F6\u002F5",{"icon":386},"i-lucide-chart-no-axes-combined","\u002Fdocs\u002Fbuild\u002Fapplication-behavior\u002Fperformance",{"title":389,"page":6,"canonicalKey":390,"locale":8,"id":391,"draft":6,"icon":269,"children":392},"Agents and MCP","3\u002F7","content:docs:3.build:7.agents:.navigation.yml",[393,400,406,412],{"title":394,"id":395,"canonicalKey":396,"locale":8,"draft":6,"navigation":397,"icon":398,"path":399},"MCP on Convex","content:docs:3.build:7.agents:1.mcp.md","3\u002F7\u002F1",{"icon":398},"i-lucide-plug-zap","\u002Fdocs\u002Fbuild\u002Fagents\u002Fmcp",{"title":401,"id":402,"canonicalKey":403,"locale":8,"draft":6,"navigation":404,"icon":248,"path":405},"Add MCP to your application","content:docs:3.build:7.agents:2.mcp-application.md","3\u002F7\u002F2",{"icon":248},"\u002Fdocs\u002Fbuild\u002Fagents\u002Fmcp-application",{"title":407,"id":408,"canonicalKey":409,"locale":8,"draft":6,"navigation":410,"icon":340,"path":411},"Connect ChatGPT and Claude","content:docs:3.build:7.agents:3.connect-chatgpt-and-claude.md","3\u002F7\u002F3",{"icon":340},"\u002Fdocs\u002Fbuild\u002Fagents\u002Fconnect-chatgpt-and-claude",{"title":413,"id":414,"canonicalKey":415,"locale":8,"draft":6,"navigation":416,"icon":108,"path":417},"MCP Apps","content:docs:3.build:7.agents:4.mcp-apps.md","3\u002F7\u002F4",{"icon":108},"\u002Fdocs\u002Fbuild\u002Fagents\u002Fmcp-apps",{"title":419,"page":6,"canonicalKey":420,"locale":8,"id":421,"draft":6,"icon":422,"children":423},"Recipes","4","content:docs:4.recipes:.navigation.yml","i-lucide-cooking-pot",[424,431,438,445,452,459,466,472,478],{"title":425,"id":426,"canonicalKey":427,"locale":8,"draft":6,"navigation":428,"icon":429,"path":430},"Protected dashboard","content:docs:4.recipes:1.protected-dashboard.md","4\u002F1",{"icon":429},"i-lucide-layout-dashboard","\u002Fdocs\u002Frecipes\u002Fprotected-dashboard",{"title":432,"id":433,"canonicalKey":434,"locale":8,"draft":6,"navigation":435,"icon":436,"path":437},"Real-time feed","content:docs:4.recipes:2.realtime-feed.md","4\u002F2",{"icon":436},"i-lucide-messages-square","\u002Fdocs\u002Frecipes\u002Frealtime-feed",{"title":439,"id":440,"canonicalKey":441,"locale":8,"draft":6,"navigation":442,"icon":443,"path":444},"Optimistic todo list","content:docs:4.recipes:3.optimistic-todo-list.md","4\u002F3",{"icon":443},"i-lucide-list-todo","\u002Fdocs\u002Frecipes\u002Foptimistic-todo-list",{"title":446,"id":447,"canonicalKey":448,"locale":8,"draft":6,"navigation":449,"icon":450,"path":451},"Infinite scroll","content:docs:4.recipes:4.infinite-scroll.md","4\u002F4",{"icon":450},"i-lucide-mouse","\u002Fdocs\u002Frecipes\u002Finfinite-scroll",{"title":453,"id":454,"canonicalKey":455,"locale":8,"draft":6,"navigation":456,"icon":457,"path":458},"File upload form","content:docs:4.recipes:5.file-upload-form.md","4\u002F5",{"icon":457},"i-lucide-file-up","\u002Fdocs\u002Frecipes\u002Ffile-upload-form",{"title":460,"id":461,"canonicalKey":462,"locale":8,"draft":6,"navigation":463,"icon":464,"path":465},"Organization permissions","content:docs:4.recipes:6.organization-permissions.md","4\u002F6",{"icon":464},"i-lucide-building-2","\u002Fdocs\u002Frecipes\u002Forganization-permissions",{"title":467,"id":468,"canonicalKey":469,"locale":8,"draft":6,"navigation":470,"icon":301,"path":471},"Authenticated server route","content:docs:4.recipes:7.authenticated-server-route.md","4\u002F7",{"icon":301},"\u002Fdocs\u002Frecipes\u002Fauthenticated-server-route",{"title":473,"id":474,"canonicalKey":475,"locale":8,"draft":6,"navigation":476,"icon":108,"path":477},"Public and private data","content:docs:4.recipes:8.public-and-private-data.md","4\u002F8",{"icon":108},"\u002Fdocs\u002Frecipes\u002Fpublic-and-private-data",{"title":479,"id":480,"canonicalKey":481,"locale":8,"draft":6,"navigation":482,"icon":483,"path":484},"Test signed-in screens","content:docs:4.recipes:9.component-testing.md","4\u002F9",{"icon":483},"i-lucide-flask-conical","\u002Fdocs\u002Frecipes\u002Fcomponent-testing",{"title":486,"page":6,"canonicalKey":487,"locale":8,"id":488,"draft":6,"icon":489,"children":490},"Concepts","5","content:docs:5.concepts:.navigation.yml","i-lucide-brain",[491,497,503,510,516,523,529,536,543],{"title":492,"id":493,"canonicalKey":494,"locale":8,"draft":6,"navigation":495,"icon":489,"path":496},"Mental model","content:docs:5.concepts:1.mental-model.md","5\u002F1",{"icon":489},"\u002Fdocs\u002Fconcepts\u002Fmental-model",{"title":498,"id":499,"canonicalKey":500,"locale":8,"draft":6,"navigation":501,"icon":234,"path":502},"Request lifecycle","content:docs:5.concepts:2.request-lifecycle.md","5\u002F2",{"icon":234},"\u002Fdocs\u002Fconcepts\u002Frequest-lifecycle",{"title":504,"id":505,"canonicalKey":506,"locale":8,"draft":6,"navigation":507,"icon":508,"path":509},"SSR, hydration, and real-time","content:docs:5.concepts:3.ssr-hydration-realtime.md","5\u002F3",{"icon":508},"i-lucide-refresh-cw","\u002Fdocs\u002Fconcepts\u002Fssr-hydration-realtime",{"title":511,"id":512,"canonicalKey":513,"locale":8,"draft":6,"navigation":514,"icon":124,"path":515},"Query ownership and caching","content:docs:5.concepts:4.query-ownership-and-caching.md","5\u002F4",{"icon":124},"\u002Fdocs\u002Fconcepts\u002Fquery-ownership-and-caching",{"title":517,"id":518,"canonicalKey":519,"locale":8,"draft":6,"navigation":520,"icon":521,"path":522},"Authentication and identity","content:docs:5.concepts:5.authentication-and-identity.md","5\u002F5",{"icon":521},"i-lucide-fingerprint","\u002Fdocs\u002Fconcepts\u002Fauthentication-and-identity",{"title":524,"id":525,"canonicalKey":526,"locale":8,"draft":6,"navigation":527,"icon":108,"path":528},"Server and client boundaries","content:docs:5.concepts:6.server-and-client-boundaries.md","5\u002F6",{"icon":108},"\u002Fdocs\u002Fconcepts\u002Fserver-and-client-boundaries",{"title":530,"id":531,"canonicalKey":532,"locale":8,"draft":6,"navigation":533,"icon":534,"path":535},"Errors and failures","content:docs:5.concepts:7.errors-and-failures.md","5\u002F7",{"icon":534},"i-lucide-circle-x","\u002Fdocs\u002Fconcepts\u002Ferrors-and-failures",{"title":537,"id":538,"canonicalKey":539,"locale":8,"draft":6,"navigation":540,"icon":541,"path":542},"Design decisions","content:docs:5.concepts:8.design-decisions.md","5\u002F8",{"icon":541},"i-lucide-git-branch","\u002Fdocs\u002Fconcepts\u002Fdesign-decisions",{"title":544,"id":545,"canonicalKey":546,"locale":8,"draft":6,"navigation":547,"icon":548,"path":549},"Glossary","content:docs:5.concepts:9.glossary.md","5\u002F9",{"icon":548},"i-lucide-book-a","\u002Fdocs\u002Fconcepts\u002Fglossary",{"title":551,"page":6,"canonicalKey":552,"locale":8,"id":553,"draft":6,"icon":214,"children":554},"Operations","6","content:docs:6.operations:.navigation.yml",[555,561,568,575,581,588,594],{"title":556,"id":557,"canonicalKey":558,"locale":8,"draft":6,"navigation":559,"icon":45,"path":560},"Deployment","content:docs:6.operations:1.deployment.md","6\u002F1",{"icon":45},"\u002Fdocs\u002Foperations\u002Fdeployment",{"title":562,"id":563,"canonicalKey":564,"locale":8,"draft":6,"navigation":565,"icon":566,"path":567},"Environment variables","content:docs:6.operations:2.environment-variables.md","6\u002F2",{"icon":566},"i-lucide-variable","\u002Fdocs\u002Foperations\u002Fenvironment-variables",{"title":569,"id":570,"canonicalKey":571,"locale":8,"draft":6,"navigation":572,"icon":573,"path":574},"Deploy to Vercel","content:docs:6.operations:3.deploy-to-vercel.md","6\u002F3",{"icon":573},"i-lucide-triangle","\u002Fdocs\u002Foperations\u002Fdeploy-to-vercel",{"title":576,"id":577,"canonicalKey":578,"locale":8,"draft":6,"navigation":579,"icon":379,"path":580},"Troubleshooting","content:docs:6.operations:4.troubleshooting.md","6\u002F4",{"icon":379},"\u002Fdocs\u002Foperations\u002Ftroubleshooting",{"title":582,"id":583,"canonicalKey":584,"locale":8,"draft":6,"navigation":585,"icon":586,"path":587},"Release compatibility","content:docs:6.operations:5.release-compatibility.md","6\u002F5",{"icon":586},"i-lucide-badge-check","\u002Fdocs\u002Foperations\u002Frelease-compatibility",{"title":589,"id":590,"canonicalKey":591,"locale":8,"draft":6,"navigation":592,"icon":87,"path":593},"Security model","content:docs:6.operations:6.security-model.md","6\u002F6",{"icon":87},"\u002Fdocs\u002Foperations\u002Fsecurity-model",{"title":595,"id":596,"canonicalKey":597,"locale":8,"draft":6,"navigation":598,"icon":599,"path":600},"Upgrade to 1.0","content:docs:6.operations:7.upgrade-to-1-0.md","6\u002F7",{"icon":599},"i-lucide-arrow-up-circle","\u002Fdocs\u002Foperations\u002Fupgrade-to-1-0",{"title":602,"page":6,"canonicalKey":603,"locale":8,"id":604,"draft":6,"icon":605,"children":606},"Reference","7","content:docs:7.reference:.navigation.yml","i-lucide-braces",[607,613,619,625,632,639],{"title":608,"id":609,"canonicalKey":610,"locale":8,"draft":6,"navigation":611,"icon":605,"path":612},"Composables","content:docs:7.reference:1.composables.md","7\u002F1",{"icon":605},"\u002Fdocs\u002Freference\u002Fcomposables",{"title":614,"id":615,"canonicalKey":616,"locale":8,"draft":6,"navigation":617,"icon":301,"path":618},"Server API","content:docs:7.reference:3.server-api.md","7\u002F3",{"icon":301},"\u002Fdocs\u002Freference\u002Fserver-api",{"title":620,"id":621,"canonicalKey":622,"locale":8,"draft":6,"navigation":623,"icon":534,"path":624},"Error types","content:docs:7.reference:4.error-types.md","7\u002F4",{"icon":534},"\u002Fdocs\u002Freference\u002Ferror-types",{"title":626,"id":627,"canonicalKey":628,"locale":8,"draft":6,"navigation":629,"icon":630,"path":631},"Module configuration","content:docs:7.reference:5.module-configuration.md","7\u002F5",{"icon":630},"i-lucide-settings","\u002Fdocs\u002Freference\u002Fmodule-configuration",{"title":633,"id":634,"canonicalKey":635,"locale":8,"draft":6,"navigation":636,"icon":637,"path":638},"Package exports","content:docs:7.reference:6.package-exports.md","7\u002F6",{"icon":637},"i-lucide-package-open","\u002Fdocs\u002Freference\u002Fpackage-exports",{"title":640,"id":641,"canonicalKey":642,"locale":8,"draft":6,"navigation":643,"icon":644,"path":645},"API surface","content:docs:7.reference:7.api-surface.md","7\u002F7",{"icon":644},"i-lucide-list","\u002Fdocs\u002Freference\u002Fapi-surface",{"title":647,"id":648,"canonicalKey":649,"locale":8,"draft":6,"path":650},"Better Convex documentation","content:docs:index.md","\u002F","\u002Fdocs",{"title":407,"description":652,"navigation":653,"body":654,"type":2123,"id":408,"canonicalKey":409,"draft":6,"partial":6,"locale":8,"collection":2124,"navigationFile":6,"file":2125,"route":2131,"resolution":2133},"Create an OAuth client for each host, enter the right settings, test with MCP Inspector, and fix common connection failures.",{"icon":340},{"type":655,"children":656,"toc":2110},"root",[657,672,679,769,775,979,984,990,1101,1113,1119,1124,1276,1282,1294,1330,1349,1360,1366,1371,1788,1806,1812,1817,1847,1853],{"type":658,"tag":659,"props":660,"children":661},"element","p",{},[662,665,670],{"type":663,"value":664},"text","This page connects ChatGPT and Claude to an MCP server built with\n",{"type":658,"tag":666,"props":667,"children":668},"a",{"href":405},[669],{"type":663,"value":401},{"type":663,"value":671},". Each host\ngets its own OAuth client. A person connects, signs in to your application,\nand allows access on your consent page. The host then calls your tools with a\nten-minute access token and renews it while the person's session lasts.",{"type":658,"tag":673,"props":674,"children":676},"h2",{"id":675},"before-you-connect",[677],{"type":663,"value":678},"Before you connect",{"type":658,"tag":680,"props":681,"children":682},"ul",{},[683,689,709,727,738,756],{"type":658,"tag":684,"props":685,"children":686},"li",{},[687],{"type":663,"value":688},"Deploy the application and Convex with HTTPS origins. Hosts do not connect to\na loopback address.",{"type":658,"tag":684,"props":690,"children":691},{},[692,694,700,702,707],{"type":663,"value":693},"Set ",{"type":658,"tag":695,"props":696,"children":697},"code",{},[698],{"type":663,"value":699},"SITE_URL",{"type":663,"value":701}," to the exact public Nuxt origin. The OAuth issuer is\n",{"type":658,"tag":695,"props":703,"children":704},{},[705],{"type":663,"value":706},"${SITE_URL}\u002Fapi\u002Fauth",{"type":663,"value":708},".",{"type":658,"tag":684,"props":710,"children":711},{},[712,714,719,721,726],{"type":663,"value":713},"Run ",{"type":658,"tag":695,"props":715,"children":716},{},[717],{"type":663,"value":718},"auth:ensureSigningKey",{"type":663,"value":720}," and check that its key ID appears at\n",{"type":658,"tag":695,"props":722,"children":723},{},[724],{"type":663,"value":725},"https:\u002F\u002Fyour-app.example\u002Fapi\u002Fauth\u002Fjwks",{"type":663,"value":708},{"type":658,"tag":684,"props":728,"children":729},{},[730,732,737],{"type":663,"value":731},"List each host in the profile: ",{"type":658,"tag":695,"props":733,"children":734},{},[735],{"type":663,"value":736},"oauth: { mcp: { scopes, hosts: ['chatgpt', 'claude'] } }",{"type":663,"value":708},{"type":658,"tag":684,"props":739,"children":740},{},[741,743,748,750,755],{"type":663,"value":742},"Export an internal mutation that calls ",{"type":658,"tag":695,"props":744,"children":745},{},[746],{"type":663,"value":747},"auth.oauthOperator.createHostClient",{"type":663,"value":749},",\nas in the recipe's ",{"type":658,"tag":695,"props":751,"children":752},{},[753],{"type":663,"value":754},"convex\u002Fconnections.ts",{"type":663,"value":708},{"type":658,"tag":684,"props":757,"children":758},{},[759,761,767],{"type":663,"value":760},"Test the flow with ",{"type":658,"tag":666,"props":762,"children":764},{"href":763},"#test-with-mcp-inspector",[765],{"type":663,"value":766},"MCP Inspector",{"type":663,"value":768}," first.",{"type":658,"tag":673,"props":770,"children":772},{"id":771},"what-each-host-needs",[773],{"type":663,"value":774},"What each host needs",{"type":658,"tag":776,"props":777,"children":778},"table",{},[779,803],{"type":658,"tag":780,"props":781,"children":782},"thead",{},[783],{"type":658,"tag":784,"props":785,"children":786},"tr",{},[787,793,798],{"type":658,"tag":788,"props":789,"children":790},"th",{},[791],{"type":663,"value":792},"Setting",{"type":658,"tag":788,"props":794,"children":795},{},[796],{"type":663,"value":797},"ChatGPT",{"type":658,"tag":788,"props":799,"children":800},{},[801],{"type":663,"value":802},"Claude",{"type":658,"tag":804,"props":805,"children":806},"tbody",{},[807,829,845,863,889,906,927,954],{"type":658,"tag":784,"props":808,"children":809},{},[810,816,824],{"type":658,"tag":811,"props":812,"children":813},"td",{},[814],{"type":663,"value":815},"MCP server URL",{"type":658,"tag":811,"props":817,"children":818},{},[819],{"type":658,"tag":695,"props":820,"children":821},{},[822],{"type":663,"value":823},"https:\u002F\u002F\u003Cdeployment>.convex.site\u002Fmcp",{"type":658,"tag":811,"props":825,"children":826},{},[827],{"type":663,"value":828},"the same URL",{"type":658,"tag":784,"props":830,"children":831},{},[832,836,841],{"type":658,"tag":811,"props":833,"children":834},{},[835],{"type":663,"value":200},{"type":658,"tag":811,"props":837,"children":838},{},[839],{"type":663,"value":840},"OAuth",{"type":658,"tag":811,"props":842,"children":843},{},[844],{"type":663,"value":840},{"type":658,"tag":784,"props":846,"children":847},{},[848,853,858],{"type":658,"tag":811,"props":849,"children":850},{},[851],{"type":663,"value":852},"Client registration",{"type":658,"tag":811,"props":854,"children":855},{},[856],{"type":663,"value":857},"User-defined OAuth client",{"type":658,"tag":811,"props":859,"children":860},{},[861],{"type":663,"value":862},"Your own OAuth client",{"type":658,"tag":784,"props":864,"children":865},{},[866,871,881],{"type":658,"tag":811,"props":867,"children":868},{},[869],{"type":663,"value":870},"Client ID",{"type":658,"tag":811,"props":872,"children":873},{},[874,876],{"type":663,"value":875},"From ",{"type":658,"tag":695,"props":877,"children":878},{},[879],{"type":663,"value":880},"createHostClient",{"type":658,"tag":811,"props":882,"children":883},{},[884,885],{"type":663,"value":875},{"type":658,"tag":695,"props":886,"children":887},{},[888],{"type":663,"value":880},{"type":658,"tag":784,"props":890,"children":891},{},[892,897,902],{"type":658,"tag":811,"props":893,"children":894},{},[895],{"type":663,"value":896},"Client secret",{"type":658,"tag":811,"props":898,"children":899},{},[900],{"type":663,"value":901},"Empty",{"type":658,"tag":811,"props":903,"children":904},{},[905],{"type":663,"value":901},{"type":658,"tag":784,"props":907,"children":908},{},[909,914,922],{"type":658,"tag":811,"props":910,"children":911},{},[912],{"type":663,"value":913},"Token endpoint auth",{"type":658,"tag":811,"props":915,"children":916},{},[917],{"type":658,"tag":695,"props":918,"children":919},{},[920],{"type":663,"value":921},"none",{"type":658,"tag":811,"props":923,"children":924},{},[925],{"type":663,"value":926},"Not asked",{"type":658,"tag":784,"props":928,"children":929},{},[930,935,944],{"type":658,"tag":811,"props":931,"children":932},{},[933],{"type":663,"value":934},"Callback URL",{"type":658,"tag":811,"props":936,"children":937},{},[938,940],{"type":663,"value":939},"Shown by ChatGPT; pass it to ",{"type":658,"tag":695,"props":941,"children":942},{},[943],{"type":663,"value":880},{"type":658,"tag":811,"props":945,"children":946},{},[947,949],{"type":663,"value":948},"Fixed: ",{"type":658,"tag":695,"props":950,"children":951},{},[952],{"type":663,"value":953},"https:\u002F\u002Fclaude.ai\u002Fapi\u002Fmcp\u002Fauth_callback",{"type":658,"tag":784,"props":955,"children":956},{},[957,962,974],{"type":658,"tag":811,"props":958,"children":959},{},[960],{"type":663,"value":961},"Scopes",{"type":658,"tag":811,"props":963,"children":964},{},[965,967,972],{"type":663,"value":966},"Select your scopes; add ",{"type":658,"tag":695,"props":968,"children":969},{},[970],{"type":663,"value":971},"offline_access",{"type":663,"value":973}," to base scopes for renewal",{"type":658,"tag":811,"props":975,"children":976},{},[977],{"type":663,"value":978},"Requested by Claude from your metadata",{"type":658,"tag":659,"props":980,"children":981},{},[982],{"type":663,"value":983},"The clients are public clients with S256 PKCE. They have no secret. Dynamic\nclient registration is off, so the host cannot create a client itself.",{"type":658,"tag":673,"props":985,"children":987},{"id":986},"connect-claude",[988],{"type":663,"value":989},"Connect Claude",{"type":658,"tag":991,"props":992,"children":993},"ol",{},[994,1067,1072,1085,1096],{"type":658,"tag":684,"props":995,"children":996},{},[997,1002,1055],{"type":658,"tag":659,"props":998,"children":999},{},[1000],{"type":663,"value":1001},"Create the client:",{"type":658,"tag":1003,"props":1004,"children":1007},"pre",{"language":1005,"class":1006},"bash","shiki shiki-themes light-plus dark-plus dark:dark-plus",[1008],{"type":658,"tag":695,"props":1009,"children":1011},{"class":1010},"language-bash",[1012],{"type":658,"tag":1013,"props":1014,"children":1017},"span",{"class":1015,"style":1016},"line","display: inline",[1018,1024,1030,1035,1040,1045,1050],{"type":658,"tag":1013,"props":1019,"children":1021},{"style":1020},"color:#795E26;--shiki-dark:#DCDCAA",[1022],{"type":663,"value":1023},"pnpm",{"type":658,"tag":1013,"props":1025,"children":1027},{"style":1026},"color:#A31515;--shiki-dark:#CE9178",[1028],{"type":663,"value":1029}," exec",{"type":658,"tag":1013,"props":1031,"children":1032},{"style":1026},[1033],{"type":663,"value":1034}," better-convex",{"type":658,"tag":1013,"props":1036,"children":1037},{"style":1026},[1038],{"type":663,"value":1039}," convex",{"type":658,"tag":1013,"props":1041,"children":1042},{"style":1026},[1043],{"type":663,"value":1044}," run",{"type":658,"tag":1013,"props":1046,"children":1047},{"style":1026},[1048],{"type":663,"value":1049}," connections:createHostClient",{"type":658,"tag":1013,"props":1051,"children":1052},{"style":1026},[1053],{"type":663,"value":1054}," '{\"host\":\"claude\"}'",{"type":658,"tag":659,"props":1056,"children":1057},{},[1058,1060,1065],{"type":663,"value":1059},"Record the returned ",{"type":658,"tag":695,"props":1061,"children":1062},{},[1063],{"type":663,"value":1064},"clientId",{"type":663,"value":1066},". The client accepts only Claude's fixed\ncallback and every scope in your profile.",{"type":658,"tag":684,"props":1068,"children":1069},{},[1070],{"type":663,"value":1071},"In Claude, add a custom connector. Enter the MCP server URL.",{"type":658,"tag":684,"props":1073,"children":1074},{},[1075,1077,1083],{"type":663,"value":1076},"Select ",{"type":658,"tag":1078,"props":1079,"children":1080},"strong",{},[1081],{"type":663,"value":1082},"Use your own OAuth client",{"type":663,"value":1084}," and paste the client ID. Leave the\nsecret empty.",{"type":658,"tag":684,"props":1086,"children":1087},{},[1088,1090,1095],{"type":663,"value":1089},"Connect. Claude opens your login page, then your consent page. Sign in and\nselect ",{"type":658,"tag":1078,"props":1091,"children":1092},{},[1093],{"type":663,"value":1094},"Allow",{"type":663,"value":708},{"type":658,"tag":684,"props":1097,"children":1098},{},[1099],{"type":663,"value":1100},"Start a new conversation and ask for something one of your tools can do.",{"type":658,"tag":659,"props":1102,"children":1103},{},[1104,1106,1111],{"type":663,"value":1105},"Claude reads ",{"type":658,"tag":695,"props":1107,"children":1108},{},[1109],{"type":663,"value":1110},"scopes_supported",{"type":663,"value":1112}," from your protected-resource metadata. It\ncan request read access and renewal first, and ask for write consent the first\ntime a write tool needs it.",{"type":658,"tag":673,"props":1114,"children":1116},{"id":1115},"connect-chatgpt",[1117],{"type":663,"value":1118},"Connect ChatGPT",{"type":658,"tag":659,"props":1120,"children":1121},{},[1122],{"type":663,"value":1123},"ChatGPT shows its callback URL during setup, so create the client in the\nmiddle of the setup.",{"type":658,"tag":991,"props":1125,"children":1126},{},[1127,1132,1151,1208,1246,1271],{"type":658,"tag":684,"props":1128,"children":1129},{},[1130],{"type":663,"value":1131},"In ChatGPT, start a new connector in the developer connection settings.\nEnter the MCP server URL and select OAuth.",{"type":658,"tag":684,"props":1133,"children":1134},{},[1135,1137,1142,1144,1149],{"type":663,"value":1136},"Copy the exact callback URL that ChatGPT displays. It is\n",{"type":658,"tag":695,"props":1138,"children":1139},{},[1140],{"type":663,"value":1141},"https:\u002F\u002Fchatgpt.com\u002Fconnector_platform_oauth_redirect",{"type":663,"value":1143}," or\n",{"type":658,"tag":695,"props":1145,"children":1146},{},[1147],{"type":663,"value":1148},"https:\u002F\u002Fchatgpt.com\u002Fconnector\u002Foauth\u002F\u003Ccallback-id>",{"type":663,"value":1150},". Do not guess the\ncallback ID.",{"type":658,"tag":684,"props":1152,"children":1153},{},[1154,1159],{"type":658,"tag":659,"props":1155,"children":1156},{},[1157],{"type":663,"value":1158},"Create the client with that callback:",{"type":658,"tag":1003,"props":1160,"children":1161},{"language":1005,"class":1006},[1162],{"type":658,"tag":695,"props":1163,"children":1164},{"class":1010},[1165,1198,1200],{"type":658,"tag":1013,"props":1166,"children":1167},{"class":1015,"style":1016},[1168,1172,1176,1180,1184,1188,1192],{"type":658,"tag":1013,"props":1169,"children":1170},{"style":1020},[1171],{"type":663,"value":1023},{"type":658,"tag":1013,"props":1173,"children":1174},{"style":1026},[1175],{"type":663,"value":1029},{"type":658,"tag":1013,"props":1177,"children":1178},{"style":1026},[1179],{"type":663,"value":1034},{"type":658,"tag":1013,"props":1181,"children":1182},{"style":1026},[1183],{"type":663,"value":1039},{"type":658,"tag":1013,"props":1185,"children":1186},{"style":1026},[1187],{"type":663,"value":1044},{"type":658,"tag":1013,"props":1189,"children":1190},{"style":1026},[1191],{"type":663,"value":1049},{"type":658,"tag":1013,"props":1193,"children":1195},{"style":1194},"color:#EE0000;--shiki-dark:#D7BA7D",[1196],{"type":663,"value":1197}," \\",{"type":663,"value":1199},"\n",{"type":658,"tag":1013,"props":1201,"children":1202},{"class":1015,"style":1016},[1203],{"type":658,"tag":1013,"props":1204,"children":1205},{"style":1026},[1206],{"type":663,"value":1207},"  '{\"host\":\"chatgpt\",\"redirectUri\":\"https:\u002F\u002Fchatgpt.com\u002Fconnector_platform_oauth_redirect\"}'",{"type":658,"tag":684,"props":1209,"children":1210},{},[1211,1213,1218,1220,1225,1227,1232,1234,1239,1240,1244],{"type":663,"value":1212},"In ",{"type":658,"tag":1078,"props":1214,"children":1215},{},[1216],{"type":663,"value":1217},"Advanced OAuth settings",{"type":663,"value":1219},", set ",{"type":658,"tag":1078,"props":1221,"children":1222},{},[1223],{"type":663,"value":1224},"Registration method",{"type":663,"value":1226}," to\n",{"type":658,"tag":1078,"props":1228,"children":1229},{},[1230],{"type":663,"value":1231},"User-Defined OAuth Client",{"type":663,"value":1233}," and ",{"type":658,"tag":1078,"props":1235,"children":1236},{},[1237],{"type":663,"value":1238},"Token endpoint auth method",{"type":663,"value":1226},{"type":658,"tag":1078,"props":1241,"children":1242},{},[1243],{"type":663,"value":921},{"type":663,"value":1245},". Paste the client ID and leave the client secret empty.",{"type":658,"tag":684,"props":1247,"children":1248},{},[1249,1251,1256,1258,1262,1264,1269],{"type":663,"value":1250},"Under ",{"type":658,"tag":1078,"props":1252,"children":1253},{},[1254],{"type":663,"value":1255},"Default scopes",{"type":663,"value":1257},", select the scopes the connection needs. Enter\n",{"type":658,"tag":695,"props":1259,"children":1260},{},[1261],{"type":663,"value":971},{"type":663,"value":1263}," in ",{"type":658,"tag":1078,"props":1265,"children":1266},{},[1267],{"type":663,"value":1268},"Base scopes",{"type":663,"value":1270}," so that ChatGPT receives a refresh\ntoken. Without it, ChatGPT asks the person to reconnect after ten minutes.",{"type":658,"tag":684,"props":1272,"children":1273},{},[1274],{"type":663,"value":1275},"Connect, sign in, and allow access. Refresh the connector's tools, then\nstart a new conversation.",{"type":658,"tag":673,"props":1277,"children":1279},{"id":1278},"scopes-and-consent",[1280],{"type":663,"value":1281},"Scopes and consent",{"type":658,"tag":659,"props":1283,"children":1284},{},[1285,1287,1292],{"type":663,"value":1286},"Your consent page shows the verified client name, the exact resource, and each\nrequested scope with its description from ",{"type":658,"tag":695,"props":1288,"children":1289},{},[1290],{"type":663,"value":1291},"oauth.mcp.scopes",{"type":663,"value":1293},". Consent grants\nexactly the requested scopes, never more.",{"type":658,"tag":680,"props":1295,"children":1296},{},[1297,1316,1325],{"type":658,"tag":684,"props":1298,"children":1299},{},[1300,1302,1307,1309,1314],{"type":663,"value":1301},"A tool with ",{"type":658,"tag":695,"props":1303,"children":1304},{},[1305],{"type":663,"value":1306},"scopes: ['notes:write']",{"type":663,"value":1308}," is visible to every connection. A\nconnection without that scope receives an HTTP 403 ",{"type":658,"tag":695,"props":1310,"children":1311},{},[1312],{"type":663,"value":1313},"insufficient_scope",{"type":663,"value":1315},"\nchallenge when it calls the tool. The host can then ask the person for\nconsent again.",{"type":658,"tag":684,"props":1317,"children":1318},{},[1319,1323],{"type":658,"tag":695,"props":1320,"children":1321},{},[1322],{"type":663,"value":971},{"type":663,"value":1324}," allows renewal. The refresh token ends with the Better Auth\nsession that granted consent, and after at most seven days. Signing out of\nyour application ends renewal.",{"type":658,"tag":684,"props":1326,"children":1327},{},[1328],{"type":663,"value":1329},"A broader permission always needs new consent. An earlier grant is never\nwidened silently.",{"type":658,"tag":659,"props":1331,"children":1332},{},[1333,1335,1340,1342,1347],{"type":663,"value":1334},"Each connection is one row on the person's connections page\n(",{"type":658,"tag":695,"props":1336,"children":1337},{},[1338],{"type":663,"value":1339},"auth.oauthConnections.list",{"type":663,"value":1341},"). ",{"type":658,"tag":1078,"props":1343,"children":1344},{},[1345],{"type":663,"value":1346},"Disconnect",{"type":663,"value":1348}," there revokes the consent and\nthe refresh tokens on the server. The host's next request fails.",{"type":658,"tag":659,"props":1350,"children":1351},{},[1352,1354,1359],{"type":663,"value":1353},"Disconnecting inside the host does not always revoke the grant on your server.\nRevoke it on your connections page. To stop a host for every user, disable its\nclient with ",{"type":658,"tag":695,"props":1355,"children":1356},{},[1357],{"type":663,"value":1358},"auth.oauthOperator.setClientDisabled",{"type":663,"value":708},{"type":658,"tag":673,"props":1361,"children":1363},{"id":1362},"test-with-mcp-inspector",[1364],{"type":663,"value":1365},"Test with MCP Inspector",{"type":658,"tag":659,"props":1367,"children":1368},{},[1369],{"type":663,"value":1370},"Test the OAuth flow and your tools locally before you connect a real host.",{"type":658,"tag":991,"props":1372,"children":1373},{},[1374,1745,1755,1773,1778,1783],{"type":658,"tag":684,"props":1375,"children":1376},{},[1377,1382,1713],{"type":658,"tag":659,"props":1378,"children":1379},{},[1380],{"type":663,"value":1381},"Create a client for Inspector's local callback. Run this internal mutation\nonly in development:",{"type":658,"tag":1003,"props":1383,"children":1385},{"language":1384,"filename":754,"class":1006},"ts",[1386],{"type":658,"tag":695,"props":1387,"children":1389},{"class":1388},"language-ts",[1390,1427,1428,1442,1443,1481,1482,1527,1528,1546,1547,1564,1565,1588,1589,1673,1674,1695,1696,1704,1705],{"type":658,"tag":1013,"props":1391,"children":1392},{"class":1015,"style":1016},[1393,1399,1405,1411,1417,1422],{"type":658,"tag":1013,"props":1394,"children":1396},{"style":1395},"color:#AF00DB;--shiki-dark:#C586C0",[1397],{"type":663,"value":1398},"export",{"type":658,"tag":1013,"props":1400,"children":1402},{"style":1401},"color:#0000FF;--shiki-dark:#569CD6",[1403],{"type":663,"value":1404}," const",{"type":658,"tag":1013,"props":1406,"children":1408},{"style":1407},"color:#0070C1;--shiki-dark:#4FC1FF",[1409],{"type":663,"value":1410}," createInspectorClient",{"type":658,"tag":1013,"props":1412,"children":1414},{"style":1413},"color:#000000;--shiki-dark:#D4D4D4",[1415],{"type":663,"value":1416}," = ",{"type":658,"tag":1013,"props":1418,"children":1419},{"style":1020},[1420],{"type":663,"value":1421},"internalMutation",{"type":658,"tag":1013,"props":1423,"children":1424},{"style":1413},[1425],{"type":663,"value":1426},"({",{"type":663,"value":1199},{"type":658,"tag":1013,"props":1429,"children":1430},{"class":1015,"style":1016},[1431,1437],{"type":658,"tag":1013,"props":1432,"children":1434},{"style":1433},"color:#001080;--shiki-dark:#9CDCFE",[1435],{"type":663,"value":1436},"  args:",{"type":658,"tag":1013,"props":1438,"children":1439},{"style":1413},[1440],{"type":663,"value":1441}," {},",{"type":663,"value":1199},{"type":658,"tag":1013,"props":1444,"children":1445},{"class":1015,"style":1016},[1446,1451,1456,1461,1466,1471,1476],{"type":658,"tag":1013,"props":1447,"children":1448},{"style":1020},[1449],{"type":663,"value":1450},"  handler",{"type":658,"tag":1013,"props":1452,"children":1453},{"style":1433},[1454],{"type":663,"value":1455},":",{"type":658,"tag":1013,"props":1457,"children":1458},{"style":1401},[1459],{"type":663,"value":1460}," async",{"type":658,"tag":1013,"props":1462,"children":1463},{"style":1413},[1464],{"type":663,"value":1465}," (",{"type":658,"tag":1013,"props":1467,"children":1468},{"style":1433},[1469],{"type":663,"value":1470},"ctx",{"type":658,"tag":1013,"props":1472,"children":1473},{"style":1413},[1474],{"type":663,"value":1475},") ",{"type":658,"tag":1013,"props":1477,"children":1478},{"style":1401},[1479],{"type":663,"value":1480},"=>",{"type":663,"value":1199},{"type":658,"tag":1013,"props":1483,"children":1484},{"class":1015,"style":1016},[1485,1490,1495,1499,1504,1508,1513,1518,1522],{"type":658,"tag":1013,"props":1486,"children":1487},{"style":1395},[1488],{"type":663,"value":1489},"    await",{"type":658,"tag":1013,"props":1491,"children":1492},{"style":1433},[1493],{"type":663,"value":1494}," auth",{"type":658,"tag":1013,"props":1496,"children":1497},{"style":1413},[1498],{"type":663,"value":708},{"type":658,"tag":1013,"props":1500,"children":1501},{"style":1433},[1502],{"type":663,"value":1503},"oauthOperator",{"type":658,"tag":1013,"props":1505,"children":1506},{"style":1413},[1507],{"type":663,"value":708},{"type":658,"tag":1013,"props":1509,"children":1510},{"style":1020},[1511],{"type":663,"value":1512},"createPublicClient",{"type":658,"tag":1013,"props":1514,"children":1515},{"style":1413},[1516],{"type":663,"value":1517},"(",{"type":658,"tag":1013,"props":1519,"children":1520},{"style":1433},[1521],{"type":663,"value":1470},{"type":658,"tag":1013,"props":1523,"children":1524},{"style":1413},[1525],{"type":663,"value":1526},", {",{"type":663,"value":1199},{"type":658,"tag":1013,"props":1529,"children":1530},{"class":1015,"style":1016},[1531,1536,1541],{"type":658,"tag":1013,"props":1532,"children":1533},{"style":1433},[1534],{"type":663,"value":1535},"      name:",{"type":658,"tag":1013,"props":1537,"children":1538},{"style":1026},[1539],{"type":663,"value":1540}," 'MCP Inspector'",{"type":658,"tag":1013,"props":1542,"children":1543},{"style":1413},[1544],{"type":663,"value":1545},",",{"type":663,"value":1199},{"type":658,"tag":1013,"props":1548,"children":1549},{"class":1015,"style":1016},[1550,1555,1560],{"type":658,"tag":1013,"props":1551,"children":1552},{"style":1433},[1553],{"type":663,"value":1554},"      profile:",{"type":658,"tag":1013,"props":1556,"children":1557},{"style":1026},[1558],{"type":663,"value":1559}," 'mcp-inspector'",{"type":658,"tag":1013,"props":1561,"children":1562},{"style":1413},[1563],{"type":663,"value":1545},{"type":663,"value":1199},{"type":658,"tag":1013,"props":1566,"children":1567},{"class":1015,"style":1016},[1568,1573,1578,1583],{"type":658,"tag":1013,"props":1569,"children":1570},{"style":1433},[1571],{"type":663,"value":1572},"      redirectUris:",{"type":658,"tag":1013,"props":1574,"children":1575},{"style":1413},[1576],{"type":663,"value":1577}," [",{"type":658,"tag":1013,"props":1579,"children":1580},{"style":1026},[1581],{"type":663,"value":1582},"'http:\u002F\u002Flocalhost:6274\u002Foauth\u002Fcallback'",{"type":658,"tag":1013,"props":1584,"children":1585},{"style":1413},[1586],{"type":663,"value":1587},"],",{"type":663,"value":1199},{"type":658,"tag":1013,"props":1590,"children":1591},{"class":1015,"style":1016},[1592,1597,1602,1607,1611,1615,1620,1624,1629,1634,1639,1644,1649,1654,1658,1663,1668],{"type":658,"tag":1013,"props":1593,"children":1594},{"style":1433},[1595],{"type":663,"value":1596},"      resource:",{"type":658,"tag":1013,"props":1598,"children":1599},{"style":1413},[1600],{"type":663,"value":1601}," { ",{"type":658,"tag":1013,"props":1603,"children":1604},{"style":1433},[1605],{"type":663,"value":1606},"identifier:",{"type":658,"tag":1013,"props":1608,"children":1609},{"style":1433},[1610],{"type":663,"value":1494},{"type":658,"tag":1013,"props":1612,"children":1613},{"style":1413},[1614],{"type":663,"value":708},{"type":658,"tag":1013,"props":1616,"children":1617},{"style":1433},[1618],{"type":663,"value":1619},"mcp",{"type":658,"tag":1013,"props":1621,"children":1622},{"style":1413},[1623],{"type":663,"value":708},{"type":658,"tag":1013,"props":1625,"children":1626},{"style":1020},[1627],{"type":663,"value":1628},"resource",{"type":658,"tag":1013,"props":1630,"children":1631},{"style":1413},[1632],{"type":663,"value":1633},"().",{"type":658,"tag":1013,"props":1635,"children":1636},{"style":1433},[1637],{"type":663,"value":1638},"href",{"type":658,"tag":1013,"props":1640,"children":1641},{"style":1413},[1642],{"type":663,"value":1643},", ",{"type":658,"tag":1013,"props":1645,"children":1646},{"style":1433},[1647],{"type":663,"value":1648},"name:",{"type":658,"tag":1013,"props":1650,"children":1651},{"style":1026},[1652],{"type":663,"value":1653}," 'MCP'",{"type":658,"tag":1013,"props":1655,"children":1656},{"style":1413},[1657],{"type":663,"value":1643},{"type":658,"tag":1013,"props":1659,"children":1660},{"style":1433},[1661],{"type":663,"value":1662},"ownership:",{"type":658,"tag":1013,"props":1664,"children":1665},{"style":1026},[1666],{"type":663,"value":1667}," 'application'",{"type":658,"tag":1013,"props":1669,"children":1670},{"style":1413},[1671],{"type":663,"value":1672}," },",{"type":663,"value":1199},{"type":658,"tag":1013,"props":1675,"children":1676},{"class":1015,"style":1016},[1677,1682,1686,1691],{"type":658,"tag":1013,"props":1678,"children":1679},{"style":1433},[1680],{"type":663,"value":1681},"      scopes:",{"type":658,"tag":1013,"props":1683,"children":1684},{"style":1413},[1685],{"type":663,"value":1577},{"type":658,"tag":1013,"props":1687,"children":1688},{"style":1026},[1689],{"type":663,"value":1690},"'notes:read'",{"type":658,"tag":1013,"props":1692,"children":1693},{"style":1413},[1694],{"type":663,"value":1587},{"type":663,"value":1199},{"type":658,"tag":1013,"props":1697,"children":1698},{"class":1015,"style":1016},[1699],{"type":658,"tag":1013,"props":1700,"children":1701},{"style":1413},[1702],{"type":663,"value":1703},"    }),",{"type":663,"value":1199},{"type":658,"tag":1013,"props":1706,"children":1707},{"class":1015,"style":1016},[1708],{"type":658,"tag":1013,"props":1709,"children":1710},{"style":1413},[1711],{"type":663,"value":1712},"})",{"type":658,"tag":659,"props":1714,"children":1715},{},[1716,1718,1723,1725,1729,1731,1736,1738,1743],{"type":663,"value":1717},"Use the same resource ",{"type":658,"tag":695,"props":1719,"children":1720},{},[1721],{"type":663,"value":1722},"name",{"type":663,"value":1724}," as ",{"type":658,"tag":695,"props":1726,"children":1727},{},[1728],{"type":663,"value":880},{"type":663,"value":1730},": your ",{"type":658,"tag":695,"props":1732,"children":1733},{},[1734],{"type":663,"value":1735},"appName",{"type":663,"value":1737},", or\n",{"type":658,"tag":695,"props":1739,"children":1740},{},[1741],{"type":663,"value":1742},"MCP",{"type":663,"value":1744}," when you have not set one.",{"type":658,"tag":684,"props":1746,"children":1747},{},[1748,1749,1754],{"type":663,"value":713},{"type":658,"tag":695,"props":1750,"children":1751},{},[1752],{"type":663,"value":1753},"pnpm dlx @modelcontextprotocol\u002Finspector",{"type":663,"value":708},{"type":658,"tag":684,"props":1756,"children":1757},{},[1758,1760,1765,1767,1772],{"type":663,"value":1759},"Select the Streamable HTTP transport and enter your ",{"type":658,"tag":695,"props":1761,"children":1762},{},[1763],{"type":663,"value":1764},"CONVEX_SITE_URL",{"type":663,"value":1766},"\nfollowed by ",{"type":658,"tag":695,"props":1768,"children":1769},{},[1770],{"type":663,"value":1771},"\u002Fmcp",{"type":663,"value":708},{"type":658,"tag":684,"props":1774,"children":1775},{},[1776],{"type":663,"value":1777},"In the OAuth settings, enter the client ID, leave the secret empty, and\nrequest your scopes.",{"type":658,"tag":684,"props":1779,"children":1780},{},[1781],{"type":663,"value":1782},"Connect, sign in, and allow access. List the tools and call one.",{"type":658,"tag":684,"props":1784,"children":1785},{},[1786],{"type":663,"value":1787},"Disconnect on your connections page, then call the tool again. The call must\nfail with HTTP 401.",{"type":658,"tag":659,"props":1789,"children":1790},{},[1791,1793,1798,1800,1805],{"type":663,"value":1792},"For automated checks, snapshot the catalog with ",{"type":658,"tag":695,"props":1794,"children":1795},{},[1796],{"type":663,"value":1797},"listMcpCatalog",{"type":663,"value":1799}," as shown in\n",{"type":658,"tag":666,"props":1801,"children":1803},{"href":1802},"\u002Fdocs\u002Fbuild\u002Fagents\u002Fmcp#test-the-catalog",[1804],{"type":663,"value":394},{"type":663,"value":708},{"type":658,"tag":673,"props":1807,"children":1809},{"id":1808},"update-tools-after-a-deploy",[1810],{"type":663,"value":1811},"Update tools after a deploy",{"type":658,"tag":659,"props":1813,"children":1814},{},[1815],{"type":663,"value":1816},"Hosts cache the tool list. After you change tools:",{"type":658,"tag":680,"props":1818,"children":1819},{},[1820,1825,1830],{"type":658,"tag":684,"props":1821,"children":1822},{},[1823],{"type":663,"value":1824},"In ChatGPT, refresh the connector's tools, then start a new conversation.",{"type":658,"tag":684,"props":1826,"children":1827},{},[1828],{"type":663,"value":1829},"In Claude, start a new conversation. Claude can keep an older catalog for a\nwhile.",{"type":658,"tag":684,"props":1831,"children":1832},{},[1833,1835,1840,1842,1846],{"type":663,"value":1834},"Keep MCP Apps ",{"type":658,"tag":695,"props":1836,"children":1837},{},[1838],{"type":663,"value":1839},"ui:\u002F\u002F",{"type":663,"value":1841}," URIs stable. See ",{"type":658,"tag":666,"props":1843,"children":1844},{"href":417},[1845],{"type":663,"value":413},{"type":663,"value":708},{"type":658,"tag":673,"props":1848,"children":1850},{"id":1849},"common-failures",[1851],{"type":663,"value":1852},"Common failures",{"type":658,"tag":776,"props":1854,"children":1855},{},[1856,1872],{"type":658,"tag":780,"props":1857,"children":1858},{},[1859],{"type":658,"tag":784,"props":1860,"children":1861},{},[1862,1867],{"type":658,"tag":788,"props":1863,"children":1864},{},[1865],{"type":663,"value":1866},"Symptom",{"type":658,"tag":788,"props":1868,"children":1869},{},[1870],{"type":663,"value":1871},"Cause and fix",{"type":658,"tag":804,"props":1873,"children":1874},{},[1875,1903,1930,1950,1963,1997,2014,2047,2065,2097],{"type":658,"tag":784,"props":1876,"children":1877},{},[1878,1892],{"type":658,"tag":811,"props":1879,"children":1880},{},[1881,1885,1887],{"type":658,"tag":695,"props":1882,"children":1883},{},[1884],{"type":663,"value":880},{"type":663,"value":1886}," fails with ",{"type":658,"tag":695,"props":1888,"children":1889},{},[1890],{"type":663,"value":1891},"AUTH_OAUTH_CLIENT_HOST_NOT_ENABLED",{"type":658,"tag":811,"props":1893,"children":1894},{},[1895,1897,1902],{"type":663,"value":1896},"Add the host to ",{"type":658,"tag":695,"props":1898,"children":1899},{},[1900],{"type":663,"value":1901},"oauth.mcp.hosts",{"type":663,"value":708},{"type":658,"tag":784,"props":1904,"children":1905},{},[1906,1919],{"type":658,"tag":811,"props":1907,"children":1908},{},[1909,1913,1914],{"type":658,"tag":695,"props":1910,"children":1911},{},[1912],{"type":663,"value":880},{"type":663,"value":1886},{"type":658,"tag":695,"props":1915,"children":1916},{},[1917],{"type":663,"value":1918},"AUTH_OAUTH_CLIENT_REDIRECT_URI_INVALID",{"type":658,"tag":811,"props":1920,"children":1921},{},[1922,1924,1929],{"type":663,"value":1923},"Pass the exact ChatGPT callback. For Claude, omit ",{"type":658,"tag":695,"props":1925,"children":1926},{},[1927],{"type":663,"value":1928},"redirectUri",{"type":663,"value":708},{"type":658,"tag":784,"props":1931,"children":1932},{},[1933,1945],{"type":658,"tag":811,"props":1934,"children":1935},{},[1936,1938,1943],{"type":663,"value":1937},"The host shows a redirect or ",{"type":658,"tag":695,"props":1939,"children":1940},{},[1941],{"type":663,"value":1942},"invalid_client",{"type":663,"value":1944}," error",{"type":658,"tag":811,"props":1946,"children":1947},{},[1948],{"type":663,"value":1949},"The client's callback does not match the host's callback, or the client ID is wrong. Create a new client with the exact callback.",{"type":658,"tag":784,"props":1951,"children":1952},{},[1953,1958],{"type":658,"tag":811,"props":1954,"children":1955},{},[1956],{"type":663,"value":1957},"The login page says the request is invalid or expired",{"type":658,"tag":811,"props":1959,"children":1960},{},[1961],{"type":663,"value":1962},"The signed authorization request is older than two minutes, or the page changed its query. Start the connection again from the host.",{"type":658,"tag":784,"props":1964,"children":1965},{},[1966,1976],{"type":658,"tag":811,"props":1967,"children":1968},{},[1969,1971],{"type":663,"value":1970},"Every tool call returns HTTP 401 ",{"type":658,"tag":695,"props":1972,"children":1973},{},[1974],{"type":663,"value":1975},"invalid_token",{"type":658,"tag":811,"props":1977,"children":1978},{},[1979,1983,1985,1989,1991,1995],{"type":658,"tag":695,"props":1980,"children":1981},{},[1982],{"type":663,"value":699},{"type":663,"value":1984}," does not match the issuer in the token, the resource URL differs from ",{"type":658,"tag":695,"props":1986,"children":1987},{},[1988],{"type":663,"value":1764},{"type":663,"value":1990}," + ",{"type":658,"tag":695,"props":1992,"children":1993},{},[1994],{"type":663,"value":1771},{"type":663,"value":1996},", no signing key exists, or the grant was revoked.",{"type":658,"tag":784,"props":1998,"children":1999},{},[2000,2009],{"type":658,"tag":811,"props":2001,"children":2002},{},[2003,2005],{"type":663,"value":2004},"A tool call returns HTTP 403 ",{"type":658,"tag":695,"props":2006,"children":2007},{},[2008],{"type":663,"value":1313},{"type":658,"tag":811,"props":2010,"children":2011},{},[2012],{"type":663,"value":2013},"The connection lacks the tool's scope. Allow the new scope when the host asks. Check that the client was created with that scope.",{"type":658,"tag":784,"props":2015,"children":2016},{},[2017,2022],{"type":658,"tag":811,"props":2018,"children":2019},{},[2020],{"type":663,"value":2021},"The host asks to reconnect every ten minutes",{"type":658,"tag":811,"props":2023,"children":2024},{},[2025,2027,2031,2033,2038,2040,2045],{"type":663,"value":2026},"The connection has no ",{"type":658,"tag":695,"props":2028,"children":2029},{},[2030],{"type":663,"value":971},{"type":663,"value":2032},". In ChatGPT, add it to base scopes. Check that ",{"type":658,"tag":695,"props":2034,"children":2035},{},[2036],{"type":663,"value":2037},"renewal",{"type":663,"value":2039}," is not ",{"type":658,"tag":695,"props":2041,"children":2042},{},[2043],{"type":663,"value":2044},"false",{"type":663,"value":2046},". A session that ended also ends renewal.",{"type":658,"tag":784,"props":2048,"children":2049},{},[2050,2060],{"type":658,"tag":811,"props":2051,"children":2052},{},[2053,2055],{"type":663,"value":2054},"A tool result says ",{"type":658,"tag":695,"props":2056,"children":2057},{},[2058],{"type":663,"value":2059},"MCP_ACCESS_DENIED",{"type":658,"tag":811,"props":2061,"children":2062},{},[2063],{"type":663,"value":2064},"The grant, session, or client changed after the token was issued. Reconnect.",{"type":658,"tag":784,"props":2066,"children":2067},{},[2068,2085],{"type":658,"tag":811,"props":2069,"children":2070},{},[2071,2073,2078,2080],{"type":663,"value":2072},"HTTP 400 with JSON-RPC ",{"type":658,"tag":695,"props":2074,"children":2075},{},[2076],{"type":663,"value":2077},"-32022",{"type":663,"value":2079}," or ",{"type":658,"tag":695,"props":2081,"children":2082},{},[2083],{"type":663,"value":2084},"-32020",{"type":658,"tag":811,"props":2086,"children":2087},{},[2088,2090,2095],{"type":663,"value":2089},"The client does not send the ",{"type":658,"tag":695,"props":2091,"children":2092},{},[2093],{"type":663,"value":2094},"MCP-Protocol-Version: 2026-07-28",{"type":663,"value":2096}," header. Only the modern protocol is supported.",{"type":658,"tag":784,"props":2098,"children":2099},{},[2100,2105],{"type":658,"tag":811,"props":2101,"children":2102},{},[2103],{"type":663,"value":2104},"New tools do not appear",{"type":658,"tag":811,"props":2106,"children":2107},{},[2108],{"type":663,"value":2109},"Refresh the host's tool list and start a new conversation.",{"title":2111,"searchDepth":2112,"depth":2112,"links":2113},"",4,[2114,2116,2117,2118,2119,2120,2121,2122],{"id":675,"depth":2115,"text":678},2,{"id":771,"depth":2115,"text":774},{"id":986,"depth":2115,"text":989},{"id":1115,"depth":2115,"text":1118},{"id":1278,"depth":2115,"text":1281},{"id":1362,"depth":2115,"text":1365},{"id":1808,"depth":2115,"text":1811},{"id":1849,"depth":2115,"text":1852},"markdown","docs",{"source":2126,"path":2127,"stem":2128,"dir":2129,"extension":2130},"content","docs\u002F3.build\u002F7.agents\u002F3.connect-chatgpt-and-claude.md","docs\u002F3.build\u002F7.agents\u002F3.connect-chatgpt-and-claude","agents","md",{"requestedPath":411,"resolvedPath":411,"alternates":2132},[],{"requested":2134,"resolved":2135,"usedFallback":6},{},{"locale":8},{"previous":2137,"next":2139},{"title":401,"id":402,"canonicalKey":403,"locale":8,"draft":6,"navigation":2138,"icon":248,"path":405},{"icon":248},{"title":413,"id":414,"canonicalKey":415,"locale":8,"draft":6,"navigation":2140,"icon":108,"path":417},{"icon":108},{"left":2142,"top":2142,"width":2143,"height":2143,"rotate":2142,"vFlip":6,"hFlip":6,"body":2144},0,24,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 19h8M4 17l6-6l-6-6\"\u002F>",{"left":2142,"top":2142,"width":2146,"height":2146,"rotate":2142,"vFlip":6,"hFlip":6,"body":2147},256,"\u003Cpath fill=\"#3178c6\" d=\"M20 0h216c11.046 0 20 8.954 20 20v216c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20V20C0 8.954 8.954 0 20 0\"\u002F>\u003Cpath fill=\"#fff\" d=\"M150.518 200.475v27.62q6.738 3.453 15.938 5.179T185.849 235q9.934 0 18.874-1.899t15.678-6.257q6.738-4.359 10.669-11.394q3.93-7.033 3.93-17.391q0-7.51-2.246-13.163a30.8 30.8 0 0 0-6.479-10.055q-4.232-4.402-10.149-7.898t-13.347-6.602q-5.442-2.245-9.761-4.359t-7.342-4.316q-3.024-2.2-4.665-4.661t-1.641-5.567q0-2.848 1.468-5.135q1.469-2.288 4.147-3.927t6.565-2.547q3.887-.906 8.638-.906q3.456 0 7.299.518q3.844.517 7.732 1.597a54 54 0 0 1 7.558 2.719a41.7 41.7 0 0 1 6.781 3.797v-25.807q-6.306-2.417-13.778-3.582T198.633 107q-9.847 0-18.658 2.115q-8.811 2.114-15.506 6.602q-6.694 4.49-10.582 11.437Q150 134.102 150 143.769q0 12.342 7.127 21.06t21.638 14.759a292 292 0 0 1 10.625 4.575q4.924 2.244 8.509 4.66t5.658 5.265t2.073 6.474a9.9 9.9 0 0 1-1.296 4.963q-1.295 2.287-3.93 3.97t-6.565 2.632t-9.2.95q-8.983 0-17.794-3.151t-16.327-9.451m-46.036-68.733H140V109H41v22.742h35.345V233h28.137z\"\u002F>",{"left":2142,"top":2142,"width":2143,"height":2143,"rotate":2142,"vFlip":6,"hFlip":6,"body":2149},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"8\" height=\"4\" x=\"8\" y=\"2\" rx=\"1\" ry=\"1\"\u002F>\u003Cpath d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"\u002F>\u003C\u002Fg>",1790591510925]