[{"data":1,"prerenderedAt":668},["ShallowReactive",2],{"docs.navigation":3,"docs.content.mcp-authentication":342,"docs.section.mcp":651,"docs.prevnext.mcp-authentication":665},[4,46,100,137,158,192,253,260,279,296,317],{"id":5,"title":6,"position":7,"children":8},32,"Introduction",0,[9,13,17,22,27,32,36,41],{"id":10,"title":6,"slug":11,"position":7,"directory":12},34,"getting-started","introduction",{"id":14,"title":15,"slug":16,"position":7,"directory":12},35,"Quickstart guide","quickstart-guide",{"id":18,"title":19,"slug":20,"position":21,"directory":12},37,"What is a bot?","what-is-a-bot",3,{"id":23,"title":24,"slug":25,"position":26,"directory":12},39,"What is a data source?","what-is-a-data-source",4,{"id":28,"title":29,"slug":30,"position":31,"directory":12},38,"What is a channel?","what-is-a-channel",6,{"id":33,"title":34,"slug":35,"position":31,"directory":12},40,"What is a power-up?","what-is-a-power-up",{"id":37,"title":38,"slug":39,"position":40,"directory":12},33,"FAQ","faq",7,{"id":42,"title":43,"slug":44,"position":45,"directory":12},36,"Troubleshooting","troubleshooting",8,{"id":7,"title":47,"position":48,"children":49},"Bots",1,[50,54,58,62,66,70,74,77,81,84,87,92,96],{"id":21,"title":51,"slug":52,"position":7,"directory":53},"Bot advanced settings","bot-advanced-settings","bots",{"id":55,"title":56,"slug":57,"position":48,"directory":53},10,"Prompt engineering tips","prompt-engineering-tips",{"id":59,"title":60,"slug":61,"position":59,"directory":53},2,"Available models","available-models",{"id":63,"title":64,"slug":65,"position":21,"directory":53},13,"Widget customisation","widget-customisation",{"id":67,"title":68,"slug":69,"position":26,"directory":53},12,"Webhooks","webhooks",{"id":71,"title":72,"slug":73,"position":71,"directory":53},5,"Custom domains","custom-domains",{"id":26,"title":75,"slug":76,"position":31,"directory":53},"Bot testing","bot-testing",{"id":78,"title":79,"slug":80,"position":31,"directory":53},11,"SDK","sdk",{"id":40,"title":82,"slug":83,"position":40,"directory":53},"Human takeover","human-takeover",{"id":31,"title":85,"slug":86,"position":55,"directory":53},"Duplicating bots","duplicating-bots",{"id":88,"title":89,"slug":90,"position":91,"directory":53},9,"My Chats","my-chats",15,{"id":48,"title":93,"slug":94,"position":95,"directory":53},"Analytics","analytics",16,{"id":45,"title":97,"slug":98,"position":99,"directory":53},"Lead capture","lead-capture",20,{"id":101,"title":102,"position":59,"children":103},23,"Data sources",[104,109,113,117,121,125,129,133],{"id":105,"title":106,"slug":107,"position":7,"directory":108},25,"File","file-data-source","data-sources",{"id":110,"title":111,"slug":112,"position":7,"directory":108},28,"Notion","notion-data-source",{"id":114,"title":115,"slug":116,"position":59,"directory":108},30,"Website","website-data-source",{"id":118,"title":119,"slug":120,"position":21,"directory":108},31,"YouTube","youtube-data-source",{"id":122,"title":123,"slug":124,"position":26,"directory":108},29,"RSS","rss-data-source",{"id":126,"title":127,"slug":128,"position":71,"directory":108},27,"Manual","manual-data-source",{"id":130,"title":131,"slug":132,"position":88,"directory":108},24,"Data source best practices","data-source-best-practices",{"id":134,"title":135,"slug":136,"position":55,"directory":108},26,"Keeping your bot up to date","keeping-your-bot-up-to-date",{"id":138,"title":139,"position":21,"children":140},41,"MCP",[141,146,150,154],{"id":142,"title":143,"slug":144,"position":48,"directory":145},44,"Getting started","mcp-getting-started","mcp",{"id":147,"title":148,"slug":149,"position":59,"directory":145},42,"Authentication","mcp-authentication",{"id":151,"title":152,"slug":153,"position":21,"directory":145},45,"Tools","mcp-tools",{"id":155,"title":156,"slug":157,"position":26,"directory":145},43,"Build a bot","mcp-build-a-bot",{"id":159,"title":160,"position":26,"children":161},14,"Channels",[162,167,171,175,178,181,185,188],{"id":163,"title":164,"slug":165,"position":7,"directory":166},21,"Web","web-channel","channels",{"id":168,"title":169,"slug":170,"position":48,"directory":166},18,"Slack","slack-bot-channel",{"id":172,"title":173,"slug":174,"position":48,"directory":166},19,"Slack (V1 Deprecated)","slack-channel",{"id":95,"title":176,"slug":177,"position":59,"directory":166},"Discord","discord-channel",{"id":99,"title":179,"slug":180,"position":21,"directory":166},"Telegram","telegram-channel",{"id":182,"title":183,"slug":184,"position":26,"directory":166},22,"WhatsApp","whatsapp-channel",{"id":91,"title":186,"slug":187,"position":71,"directory":166},"API","api-channel",{"id":189,"title":190,"slug":191,"position":45,"directory":166},17,"Email","email-channel",{"id":193,"title":194,"position":26,"children":195},52,"Power-ups",[196,201,205,209,213,217,221,225,229,233,237,241,245,249],{"id":197,"title":198,"slug":199,"position":7,"directory":200},54,"Browse Webpage Power-up","browse-webpage-power-up","power-ups",{"id":202,"title":203,"slug":204,"position":7,"directory":200},58,"Google Search Power-up","google-search-power-up",{"id":206,"title":207,"slug":208,"position":7,"directory":200},60,"Power-up basics","power-up-basics",{"id":210,"title":211,"slug":212,"position":7,"directory":200},65,"Use API Power-up","use-api-power-up",{"id":214,"title":215,"slug":216,"position":48,"directory":200},66,"Zapier Power-up","zapier-power-up",{"id":218,"title":219,"slug":220,"position":59,"directory":200},59,"Notion Power-ups","notion-power-ups",{"id":222,"title":223,"slug":224,"position":21,"directory":200},64,"Talk to a Human Power-up","talk-to-a-human",{"id":226,"title":227,"slug":228,"position":26,"directory":200},57,"Email Power-ups","email-power-up",{"id":230,"title":231,"slug":232,"position":71,"directory":200},62,"Send an email","send-email-power-up",{"id":234,"title":235,"slug":236,"position":55,"directory":200},63,"Slack Power-ups","slack-power-ups",{"id":238,"title":239,"slug":240,"position":78,"directory":200},55,"Discord Power-ups","discord-power-ups",{"id":242,"title":243,"slug":244,"position":67,"directory":200},53,"Bot-to-bot power-up","bot-to-bot-power-up",{"id":246,"title":247,"slug":248,"position":63,"directory":200},56,"Display power-ups","display-power-ups",{"id":250,"title":251,"slug":252,"position":159,"directory":200},61,"Power-up display modes","power-up-display-modes",{"id":254,"title":255,"position":71,"children":256},67,"Tasks",[257],{"id":258,"title":255,"slug":259,"position":7,"directory":259},68,"tasks",{"id":261,"title":262,"position":31,"children":263},69,"Teams",[264,267,271,275],{"id":265,"title":262,"slug":266,"position":7,"directory":266},70,"teams",{"id":268,"title":269,"slug":270,"position":48,"directory":266},71,"Inviting team members","teams-inviting",{"id":272,"title":273,"slug":274,"position":59,"directory":266},72,"Managing team members","teams-member-roles",{"id":276,"title":277,"slug":278,"position":21,"directory":266},73,"Transferring bots","teams-transferring-bots",{"id":280,"title":281,"position":31,"children":282},79,"Use cases",[283,288,292],{"id":284,"title":285,"slug":286,"position":7,"directory":287},82,"Build a support bot for your website","support-bot","use-cases",{"id":289,"title":290,"slug":291,"position":48,"directory":287},80,"Build an internal knowledge bot for your team","internal-knowledge-bot",{"id":293,"title":294,"slug":295,"position":59,"directory":287},81,"Build a lead capture bot for your website","lead-capture-bot",{"id":297,"title":298,"position":40,"children":299},74,"Usage and billing",[300,305,309,313],{"id":301,"title":302,"slug":303,"position":7,"directory":304},76,"How does billing work?","how-does-billing-work","usage-and-billing",{"id":306,"title":307,"slug":308,"position":7,"directory":304},78,"What are storage tokens?","what-are-storage-tokens",{"id":310,"title":311,"slug":312,"position":21,"directory":304},77,"What are message tokens?","what-are-message-tokens",{"id":314,"title":315,"slug":316,"position":26,"directory":304},75,"Add-ons","addons",{"id":318,"title":319,"position":45,"children":320},46,"Plans",[321,326,330,334,338],{"id":322,"title":323,"slug":324,"position":7,"directory":325},49,"Free","free-plan","plans",{"id":327,"title":328,"slug":329,"position":48,"directory":325},47,"Basic","basic-plan",{"id":331,"title":332,"slug":333,"position":59,"directory":325},51,"Standard","standard-plan",{"id":335,"title":336,"slug":337,"position":21,"directory":325},50,"Pro","pro-plan",{"id":339,"title":340,"slug":341,"position":26,"directory":325},48,"Enterprise","enterprise-plan",{"id":343,"title":148,"body":344,"description":642,"extension":643,"longTitle":644,"meta":645,"navigation":646,"path":647,"position":59,"seo":648,"stem":649,"__hash__":650},"docs\u002Fdocs\u002Fmcp\u002Fmcp-authentication.md",{"type":345,"value":346,"toc":634},"minimark",[347,351,368,373,376,397,400,405,408,428,431,439,443,446,450,453,470,555,558,564,568,616,630],[348,349,350],"p",{},"The Chat Thing MCP server accepts two kinds of credential. Both resolve to the same permissions - whichever you use, your agent can only do what your account can do.",[352,353,354,362],"ul",{},[355,356,357,361],"li",{},[358,359,360],"strong",{},"OAuth"," is the default for interactive clients (Claude Code, Cursor, Windsurf, VS Code). There is no key to copy: your client sends you to a browser consent screen, you approve, and the client is issued a token automatically.",[355,363,364,367],{},[358,365,366],{},"API keys"," are the escape hatch for CI, scripts and any client that cannot open a browser. You generate a key once and pass it as a bearer token.",[369,370,372],"h2",{"id":371},"oauth-connect","OAuth connect",[348,374,375],{},"When an interactive client connects for the first time, it discovers Chat Thing's OAuth configuration from the server, registers itself, and opens a browser window. On that screen you will see:",[352,377,378,385,391],{},[355,379,380,381,384],{},"The ",[358,382,383],{},"client"," that is requesting access (for example, Claude Code).",[355,386,380,387,390],{},[358,388,389],{},"team"," the agent will act on behalf of.",[355,392,380,393,396],{},[358,394,395],{},"read\u002Fwrite scope"," the agent will get.",[348,398,399],{},"Approve the request and the client is connected. Deny it and no token is issued.",[401,402,404],"h3",{"id":403},"what-the-agent-can-do","What the agent can do",[348,406,407],{},"Your token maps to the same team scoping the rest of Chat Thing uses:",[352,409,410,417],{},[355,411,412,413,416],{},"Membership of a team grants ",[358,414,415],{},"read"," access to that team.",[355,418,419,420,423,424,427],{},"Being an ",[358,421,422],{},"owner or admin"," of a team grants ",[358,425,426],{},"write"," access.",[348,429,430],{},"So an agent connected to your account can read from every team you belong to and write to the teams you administer - never more than you can do yourself.",[432,433,436],"callout",{"title":434,"type":435},"Approve only clients you trust","warning",[348,437,438],{},"The consent screen is your control point. Because any client can register itself, only approve a connection you started yourself from a client you recognise. If a consent screen appears that you did not trigger, deny it.",[401,440,442],{"id":441},"revoking-access","Revoking access",[348,444,445],{},"You can revoke a connected agent at any time from the connect flow in the app. Revoking cuts the agent's ability to refresh its access, so it loses access once its current token expires. Revoke a connection whenever you stop using a client or want to cut off access immediately.",[369,447,449],{"id":448},"api-key","API key",[348,451,452],{},"Use an API key when a browser consent flow is not possible - CI jobs, scripts, or headless agents.",[454,455,456,459,462],"ol",{},[355,457,458],{},"Open the connect flow in Chat Thing and choose the API-key path.",[355,460,461],{},"Generate a key and copy it. Treat it like a password - anyone with the key has your access.",[355,463,464,465,469],{},"Pass it to your client as a bearer token in the ",[466,467,468],"code",{},"Authorization"," header:",[471,472,477],"pre",{"className":473,"code":474,"language":475,"meta":476,"style":476},"language-json shiki shiki-themes monokai","{\n  \"mcpServers\": {\n    \"chatthing\": {\n      \"url\": \"https:\u002F\u002Fapp.chatthing.ai\u002Fmcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_API_KEY\"\n      }\n    }\n  }\n}\n","json","",[466,478,479,487,496,503,518,525,535,540,545,550],{"__ignoreMap":476},[480,481,483],"span",{"class":482,"line":48},"line",[480,484,486],{"class":485},"sCdxs","{\n",[480,488,489,493],{"class":482,"line":59},[480,490,492],{"class":491},"sOx1s","  \"mcpServers\"",[480,494,495],{"class":485},": {\n",[480,497,498,501],{"class":482,"line":21},[480,499,500],{"class":491},"    \"chatthing\"",[480,502,495],{"class":485},[480,504,505,508,511,515],{"class":482,"line":26},[480,506,507],{"class":491},"      \"url\"",[480,509,510],{"class":485},": ",[480,512,514],{"class":513},"susgL","\"https:\u002F\u002Fapp.chatthing.ai\u002Fmcp\"",[480,516,517],{"class":485},",\n",[480,519,520,523],{"class":482,"line":71},[480,521,522],{"class":491},"      \"headers\"",[480,524,495],{"class":485},[480,526,527,530,532],{"class":482,"line":31},[480,528,529],{"class":491},"        \"Authorization\"",[480,531,510],{"class":485},[480,533,534],{"class":513},"\"Bearer YOUR_API_KEY\"\n",[480,536,537],{"class":482,"line":40},[480,538,539],{"class":485},"      }\n",[480,541,542],{"class":482,"line":45},[480,543,544],{"class":485},"    }\n",[480,546,547],{"class":482,"line":88},[480,548,549],{"class":485},"  }\n",[480,551,552],{"class":482,"line":55},[480,553,554],{"class":485},"}\n",[348,556,557],{},"The key authenticates on every request, so no browser step is needed. Keys resolve to the same team scoping as OAuth.",[432,559,561],{"title":560,"type":435},"Keep keys out of source control",[348,562,563],{},"Store your key in a secret manager or environment variable, never commit it to a repository, and rotate it if it is ever exposed. You can revoke and regenerate a key from your account at any time.",[369,565,567],{"id":566},"which-should-i-use","Which should I use?",[569,570,571,584],"table",{},[572,573,574],"thead",{},[575,576,577,581],"tr",{},[578,579,580],"th",{},"Use case",[578,582,583],{},"Recommended",[585,586,587,595,602,609],"tbody",{},[575,588,589,593],{},[590,591,592],"td",{},"Coding agent on your machine (Claude Code, Cursor, Windsurf, VS Code)",[590,594,360],{},[575,596,597,600],{},[590,598,599],{},"CI pipeline or scheduled job",[590,601,449],{},[575,603,604,607],{},[590,605,606],{},"A client that cannot open a browser",[590,608,449],{},[575,610,611,614],{},[590,612,613],{},"You want revocation without touching config",[590,615,360],{},[348,617,618,619,624,625,629],{},"Once you are connected, see the ",[620,621,623],"a",{"href":622},"\u002Fdocs\u002Fmcp-tools","tool reference"," for everything the agent can do, or follow the ",[620,626,628],{"href":627},"\u002Fdocs\u002Fmcp-build-a-bot","build-a-bot guide",".",[631,632,633],"style",{},"html pre.shiki code .sCdxs, html code.shiki .sCdxs{--shiki-default:#F8F8F2}html pre.shiki code .sOx1s, html code.shiki .sOx1s{--shiki-default:#66D9EF;--shiki-default-font-style:italic}html pre.shiki code .susgL, html code.shiki .susgL{--shiki-default:#CFCFC2}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":476,"searchDepth":59,"depth":59,"links":635},[636,640,641],{"id":371,"depth":59,"text":372,"children":637},[638,639],{"id":403,"depth":21,"text":404},{"id":441,"depth":21,"text":442},{"id":448,"depth":59,"text":449},{"id":566,"depth":59,"text":567},"How Chat Thing's MCP server authenticates your agent - browser OAuth for interactive clients, and API keys for CI and headless use.","md",null,{},true,"\u002Fdocs\u002Fmcp\u002Fmcp-authentication",{"title":148,"description":642},"docs\u002Fmcp\u002Fmcp-authentication","Wt9_2DgN-JjPuMW5Iem1-IOEXxgodGztz7zLBCqXyY8",{"id":652,"title":139,"body":653,"description":476,"extension":643,"longTitle":644,"meta":660,"navigation":646,"path":661,"position":21,"seo":662,"stem":663,"__hash__":664},"docs\u002Fdocs\u002Fmcp\u002F_index.md",{"type":345,"value":654,"toc":658},[655],[656,657,139],"h1",{"id":145},{"title":476,"searchDepth":59,"depth":59,"links":659},[],{},"\u002Fdocs\u002Fmcp\u002F_index",{"title":139,"description":476},"docs\u002Fmcp\u002F_index","zsqL9ZsYL3KwgDezwFV8kWdp_Pnt6oragCh5YPaidn4",{"prev":666,"next":667},{"title":143,"slug":144,"position":48,"directory":145},{"title":152,"slug":153,"position":21,"directory":145},1783961476179]