{"templateId":"GuidePage","sharedDataIds":{"sidebar":"sidebar-mcp-server/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["callout","guide-step"]},"type":"markdown"},"seo":{"title":"Connect AI apps to hosted MCP","description":"Developer API, partner integration, MCP, SDK, and customer help center.","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"connect-ai-apps-to-hosted-mcp","__idx":0},"children":["Connect AI apps to hosted MCP"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Hosted MCP turns your Karzoun workspace into ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["live tools"]}," for cloud AI agents — the same GraphQL operations you use in the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://karzoun.chat/developer/playground"},"children":["Playground"]},", exposed as named MCP tools an LLM can call on your behalf."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use this guide when the AI app runs in the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["cloud"]}," (Claude.ai, Manus, ChatGPT, remote Cursor) and must reach Karzoun over ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["HTTPS"]},", not ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["npx"]}," on your laptop."]},{"$$mdtype":"Tag","name":"Callout","attributes":{"type":"tip","title":"In-app setup"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Open ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Developer → MCP setup"]}," in Karzoun (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/developer/mcp-setup"]},") for your tenant-specific endpoint URL and a copy-ready ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["initialize"]}," curl example."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"your-connection-details","__idx":1},"children":["Your connection details"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Collect these once before connecting any client:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Value"},"children":["Value"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["MCP URL"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://{subdomain}.api.karzoun.chat/mcp"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Auth header"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["x-app-token: YOUR_APP_JWT"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Transport"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Streamable HTTP (POST + optional GET stream)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Token source"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Developer → Apps"]}," — ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/developers/getting-started/authentication"},"children":["authentication guide"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"# Quick sanity check (save mcp-session-id from response headers)\ncurl -sD - -X POST 'https://YOUR.api.karzoun.chat/mcp' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Accept: application/json, text/event-stream' \\\n  -H 'x-app-token: YOUR_TOKEN' \\\n  -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{},\"clientInfo\":{\"name\":\"test\",\"version\":\"1.0.0\"}}}'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Full handshake: ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/mcp-server/setup/hosted"},"children":["Hosted MCP"]},"."]},{"$$mdtype":"Tag","name":"Callout","attributes":{"type":"warning","title":"Server-side tokens only"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Never paste app tokens into browser extensions, shared ChatGPT configs, or client-side code. Connect from a trusted AI host or your own backend. See ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/mcp-server/setup/security"},"children":["Security"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"what-you-unlock","__idx":2},"children":["What you unlock"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Karzoun exposes ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["75+ tools"]}," mapped 1:1 to the public GraphQL API. The agent does not need to invent query syntax — it calls tools by operation name (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["customers"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tasksAdd"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["webhooks"]},", …)."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Browse the full list: ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/mcp-server/tools/_generated/catalog"},"children":["tool catalog"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"by-domain","__idx":3},"children":["By domain"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Domain"},"children":["Domain"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Example tools"},"children":["Example tools"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"What an agent can do"},"children":["What an agent can do"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Contacts & CRM"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["customers"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["companies"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tags"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tagsTag"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Look up people, segment lists, apply tags"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Inbox"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["conversations"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["conversationMessageAdd"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Read threads, draft or send replies (within app scope)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Tasks"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tasks"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tasksAdd"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tasksBoards"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["List work, create follow-ups, inspect boards"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Webhooks"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["webhooks"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["webhooksAdd"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Register outbound event subscriptions"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Knowledge base"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["knowledgeBaseSearch"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["knowledgeBaseArticles"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ground answers in your help content"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Apps"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["apps"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["appsAdd"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Inspect or rotate integration credentials (admin scope)"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"prompts-that-show-the-power","__idx":4},"children":["Prompts that show the power"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Once connected, try natural-language requests like:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["\"List my 10 most recently updated customers and summarize their tags.\""]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["\"Find open tasks assigned to me on the Sales board and group by due date.\""]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["\"Search the knowledge base for return policy and draft a short customer reply.\""]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["\"Show webhook subscriptions for customer events — which URLs are active?\""]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["\"Find the conversation with alice@example.com and summarize the last 5 messages.\""]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Pair MCP with ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/mcp-server/guides/agent-patterns"},"children":["agent patterns"]}," so the model reads before it mutates."]},{"$$mdtype":"Tag","name":"Callout","attributes":{"type":"tip","title":"Screenshot / video placeholder"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Coming soon: screen recording — connect hosted MCP, then run a CRM lookup + tag workflow in one prompt."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"choose-the-right-client","__idx":5},"children":["Choose the right client"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Client"},"children":["Client"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Local stdio"},"children":["Local stdio"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Hosted /mcp"},"children":["Hosted ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/mcp"]}]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Auth Karzoun expects"},"children":["Auth Karzoun expects"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#cursor-remote"},"children":["Cursor"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes (recommended for dev)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["x-app-token"]}," header"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/mcp-server/setup/claude-desktop"},"children":["Claude Desktop"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Remote via Connectors UI"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Header or OAuth (client-dependent)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#claudeai"},"children":["Claude.ai"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["—"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Custom connector URL; see auth note below"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#manus"},"children":["Manus"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["—"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["HTTP + API key / custom headers"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#chatgpt-apps--connectors"},"children":["ChatGPT Apps"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes (remote only)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Often OAuth 2.1 — see caveat"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#claude-code"},"children":["Claude Code"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["—"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["HTTP transport + headers"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Your backend"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["—"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["x-app-token"]}," on every request"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Rule of thumb:"]}," If the client lets you set ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["custom HTTP headers"]},", hosted Karzoun MCP works today. If the client only supports ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["OAuth discovery"]}," (common for ChatGPT Apps), you need a small proxy or a backend agent until OAuth is available on Karzoun."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"claudeai","__idx":6},"children":["Claude.ai"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Claude on the web supports ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["custom remote MCP connectors"]}," (Settings → Connectors → Add custom connector)."]},{"$$mdtype":"Tag","name":"Step","attributes":{"number":1,"title":"Create an app token"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In Karzoun: ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Developer → Apps"]}," → create an app with the permissions your agent needs (start read-only: customers, tags, tasks)."]}]},{"$$mdtype":"Tag","name":"Step","attributes":{"number":2,"title":"Add the connector"},"children":[{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Open ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://claude.ai/settings/connectors"},"children":["Claude Connectors"]}," (or ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Admin → Connectors"]}," on Team/Enterprise)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Add custom connector"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Server URL:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://{subdomain}.api.karzoun.chat/mcp"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If the UI offers ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Advanced"]}," auth fields and your plan supports static credentials, prefer routing through a header-aware client (Cursor remote, Manus, or your backend) until OAuth is documented for Karzoun."]}]}]},{"$$mdtype":"Tag","name":"Step","attributes":{"number":3,"title":"Enable in chat"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["+"]}," menu in a conversation → ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Connectors"]}," → enable Karzoun for that chat."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Test: ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["\"Using Karzoun tools, run currentUser and list my first 5 tags.\""]}]}]},{"$$mdtype":"Tag","name":"Callout","attributes":{"type":"info","title":"Claude Desktop vs Claude.ai"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Claude Desktop"]}," for local coding is still best with ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/mcp-server/setup/claude-desktop"},"children":["stdio"]},". ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Remote connectors"]}," in Claude.ai are for cloud sessions — do not add the HTTPS URL to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["claude_desktop_config.json"]},"; use the Connectors UI instead."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"manus","__idx":7},"children":["Manus"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://manus.im/"},"children":["Manus"]}," supports ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Custom MCP servers"]}," over HTTP — a strong fit for hosted Karzoun because you can point at a public ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/mcp"]}," URL and supply credentials."]},{"$$mdtype":"Tag","name":"Step","attributes":{"number":1,"title":"Open Custom MCP"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Settings → Integrations → Custom MCP"]}," (or ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["+ Add custom MCP → Direct configuration"]},")."]}]},{"$$mdtype":"Tag","name":"Step","attributes":{"number":2,"title":"Enter server details"},"children":[{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Value"},"children":["Value"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Name"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Karzoun"]}," (or your workspace name)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Transport"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["HTTP"]}," / Streamable HTTP"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Server URL"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://{subdomain}.api.karzoun.chat/mcp"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Authentication"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["API key / Bearer / custom — map to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["x-app-token"]}," if the UI exposes a custom header field"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If Manus only offers a single ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["API key"]}," field and sends ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Authorization: Bearer"]},", use a thin reverse proxy on your infrastructure that translates ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Authorization: Bearer <token>"]}," → ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["x-app-token: <token>"]}," (advanced; keep the proxy private)."]}]},{"$$mdtype":"Tag","name":"Step","attributes":{"number":3,"title":"Test and use"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Manus verifies the server and lists discovered tools. Reference Karzoun in prompts:"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["\"Pull my top 10 customers by last updated date and create a Manus doc summarizing their tags.\""]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Official reference: ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://manus.im/docs/integrations/custom-mcp"},"children":["Manus custom MCP docs"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"chatgpt-apps--connectors","__idx":8},"children":["ChatGPT Apps & Connectors"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["OpenAI supports ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["remote MCP"]}," through ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Apps / Connectors"]}," (Developer Mode in ChatGPT settings). ChatGPT connects from OpenAI's cloud — ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["local stdio does not work"]},"."]},{"$$mdtype":"Tag","name":"Step","attributes":{"number":1,"title":"Enable developer access"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In ChatGPT: ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Settings → Apps & Connectors"]}," (or ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Connectors → Advanced"]},") → enable ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Developer mode"]}," if available on your plan."]}]},{"$$mdtype":"Tag","name":"Step","attributes":{"number":2,"title":"Add your MCP URL"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Create a new app/connector and paste:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"https://{subdomain}.api.karzoun.chat/mcp\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Review discovered tools before enabling the app in conversations."]}]},{"$$mdtype":"Tag","name":"Callout","attributes":{"type":"warning","title":"OAuth requirement"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Many ChatGPT connector flows expect ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["OAuth 2.1"]}," with dynamic client registration. Karzoun hosted MCP authenticates with ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["x-app-token"]}]}," (same as the public GraphQL API), not OAuth discovery endpoints."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What works today:"]}," connect via ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"#manus"},"children":["Manus"]},", ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"#cursor-remote"},"children":["Cursor remote"]},", ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"#claude-code"},"children":["Claude Code"]},", or your own backend agent calling ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/mcp"]}," directly."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["For ChatGPT specifically:"]}," if connector setup fails at authentication, run Karzoun tools from a backend worker (your server holds the token) or use an MCP gateway that adds OAuth in front of Karzoun. We will document first-party OAuth for ChatGPT when available."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"cursor-remote","__idx":9},"children":["Cursor (remote)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For teams that prefer ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["not"]}," to run ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["npx"]}," locally, Cursor supports ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["remote MCP"]}," via ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["url"]}," + ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["headers"]}," in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["mcp.json"]},"."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"mcpServers\": {\n    \"karzoun-hosted\": {\n      \"url\": \"https://YOUR_SUBDOMAIN.api.karzoun.chat/mcp\",\n      \"headers\": {\n        \"x-app-token\": \"${env:KARZOUN_APP_TOKEN}\"\n      }\n    }\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Export ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["KARZOUN_APP_TOKEN"]}," in your shell profile (desktop apps may not load ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".zshrc"]}," — use system env or Cursor's supported secret patterns)."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Cursor Settings → MCP"]}," should show ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["connected"]}," with ~75 tools. Prefer ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/mcp-server/setup/cursor"},"children":["local stdio"]}," for offline development; use ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["hosted"]}," when ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["npx"]}," is blocked or you want a single shared endpoint."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Docs: ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://cursor.com/docs/mcp"},"children":["Cursor MCP — remote servers"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"claude-code","__idx":10},"children":["Claude Code"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.anthropic.com/en/docs/claude-code"},"children":["Claude Code"]}," can register HTTP MCP servers from the CLI:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"claude mcp add --transport http karzoun \\\n  https://YOUR_SUBDOMAIN.api.karzoun.chat/mcp \\\n  --header \"x-app-token: YOUR_APP_TOKEN\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use a project ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".mcp.json"]}," for repo-scoped access. Rotate tokens via ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Developer → Apps"]}," if the CLI config is shared."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"build-your-own-agent","__idx":11},"children":["Build your own agent"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Any stack that speaks ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Streamable HTTP MCP"]}," can call Karzoun:"]},{"$$mdtype":"Tag","name":"Mermaid","attributes":{"data-language":"mermaid","diagramSource":"flowchart LR\n  User[User / trigger] --> Agent[Your agent runtime]\n  Agent -->|POST /mcp + x-app-token| Karzoun[Karzoun gateway]\n  Karzoun --> GQL[GraphQL API]\n","diagramHtml":"<div class=\"mermaid\" data-processed=\"true\"><svg id=\"mermaid-1782219444410\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" class=\"flowchart\" style=\"max-width: 1061.796875px;\" viewBox=\"0 0 1061.796875 70\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>#mermaid-1782219444410{font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-1782219444410 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-1782219444410 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-1782219444410 .error-icon{fill:#552222;}#mermaid-1782219444410 .error-text{fill:#552222;stroke:#552222;}#mermaid-1782219444410 .edge-thickness-normal{stroke-width:1px;}#mermaid-1782219444410 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1782219444410 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1782219444410 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-1782219444410 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1782219444410 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1782219444410 .marker{fill:#333333;stroke:#333333;}#mermaid-1782219444410 .marker.cross{stroke:#333333;}#mermaid-1782219444410 svg{font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;}#mermaid-1782219444410 p{margin:0;}#mermaid-1782219444410 .label{font-family:\"trebuchet ms\",verdana,arial,sans-serif;color:#333;}#mermaid-1782219444410 .cluster-label text{fill:#333;}#mermaid-1782219444410 .cluster-label span{color:#333;}#mermaid-1782219444410 .cluster-label span p{background-color:transparent;}#mermaid-1782219444410 .label text,#mermaid-1782219444410 span{fill:#333;color:#333;}#mermaid-1782219444410 .node rect,#mermaid-1782219444410 .node circle,#mermaid-1782219444410 .node ellipse,#mermaid-1782219444410 .node polygon,#mermaid-1782219444410 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-1782219444410 .rough-node .label text,#mermaid-1782219444410 .node .label text,#mermaid-1782219444410 .image-shape .label,#mermaid-1782219444410 .icon-shape .label{text-anchor:middle;}#mermaid-1782219444410 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-1782219444410 .rough-node .label,#mermaid-1782219444410 .node .label,#mermaid-1782219444410 .image-shape .label,#mermaid-1782219444410 .icon-shape .label{text-align:center;}#mermaid-1782219444410 .node.clickable{cursor:pointer;}#mermaid-1782219444410 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-1782219444410 .arrowheadPath{fill:#333333;}#mermaid-1782219444410 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-1782219444410 .flowchart-link{stroke:#333333;fill:none;}#mermaid-1782219444410 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-1782219444410 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-1782219444410 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-1782219444410 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-1782219444410 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-1782219444410 .cluster text{fill:#333;}#mermaid-1782219444410 .cluster span{color:#333;}#mermaid-1782219444410 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-1782219444410 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-1782219444410 rect.text{fill:none;stroke-width:0;}#mermaid-1782219444410 .icon-shape,#mermaid-1782219444410 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-1782219444410 .icon-shape p,#mermaid-1782219444410 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-1782219444410 .icon-shape rect,#mermaid-1782219444410 .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-1782219444410 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-1782219444410 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-1782219444410 :root{--mermaid-font-family:\"trebuchet ms\",verdana,arial,sans-serif;}</style><g><marker id=\"mermaid-1782219444410_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"mermaid-1782219444410_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"mermaid-1782219444410_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"mermaid-1782219444410_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"mermaid-1782219444410_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"mermaid-1782219444410_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><g class=\"root\"><g class=\"clusters\"></g><g class=\"edgePaths\"><path d=\"M166.172,35L170.339,35C174.505,35,182.839,35,190.505,35C198.172,35,205.172,35,208.672,35L212.172,35\" id=\"L_User_Agent_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_User_Agent_0\" data-points=\"W3sieCI6MTY2LjE3MTg3NSwieSI6MzV9LHsieCI6MTkxLjE3MTg3NSwieSI6MzV9LHsieCI6MjE2LjE3MTg3NSwieSI6MzV9XQ==\" marker-end=\"url(#mermaid-1782219444410_flowchart-v2-pointEnd)\"></path><path d=\"M421.188,35L441.111,35C461.034,35,500.88,35,540.06,35C579.24,35,617.753,35,637.009,35L656.266,35\" id=\"L_Agent_Karzoun_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_Agent_Karzoun_0\" data-points=\"W3sieCI6NDIxLjE4NzUsInkiOjM1fSx7IngiOjU0MC43MjY1NjI1LCJ5IjozNX0seyJ4Ijo2NjAuMjY1NjI1LCJ5IjozNX1d\" marker-end=\"url(#mermaid-1782219444410_flowchart-v2-pointEnd)\"></path><path d=\"M847.969,35L852.135,35C856.302,35,864.635,35,872.302,35C879.969,35,886.969,35,890.469,35L893.969,35\" id=\"L_Karzoun_GQL_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_Karzoun_GQL_0\" data-points=\"W3sieCI6ODQ3Ljk2ODc1LCJ5IjozNX0seyJ4Ijo4NzIuOTY4NzUsInkiOjM1fSx7IngiOjg5Ny45Njg3NSwieSI6MzV9XQ==\" marker-end=\"url(#mermaid-1782219444410_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_User_Agent_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(540.7265625, 35)\"><g class=\"label\" data-id=\"L_Agent_Karzoun_0\" transform=\"translate(-94.5390625, -12)\"><foreignObject width=\"189.078125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>POST /mcp + x-app-token</p></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_Karzoun_GQL_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"flowchart-User-0\" transform=\"translate(87.0859375, 35)\"><rect class=\"basic label-container\" style=\"\" x=\"-79.0859375\" y=\"-27\" width=\"158.171875\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-49.0859375, -12)\"><rect></rect><foreignObject width=\"98.171875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>User / trigger</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"flowchart-Agent-1\" transform=\"translate(318.6796875, 35)\"><rect class=\"basic label-container\" style=\"\" x=\"-102.5078125\" y=\"-27\" width=\"205.015625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-72.5078125, -12)\"><rect></rect><foreignObject width=\"145.015625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Your agent runtime</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"flowchart-Karzoun-3\" transform=\"translate(754.1171875, 35)\"><rect class=\"basic label-container\" style=\"\" x=\"-93.8515625\" y=\"-27\" width=\"187.703125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-63.8515625, -12)\"><rect></rect><foreignObject width=\"127.703125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Karzoun gateway</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"flowchart-GQL-5\" transform=\"translate(975.8828125, 35)\"><rect class=\"basic label-container\" style=\"\" x=\"-77.9140625\" y=\"-27\" width=\"155.828125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-47.9140625, -12)\"><rect></rect><foreignObject width=\"95.828125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>GraphQL API</p></span></div></foreignObject></g></g></g></g></g></svg></div>"},"children":["flowchart LR\n  User[User / trigger] --> Agent[Your agent runtime]\n  Agent -->|POST /mcp + x-app-token| Karzoun[Karzoun gateway]\n  Karzoun --> GQL[GraphQL API]\n"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Typical hosts: LangGraph, custom Node/Python workers, Zapier-style automations, internal Slack bots."]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST initialize"]}," → capture ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["mcp-session-id"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST tools/list"]}," → discover operations"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST tools/call"]}," → execute with GraphQL-shaped arguments"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Examples and curl: ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/mcp-server/setup/hosted"},"children":["Hosted MCP"]},". Prompt design: ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/mcp-server/guides/agent-patterns"},"children":["Agent patterns"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"scope-tokens-for-safer-agents","__idx":12},"children":["Scope tokens for safer agents"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Before connecting a powerful client:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Goal"},"children":["Goal"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"App permissions"},"children":["App permissions"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Optional env"},"children":["Optional env"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Read-only CRM assistant"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Query customers, tags, companies"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["KARZOUN_MCP_TOOL_PREFIX"]}," on stdio only"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Support triage"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Conversations + knowledge base read"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Narrow app scope in UI"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Integration admin"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Webhooks + apps mutations"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Separate high-privilege token"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Start with a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["read-only"]}," app, validate prompts, then issue a broader token if needed."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"troubleshooting-connectors","__idx":13},"children":["Troubleshooting connectors"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Symptom"},"children":["Symptom"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Likely cause"},"children":["Likely cause"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Fix"},"children":["Fix"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["401 Missing ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["x-app-token"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Header not sent"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Add header in client config or proxy"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["400 invalid session"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Skipped ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["initialize"]}," or stale session"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Re-run handshake; see ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/mcp-server/setup/hosted"},"children":["Hosted MCP"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Tools empty / permission error"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["App scope too narrow"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Widen permissions; test in Playground"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Client cannot reach URL"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Private network / localhost"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Use public ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["*.api.karzoun.chat"]}," only"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["ChatGPT auth fails"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["OAuth-only connector"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Use Manus, Cursor remote, or backend agent"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["More: ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/mcp-server/guides/troubleshooting"},"children":["Troubleshooting"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"next-steps","__idx":14},"children":["Next steps"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/mcp-server/setup/hosted"},"children":["Hosted MCP"]}," — Protocol details and curl reference"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/mcp-server/guides/agent-patterns"},"children":["Agent patterns"]}," — Reliable multi-step prompts"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/mcp-server/tools/_generated/catalog"},"children":["Tool catalog"]}," — Every operation name"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/mcp-server/setup/security"},"children":["Security"]}," — Token rotation and incident response"]}]}]},"headings":[{"value":"Connect AI apps to hosted MCP","id":"connect-ai-apps-to-hosted-mcp","depth":1},{"value":"Your connection details","id":"your-connection-details","depth":2},{"value":"What you unlock","id":"what-you-unlock","depth":2},{"value":"By domain","id":"by-domain","depth":3},{"value":"Prompts that show the power","id":"prompts-that-show-the-power","depth":3},{"value":"Choose the right client","id":"choose-the-right-client","depth":2},{"value":"Claude.ai","id":"claudeai","depth":2},{"value":"Manus","id":"manus","depth":2},{"value":"ChatGPT Apps & Connectors","id":"chatgpt-apps--connectors","depth":2},{"value":"Cursor (remote)","id":"cursor-remote","depth":2},{"value":"Claude Code","id":"claude-code","depth":2},{"value":"Build your own agent","id":"build-your-own-agent","depth":2},{"value":"Scope tokens for safer agents","id":"scope-tokens-for-safer-agents","depth":2},{"value":"Troubleshooting connectors","id":"troubleshooting-connectors","depth":2},{"value":"Next steps","id":"next-steps","depth":2}],"frontmatter":{"title":"AI app connectors","titleTranslationKey":"sidebar.mcp.aiConnectors","audience":"developer","status":"published","locales":["en","ar"],"template":"GuidePage","seo":{"title":"Connect AI apps to hosted MCP"}},"lastModified":"2026-06-23T14:20:16.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/mcp-server/setup/ai-connectors","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}