[{"data":1,"prerenderedAt":5792},["ShallowReactive",2],{"docs-nav":3,"content-\u002Fdocs\u002Fdeveloper-hub\u002Fmcp\u002Fbuild-your-own-typescript":1653,"content-doc-\u002Fdocs\u002Fdeveloper-hub\u002Fmcp\u002Fbuild-your-own-typescript-inline":1653,"docs-nav-tree":2811,"doc-nav-siblings:%2Fdocs%2Fdeveloper-hub%2Fmcp%2Fbuild-your-own-typescript":2935},[4,8,12,16,40,44,48,82,102,106,110,1586,1590,1594,1598,1602,1625,1629,1633,1637,1641,1645,1649],{"title":5,"path":6,"stem":7},"About axciom ai","\u002F_about"," _about",{"title":9,"path":10,"stem":11},"A list of available compoenents and there variables","\u002F_components"," _components",{"title":13,"path":14,"stem":15},"Code Dashboard for browser automations","\u002F_code-dashboard","_code-dashboard",{"title":17,"path":18,"stem":19,"children":20},"Integrations","\u002F_integrations","_integrations",[21,24,28,32,36],{"title":22,"path":18,"stem":23},"The axiom.ai runner","_integrations\u002Findex",{"title":25,"path":26,"stem":27},"Integrate your browser automations with 2Captcha","\u002F_integrations\u002F2captcha","_integrations\u002F2captcha",{"title":29,"path":30,"stem":31},"Excel","\u002F_integrations\u002Fexcel","_integrations\u002Fexcel",{"title":33,"path":34,"stem":35},"Intergrate Google sheets with your browser automations","\u002F_integrations\u002Fgoogle-sheets","_integrations\u002Fgoogle-sheets",{"title":37,"path":38,"stem":39},"Integrate your browser automations and web scrapers with Zapier in Chrome.","\u002F_integrations\u002Fzap","_integrations\u002Fzap",{"title":41,"path":42,"stem":43},"Connect browser automation to Claude, ChatGPT, Gemini, and more","\u002Fai-assistant","ai-assistant",{"title":45,"path":46,"stem":47},"Build browser automations with Claude","\u002Fbuild-in-claude","build-in-claude",{"title":49,"path":50,"stem":51,"children":52},"Build With Code","\u002Fbuild-with-code","build-with-code",[53,56,74,78],{"title":54,"path":50,"stem":55},"Build browser automations with code","build-with-code\u002Findex",{"title":57,"path":58,"stem":59,"children":60},"The Browser Automation API for Humans and AI Agents | axiom.ai","\u002Fbuild-with-code\u002Fapi","build-with-code\u002Fapi\u002Findex",[61,62,66,70],{"title":57,"path":58,"stem":59},{"title":63,"path":64,"stem":65},"Cloud Browser API, Run Puppeteer & Playwright Without the Maintenance | axiom.ai","\u002Fbuild-with-code\u002Fapi\u002Fchrome","build-with-code\u002Fapi\u002Fchrome",{"title":67,"path":68,"stem":69},"Trigger No-Code Browser Automations via REST, Orchestrate API | axiom.ai","\u002Fbuild-with-code\u002Fapi\u002Forchestrate","build-with-code\u002Fapi\u002Forchestrate",{"title":71,"path":72,"stem":73},"Step API: Scrape, Click, and Type With One Call Each | axiom.ai","\u002Fbuild-with-code\u002Fapi\u002Fstep","build-with-code\u002Fapi\u002Fstep",{"title":75,"path":76,"stem":77},"Run Playwright in the Cloud, One connectOverCDP Line | axiom.ai","\u002Fbuild-with-code\u002Fplaywright","build-with-code\u002Fplaywright",{"title":79,"path":80,"stem":81},"Run Puppeteer in the Cloud, No Chromium to Maintain | axiom.ai","\u002Fbuild-with-code\u002Fpuppeteer","build-with-code\u002Fpuppeteer",{"title":83,"path":84,"stem":85,"children":86},"Build With No Code","\u002Fbuild-with-no-code","build-with-no-code",[87,90,94,98],{"title":88,"path":84,"stem":89},"Build no-code browser bots by describing them to AI","build-with-no-code\u002Findex",{"title":91,"path":92,"stem":93},"Build in Claude Code","\u002Fbuild-with-no-code\u002Fclaude","build-with-no-code\u002Fclaude",{"title":95,"path":96,"stem":97},"Build by description","\u002Fbuild-with-no-code\u002Fdescription","build-with-no-code\u002Fdescription",{"title":99,"path":100,"stem":101},"Build no-code bots step by step","\u002Fbuild-with-no-code\u002Fstep-by-step","build-with-no-code\u002Fstep-by-step",{"title":103,"path":104,"stem":105},"Customer support — docs, AI help, or talk to a human","\u002Fcustomer-support","customer-support",{"title":107,"path":108,"stem":109},"Browser-Automatisierung für Menschen und KI","\u002Fde","de",{"title":111,"path":112,"stem":113,"children":114},"Docs","\u002Fdocs","docs",[115,118,136,142,186,490,516,1582],{"title":116,"path":112,"stem":117},"Browser Automation Documentation: No-Code, Code, API | axiom","docs\u002Findex",{"title":119,"path":120,"stem":121,"children":122},"Account","\u002Fdocs\u002Faccount","docs\u002Faccount\u002Findex",[123,124,128,132],{"title":119,"path":120,"stem":121},{"title":125,"path":126,"stem":127},"Manage your account","\u002Fdocs\u002Faccount\u002Faccount","docs\u002Faccount\u002Faccount",{"title":129,"path":130,"stem":131},"Create an account","\u002Fdocs\u002Faccount\u002Fcreate-account","docs\u002Faccount\u002Fcreate-account",{"title":133,"path":134,"stem":135},"Manage your subscription","\u002Fdocs\u002Faccount\u002Fsubscription","docs\u002Faccount\u002Fsubscription",{"title":137,"path":138,"stem":139,"children":140},"Claude skill","\u002Fdocs\u002Fclaude-skill","docs\u002Fclaude-skill\u002Findex",[141],{"title":137,"path":138,"stem":139},{"title":143,"path":144,"stem":145,"children":146},"Code Dashboard","\u002Fdocs\u002Fcode","docs\u002Fcode\u002Findex",[147,148,152,156,160,164,168,182],{"title":143,"path":144,"stem":145},{"title":149,"path":150,"stem":151},"Create scripts","\u002Fdocs\u002Fcode\u002Fcreate-scripts","docs\u002Fcode\u002Fcreate-scripts",{"title":153,"path":154,"stem":155},"Dashboard","\u002Fdocs\u002Fcode\u002Fdashboard","docs\u002Fcode\u002Fdashboard",{"title":157,"path":158,"stem":159},"Live editor","\u002Fdocs\u002Fcode\u002Flive-editor","docs\u002Fcode\u002Flive-editor",{"title":161,"path":162,"stem":163},"Run reports","\u002Fdocs\u002Fcode\u002Frun-reports","docs\u002Fcode\u002Frun-reports",{"title":165,"path":166,"stem":167},"Run scripts","\u002Fdocs\u002Fcode\u002Frunning-scripts","docs\u002Fcode\u002Frunning-scripts",{"title":169,"path":170,"stem":171,"children":172},"Sample scripts","\u002Fdocs\u002Fcode\u002Fsamples","docs\u002Fcode\u002Fsamples\u002Findex",[173,174,178],{"title":169,"path":170,"stem":171},{"title":175,"path":176,"stem":177},"Enter data into a page","\u002Fdocs\u002Fcode\u002Fsamples\u002Fdata-entry","docs\u002Fcode\u002Fsamples\u002Fdata-entry",{"title":179,"path":180,"stem":181},"Navigate to a page","\u002Fdocs\u002Fcode\u002Fsamples\u002Fnavigate-to-page","docs\u002Fcode\u002Fsamples\u002Fnavigate-to-page",{"title":183,"path":184,"stem":185},"Generate an API key","\u002Fdocs\u002Fcode\u002Ftoken-generation","docs\u002Fcode\u002Ftoken-generation",{"title":187,"path":188,"stem":189,"children":190},"Developer Hub","\u002Fdocs\u002Fdeveloper-hub","docs\u002Fdeveloper-hub\u002Findex",[191,192,384,406,428,476],{"title":187,"path":188,"stem":189},{"title":193,"path":194,"stem":195,"children":196},"API","\u002Fdocs\u002Fdeveloper-hub\u002Fapi","docs\u002Fdeveloper-hub\u002Fapi\u002Findex",[197,198,202,208,212,216,238,276,366],{"title":193,"path":194,"stem":195},{"title":199,"path":200,"stem":201},"Authentication","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fauthentication","docs\u002Fdeveloper-hub\u002Fapi\u002Fauthentication",{"title":203,"path":204,"stem":205,"children":206},"Chrome API","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fcdp","docs\u002Fdeveloper-hub\u002Fapi\u002Fcdp\u002Findex",[207],{"title":203,"path":204,"stem":205},{"title":209,"path":210,"stem":211},"Programmatic signup","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fprogrammatic-signup","docs\u002Fdeveloper-hub\u002Fapi\u002Fprogrammatic-signup",{"title":213,"path":214,"stem":215},"Quickstart","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fquickstart","docs\u002Fdeveloper-hub\u002Fapi\u002Fquickstart",{"title":217,"path":218,"stem":219,"children":220},"Reference","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Freference","docs\u002Fdeveloper-hub\u002Fapi\u002Freference\u002Findex",[221,222,226,230,234],{"title":217,"path":218,"stem":219},{"title":223,"path":224,"stem":225},"Data payload format","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Freference\u002Fdata-payload","docs\u002Fdeveloper-hub\u002Fapi\u002Freference\u002Fdata-payload",{"title":227,"path":228,"stem":229},"Endpoints","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Freference\u002Fendpoints","docs\u002Fdeveloper-hub\u002Fapi\u002Freference\u002Fendpoints",{"title":231,"path":232,"stem":233},"Error codes","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Freference\u002Ferrorcodes","docs\u002Fdeveloper-hub\u002Fapi\u002Freference\u002Ferrorcodes",{"title":235,"path":236,"stem":237},"API responses","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Freference\u002Fresponses","docs\u002Fdeveloper-hub\u002Fapi\u002Freference\u002Fresponses",{"title":239,"path":240,"stem":241,"children":242},"Orchestrate API","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations","docs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Findex",[243,244,248,252,256,260,264,268,272],{"title":239,"path":240,"stem":241},{"title":245,"path":246,"stem":247},"Check run status","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Fcheck-run-status","docs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Fcheck-run-status",{"title":249,"path":250,"stem":251},"List automations","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Flist-automations","docs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Flist-automations",{"title":253,"path":254,"stem":255},"Pass input data","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Fpass-input-data","docs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Fpass-input-data",{"title":257,"path":258,"stem":259},"List run reports","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Frun-reports","docs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Frun-reports",{"title":261,"path":262,"stem":263},"Stop a run","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Fstop-a-run","docs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Fstop-a-run",{"title":265,"path":266,"stem":267},"Trigger a desktop run","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Ftrigger-a-desktop-run","docs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Ftrigger-a-desktop-run",{"title":269,"path":270,"stem":271},"Trigger an automation","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Ftrigger-an-automation","docs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Ftrigger-an-automation",{"title":273,"path":274,"stem":275},"Webhooks from a step","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Fwebhooks-from-a-step","docs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Fwebhooks-from-a-step",{"title":277,"path":278,"stem":279,"children":280},"Step API","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Findex",[281,282,286,290,294,298,302,306,310,314,318,322,326,330,334,338,342,346,350,354,358,362],{"title":277,"path":278,"stem":279},{"title":283,"path":284,"stem":285},"Click","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fclick","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fclick",{"title":287,"path":288,"stem":289},"Click and drag","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fclick-and-drag","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fclick-and-drag",{"title":291,"path":292,"stem":293},"Click engagement button","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fclick-engagement-button","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fclick-engagement-button",{"title":295,"path":296,"stem":297},"Click multiple","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fclick-multiple","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fclick-multiple",{"title":299,"path":300,"stem":301},"Close a session","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fclose-a-session","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fclose-a-session",{"title":303,"path":304,"stem":305},"Date picker","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fdate-picker","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fdate-picker",{"title":307,"path":308,"stem":309},"Enter text","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fenter-text","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fenter-text",{"title":311,"path":312,"stem":313},"Get clipboard contents","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fget-clipboard-contents","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fget-clipboard-contents",{"title":315,"path":316,"stem":317},"Go to URL","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fgoto","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fgoto",{"title":319,"path":320,"stem":321},"Hover","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fhover","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fhover",{"title":323,"path":324,"stem":325},"Integrate AI","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fintegrate-ai","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fintegrate-ai",{"title":327,"path":328,"stem":329},"Press keys","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fpress-keys","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fpress-keys",{"title":331,"path":332,"stem":333},"Restart browser","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Frestart-browser","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Frestart-browser",{"title":335,"path":336,"stem":337},"Scrape","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fscrape","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fscrape",{"title":339,"path":340,"stem":341},"Scrape metadata","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fscrape-metadata","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fscrape-metadata",{"title":343,"path":344,"stem":345},"Select list","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fselect-list","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fselect-list",{"title":347,"path":348,"stem":349},"Solve captcha","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fsolve-captcha","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fsolve-captcha",{"title":351,"path":352,"stem":353},"Start a session","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fstart-a-session","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fstart-a-session",{"title":355,"path":356,"stem":357},"Step function vs No-Code step","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fstep-function-vs-no-code-step","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fstep-function-vs-no-code-step",{"title":359,"path":360,"stem":361},"Switch browser tab","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fswitch-browser-tab","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fswitch-browser-tab",{"title":363,"path":364,"stem":365},"Wait","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fwait","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fwait",{"title":367,"path":368,"stem":369,"children":370},"Usage and limits","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fusage-and-limits","docs\u002Fdeveloper-hub\u002Fapi\u002Fusage-and-limits\u002Findex",[371,372,376,380],{"title":367,"path":368,"stem":369},{"title":373,"path":374,"stem":375},"Queue and concurrency","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fusage-and-limits\u002Fqueue-and-concurrency","docs\u002Fdeveloper-hub\u002Fapi\u002Fusage-and-limits\u002Fqueue-and-concurrency",{"title":377,"path":378,"stem":379},"Rate limits","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fusage-and-limits\u002Frate-limits","docs\u002Fdeveloper-hub\u002Fapi\u002Fusage-and-limits\u002Frate-limits",{"title":381,"path":382,"stem":383},"Check remaining runtime","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fusage-and-limits\u002Fremaining-runtime","docs\u002Fdeveloper-hub\u002Fapi\u002Fusage-and-limits\u002Fremaining-runtime",{"title":385,"path":386,"stem":387,"children":388},"Deep dives","\u002Fdocs\u002Fdeveloper-hub\u002Fdeep-dives","docs\u002Fdeveloper-hub\u002Fdeep-dives\u002Findex",[389,390,394,398,402],{"title":385,"path":386,"stem":387},{"title":391,"path":392,"stem":393},"Automation JSON structure","\u002Fdocs\u002Fdeveloper-hub\u002Fdeep-dives\u002Faxiom-structure","docs\u002Fdeveloper-hub\u002Fdeep-dives\u002Faxiom-structure",{"title":395,"path":396,"stem":397},"Chromium","\u002Fdocs\u002Fdeveloper-hub\u002Fdeep-dives\u002Fchromium","docs\u002Fdeveloper-hub\u002Fdeep-dives\u002Fchromium",{"title":399,"path":400,"stem":401},"Cookies in axiom.ai","\u002Fdocs\u002Fdeveloper-hub\u002Fdeep-dives\u002Fcookies","docs\u002Fdeveloper-hub\u002Fdeep-dives\u002Fcookies",{"title":403,"path":404,"stem":405},"Data handling","\u002Fdocs\u002Fdeveloper-hub\u002Fdeep-dives\u002Fdata-handling","docs\u002Fdeveloper-hub\u002Fdeep-dives\u002Fdata-handling",{"title":407,"path":408,"stem":409,"children":410},"MCP","\u002Fdocs\u002Fdeveloper-hub\u002Fmcp","docs\u002Fdeveloper-hub\u002Fmcp\u002Findex",[411,412,416,420,424],{"title":407,"path":408,"stem":409},{"title":413,"path":414,"stem":415},"Build your own server (Python)","\u002Fdocs\u002Fdeveloper-hub\u002Fmcp\u002Fbuild-your-own-server-python","docs\u002Fdeveloper-hub\u002Fmcp\u002Fbuild-your-own-server-python",{"title":417,"path":418,"stem":419},"Build your own server (TypeScript)","\u002Fdocs\u002Fdeveloper-hub\u002Fmcp\u002Fbuild-your-own-typescript","docs\u002Fdeveloper-hub\u002Fmcp\u002Fbuild-your-own-typescript",{"title":421,"path":422,"stem":423},"Desktop app MCP server","\u002Fdocs\u002Fdeveloper-hub\u002Fmcp\u002Fdesktop-app-server","docs\u002Fdeveloper-hub\u002Fmcp\u002Fdesktop-app-server",{"title":425,"path":426,"stem":427},"Register with Claude clients","\u002Fdocs\u002Fdeveloper-hub\u002Fmcp\u002Fregister-with-claude","docs\u002Fdeveloper-hub\u002Fmcp\u002Fregister-with-claude",{"title":429,"path":430,"stem":431,"children":432},"Code snippets","\u002Fdocs\u002Fdeveloper-hub\u002Fsnippets","docs\u002Fdeveloper-hub\u002Fsnippets\u002Findex",[433,434,464],{"title":429,"path":430,"stem":431},{"title":435,"path":436,"stem":437,"children":438},"JavaScript snippets","\u002Fdocs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript","docs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript\u002Findex",[439,440,444,448,452,456,460],{"title":435,"path":436,"stem":437},{"title":441,"path":442,"stem":443},"Data snippets","\u002Fdocs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript\u002Fdata","docs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript\u002Fdata",{"title":445,"path":446,"stem":447},"Interaction snippets","\u002Fdocs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript\u002Finteraction","docs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript\u002Finteraction",{"title":449,"path":450,"stem":451},"Navigation snippets","\u002Fdocs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript\u002Fnavigation","docs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript\u002Fnavigation",{"title":453,"path":454,"stem":455},"Network snippets","\u002Fdocs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript\u002Fnetwork","docs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript\u002Fnetwork",{"title":457,"path":458,"stem":459},"Page manipulation snippets","\u002Fdocs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript\u002Fpage-manipulation","docs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript\u002Fpage-manipulation",{"title":461,"path":462,"stem":463},"Scrape snippets","\u002Fdocs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript\u002Fscrape","docs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript\u002Fscrape",{"title":465,"path":466,"stem":467,"children":468},"Puppeteer snippets","\u002Fdocs\u002Fdeveloper-hub\u002Fsnippets\u002Fpuppeteer","docs\u002Fdeveloper-hub\u002Fsnippets\u002Fpuppeteer\u002Findex",[469,470,473],{"title":465,"path":466,"stem":467},{"title":445,"path":471,"stem":472},"\u002Fdocs\u002Fdeveloper-hub\u002Fsnippets\u002Fpuppeteer\u002Finteraction","docs\u002Fdeveloper-hub\u002Fsnippets\u002Fpuppeteer\u002Finteraction",{"title":453,"path":474,"stem":475},"\u002Fdocs\u002Fdeveloper-hub\u002Fsnippets\u002Fpuppeteer\u002Fnetwork","docs\u002Fdeveloper-hub\u002Fsnippets\u002Fpuppeteer\u002Fnetwork",{"title":477,"path":478,"stem":479,"children":480},"Developer troubleshooting","\u002Fdocs\u002Fdeveloper-hub\u002Ftroubleshooting","docs\u002Fdeveloper-hub\u002Ftroubleshooting\u002Findex",[481,482,486],{"title":477,"path":478,"stem":479},{"title":483,"path":484,"stem":485},"API errors","\u002Fdocs\u002Fdeveloper-hub\u002Ftroubleshooting\u002Fapi","docs\u002Fdeveloper-hub\u002Ftroubleshooting\u002Fapi",{"title":487,"path":488,"stem":489},"Debug developer features","\u002Fdocs\u002Fdeveloper-hub\u002Ftroubleshooting\u002Fdebug","docs\u002Fdeveloper-hub\u002Ftroubleshooting\u002Fdebug",{"title":491,"path":492,"stem":493,"children":494},"FAQ","\u002Fdocs\u002Ffaq","docs\u002Ffaq\u002Findex",[495,496,500,504,508,512],{"title":491,"path":492,"stem":493},{"title":497,"path":498,"stem":499},"General FAQ","\u002Fdocs\u002Ffaq\u002Fgeneral","docs\u002Ffaq\u002Fgeneral",{"title":501,"path":502,"stem":503},"Builder FAQ","\u002Fdocs\u002Ffaq\u002Fno-code-builder","docs\u002Ffaq\u002Fno-code-builder",{"title":505,"path":506,"stem":507},"Runtime and scheduling FAQ","\u002Fdocs\u002Ffaq\u002Fruntime-and-scheduling","docs\u002Ffaq\u002Fruntime-and-scheduling",{"title":509,"path":510,"stem":511},"Subscriptions and accounts FAQ","\u002Fdocs\u002Ffaq\u002Fsubscriptions-and-accounts","docs\u002Ffaq\u002Fsubscriptions-and-accounts",{"title":513,"path":514,"stem":515},"Third-party tools FAQ","\u002Fdocs\u002Ffaq\u002Fthird-party","docs\u002Ffaq\u002Fthird-party",{"title":517,"path":518,"stem":519,"children":520},"No-Code Tool","\u002Fdocs\u002Fno-code-tool","docs\u002Fno-code-tool\u002Findex",[521,522,526,548,774,835,1309,1443,1490],{"title":517,"path":518,"stem":519},{"title":523,"path":524,"stem":525},"Desktop app","\u002Fdocs\u002Fno-code-tool\u002Fdesktop-app","docs\u002Fno-code-tool\u002Fdesktop-app",{"title":527,"path":528,"stem":529,"children":530},"Get started, build an automation from a description","\u002Fdocs\u002Fno-code-tool\u002Fget-started","docs\u002Fno-code-tool\u002Fget-started\u002Findex",[531,532,536,540,544],{"title":527,"path":528,"stem":529},{"title":533,"path":534,"stem":535},"Fill a form from a spreadsheet","\u002Fdocs\u002Fno-code-tool\u002Fget-started\u002Fform-filling","docs\u002Fno-code-tool\u002Fget-started\u002Fform-filling",{"title":537,"path":538,"stem":539},"Loop through a list of URLs","\u002Fdocs\u002Fno-code-tool\u002Fget-started\u002Floop-urls","docs\u002Fno-code-tool\u002Fget-started\u002Floop-urls",{"title":541,"path":542,"stem":543},"Scrape a page into a Google Sheet","\u002Fdocs\u002Fno-code-tool\u002Fget-started\u002Fscrape-to-sheet","docs\u002Fno-code-tool\u002Fget-started\u002Fscrape-to-sheet",{"title":545,"path":546,"stem":547},"How to automate web forms","\u002Fdocs\u002Fno-code-tool\u002Fget-started\u002Fwebforms","docs\u002Fno-code-tool\u002Fget-started\u002Fwebforms",{"title":549,"path":550,"stem":551,"children":552},"How it works","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works","docs\u002Fno-code-tool\u002Fhow-it-works\u002Findex",[553,554,636,658,662,666,669,673,677,711,715,757,761],{"title":549,"path":550,"stem":551},{"title":555,"path":556,"stem":557,"children":558},"Interact with the browser","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Findex",[559,560,564,568,572,576,580,584,588,592,596,600,604,608,612,616,620,624,628,632],{"title":555,"path":556,"stem":557},{"title":561,"path":562,"stem":563},"Tick a checkbox","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fcheckbox","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fcheckbox",{"title":565,"path":566,"stem":567},"Automate a button click","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fclicks","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fclicks",{"title":569,"path":570,"stem":571},"Get the current URL","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fcurrent-url","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fcurrent-url",{"title":573,"path":574,"stem":575},"Use a date picker","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fdate-picker","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fdate-picker",{"title":577,"path":578,"stem":579},"Download files to Google Drive","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fdownload-cloud","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fdownload-cloud",{"title":581,"path":582,"stem":583},"Download files to your computer","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fdownload-local","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fdownload-local",{"title":585,"path":586,"stem":587},"Enter text into an input field","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fenter-text","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fenter-text",{"title":589,"path":590,"stem":591},"Record keystrokes","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fkey-strokes","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fkey-strokes",{"title":593,"path":594,"stem":595},"Drag the mouse","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fmouse-drag","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fmouse-drag",{"title":597,"path":598,"stem":599},"Click multiple buttons","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fmulti-click","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fmulti-click",{"title":601,"path":602,"stem":603},"Click a radio button","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fradio-buttons","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fradio-buttons",{"title":605,"path":606,"stem":607},"Trigger a rollover","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Frollover","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Frollover",{"title":609,"path":610,"stem":611},"Use a select list","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fselect-lists","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fselect-lists",{"title":613,"path":614,"stem":615},"Click likes and follows","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fsocial-media-buttons","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fsocial-media-buttons",{"title":617,"path":618,"stem":619},"Solve a captcha","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fsolve-captcha","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fsolve-captcha",{"title":621,"path":622,"stem":623},"Switch and close browser tabs","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Ftabs","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Ftabs",{"title":625,"path":626,"stem":627},"Upload files from Google Drive","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fupload-cloud","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fupload-cloud",{"title":629,"path":630,"stem":631},"Upload files from your computer","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fupload-local","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fupload-local",{"title":633,"path":634,"stem":635},"Pause an automation","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fwait","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fwait",{"title":637,"path":638,"stem":639,"children":640},"Work with data","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fdata","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fdata\u002Findex",[641,642,646,650,654],{"title":637,"path":638,"stem":639},{"title":643,"path":644,"stem":645},"How to write data to a specific row","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fdata\u002Fdynamically_write","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fdata\u002Fdynamically_write",{"title":647,"path":648,"stem":649},"How to export data from axiom.ai","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fdata\u002Fexport","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fdata\u002Fexport",{"title":651,"path":652,"stem":653},"How to import data to use in your automation","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fdata\u002Fimport","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fdata\u002Fimport",{"title":655,"path":656,"stem":657},"Transforming data during the run","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fdata\u002Ftransform","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fdata\u002Ftransform",{"title":659,"path":660,"stem":661},"Scrape data","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fget-data","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fget-data",{"title":663,"path":664,"stem":665},"Make automations with our no-code tool","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fget-started","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fget-started",{"title":323,"path":667,"stem":668},"\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fintegrate-ai","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fintegrate-ai",{"title":670,"path":671,"stem":672},"Run custom JavaScript","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fjavascript","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fjavascript",{"title":674,"path":675,"stem":676},"Use logic","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Flogic","docs\u002Fno-code-tool\u002Fhow-it-works\u002Flogic",{"title":678,"path":679,"stem":680,"children":681},"Log in to sites","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin","docs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002Findex",[682,683,687,691,695,699,703,707],{"title":678,"path":679,"stem":680},{"title":684,"path":685,"stem":686},"Log in with 2FA","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002F2fa","docs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002F2fa",{"title":688,"path":689,"stem":690},"Log in with saved credentials","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002Fcredentials","docs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002Fcredentials",{"title":692,"path":693,"stem":694},"Log in using a password manager","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002Fpassword-manager","docs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002Fpassword-manager",{"title":696,"path":697,"stem":698},"Keep login data on your network","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002Fsecure","docs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002Fsecure",{"title":700,"path":701,"stem":702},"Log in by sharing your session","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002Fsessions","docs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002Fsessions",{"title":704,"path":705,"stem":706},"Log in using a Google Sheet","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002Fsteps","docs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002Fsteps",{"title":708,"path":709,"stem":710},"Log in using the VPS","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002Fvps","docs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002Fvps",{"title":712,"path":713,"stem":714},"Loop through data","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Floop","docs\u002Fno-code-tool\u002Fhow-it-works\u002Floop",{"title":716,"path":717,"stem":718,"children":719},"Run and schedule bots","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Findex",[720,721,725,729,733,737,741,745,749,753],{"title":716,"path":717,"stem":718},{"title":722,"path":723,"stem":724},"Advanced running methods","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Fadvanced-running-methods","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Fadvanced-running-methods",{"title":726,"path":727,"stem":728},"Schedule an automation","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Fautomation","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Fautomation",{"title":730,"path":731,"stem":732},"Login with a scheduled automation","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Flogin","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Flogin",{"title":734,"path":735,"stem":736},"Structure automations for long runs","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Flong-bot-runs","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Flong-bot-runs",{"title":738,"path":739,"stem":740},"Manage scheduled automations","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Fmanage","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Fmanage",{"title":742,"path":743,"stem":744},"Schedule on a specific computer","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Fother","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Fother",{"title":746,"path":747,"stem":748},"Run your automation","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Frun","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Frun",{"title":750,"path":751,"stem":752},"Speed up your automations","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Fspeed-up-run","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Fspeed-up-run",{"title":754,"path":755,"stem":756},"Stop a running automation","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Fstop-bot-runs","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Fstop-bot-runs",{"title":758,"path":759,"stem":760},"VPS Guide","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fvps","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fvps",{"title":762,"path":763,"stem":764,"children":765},"Send and receive webhooks","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fwebhooks","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fwebhooks\u002Findex",[766,767,771],{"title":762,"path":763,"stem":764},{"title":768,"path":769,"stem":770},"Import data with a webhook","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fwebhooks\u002Fexport","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fwebhooks\u002Fexport",{"title":768,"path":772,"stem":773},"\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fwebhooks\u002Fimport","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fwebhooks\u002Fimport",{"title":17,"path":775,"stem":776,"children":777},"\u002Fdocs\u002Fno-code-tool\u002Fintegrations","docs\u002Fno-code-tool\u002Fintegrations\u002Findex",[778,779,783,787,791,795,799,803,807,811,815,819,823,827,831],{"title":17,"path":775,"stem":776},{"title":780,"path":781,"stem":782},"1Password","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002F1password","docs\u002Fno-code-tool\u002Fintegrations\u002F1password",{"title":784,"path":785,"stem":786},"2Captcha","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002F2captcha","docs\u002Fno-code-tool\u002Fintegrations\u002F2captcha",{"title":788,"path":789,"stem":790},"ChatGPT","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002Fchatgpt","docs\u002Fno-code-tool\u002Fintegrations\u002Fchatgpt",{"title":792,"path":793,"stem":794},"Claude","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002Fclaude","docs\u002Fno-code-tool\u002Fintegrations\u002Fclaude",{"title":796,"path":797,"stem":798},"DeepSeek","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002Fdeepseek","docs\u002Fno-code-tool\u002Fintegrations\u002Fdeepseek",{"title":800,"path":801,"stem":802},"Microsoft Excel","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002Fexcel","docs\u002Fno-code-tool\u002Fintegrations\u002Fexcel",{"title":804,"path":805,"stem":806},"Gemini","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002Fgemini","docs\u002Fno-code-tool\u002Fintegrations\u002Fgemini",{"title":808,"path":809,"stem":810},"Google Sheets","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002Fgoogle-sheets","docs\u002Fno-code-tool\u002Fintegrations\u002Fgoogle-sheets",{"title":812,"path":813,"stem":814},"Make","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002Fmake","docs\u002Fno-code-tool\u002Fintegrations\u002Fmake",{"title":816,"path":817,"stem":818},"n8n","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002Fn8n","docs\u002Fno-code-tool\u002Fintegrations\u002Fn8n",{"title":820,"path":821,"stem":822},"Puppeteer","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002Fpuppeteer","docs\u002Fno-code-tool\u002Fintegrations\u002Fpuppeteer",{"title":824,"path":825,"stem":826},"Relay.app","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002Frelay-app","docs\u002Fno-code-tool\u002Fintegrations\u002Frelay-app",{"title":828,"path":829,"stem":830},"Sonar","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002Fsonar","docs\u002Fno-code-tool\u002Fintegrations\u002Fsonar",{"title":832,"path":833,"stem":834},"Zapier","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002Fzapier","docs\u002Fno-code-tool\u002Fintegrations\u002Fzapier",{"title":217,"path":836,"stem":837,"children":838},"\u002Fdocs\u002Fno-code-tool\u002Freference","docs\u002Fno-code-tool\u002Freference\u002Findex",[839,840,949],{"title":217,"path":836,"stem":837},{"title":841,"path":842,"stem":843,"children":844},"Automation settings","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Findex",[845,846,872,890,900],{"title":841,"path":842,"stem":843},{"title":847,"path":848,"stem":849,"children":850},"Chrome","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fchrome","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fchrome\u002Findex",[851,852,856,860,864,868],{"title":847,"path":848,"stem":849},{"title":853,"path":854,"stem":855},"Bypass bot detection","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fchrome\u002Fbypass-bot-detection","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fchrome\u002Fbypass-bot-detection",{"title":857,"path":858,"stem":859},"Set executable path","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fchrome\u002Fexecutable-path","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fchrome\u002Fexecutable-path",{"title":861,"path":862,"stem":863},"Run in incognito mode","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fchrome\u002Fincognito","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fchrome\u002Fincognito",{"title":865,"path":866,"stem":867},"Load another extension","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fchrome\u002Fload-extension","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fchrome\u002Fload-extension",{"title":869,"path":870,"stem":871},"Set a custom Chromium profile","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fchrome\u002Fprofile","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fchrome\u002Fprofile",{"title":873,"path":874,"stem":875,"children":876},"Error handling","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Ferror-handling","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Ferror-handling\u002Findex",[877,878,882,886],{"title":873,"path":874,"stem":875},{"title":879,"path":880,"stem":881},"Continue on error","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Ferror-handling\u002Fcontinue-on-error","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Ferror-handling\u002Fcontinue-on-error",{"title":883,"path":884,"stem":885},"Interact with iframes","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Ferror-handling\u002Fiframes","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Ferror-handling\u002Fiframes",{"title":887,"path":888,"stem":889},"Disable page monitoring","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Ferror-handling\u002Fpage-monitoring","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Ferror-handling\u002Fpage-monitoring",{"title":891,"path":892,"stem":893,"children":894},"Import and export","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fimport-export","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fimport-export\u002Findex",[895,896],{"title":891,"path":892,"stem":893},{"title":897,"path":898,"stem":899},"Import or download an automation","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fimport-export\u002Fsharing","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fimport-export\u002Fsharing",{"title":901,"path":902,"stem":903,"children":904},"Run options","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Findex",[905,906,910,914,918,922,926,930,934,938,941,945],{"title":901,"path":902,"stem":903},{"title":907,"path":908,"stem":909},"Block resources","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fblock-resources","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fblock-resources",{"title":911,"path":912,"stem":913},"Concurrency","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fconcurrency","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fconcurrency",{"title":915,"path":916,"stem":917},"Run headless","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fheadless","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fheadless",{"title":919,"path":920,"stem":921},"Set maximum runtime","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fmax-runtime","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fmax-runtime",{"title":923,"path":924,"stem":925},"Set up notifications","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fnotifications","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fnotifications",{"title":927,"path":928,"stem":929},"Use a proxy","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fproxy","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fproxy",{"title":931,"path":932,"stem":933},"Record and monitor runs","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Frecord-runs","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Frecord-runs",{"title":935,"path":936,"stem":937},"Run via API on desktop","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Frun-via-api-on-desktop","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Frun-via-api-on-desktop",{"title":726,"path":939,"stem":940},"\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fschedule","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fschedule",{"title":942,"path":943,"stem":944},"Store cookies","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fstore-cookies","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fstore-cookies",{"title":946,"path":947,"stem":948},"Configure timezone","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Ftimezone","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Ftimezone",{"title":950,"path":951,"stem":952,"children":953},"Step index","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Findex",[954,955,959,963,967,971,975,979,983,987,991,995,999,1003,1007,1011,1015,1019,1023,1027,1031,1035,1039,1043,1047,1051,1055,1059,1063,1067,1071,1075,1079,1083,1087,1091,1095,1099,1103,1107,1111,1115,1119,1123,1127,1130,1134,1138,1142,1146,1150,1154,1158,1162,1166,1170,1174,1178,1182,1186,1190,1194,1198,1202,1206,1210,1213,1217,1221,1225,1229,1233,1237,1241,1245,1249,1253,1257,1261,1265,1269,1273,1277,1281,1285,1289,1293,1297,1301,1305],{"title":950,"path":951,"stem":952},{"title":956,"path":957,"stem":958},"Add error metadata step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fadd-error-metadata","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fadd-error-metadata",{"title":960,"path":961,"stem":962},"Add row numbers","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fadd-row-numbers","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fadd-row-numbers",{"title":964,"path":965,"stem":966},"Append or Merge data step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fappend-or-merge-data","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fappend-or-merge-data",{"title":968,"path":969,"stem":970},"Back step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fback","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fback",{"title":972,"path":973,"stem":974},"Clear cookies step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclear-cookies","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclear-cookies",{"title":976,"path":977,"stem":978},"Clear data from a Google Sheet step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclear-data-from-a-google-sheet","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclear-data-from-a-google-sheet",{"title":980,"path":981,"stem":982},"Click element step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclick-element","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclick-element",{"title":984,"path":985,"stem":986},"Click multiple elements step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclick-multiple-elements","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclick-multiple-elements",{"title":988,"path":989,"stem":990},"Click social media buttons step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclick-social-media-buttons","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclick-social-media-buttons",{"title":992,"path":993,"stem":994},"Get clipboard contents step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclipboard","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclipboard",{"title":996,"path":997,"stem":998},"Close browser tab step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclose-tab","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclose-tab",{"title":1000,"path":1001,"stem":1002},"Conditionally jump to another step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fconditionall-jump-step","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fconditionall-jump-step",{"title":1004,"path":1005,"stem":1006},"Continue only if a condition is met step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fcontinue-if-condition-met","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fcontinue-if-condition-met",{"title":1008,"path":1009,"stem":1010},"Count rows step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fcount-rows","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fcount-rows",{"title":1012,"path":1013,"stem":1014},"Create a new Google Sheet step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fcreate-a-new-google-sheet","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fcreate-a-new-google-sheet",{"title":1016,"path":1017,"stem":1018},"Get current bot URL step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fcurrent-url","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fcurrent-url",{"title":1020,"path":1021,"stem":1022},"Enter custom data step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fcustom-data","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fcustom-data",{"title":1024,"path":1025,"stem":1026},"Date picker step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdate-picker","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdate-picker",{"title":1028,"path":1029,"stem":1030},"Date and time step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdate-time","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdate-time",{"title":1032,"path":1033,"stem":1034},"Delete from Google Drive step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdelete-files-from-google-drive","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdelete-files-from-google-drive",{"title":1036,"path":1037,"stem":1038},"Delete rows from a Google Sheet step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdelete-rows-from-a-google-sheet","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdelete-rows-from-a-google-sheet",{"title":1040,"path":1041,"stem":1042},"Display a message step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdisplay-a-message","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdisplay-a-message",{"title":1044,"path":1045,"stem":1046},"Download file from URL step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdownload-file-from-url","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdownload-file-from-url",{"title":1048,"path":1049,"stem":1050},"Download file step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdownload-file-step","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdownload-file-step",{"title":1052,"path":1053,"stem":1054},"Download files step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdownload-files","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdownload-files",{"title":1056,"path":1057,"stem":1058},"Download a file to Google Drive step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdownload-files-to-google-drive","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdownload-files-to-google-drive",{"title":1060,"path":1061,"stem":1062},"Edit Row step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fedit-row","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fedit-row",{"title":1064,"path":1065,"stem":1066},"End loop","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fend-loop","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fend-loop",{"title":1068,"path":1069,"stem":1070},"End run","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fend-run","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fend-run",{"title":1072,"path":1073,"stem":1074},"Enter text step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fenter-text","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fenter-text",{"title":1076,"path":1077,"stem":1078},"Export to CSV step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fexport-csv-file","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fexport-csv-file",{"title":1080,"path":1081,"stem":1082},"Find Row step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Ffind-row","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Ffind-row",{"title":1084,"path":1085,"stem":1086},"Generate authenticator code step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fgenerate-authenticator-code","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fgenerate-authenticator-code",{"title":1088,"path":1089,"stem":1090},"Generate random password step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fgenerate-random-password","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fgenerate-random-password",{"title":1092,"path":1093,"stem":1094},"Get a list of links from a page step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fget-a-list-of-links-to-pages","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fget-a-list-of-links-to-pages",{"title":1096,"path":1097,"stem":1098},"Get a list of links from a URL step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fget-a-list-of-links-url","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fget-a-list-of-links-url",{"title":1100,"path":1101,"stem":1102},"Get data from a URL","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fget-data-from-url","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fget-data-from-url",{"title":1104,"path":1105,"stem":1106},"Get data from a webpage","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fget-data-from-website","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fget-data-from-website",{"title":1108,"path":1109,"stem":1110},"Go to page","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fgo-to-page","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fgo-to-page",{"title":1112,"path":1113,"stem":1114},"Group steps","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fgroup-steps","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fgroup-steps",{"title":1116,"path":1117,"stem":1118},"If a condition is true, run steps","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fif-condtion","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fif-condtion",{"title":1120,"path":1121,"stem":1122},"If Else condition step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fif-else-condition","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fif-else-condition",{"title":1124,"path":1125,"stem":1126},"Import CSV File step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fimport-csv-file","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fimport-csv-file",{"title":323,"path":1128,"stem":1129},"\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fintegrate-ai","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fintegrate-ai",{"title":1131,"path":1132,"stem":1133},"Interact step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Finteract-with-a-pages-interface","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Finteract-with-a-pages-interface",{"title":1135,"path":1136,"stem":1137},"Join different data sources based on matching columns step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fjoin-different-data-sources","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fjoin-different-data-sources",{"title":1139,"path":1140,"stem":1141},"Jump to another step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fjump-step","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fjump-step",{"title":1143,"path":1144,"stem":1145},"Log in with credentials step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Flog-in-with-credentials","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Flog-in-with-credentials",{"title":1147,"path":1148,"stem":1149},"Loop step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Floop","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Floop",{"title":1151,"path":1152,"stem":1153},"Mouse click and drag","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fmouse-click-and-drag","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fmouse-click-and-drag",{"title":1155,"path":1156,"stem":1157},"Move a Google Sheet to a new folder in Google Drive","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fmove-a-google-sheet","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fmove-a-google-sheet",{"title":1159,"path":1160,"stem":1161},"Open a new tab step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fopen-tab","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fopen-tab",{"title":1163,"path":1164,"stem":1165},"Press keys(s) step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fpress-key","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fpress-key",{"title":1167,"path":1168,"stem":1169},"Read data from a Google Sheet step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fread-data-from-a-google-sheet-step","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fread-data-from-a-google-sheet-step",{"title":1171,"path":1172,"stem":1173},"Read data from Airtable","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fread-data-from-airtable","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fread-data-from-airtable",{"title":1175,"path":1176,"stem":1177},"Read data from Excel sheet step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fread-data-from-excel","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fread-data-from-excel",{"title":1179,"path":1180,"stem":1181},"Read file from Google Drive step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fread-file-from-google-drive","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fread-file-from-google-drive",{"title":1183,"path":1184,"stem":1185},"Read local file step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fread-local-file","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fread-local-file",{"title":1187,"path":1188,"stem":1189},"Receive data from another app","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Freceive-data-from-another-app","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Freceive-data-from-another-app",{"title":1191,"path":1192,"stem":1193},"Remove duplicates step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fremove-duplicates","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fremove-duplicates",{"title":1195,"path":1196,"stem":1197},"Remove HTML code step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fremove-html-code","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fremove-html-code",{"title":1199,"path":1200,"stem":1201},"Remove results that contain certain words step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fremove-results-that-contain-certain-words","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fremove-results-that-contain-certain-words",{"title":1203,"path":1204,"stem":1205},"Remove results which do not contain certain words step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fremove-results-which-do-not-contain-certain-words","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fremove-results-which-do-not-contain-certain-words",{"title":1207,"path":1208,"stem":1209},"Replace text step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Freplace-text-step","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Freplace-text-step",{"title":331,"path":1211,"stem":1212},"\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Frestart-browser","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Frestart-browser",{"title":1214,"path":1215,"stem":1216},"Rollover element step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Frollover-element","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Frollover-element",{"title":1218,"path":1219,"stem":1220},"Run another Axiom step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Frun-another-axiom","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Frun-another-axiom",{"title":1222,"path":1223,"stem":1224},"Save page HTML step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsave-page-as-html","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsave-page-as-html",{"title":1226,"path":1227,"stem":1228},"Save screenshot locally step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsave-screenshot-locally","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsave-screenshot-locally",{"title":1230,"path":1231,"stem":1232},"Save screenshot to Google Drive step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsave-screenshot-to-google-drive","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsave-screenshot-to-google-drive",{"title":1234,"path":1235,"stem":1236},"Scrape metadata step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fscrape-metadata","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fscrape-metadata",{"title":1238,"path":1239,"stem":1240},"Select list step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fselect-list","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fselect-list",{"title":1242,"path":1243,"stem":1244},"Select random rows step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fselect-random-rows","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fselect-random-rows",{"title":1246,"path":1247,"stem":1248},"Send an email step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsend-an-email","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsend-an-email",{"title":1250,"path":1251,"stem":1252},"Solve Captcha step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsolve-captcha","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsolve-captcha",{"title":1254,"path":1255,"stem":1256},"Split a name into columns step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsplit-a-name-into-columns","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsplit-a-name-into-columns",{"title":1258,"path":1259,"stem":1260},"Split by character step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsplit-by-character","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsplit-by-character",{"title":1262,"path":1263,"stem":1264},"Swap rows and columns step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fswap-rows-and-columns","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fswap-rows-and-columns",{"title":1266,"path":1267,"stem":1268},"Switch browser tab step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fswitch-browser-tab","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fswitch-browser-tab",{"title":1270,"path":1271,"stem":1272},"Trigger webhook step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Ftrigger-webhook","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Ftrigger-webhook",{"title":1274,"path":1275,"stem":1276},"Try catch","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Ftry-catch","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Ftry-catch",{"title":1278,"path":1279,"stem":1280},"Upload a file step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fupload-file","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fupload-file",{"title":1282,"path":1283,"stem":1284},"Upload a file from Google Drive step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fupload-file-google-drive","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fupload-file-google-drive",{"title":1286,"path":1287,"stem":1288},"Wait step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fwait","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fwait",{"title":1290,"path":1291,"stem":1292},"Wait for 2FA code step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fwait-for-2fa-code","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fwait-for-2fa-code",{"title":1294,"path":1295,"stem":1296},"Write data to a Google Sheet step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fwrite-data-to-a-google-sheet-step","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fwrite-data-to-a-google-sheet-step",{"title":1298,"path":1299,"stem":1300},"Write data to Airtable","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fwrite-data-to-airtable","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fwrite-data-to-airtable",{"title":1302,"path":1303,"stem":1304},"Write data to a Excel sheet step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fwrite-data-to-an-excel-sheet","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fwrite-data-to-an-excel-sheet",{"title":1306,"path":1307,"stem":1308},"Write javascript step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fwrite-javascript","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fwrite-javascript",{"title":1310,"path":1311,"stem":1312,"children":1313},"Release notes","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes","docs\u002Fno-code-tool\u002Frelease-notes\u002Findex",[1314,1315,1319,1323,1327,1331,1335,1339,1343,1347,1351,1355,1359,1363,1367,1371,1375,1379,1383,1387,1391,1395,1399,1403,1407,1411,1415,1419,1423,1427,1431,1435,1439],{"title":1310,"path":1311,"stem":1312},{"title":1316,"path":1317,"stem":1318},"New Make integration, better loops, smarter scraping, and fixes","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-10-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-10-0",{"title":1320,"path":1321,"stem":1322},"Dashboard redesign, better conditionals, stop remote bots, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-11-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-11-0",{"title":1324,"path":1325,"stem":1326},"Solve captchas, press keys smarter, fix iframe hangs, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-12-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-12-0",{"title":1328,"path":1329,"stem":1330},"Optional steps, screenshot tool, scraper upgrades","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-13-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-13-0",{"title":1332,"path":1333,"stem":1334},"Selector overhaul, drag to reorder steps, new templates, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-14-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-14-0",{"title":1336,"path":1337,"stem":1338},"Custom scraper settings, new templates, and payment upgrade","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-15-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-15-0",{"title":1340,"path":1341,"stem":1342},"Upload to drive, undo mistakes, upgrade steps, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-16-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-16-0",{"title":1344,"path":1345,"stem":1346},"Better notifications, custom errors, iframe tools, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-17-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-17-0",{"title":1348,"path":1349,"stem":1350},"Structured scraping with chatgpt, new schedule view, filters, and fixes","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-18-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-18-0",{"title":1352,"path":1353,"stem":1354},"New debugger, generate text with chatgpt, save to drive, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-19-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-19-0",{"title":1356,"path":1357,"stem":1358},"Affiliates, smarter queues, overwrite files, and a 4.0 teaser","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-20-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-20-0",{"title":1360,"path":1361,"stem":1362},"Sneak peek at 4.0, open linked axioms, new steps, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-21-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-21-0",{"title":1364,"path":1365,"stem":1366},"Last stop before 4.0, Scrape images, reorder columns, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-22-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-22-0",{"title":1368,"path":1369,"stem":1370},"Live data previews, easier navigation, new onboarding tools","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-5-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-5-0",{"title":1372,"path":1373,"stem":1374},"Better sheets integration, loop controls, and fixes","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-6-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-6-0",{"title":1376,"path":1377,"stem":1378},"Better builder errors, webhook stability, test default data, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-7-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-7-0",{"title":1380,"path":1381,"stem":1382},"Axiom academy is live, smarter scraping, improved validation","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-8-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-8-0",{"title":1384,"path":1385,"stem":1386},"Step-by-step templates, improved scraping, click multiple, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-9-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-9-0",{"title":1388,"path":1389,"stem":1390},"Build smarter with nesting, chatgpt 4, and cloud sessions","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-0-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-0-0",{"title":1392,"path":1393,"stem":1394},"Guided templates, step help, datepickers, partial screenshots, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-1-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-1-0",{"title":1396,"path":1397,"stem":1398},"Run recording for debugging, and delete from Google Drive","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-10-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-10-0",{"title":1400,"path":1401,"stem":1402},"Proxy auth, conditional logic, flexible scheduling, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-2-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-2-0",{"title":1404,"path":1405,"stem":1406},"Quick builder, new sidebar, better onboarding, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-3-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-3-0",{"title":1408,"path":1409,"stem":1410},"Live run status, step recommendations, keyboard shortcuts, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-4-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-4-0",{"title":1412,"path":1413,"stem":1414},"Scrape faster, set keys once, skip steps, end runs early, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-5-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-5-0",{"title":1416,"path":1417,"stem":1418},"Excel steps, folder sorting, GPT-4o smarts, end loop control, quick filters, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-6-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-6-0",{"title":1420,"path":1421,"stem":1422},"Proxy rotation, AI updates, new run options and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-7-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-7-0",{"title":1424,"path":1425,"stem":1426},"Unlimited desktop concurrency, Airtable integration, and cloud bot bypass","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-8-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-8-0",{"title":1428,"path":1429,"stem":1430},"Team accounts, code editor upgrades, and a Row Numbers step","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-9-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-9-0",{"title":1432,"path":1433,"stem":1434},"Build from description, AI troubleshooting assistant, and free Claude credits","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-5-0-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-5-0-0",{"title":1436,"path":1437,"stem":1438},"Automate two-factor authentication logins","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-5-1-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-5-1-0",{"title":1440,"path":1441,"stem":1442},"Brand new desktop application","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Flatest","docs\u002Fno-code-tool\u002Frelease-notes\u002Flatest",{"title":663,"path":1444,"stem":1445,"children":1446},"\u002Fdocs\u002Fno-code-tool\u002Fthe-builder","docs\u002Fno-code-tool\u002Fthe-builder\u002Findex",[1447,1448,1452,1456,1460,1464,1468,1486],{"title":663,"path":1444,"stem":1445},{"title":1449,"path":1450,"stem":1451},"AI Assistant","\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Fai-assistant","docs\u002Fno-code-tool\u002Fthe-builder\u002Fai-assistant",{"title":1453,"path":1454,"stem":1455},"The no-code Builder","\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Fbuilder","docs\u002Fno-code-tool\u002Fthe-builder\u002Fbuilder",{"title":1457,"path":1458,"stem":1459},"The dashboard","\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Fdashboard","docs\u002Fno-code-tool\u002Fthe-builder\u002Fdashboard",{"title":1461,"path":1462,"stem":1463},"Installation","\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Finstall","docs\u002Fno-code-tool\u002Fthe-builder\u002Finstall",{"title":1465,"path":1466,"stem":1467},"Pass data between steps","\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Fpass","docs\u002Fno-code-tool\u002Fthe-builder\u002Fpass",{"title":1469,"path":1470,"stem":1471,"children":1472},"The selector tool","\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Fselector-tool","docs\u002Fno-code-tool\u002Fthe-builder\u002Fselector-tool\u002Findex",[1473,1474,1478,1482],{"title":1469,"path":1470,"stem":1471},{"title":1475,"path":1476,"stem":1477},"Use custom CSS selectors","\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Fselector-tool\u002Fcustom-css-selectors","docs\u002Fno-code-tool\u002Fthe-builder\u002Fselector-tool\u002Fcustom-css-selectors",{"title":1479,"path":1480,"stem":1481},"Use the Multi Selector tool","\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Fselector-tool\u002Fmulti","docs\u002Fno-code-tool\u002Fthe-builder\u002Fselector-tool\u002Fmulti",{"title":1483,"path":1484,"stem":1485},"Use the Single Selector","\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Fselector-tool\u002Fsingle","docs\u002Fno-code-tool\u002Fthe-builder\u002Fselector-tool\u002Fsingle",{"title":1487,"path":1488,"stem":1489},"Share an automation","\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Fsharing","docs\u002Fno-code-tool\u002Fthe-builder\u002Fsharing",{"title":1491,"path":1492,"stem":1493,"children":1494},"Troubleshooting","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Findex",[1495,1496,1500,1578],{"title":1491,"path":1492,"stem":1493},{"title":1497,"path":1498,"stem":1499},"Handle errors in an automation","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferror-handling","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferror-handling",{"title":1501,"path":1502,"stem":1503,"children":1504},"Common errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Findex",[1505,1506,1510,1514,1518,1536,1540],{"title":1501,"path":1502,"stem":1503},{"title":1507,"path":1508,"stem":1509},"Desktop app errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fdesktop-app","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fdesktop-app",{"title":1511,"path":1512,"stem":1513},"General errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fgeneral","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fgeneral",{"title":1515,"path":1516,"stem":1517},"Installation and uninstallation errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Finstallation","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Finstallation",{"title":1519,"path":1520,"stem":1521,"children":1522},"Integration errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fintegrations","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fintegrations\u002Findex",[1523,1524,1528,1532],{"title":1519,"path":1520,"stem":1521},{"title":1525,"path":1526,"stem":1527},"2Captcha errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fintegrations\u002F2captcha","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fintegrations\u002F2captcha",{"title":1529,"path":1530,"stem":1531},"AI integration errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fintegrations\u002Fai","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fintegrations\u002Fai",{"title":1533,"path":1534,"stem":1535},"Google Sheets errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fintegrations\u002Fgoogle-sheets","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fintegrations\u002Fgoogle-sheets",{"title":1537,"path":1538,"stem":1539},"Runtime errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fruntime","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fruntime",{"title":1541,"path":1542,"stem":1543,"children":1544},"Step errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Findex",[1545,1546,1550,1554,1558,1562,1566,1570,1574],{"title":1541,"path":1542,"stem":1543},{"title":1547,"path":1548,"stem":1549},"Control flow step errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Fcontrol-flow","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Fcontrol-flow",{"title":1551,"path":1552,"stem":1553},"File step errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Ffiles","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Ffiles",{"title":1555,"path":1556,"stem":1557},"Interact step errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Finteract","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Finteract",{"title":1559,"path":1560,"stem":1561},"Loop step errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Floop","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Floop",{"title":1563,"path":1564,"stem":1565},"Other step errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Fmisc","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Fmisc",{"title":1567,"path":1568,"stem":1569},"Navigate step errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Fnavigate","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Fnavigate",{"title":1571,"path":1572,"stem":1573},"Scrape step errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Fscrape","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Fscrape",{"title":1575,"path":1576,"stem":1577},"Webhook and API step errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Fwebhooks-api","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Fwebhooks-api",{"title":1579,"path":1580,"stem":1581},"Debug an automation","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Fhow-to-debug","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Fhow-to-debug",{"title":1583,"path":1584,"stem":1585},"Get support","\u002Fdocs\u002Fsupport","docs\u002Fsupport",{"title":1587,"path":1588,"stem":1589},"Automatización del navegador para humanos e IA","\u002Fes","es",{"title":1591,"path":1592,"stem":1593},"Extension uninstalled","\u002Fextension-uninstalled","extension-uninstalled",{"title":1595,"path":1596,"stem":1597},"l'automatisation du navigateur pour les humains et les IA","\u002Ffr","fr",{"title":1599,"path":1600,"stem":1601},"Browser automation & web scraping, no-code or code","\u002F","index",{"title":1603,"path":1604,"stem":1605,"children":1606},"Infrastructure","\u002Finfrastructure","infrastructure",[1607,1610,1613,1617,1621],{"title":1608,"path":1604,"stem":1609},"Private Browser Infrastructure","infrastructure\u002Findex",{"title":193,"path":1611,"stem":1612},"\u002Finfrastructure\u002F_api","infrastructure\u002F_api",{"title":1614,"path":1615,"stem":1616},"Build with Claude","\u002Finfrastructure\u002F_privacy","infrastructure\u002F_privacy",{"title":1618,"path":1619,"stem":1620},"Cloud Browser Infrastructure","\u002Finfrastructure\u002Fcloud","infrastructure\u002Fcloud",{"title":1622,"path":1623,"stem":1624},"Local Browser Automation on Desktop","\u002Finfrastructure\u002Fdesktop","infrastructure\u002Fdesktop",{"title":1626,"path":1627,"stem":1628},"Install the desktop runner for axiom.ai's browser automation extension","\u002Finstall-desktop-app","install-desktop-app",{"title":1630,"path":1631,"stem":1632},"No-code tool for making browser automations in Chrome","\u002Fno-code-tool","no-code-tool",{"title":1634,"path":1635,"stem":1636},"Browser automation & web scraping pricing plans","\u002Fpricing","pricing",{"title":1638,"path":1639,"stem":1640},"Privacy Policy","\u002Fprivacy-policy","privacy-policy",{"title":1642,"path":1643,"stem":1644},"No-code steps for browser automation","\u002Fsteps","steps",{"title":1646,"path":1647,"stem":1648},"Chrome extension installed: start building by description","\u002Fsuccess","success",{"title":1650,"path":1651,"stem":1652},"Terms of use","\u002Fterms-of-use","terms-of-use",{"id":1654,"title":417,"body":1655,"date":2804,"description":2805,"extension":2806,"meta":2807,"navigation":1833,"order":1793,"path":418,"seo":2809,"stem":419,"__hash__":2810},"content\u002Fdocs\u002Fdeveloper-hub\u002Fmcp\u002Fbuild-your-own-typescript.md",{"type":1656,"value":1657,"toc":2794},"minimark",[1658,1662,1667,1670,1673,1687,1691,1693,1722,1725,1729,1731,1746,2501,2505,2507,2513,2599,2610,2614,2616,2627,2652,2656,2658,2661,2698,2702,2704,2707,2757,2761,2763,2790],[1659,1660,1661],"p",{},"Build a small Node MCP server that wraps the axiom.ai REST API. Use this if your team is already on a Node stack and would rather extend an existing TypeScript codebase than maintain a Python one.",[1663,1664,1666],"h2",{"id":1665},"before-you-begin","Before you begin",[1668,1669],"hr",{},[1659,1671,1672],{},"You need:",[1674,1675,1676,1680],"ul",{},[1677,1678,1679],"li",{},"Node 18 or later.",[1677,1681,1682,1683,1686],{},"An axiom.ai API key. See ",[1684,1685,199],"a",{"href":200},".",[1663,1688,1690],{"id":1689},"step-1-install-dependencies","Step 1: install dependencies",[1668,1692],{},[1694,1695,1700],"pre",{"className":1696,"code":1697,"language":1698,"meta":1699,"style":1699},"language-bash shiki shiki-themes github-light-default github-dark-default","npm install @modelcontextprotocol\u002Fsdk zod\n","bash","",[1701,1702,1703],"code",{"__ignoreMap":1699},[1704,1705,1708,1712,1716,1719],"span",{"class":1706,"line":1707},"line",1,[1704,1709,1711],{"class":1710},"sTDnQ","npm",[1704,1713,1715],{"class":1714},"sSVrQ"," install",[1704,1717,1718],{"class":1714}," @modelcontextprotocol\u002Fsdk",[1704,1720,1721],{"class":1714}," zod\n",[1659,1723,1724],{},"The SDK is dual-published as both ESM and CJS, so the same install works for either module style.",[1663,1726,1728],{"id":1727},"step-2-write-the-server","Step 2: write the server",[1668,1730],{},[1659,1732,1733,1734,1737,1738,1741,1742,1745],{},"Create a file called ",[1701,1735,1736],{},"axiom_mcp.cjs",". Using a ",[1701,1739,1740],{},".cjs"," extension and dynamic ",[1701,1743,1744],{},"import()"," keeps the file working across every Node 18+ runtime, regardless of how exports get resolved.",[1694,1747,1751],{"className":1748,"code":1749,"language":1750,"meta":1699,"style":1699},"language-javascript shiki shiki-themes github-light-default github-dark-default","const AXIOM_BASE = \"https:\u002F\u002Flar.axiom.ai\u002Fapi\u002Fv3\";\nconst KEY = process.env.AXIOM_API_KEY;\nif (!KEY) throw new Error(\"AXIOM_API_KEY env var is required\");\n\nasync function postJson(path, body) {\n  const res = await fetch(`${AXIOM_BASE}${path}`, {\n    method: \"POST\",\n    headers: { \"content-type\": \"application\u002Fjson\" },\n    body: JSON.stringify(body),\n  });\n  return res.json();\n}\n\n(async () => {\n  \u002F\u002F Dynamic import so this CJS file can consume the dual-published SDK.\n  const { McpServer } = await import(\"@modelcontextprotocol\u002Fsdk\u002Fserver\u002Fmcp.js\");\n  const { StdioServerTransport } = await import(\n    \"@modelcontextprotocol\u002Fsdk\u002Fserver\u002Fstdio.js\"\n  );\n  const { z } = await import(\"zod\");\n\n  const server = new McpServer({ name: \"axiom\", version: \"0.1.0\" });\n\n  server.registerTool(\n    \"trigger_automation\",\n    {\n      description:\n        \"Trigger an axiom.ai cloud automation by exact name. Optional `data` is a 3-D array of [tables][rows][cells] passed as the automation's input.\",\n      inputSchema: {\n        name: z.string(),\n        data: z.array(z.array(z.array(z.string()))).optional(),\n      },\n    },\n    async ({ name, data }) => {\n      const body = { key: KEY, name, ...(data ? { data } : {}) };\n      const result = await postJson(\"\u002Ftrigger\", body);\n      return { content: [{ type: \"text\", text: JSON.stringify(result) }] };\n    },\n  );\n\n  server.registerTool(\n    \"run_status\",\n    {\n      description: \"Check the status of a triggered axiom.ai automation run.\",\n      inputSchema: { run_id: z.string() },\n    },\n    async ({ run_id }) => {\n      const result = await postJson(\"\u002Frun-data\", { key: KEY, run_id });\n      return { content: [{ type: \"text\", text: JSON.stringify(result) }] };\n    },\n  );\n\n  await server.connect(new StdioServerTransport());\n})();\n","javascript",[1701,1752,1753,1773,1791,1828,1835,1861,1897,1909,1927,1944,1950,1965,1971,1976,1992,1999,2028,2049,2055,2061,2086,2091,2121,2126,2137,2145,2151,2157,2165,2171,2183,2213,2219,2225,2249,2286,2308,2332,2337,2342,2347,2356,2364,2369,2380,2391,2396,2412,2438,2457,2462,2467,2472,2495],{"__ignoreMap":1699},[1704,1754,1755,1759,1763,1766,1769],{"class":1706,"line":1707},[1704,1756,1758],{"class":1757},"sjeE4","const",[1704,1760,1762],{"class":1761},"sHrmB"," AXIOM_BASE",[1704,1764,1765],{"class":1757}," =",[1704,1767,1768],{"class":1714}," \"https:\u002F\u002Flar.axiom.ai\u002Fapi\u002Fv3\"",[1704,1770,1772],{"class":1771},"s4rv2",";\n",[1704,1774,1776,1778,1781,1783,1786,1789],{"class":1706,"line":1775},2,[1704,1777,1758],{"class":1757},[1704,1779,1780],{"class":1761}," KEY",[1704,1782,1765],{"class":1757},[1704,1784,1785],{"class":1771}," process.env.",[1704,1787,1788],{"class":1761},"AXIOM_API_KEY",[1704,1790,1772],{"class":1771},[1704,1792,1794,1797,1800,1803,1806,1809,1812,1815,1819,1822,1825],{"class":1706,"line":1793},3,[1704,1795,1796],{"class":1757},"if",[1704,1798,1799],{"class":1771}," (",[1704,1801,1802],{"class":1757},"!",[1704,1804,1805],{"class":1761},"KEY",[1704,1807,1808],{"class":1771},") ",[1704,1810,1811],{"class":1757},"throw",[1704,1813,1814],{"class":1757}," new",[1704,1816,1818],{"class":1817},"sbjLL"," Error",[1704,1820,1821],{"class":1771},"(",[1704,1823,1824],{"class":1714},"\"AXIOM_API_KEY env var is required\"",[1704,1826,1827],{"class":1771},");\n",[1704,1829,1831],{"class":1706,"line":1830},4,[1704,1832,1834],{"emptyLinePlaceholder":1833},true,"\n",[1704,1836,1838,1841,1844,1847,1849,1852,1855,1858],{"class":1706,"line":1837},5,[1704,1839,1840],{"class":1757},"async",[1704,1842,1843],{"class":1757}," function",[1704,1845,1846],{"class":1817}," postJson",[1704,1848,1821],{"class":1771},[1704,1850,1851],{"class":1710},"path",[1704,1853,1854],{"class":1771},", ",[1704,1856,1857],{"class":1710},"body",[1704,1859,1860],{"class":1771},") {\n",[1704,1862,1864,1867,1870,1872,1875,1878,1880,1883,1886,1889,1891,1894],{"class":1706,"line":1863},6,[1704,1865,1866],{"class":1757},"  const",[1704,1868,1869],{"class":1761}," res",[1704,1871,1765],{"class":1757},[1704,1873,1874],{"class":1757}," await",[1704,1876,1877],{"class":1817}," fetch",[1704,1879,1821],{"class":1771},[1704,1881,1882],{"class":1714},"`${",[1704,1884,1885],{"class":1761},"AXIOM_BASE",[1704,1887,1888],{"class":1714},"}${",[1704,1890,1851],{"class":1771},[1704,1892,1893],{"class":1714},"}`",[1704,1895,1896],{"class":1771},", {\n",[1704,1898,1900,1903,1906],{"class":1706,"line":1899},7,[1704,1901,1902],{"class":1771},"    method: ",[1704,1904,1905],{"class":1714},"\"POST\"",[1704,1907,1908],{"class":1771},",\n",[1704,1910,1912,1915,1918,1921,1924],{"class":1706,"line":1911},8,[1704,1913,1914],{"class":1771},"    headers: { ",[1704,1916,1917],{"class":1714},"\"content-type\"",[1704,1919,1920],{"class":1771},": ",[1704,1922,1923],{"class":1714},"\"application\u002Fjson\"",[1704,1925,1926],{"class":1771}," },\n",[1704,1928,1930,1933,1936,1938,1941],{"class":1706,"line":1929},9,[1704,1931,1932],{"class":1771},"    body: ",[1704,1934,1935],{"class":1761},"JSON",[1704,1937,1686],{"class":1771},[1704,1939,1940],{"class":1817},"stringify",[1704,1942,1943],{"class":1771},"(body),\n",[1704,1945,1947],{"class":1706,"line":1946},10,[1704,1948,1949],{"class":1771},"  });\n",[1704,1951,1953,1956,1959,1962],{"class":1706,"line":1952},11,[1704,1954,1955],{"class":1757},"  return",[1704,1957,1958],{"class":1771}," res.",[1704,1960,1961],{"class":1817},"json",[1704,1963,1964],{"class":1771},"();\n",[1704,1966,1968],{"class":1706,"line":1967},12,[1704,1969,1970],{"class":1771},"}\n",[1704,1972,1974],{"class":1706,"line":1973},13,[1704,1975,1834],{"emptyLinePlaceholder":1833},[1704,1977,1979,1981,1983,1986,1989],{"class":1706,"line":1978},14,[1704,1980,1821],{"class":1771},[1704,1982,1840],{"class":1757},[1704,1984,1985],{"class":1771}," () ",[1704,1987,1988],{"class":1757},"=>",[1704,1990,1991],{"class":1771}," {\n",[1704,1993,1995],{"class":1706,"line":1994},15,[1704,1996,1998],{"class":1997},"sU953","  \u002F\u002F Dynamic import so this CJS file can consume the dual-published SDK.\n",[1704,2000,2002,2004,2007,2010,2013,2016,2018,2021,2023,2026],{"class":1706,"line":2001},16,[1704,2003,1866],{"class":1757},[1704,2005,2006],{"class":1771}," { ",[1704,2008,2009],{"class":1761},"McpServer",[1704,2011,2012],{"class":1771}," } ",[1704,2014,2015],{"class":1757},"=",[1704,2017,1874],{"class":1757},[1704,2019,2020],{"class":1757}," import",[1704,2022,1821],{"class":1771},[1704,2024,2025],{"class":1714},"\"@modelcontextprotocol\u002Fsdk\u002Fserver\u002Fmcp.js\"",[1704,2027,1827],{"class":1771},[1704,2029,2031,2033,2035,2038,2040,2042,2044,2046],{"class":1706,"line":2030},17,[1704,2032,1866],{"class":1757},[1704,2034,2006],{"class":1771},[1704,2036,2037],{"class":1761},"StdioServerTransport",[1704,2039,2012],{"class":1771},[1704,2041,2015],{"class":1757},[1704,2043,1874],{"class":1757},[1704,2045,2020],{"class":1817},[1704,2047,2048],{"class":1771},"(\n",[1704,2050,2052],{"class":1706,"line":2051},18,[1704,2053,2054],{"class":1714},"    \"@modelcontextprotocol\u002Fsdk\u002Fserver\u002Fstdio.js\"\n",[1704,2056,2058],{"class":1706,"line":2057},19,[1704,2059,2060],{"class":1771},"  );\n",[1704,2062,2064,2066,2068,2071,2073,2075,2077,2079,2081,2084],{"class":1706,"line":2063},20,[1704,2065,1866],{"class":1757},[1704,2067,2006],{"class":1771},[1704,2069,2070],{"class":1761},"z",[1704,2072,2012],{"class":1771},[1704,2074,2015],{"class":1757},[1704,2076,1874],{"class":1757},[1704,2078,2020],{"class":1757},[1704,2080,1821],{"class":1771},[1704,2082,2083],{"class":1714},"\"zod\"",[1704,2085,1827],{"class":1771},[1704,2087,2089],{"class":1706,"line":2088},21,[1704,2090,1834],{"emptyLinePlaceholder":1833},[1704,2092,2094,2096,2099,2101,2103,2106,2109,2112,2115,2118],{"class":1706,"line":2093},22,[1704,2095,1866],{"class":1757},[1704,2097,2098],{"class":1761}," server",[1704,2100,1765],{"class":1757},[1704,2102,1814],{"class":1757},[1704,2104,2105],{"class":1817}," McpServer",[1704,2107,2108],{"class":1771},"({ name: ",[1704,2110,2111],{"class":1714},"\"axiom\"",[1704,2113,2114],{"class":1771},", version: ",[1704,2116,2117],{"class":1714},"\"0.1.0\"",[1704,2119,2120],{"class":1771}," });\n",[1704,2122,2124],{"class":1706,"line":2123},23,[1704,2125,1834],{"emptyLinePlaceholder":1833},[1704,2127,2129,2132,2135],{"class":1706,"line":2128},24,[1704,2130,2131],{"class":1771},"  server.",[1704,2133,2134],{"class":1817},"registerTool",[1704,2136,2048],{"class":1771},[1704,2138,2140,2143],{"class":1706,"line":2139},25,[1704,2141,2142],{"class":1714},"    \"trigger_automation\"",[1704,2144,1908],{"class":1771},[1704,2146,2148],{"class":1706,"line":2147},26,[1704,2149,2150],{"class":1771},"    {\n",[1704,2152,2154],{"class":1706,"line":2153},27,[1704,2155,2156],{"class":1771},"      description:\n",[1704,2158,2160,2163],{"class":1706,"line":2159},28,[1704,2161,2162],{"class":1714},"        \"Trigger an axiom.ai cloud automation by exact name. Optional `data` is a 3-D array of [tables][rows][cells] passed as the automation's input.\"",[1704,2164,1908],{"class":1771},[1704,2166,2168],{"class":1706,"line":2167},29,[1704,2169,2170],{"class":1771},"      inputSchema: {\n",[1704,2172,2174,2177,2180],{"class":1706,"line":2173},30,[1704,2175,2176],{"class":1771},"        name: z.",[1704,2178,2179],{"class":1817},"string",[1704,2181,2182],{"class":1771},"(),\n",[1704,2184,2186,2189,2192,2195,2197,2199,2201,2203,2205,2208,2211],{"class":1706,"line":2185},31,[1704,2187,2188],{"class":1771},"        data: z.",[1704,2190,2191],{"class":1817},"array",[1704,2193,2194],{"class":1771},"(z.",[1704,2196,2191],{"class":1817},[1704,2198,2194],{"class":1771},[1704,2200,2191],{"class":1817},[1704,2202,2194],{"class":1771},[1704,2204,2179],{"class":1817},[1704,2206,2207],{"class":1771},"()))).",[1704,2209,2210],{"class":1817},"optional",[1704,2212,2182],{"class":1771},[1704,2214,2216],{"class":1706,"line":2215},32,[1704,2217,2218],{"class":1771},"      },\n",[1704,2220,2222],{"class":1706,"line":2221},33,[1704,2223,2224],{"class":1771},"    },\n",[1704,2226,2228,2231,2234,2237,2239,2242,2245,2247],{"class":1706,"line":2227},34,[1704,2229,2230],{"class":1757},"    async",[1704,2232,2233],{"class":1771}," ({ ",[1704,2235,2236],{"class":1710},"name",[1704,2238,1854],{"class":1771},[1704,2240,2241],{"class":1710},"data",[1704,2243,2244],{"class":1771}," }) ",[1704,2246,1988],{"class":1757},[1704,2248,1991],{"class":1771},[1704,2250,2252,2255,2258,2260,2263,2265,2268,2271,2274,2277,2280,2283],{"class":1706,"line":2251},35,[1704,2253,2254],{"class":1757},"      const",[1704,2256,2257],{"class":1761}," body",[1704,2259,1765],{"class":1757},[1704,2261,2262],{"class":1771}," { key: ",[1704,2264,1805],{"class":1761},[1704,2266,2267],{"class":1771},", name, ",[1704,2269,2270],{"class":1757},"...",[1704,2272,2273],{"class":1771},"(data ",[1704,2275,2276],{"class":1757},"?",[1704,2278,2279],{"class":1771}," { data } ",[1704,2281,2282],{"class":1757},":",[1704,2284,2285],{"class":1771}," {}) };\n",[1704,2287,2289,2291,2294,2296,2298,2300,2302,2305],{"class":1706,"line":2288},36,[1704,2290,2254],{"class":1757},[1704,2292,2293],{"class":1761}," result",[1704,2295,1765],{"class":1757},[1704,2297,1874],{"class":1757},[1704,2299,1846],{"class":1817},[1704,2301,1821],{"class":1771},[1704,2303,2304],{"class":1714},"\"\u002Ftrigger\"",[1704,2306,2307],{"class":1771},", body);\n",[1704,2309,2311,2314,2317,2320,2323,2325,2327,2329],{"class":1706,"line":2310},37,[1704,2312,2313],{"class":1757},"      return",[1704,2315,2316],{"class":1771}," { content: [{ type: ",[1704,2318,2319],{"class":1714},"\"text\"",[1704,2321,2322],{"class":1771},", text: ",[1704,2324,1935],{"class":1761},[1704,2326,1686],{"class":1771},[1704,2328,1940],{"class":1817},[1704,2330,2331],{"class":1771},"(result) }] };\n",[1704,2333,2335],{"class":1706,"line":2334},38,[1704,2336,2224],{"class":1771},[1704,2338,2340],{"class":1706,"line":2339},39,[1704,2341,2060],{"class":1771},[1704,2343,2345],{"class":1706,"line":2344},40,[1704,2346,1834],{"emptyLinePlaceholder":1833},[1704,2348,2350,2352,2354],{"class":1706,"line":2349},41,[1704,2351,2131],{"class":1771},[1704,2353,2134],{"class":1817},[1704,2355,2048],{"class":1771},[1704,2357,2359,2362],{"class":1706,"line":2358},42,[1704,2360,2361],{"class":1714},"    \"run_status\"",[1704,2363,1908],{"class":1771},[1704,2365,2367],{"class":1706,"line":2366},43,[1704,2368,2150],{"class":1771},[1704,2370,2372,2375,2378],{"class":1706,"line":2371},44,[1704,2373,2374],{"class":1771},"      description: ",[1704,2376,2377],{"class":1714},"\"Check the status of a triggered axiom.ai automation run.\"",[1704,2379,1908],{"class":1771},[1704,2381,2383,2386,2388],{"class":1706,"line":2382},45,[1704,2384,2385],{"class":1771},"      inputSchema: { run_id: z.",[1704,2387,2179],{"class":1817},[1704,2389,2390],{"class":1771},"() },\n",[1704,2392,2394],{"class":1706,"line":2393},46,[1704,2395,2224],{"class":1771},[1704,2397,2399,2401,2403,2406,2408,2410],{"class":1706,"line":2398},47,[1704,2400,2230],{"class":1757},[1704,2402,2233],{"class":1771},[1704,2404,2405],{"class":1710},"run_id",[1704,2407,2244],{"class":1771},[1704,2409,1988],{"class":1757},[1704,2411,1991],{"class":1771},[1704,2413,2415,2417,2419,2421,2423,2425,2427,2430,2433,2435],{"class":1706,"line":2414},48,[1704,2416,2254],{"class":1757},[1704,2418,2293],{"class":1761},[1704,2420,1765],{"class":1757},[1704,2422,1874],{"class":1757},[1704,2424,1846],{"class":1817},[1704,2426,1821],{"class":1771},[1704,2428,2429],{"class":1714},"\"\u002Frun-data\"",[1704,2431,2432],{"class":1771},", { key: ",[1704,2434,1805],{"class":1761},[1704,2436,2437],{"class":1771},", run_id });\n",[1704,2439,2441,2443,2445,2447,2449,2451,2453,2455],{"class":1706,"line":2440},49,[1704,2442,2313],{"class":1757},[1704,2444,2316],{"class":1771},[1704,2446,2319],{"class":1714},[1704,2448,2322],{"class":1771},[1704,2450,1935],{"class":1761},[1704,2452,1686],{"class":1771},[1704,2454,1940],{"class":1817},[1704,2456,2331],{"class":1771},[1704,2458,2460],{"class":1706,"line":2459},50,[1704,2461,2224],{"class":1771},[1704,2463,2465],{"class":1706,"line":2464},51,[1704,2466,2060],{"class":1771},[1704,2468,2470],{"class":1706,"line":2469},52,[1704,2471,1834],{"emptyLinePlaceholder":1833},[1704,2473,2475,2478,2481,2484,2486,2489,2492],{"class":1706,"line":2474},53,[1704,2476,2477],{"class":1757},"  await",[1704,2479,2480],{"class":1771}," server.",[1704,2482,2483],{"class":1817},"connect",[1704,2485,1821],{"class":1771},[1704,2487,2488],{"class":1757},"new",[1704,2490,2491],{"class":1817}," StdioServerTransport",[1704,2493,2494],{"class":1771},"());\n",[1704,2496,2498],{"class":1706,"line":2497},54,[1704,2499,2500],{"class":1771},"})();\n",[1663,2502,2504],{"id":2503},"step-3-register-it-with-a-client","Step 3: register it with a client",[1668,2506],{},[1659,2508,2509,2510,2512],{},"See ",[1684,2511,425],{"href":426}," for the full configuration snippets. The shortest version, for Claude Desktop:",[1694,2514,2517],{"className":2515,"code":2516,"language":1961,"meta":1699,"style":1699},"language-json shiki shiki-themes github-light-default github-dark-default","{\n  \"mcpServers\": {\n    \"axiom\": {\n      \"command\": \"node\",\n      \"args\": [\"\u002Fabsolute\u002Fpath\u002Fto\u002Faxiom_mcp.cjs\"],\n      \"env\": { \"AXIOM_API_KEY\": \"your-api-key-here\" }\n    }\n  }\n}\n",[1701,2518,2519,2524,2533,2540,2552,2566,2585,2590,2595],{"__ignoreMap":1699},[1704,2520,2521],{"class":1706,"line":1707},[1704,2522,2523],{"class":1771},"{\n",[1704,2525,2526,2530],{"class":1706,"line":1775},[1704,2527,2529],{"class":2528},"sjgCt","  \"mcpServers\"",[1704,2531,2532],{"class":1771},": {\n",[1704,2534,2535,2538],{"class":1706,"line":1793},[1704,2536,2537],{"class":2528},"    \"axiom\"",[1704,2539,2532],{"class":1771},[1704,2541,2542,2545,2547,2550],{"class":1706,"line":1830},[1704,2543,2544],{"class":2528},"      \"command\"",[1704,2546,1920],{"class":1771},[1704,2548,2549],{"class":1714},"\"node\"",[1704,2551,1908],{"class":1771},[1704,2553,2554,2557,2560,2563],{"class":1706,"line":1837},[1704,2555,2556],{"class":2528},"      \"args\"",[1704,2558,2559],{"class":1771},": [",[1704,2561,2562],{"class":1714},"\"\u002Fabsolute\u002Fpath\u002Fto\u002Faxiom_mcp.cjs\"",[1704,2564,2565],{"class":1771},"],\n",[1704,2567,2568,2571,2574,2577,2579,2582],{"class":1706,"line":1863},[1704,2569,2570],{"class":2528},"      \"env\"",[1704,2572,2573],{"class":1771},": { ",[1704,2575,2576],{"class":2528},"\"AXIOM_API_KEY\"",[1704,2578,1920],{"class":1771},[1704,2580,2581],{"class":1714},"\"your-api-key-here\"",[1704,2583,2584],{"class":1771}," }\n",[1704,2586,2587],{"class":1706,"line":1899},[1704,2588,2589],{"class":1771},"    }\n",[1704,2591,2592],{"class":1706,"line":1911},[1704,2593,2594],{"class":1771},"  }\n",[1704,2596,2597],{"class":1706,"line":1929},[1704,2598,1970],{"class":1771},[1659,2600,2601,2602,2605,2606,2609],{},"Restart the client. Your ",[1701,2603,2604],{},"trigger_automation"," and ",[1701,2607,2608],{},"run_status"," tools appear and the LLM can call them in conversation.",[1663,2611,2613],{"id":2612},"why-the-dynamic-import","Why the dynamic import",[1668,2615],{},[1659,2617,2618,2619,2622,2623,2626],{},"The MCP SDK ships ESM as primary with a CJS build alongside. A top-level ",[1701,2620,2621],{},"require(\"@modelcontextprotocol\u002Fsdk\u002F...\")"," works in some Node versions and breaks in others depending on how exports are resolved. A top-level ",[1701,2624,2625],{},"import"," forces the file to be ESM and is fine if your project is ESM, but breaks in CJS projects.",[1659,2628,2629,2630,2633,2634,2636,2637,2640,2641,2644,2645,2648,2649,2651],{},"Using ",[1701,2631,2632],{},"await import()"," from a ",[1701,2635,1740],{}," file (or a ",[1701,2638,2639],{},".js"," file with ",[1701,2642,2643],{},"\"type\": \"commonjs\""," in ",[1701,2646,2647],{},"package.json",") sidesteps the whole issue and works on every Node 18+ runtime. If your project is ESM, you can use top-level ",[1701,2650,2625],{}," instead and drop the dynamic loader.",[1663,2653,2655],{"id":2654},"audit-the-sdk-before-pinning","Audit the SDK before pinning",[1668,2657],{},[1659,2659,2660],{},"Worth a five-minute check for anything you're shipping to users:",[1674,2662,2663,2673,2688,2695],{},[1677,2664,2665,2666,2672],{},"Source: ",[1684,2667,2671],{"href":2668,"rel":2669},"https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Ftypescript-sdk",[2670],"nofollow","github.com\u002Fmodelcontextprotocol\u002Ftypescript-sdk",", MIT-licensed, published by Anthropic.",[1677,2674,2675,2676,2679,2680,2683,2684,2687],{},"No ",[1701,2677,2678],{},"install"," or ",[1701,2681,2682],{},"postinstall"," scripts (verify with ",[1701,2685,2686],{},"npm view @modelcontextprotocol\u002Fsdk@\u003Cversion> scripts",").",[1677,2689,2690,2691,2694],{},"Has SLSA provenance attestations on recent releases (verify with ",[1701,2692,2693],{},"npm audit signatures"," or the npm web UI).",[1677,2696,2697],{},"Pin to an exact reviewed version in your lockfile rather than floating, re-audit when bumping.",[1663,2699,2701],{"id":2700},"step-4-extend-it","Step 4: extend it",[1668,2703],{},[1659,2705,2706],{},"The minimal server above is intentionally tiny. Real custom servers usually add:",[1674,2708,2709,2718,2726,2739,2748],{},[1677,2710,2711,2717],{},[2712,2713,2714],"strong",{},[1701,2715,2716],{},"stop_run"," to cancel misbehaving runs.",[1677,2719,2720,2725],{},[2712,2721,2722],{},[1701,2723,2724],{},"remaining_runtime"," so the LLM can check quota before triggering expensive runs.",[1677,2727,2728,2731,2732,2735,2736,2738],{},[2712,2729,2730],{},"Domain-specific wrappers",", for example ",[1701,2733,2734],{},"scrape_amazon_asin(asin)"," that internally calls ",[1701,2737,2604],{}," and waits for completion. The LLM gets a clean, typed tool instead of having to learn each automation's input shape.",[1677,2740,2741,2744,2745,2747],{},[2712,2742,2743],{},"Polling and completion handling"," so the tool returns a finished result rather than a ",[1701,2746,2405],{}," the LLM has to poll itself.",[1677,2749,2750,2753,2754,2756],{},[2712,2751,2752],{},"Step-function tools",", mirroring the ",[1684,2755,277],{"href":278}," if you want the LLM to drive a session step by step.",[1663,2758,2760],{"id":2759},"notes","Notes",[1668,2762],{},[1674,2764,2765,2771,2782],{},[1677,2766,2767,2768,2770],{},"Treat your ",[1701,2769,1788],{}," like any other secret. Don't commit it to source control.",[1677,2772,2773,2774,2777,2778,2781],{},"The server runs as a child process of the MCP client, so its stdout is the protocol channel. Don't ",[1701,2775,2776],{},"console.log"," debug messages, write them to a file or use ",[1701,2779,2780],{},"console.error"," (stderr is safe).",[1677,2783,2784,2785,1686],{},"For production, consider switching from stdio to streamable HTTP transport so the server can run remotely. See the ",[1684,2786,2789],{"href":2787,"rel":2788},"https:\u002F\u002Fmodelcontextprotocol.io\u002Fdocs\u002Fdevelop\u002Fbuild-server",[2670],"Anthropic build-a-server guide",[2791,2792,2793],"style",{},"html pre.shiki code .sTDnQ, html code.shiki .sTDnQ{--shiki-default:#953800;--shiki-dark:#FFA657}html pre.shiki code .sSVrQ, html code.shiki .sSVrQ{--shiki-default:#0A3069;--shiki-dark:#A5D6FF}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);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sjeE4, html code.shiki .sjeE4{--shiki-default:#CF222E;--shiki-dark:#FF7B72}html pre.shiki code .sHrmB, html code.shiki .sHrmB{--shiki-default:#0550AE;--shiki-dark:#79C0FF}html pre.shiki code .s4rv2, html code.shiki .s4rv2{--shiki-default:#1F2328;--shiki-dark:#E6EDF3}html pre.shiki code .sbjLL, html code.shiki .sbjLL{--shiki-default:#8250DF;--shiki-dark:#D2A8FF}html pre.shiki code .sU953, html code.shiki .sU953{--shiki-default:#6E7781;--shiki-dark:#8B949E}html pre.shiki code .sjgCt, html code.shiki .sjgCt{--shiki-default:#116329;--shiki-dark:#7EE787}",{"title":1699,"searchDepth":1793,"depth":1793,"links":2795},[2796,2797,2798,2799,2800,2801,2802,2803],{"id":1665,"depth":1775,"text":1666},{"id":1689,"depth":1775,"text":1690},{"id":1727,"depth":1775,"text":1728},{"id":2503,"depth":1775,"text":2504},{"id":2612,"depth":1775,"text":2613},{"id":2654,"depth":1775,"text":2655},{"id":2700,"depth":1775,"text":2701},{"id":2759,"depth":1775,"text":2760},null,"Build a minimal Model Context Protocol server in Node and TypeScript that exposes axiom.ai automation triggers as tools for any MCP client.","md",{"metaTitle":2808},"Build a TypeScript MCP server that wraps the axiom.ai API",{"title":417,"description":2805},"WgAz6fupTrqqGpNeGIEt2rRGffRNdNFLOZOouBevlPs",[2812,2882,2894],{"key":2813,"title":2814,"href":518,"sections":2815},"no-code","No-code tool",[2816,2828,2841,2849,2866,2871,2877,2880],{"id":2817,"title":2818,"href":1444,"mode":2819,"children":2820},"the-builder","The builder","collapsible",[2821,2822,2823,2824,2825,2826,2827],{"title":1461,"href":1462},{"title":1457,"href":1458},{"title":1453,"href":1454},{"title":1465,"href":1466},{"title":1469,"href":1470},{"title":1487,"href":1488},{"title":1449,"href":1450},{"id":2829,"title":549,"href":550,"mode":2819,"children":2830},"how-it-works",[2831,2832,2833,2834,2835,2836,2837,2838,2839,2840],{"title":555,"href":556},{"title":659,"href":660},{"title":637,"href":638},{"title":712,"href":713},{"title":674,"href":675},{"title":678,"href":679},{"title":323,"href":667},{"title":762,"href":763},{"title":670,"href":671},{"title":716,"href":717},{"id":2842,"title":2843,"href":528,"mode":2819,"children":2844},"get-started","Get started",[2845,2846,2847,2848],{"title":541,"href":542},{"title":533,"href":534},{"title":545,"href":546},{"title":537,"href":538},{"id":2850,"title":17,"href":775,"mode":2819,"children":2851},"integrations",[2852,2853,2854,2855,2856,2857,2858,2859,2860,2861,2862,2863,2864,2865],{"title":832,"href":833},{"title":808,"href":809},{"title":788,"href":789},{"title":784,"href":785},{"title":820,"href":821},{"title":812,"href":813},{"title":816,"href":817},{"title":800,"href":801},{"title":824,"href":825},{"title":792,"href":793},{"title":804,"href":805},{"title":828,"href":829},{"title":796,"href":797},{"title":780,"href":781},{"id":2867,"title":217,"href":836,"mode":2819,"children":2868},"reference",[2869,2870],{"title":841,"href":842},{"title":950,"href":951},{"id":2872,"title":1491,"href":1492,"mode":2819,"children":2873},"troubleshooting",[2874,2875,2876],{"title":1501,"href":1502},{"title":1579,"href":1580},{"title":1497,"href":1498},{"title":523,"href":524,"mode":2878,"children":2879},"link",[],{"title":1310,"href":1311,"mode":2878,"children":2881},[],{"key":1701,"title":143,"href":144,"sections":2883},[2884],{"id":1701,"title":143,"href":144,"mode":2885,"children":2886},"flat",[2887,2888,2889,2890,2891,2892,2893],{"title":153,"href":154},{"title":157,"href":158},{"title":149,"href":150},{"title":165,"href":166},{"title":169,"href":170},{"title":161,"href":162},{"title":183,"href":184},{"key":2895,"title":2896,"href":188,"sections":2897},"developer-hub","Developer hub",[2898,2909,2916,2921,2928,2933],{"id":2899,"title":193,"href":194,"mode":2819,"children":2900},"dh-api",[2901,2902,2903,2904,2905,2906,2907,2908],{"title":239,"href":240},{"title":213,"href":214},{"title":199,"href":200},{"title":203,"href":204},{"title":209,"href":210},{"title":367,"href":368},{"title":277,"href":278},{"title":217,"href":218},{"id":2910,"title":407,"href":408,"mode":2819,"children":2911},"dh-mcp",[2912,2913,2914,2915],{"title":421,"href":422},{"title":413,"href":414},{"title":417,"href":418},{"title":425,"href":426},{"id":2917,"title":429,"href":430,"mode":2819,"children":2918},"dh-snippets",[2919,2920],{"title":435,"href":436},{"title":465,"href":466},{"id":2922,"title":385,"href":386,"mode":2819,"children":2923},"dh-deep-dives",[2924,2925,2926,2927],{"title":395,"href":396},{"title":391,"href":392},{"title":399,"href":400},{"title":403,"href":404},{"id":2929,"title":1491,"href":478,"mode":2819,"children":2930},"dh-troubleshooting",[2931,2932],{"title":487,"href":488},{"title":483,"href":484},{"title":137,"href":138,"mode":2878,"children":2934},[],{"parent":408,"items":2936},[2937,3787,4477,5294],{"id":2938,"title":421,"body":2939,"date":2804,"description":3782,"extension":2806,"meta":3783,"navigation":1833,"order":1707,"path":422,"seo":3785,"stem":423,"__hash__":3786},"content\u002Fdocs\u002Fdeveloper-hub\u002Fmcp\u002Fdesktop-app-server.md",{"type":1656,"value":2940,"toc":3770},[2941,2948,2955,2959,2961,2968,2990,2992,2994,2996,3035,3038,3040,3050,3053,3107,3114,3121,3125,3127,3140,3204,3210,3232,3235,3239,3241,3250,3302,3305,3307,3318,3383,3390,3395,3402,3406,3408,3416,3421,3493,3498,3516,3523,3527,3529,3532,3538,3541,3583,3586,3588,3601,3609,3715,3717,3719,3767],[1659,2942,2943,2944,2947],{},"The axiom.ai desktop app ships with an MCP server, ",[1701,2945,2946],{},"axiom-mcp",", bundled alongside the app. Point any MCP-aware client at it — Claude Desktop, Claude Code, Cursor, or anything else that speaks the Model Context Protocol — and the LLM can call axiom.ai tools in conversation.",[1659,2949,2950,2951,2954],{},"The server speaks MCP over ",[2712,2952,2953],{},"stdio",": your MCP client launches it as a subprocess and talks to it over standard input\u002Foutput. It opens no ports and is not reachable from the network. It uses the axiom.ai API key you give it, and acts only on the account that owns that key.",[1663,2956,2958],{"id":2957},"two-ways-to-set-it-up","Two ways to set it up",[1668,2960],{},[1659,2962,2963,2964,2967],{},"Whichever route you take, the result is the same: an ",[1701,2965,2966],{},"axiom"," entry in your MCP client's own config, carrying the path to the server and your API key.",[1674,2969,2970,2980],{},[1677,2971,2972,2975,2976,1686],{},[2712,2973,2974],{},"Claude Desktop, Claude Code and Cursor"," — the desktop app configures these for you, from a panel or from the command line. Start with ",[1684,2977,2979],{"href":2978},"#set-it-up-from-the-desktop-app","Set it up from the desktop app",[1677,2981,2982,2985,2986,1686],{},[2712,2983,2984],{},"Any other MCP client"," — edit its config yourself. See ",[1684,2987,2989],{"href":2988},"#configure-another-client-by-hand","Configure another client by hand",[1663,2991,1666],{"id":1665},[1668,2993],{},[1659,2995,1672],{},[1674,2997,2998,3009,3023],{},[1677,2999,3000,3001,3004,3005,3008],{},"A ",[2712,3002,3003],{},"paid axiom.ai account",". API access is gated to paid plans. See the ",[1684,3006,3007],{"href":1635},"pricing page"," for plans that include the API.",[1677,3010,3011,3012,3015,3016,3019,3020,3022],{},"The ",[2712,3013,3014],{},"axiom.ai desktop app",", installed. Download it from the ",[1684,3017,3018],{"href":1627},"desktop app page",". The app supplies the ",[1701,3021,2946],{}," binary; you don't need to install anything else.",[1677,3024,3025,3026,3029,3030,3032,3033,1686],{},"An ",[2712,3027,3028],{},"axiom.ai API key",", generated from the ",[2712,3031,153],{},". See ",[1684,3034,199],{"href":200},[1663,3036,2979],{"id":3037},"set-it-up-from-the-desktop-app",[1668,3039],{},[1659,3041,3042,3043,3046,3047,1686],{},"Open the app's tray menu and choose ",[2712,3044,3045],{},"Set up Claude MCP…",". Paste your API key into the card, and click ",[2712,3048,3049],{},"Save and activate",[1659,3051,3052],{},"The app configures every supported client it finds installed:",[3054,3055,3056,3069],"table",{},[3057,3058,3059],"thead",{},[3060,3061,3062,3066],"tr",{},[3063,3064,3065],"th",{},"Client",[3063,3067,3068],{},"What the app does",[3070,3071,3072,3087,3095],"tbody",{},[3060,3073,3074,3078],{},[3075,3076,3077],"td",{},"Claude Desktop",[3075,3079,3080,3081,3083,3084],{},"Adds an ",[1701,3082,2966],{}," entry to ",[1701,3085,3086],{},"claude_desktop_config.json",[3060,3088,3089,3092],{},[3075,3090,3091],{},"Claude Code",[3075,3093,3094],{},"Registers the server at user scope, through Claude Code's own CLI",[3060,3096,3097,3100],{},[3075,3098,3099],{},"Cursor",[3075,3101,3080,3102,3083,3104],{},[1701,3103,2966],{},[1701,3105,3106],{},"~\u002F.cursor\u002Fmcp.json",[1659,3108,3109,3110,3113],{},"Clients you don't have are skipped, and the card names the ones it configured. ",[2712,3111,3112],{},"Restart those clients"," — they read their MCP config only at startup.",[1659,3115,3116,3117,3120],{},"To change your key later, reopen the card, type the new key and click ",[2712,3118,3119],{},"Update key",". To remove the server, turn the toggle off; this also deletes the key, which is stored nowhere else.",[1663,3122,3124],{"id":3123},"set-it-up-from-the-command-line","Set it up from the command line",[1668,3126],{},[1659,3128,3011,3129,3131,3132,3135,3136,2282],{},[1701,3130,2946],{}," binary configures MCP clients as well as serving them. Run it with the ",[1701,3133,3134],{},"setup"," subcommand, using the ",[1684,3137,3139],{"href":3138},"#find-the-server-binary","path for your platform",[3054,3141,3142,3152],{},[3057,3143,3144],{},[3060,3145,3146,3149],{},[3063,3147,3148],{},"Command",[3063,3150,3151],{},"What it does",[3070,3153,3154,3164,3174,3184,3194],{},[3060,3155,3156,3161],{},[3075,3157,3158],{},[1701,3159,3160],{},"axiom-mcp setup status",[3075,3162,3163],{},"Lists each client, whether the server is registered, and whether a key is set",[3060,3165,3166,3171],{},[3075,3167,3168],{},[1701,3169,3170],{},"axiom-mcp setup save-key",[3075,3172,3173],{},"Registers the server and sets your API key, read from standard input",[3060,3175,3176,3181],{},[3075,3177,3178],{},[1701,3179,3180],{},"axiom-mcp setup enable",[3075,3182,3183],{},"Registers the server, keeping any key already configured",[3060,3185,3186,3191],{},[3075,3187,3188],{},[1701,3189,3190],{},"axiom-mcp setup clear-key",[3075,3192,3193],{},"Removes the key but leaves the server registered",[3060,3195,3196,3201],{},[3075,3197,3198],{},[1701,3199,3200],{},"axiom-mcp setup disable",[3075,3202,3203],{},"Removes the server from every client",[1659,3205,3206,3209],{},[1701,3207,3208],{},"save-key"," reads the key from standard input rather than from an argument, so it stays out of your shell history and the process list:",[1694,3211,3213],{"className":1696,"code":3212,"language":1698,"meta":1699,"style":1699},"pbpaste | \u002FApplications\u002FAxiomDesktop.app\u002FContents\u002FMacOS\u002Faxiom-mcp setup save-key\n",[1701,3214,3215],{"__ignoreMap":1699},[1704,3216,3217,3220,3223,3226,3229],{"class":1706,"line":1707},[1704,3218,3219],{"class":1710},"pbpaste",[1704,3221,3222],{"class":1757}," |",[1704,3224,3225],{"class":1710}," \u002FApplications\u002FAxiomDesktop.app\u002FContents\u002FMacOS\u002Faxiom-mcp",[1704,3227,3228],{"class":1714}," setup",[1704,3230,3231],{"class":1714}," save-key\n",[1659,3233,3234],{},"It covers the same three clients as the panel, and likewise skips any that aren't installed. Restart the clients it reports.",[1663,3236,3238],{"id":3237},"find-the-server-binary","Find the server binary",[1668,3240],{},[1659,3242,3243,3244,3246,3247,3249],{},"The installer places ",[1701,3245,2946],{}," next to the app's main executable. You need this path to run ",[1701,3248,3134],{}," by hand, or to configure a client the app doesn't cover.",[3054,3251,3252,3262],{},[3057,3253,3254],{},[3060,3255,3256,3259],{},[3063,3257,3258],{},"Platform",[3063,3260,3261],{},"Path",[3070,3263,3264,3274,3288],{},[3060,3265,3266,3269],{},[3075,3267,3268],{},"macOS",[3075,3270,3271],{},[1701,3272,3273],{},"\u002FApplications\u002FAxiomDesktop.app\u002FContents\u002FMacOS\u002Faxiom-mcp",[3060,3275,3276,3279],{},[3075,3277,3278],{},"Windows",[3075,3280,3281,3284,3285],{},[1701,3282,3283],{},"axiom-mcp.exe",", in the install folder next to ",[1701,3286,3287],{},"axiom-desktop.exe",[3060,3289,3290,3293],{},[3075,3291,3292],{},"Linux",[3075,3294,3295,3297,3298,3301],{},[1701,3296,2946],{},", next to the installed ",[1701,3299,3300],{},"axiom-desktop"," binary",[1663,3303,2989],{"id":3304},"configure-another-client-by-hand",[1668,3306],{},[1659,3308,3309,3310,3313,3314,3317],{},"For an MCP client the app doesn't configure, add the server to that client's own MCP config: the binary path as the ",[1701,3311,3312],{},"command",", and your API key in ",[1701,3315,3316],{},"env",". Most clients use this shape:",[1694,3319,3321],{"className":2515,"code":3320,"language":1961,"meta":1699,"style":1699},"{\n  \"mcpServers\": {\n    \"axiom\": {\n      \"command\": \"\u002FApplications\u002FAxiomDesktop.app\u002FContents\u002FMacOS\u002Faxiom-mcp\",\n      \"args\": [],\n      \"env\": { \"AXIOM_API_KEY\": \"your-api-key-here\" }\n    }\n  }\n}\n",[1701,3322,3323,3327,3333,3339,3350,3357,3371,3375,3379],{"__ignoreMap":1699},[1704,3324,3325],{"class":1706,"line":1707},[1704,3326,2523],{"class":1771},[1704,3328,3329,3331],{"class":1706,"line":1775},[1704,3330,2529],{"class":2528},[1704,3332,2532],{"class":1771},[1704,3334,3335,3337],{"class":1706,"line":1793},[1704,3336,2537],{"class":2528},[1704,3338,2532],{"class":1771},[1704,3340,3341,3343,3345,3348],{"class":1706,"line":1830},[1704,3342,2544],{"class":2528},[1704,3344,1920],{"class":1771},[1704,3346,3347],{"class":1714},"\"\u002FApplications\u002FAxiomDesktop.app\u002FContents\u002FMacOS\u002Faxiom-mcp\"",[1704,3349,1908],{"class":1771},[1704,3351,3352,3354],{"class":1706,"line":1837},[1704,3353,2556],{"class":2528},[1704,3355,3356],{"class":1771},": [],\n",[1704,3358,3359,3361,3363,3365,3367,3369],{"class":1706,"line":1863},[1704,3360,2570],{"class":2528},[1704,3362,2573],{"class":1771},[1704,3364,2576],{"class":2528},[1704,3366,1920],{"class":1771},[1704,3368,2581],{"class":1714},[1704,3370,2584],{"class":1771},[1704,3372,3373],{"class":1706,"line":1899},[1704,3374,2589],{"class":1771},[1704,3376,3377],{"class":1706,"line":1911},[1704,3378,2594],{"class":1771},[1704,3380,3381],{"class":1706,"line":1929},[1704,3382,1970],{"class":1771},[1659,3384,3385,3386,3389],{},"Use the ",[2712,3387,3388],{},"absolute"," path — a client launches the server from its own working directory, so a relative path won't resolve. Restart the client once you've saved.",[1659,3391,3392,3394],{},[1684,3393,425],{"href":426}," lists where each client keeps that file.",[1659,3396,3397,3398,3401],{},"The server identifies itself as ",[1701,3399,3400],{},"axiom-local",", so that's the name you'll see in your client's tool list.",[1663,3403,3405],{"id":3404},"what-it-gives-you","What it gives you",[1668,3407],{},[1659,3409,3410,3411,3415],{},"The server exposes axiom.ai's tool catalog. Ask your client ",[3412,3413,3414],"em",{},"\"what tools do you have available?\""," and it will list them.",[1659,3417,3418],{},[2712,3419,3420],{},"Run the automations you already have:",[1674,3422,3423,3431,3443,3467,3486],{},[1677,3424,3425,3430],{},[2712,3426,3427],{},[1701,3428,3429],{},"list_bots"," — the names of every automation saved on your account. Names must match exactly, so the LLM lists them before triggering.",[1677,3432,3433,3438,3439,3442],{},[2712,3434,3435],{},[1701,3436,3437],{},"trigger_bot"," — starts a cloud run of a saved automation by name, with an optional input payload. Returns a ",[2712,3440,3441],{},"viewer URL"," — a live view of the cloud browser you can watch or share. If no concurrency slot is free the run is queued instead, and an unknown name comes back as an error.",[1677,3444,3445,3450,3451,3454,3455,2679,3458,3461,3462,3464,3465,1686],{},[2712,3446,3447],{},[1701,3448,3449],{},"get_run_status"," — whether the automation is running, plus any data it wrote out. Identified by the ",[2712,3452,3453],{},"automation's name",", the same one you triggered — not a run id. The status is ",[1701,3456,3457],{},"Running",[1701,3459,3460],{},"Finished","; ",[1701,3463,3460],{}," only means no cloud pod is executing it, so it covers a run that failed or was stopped as well as one that succeeded. See ",[1684,3466,245],{"href":246},[1677,3468,3469,3473,3474,2605,3477,3480,3481,3483,3484,2687],{},[2712,3470,3471],{},[1701,3472,2716],{}," — cancels an in-flight run. It takes the run's ",[1701,3475,3476],{},"pid",[1701,3478,3479],{},"pw",", both derived from the viewer URL that ",[1701,3482,3437],{}," returned (see ",[1684,3485,261],{"href":262},[1677,3487,3488,3492],{},[2712,3489,3490],{},[1701,3491,2724],{}," — your cloud runtime allowance and usage for the billing period, in minutes. Worth checking before long or batched runs.",[1659,3494,3495],{},[2712,3496,3497],{},"Author new automations:",[1674,3499,3500,3508],{},[1677,3501,3502,3507],{},[2712,3503,3504],{},[1701,3505,3506],{},"list_actions"," — every automation action available (go to a page, click, enter text, extract data, loop, and so on), with a description of each. The LLM calls this to discover what it can build with.",[1677,3509,3510,3515],{},[2712,3511,3512],{},[1701,3513,3514],{},"compile_ir"," — takes an automation definition and compiles it into a runnable axiom.ai automation, validating the result.",[1659,3517,3518,3519,3522],{},"Each tool acts on the account that owns the API key you supplied, and runs count against your normal allowance. Saving compiled automations, reading full run reports, and driving a live cloud browser step by step are still on the way; until then, whether a run succeeded or failed comes from the ",[1684,3520,3521],{"href":258},"run reports API",". Because the LLM discovers tools at runtime, new ones appear when you update the desktop app — no config change needed.",[1663,3524,3526],{"id":3525},"check-it-worked","Check it worked",[1668,3528],{},[1659,3530,3531],{},"After restarting your client, ask:",[3533,3534,3535],"blockquote",{},[1659,3536,3537],{},"What tools do you have available?",[1659,3539,3540],{},"The axiom.ai tools should be listed. If they aren't:",[1674,3542,3543,3549,3558,3571,3577],{},[1677,3544,3545,3548],{},[2712,3546,3547],{},"Restart the client."," Most clients read their MCP config only at startup.",[1677,3550,3551,3554,3555,3557],{},[2712,3552,3553],{},"Check what's registered."," Run ",[1701,3556,3160],{}," — it reports each client, whether the server is registered there, and whether a key is set.",[1677,3559,3560,3563,3564,3032,3566,3570],{},[2712,3561,3562],{},"Check the API key."," Most failures are a missing or mistyped ",[1701,3565,1788],{},[1684,3567,3569],{"href":3568},"#if-a-tool-says-your-key-is-missing-or-rejected","If a tool says your key is missing or rejected"," below.",[1677,3572,3573,3576],{},[2712,3574,3575],{},"Use an absolute path",", if you configured the client by hand. The client launches the server from its own working directory, so a relative path won't resolve.",[1677,3578,3579,3582],{},[2712,3580,3581],{},"Check the client's MCP logs."," The server writes diagnostics to stderr, which your client captures.",[1663,3584,3569],{"id":3585},"if-a-tool-says-your-key-is-missing-or-rejected",[1668,3587],{},[1659,3589,3590,3591,3594,3595,3597,3598,3600],{},"Your API key reaches the server ",[2712,3592,3593],{},"only"," from the ",[1701,3596,3316],{}," block of your MCP client's config — that's the one channel MCP gives a local server. So a key is fixed where it is stored: in the app's card, with ",[1701,3599,3170],{},", or by editing the config. Either way, restart the client afterwards. There's no point pasting your key into the chat: the running server has no way to receive it, and it would sit in your conversation history.",[1659,3602,3603,3604,1854,3606,3608],{},"The authoring tools (",[1701,3605,3506],{},[1701,3607,3514],{},") work with no key at all — they run locally and never call the API. So a key problem only shows up when you use the tools that operate your automations.",[3054,3610,3611,3624],{},[3057,3612,3613],{},[3060,3614,3615,3618,3621],{},[3063,3616,3617],{},"What you see",[3063,3619,3620],{},"What it means",[3063,3622,3623],{},"What to do",[3070,3625,3626,3649,3680,3699],{},[3060,3627,3628,3633,3640],{},[3075,3629,3630],{},[3412,3631,3632],{},"\"No Axiom API key configured\"",[3075,3634,3635,3637,3638],{},[1701,3636,1788],{}," isn't set in this server's ",[1701,3639,3316],{},[3075,3641,3642,3643,3645,3646,3648],{},"Add your key from the app's ",[2712,3644,3045],{}," card, or with ",[1701,3647,3170],{},", then restart your client",[3060,3650,3651,3660,3663],{},[3075,3652,3653,1799,3656,3659],{},[3412,3654,3655],{},"\"Axiom rejected the API key\"",[1701,3657,3658],{},"401",")",[3075,3661,3662],{},"The key doesn't match an active key",[3075,3664,3665,3666,3668,3669,3672,3673,3676,3677,3679],{},"Check it against the ",[2712,3667,153],{},". Remember that ",[1684,3670,3671],{"href":200},"generating a new key"," ",[2712,3674,3675],{},"immediately invalidates the previous one"," — if you rotated it, this server's config is still on the old one. Set the new key with ",[2712,3678,3119],{}," in the app's card, then restart your client",[3060,3681,3682,3690,3693],{},[3075,3683,3684,1799,3687,3659],{},[3412,3685,3686],{},"\"Axiom quota exceeded\"",[1701,3688,3689],{},"403",[3075,3691,3692],{},"The account has used its cloud runtime allowance for the billing period",[3075,3694,3695,3696,3698],{},"Ask for ",[1701,3697,2724],{},", then wait for the next cycle or upgrade",[3060,3700,3701,3709,3712],{},[3075,3702,3703,1799,3706,3659],{},[3412,3704,3705],{},"\"Axiom rate limit hit\"",[1701,3707,3708],{},"429",[3075,3710,3711],{},"Too many calls too quickly",[3075,3713,3714],{},"Wait a few seconds; tell the LLM to stop polling tightly",[1663,3716,2760],{"id":2759},[1668,3718],{},[1674,3720,3721,3727,3736,3748,3758],{},[1677,3722,3723,3726],{},[2712,3724,3725],{},"No port, no network exposure."," The server talks over stdin\u002Fstdout to the client that launched it. Nothing listens on a port.",[1677,3728,3729,3732,3733,3735],{},[2712,3730,3731],{},"The desktop app doesn't need to be running."," Your MCP client launches the ",[1701,3734,2946],{}," binary itself when it needs it; the app is simply how the binary gets onto your machine.",[1677,3737,3738,3741,3742,2605,3745,1686],{},[2712,3739,3740],{},"Work runs on axiom.ai's cloud browsers"," using the API key you supplied, so calls count against the standard ",[1684,3743,3744],{"href":378},"rate limits",[1684,3746,3747],{"href":382},"runtime allowance",[1677,3749,3750,3753,3754,3757],{},[2712,3751,3752],{},"Your API key sits in the client's config file in plain text."," Don't commit it to a repo, and ",[1684,3755,3756],{"href":200},"rotate it"," if it's exposed.",[1677,3759,3760,3761,2679,3764,1686],{},"Want your own tool surface, or a headless setup? See ",[1684,3762,3763],{"href":418},"Build your own (TypeScript)",[1684,3765,3766],{"href":414},"Python",[2791,3768,3769],{},"html pre.shiki code .sTDnQ, html code.shiki .sTDnQ{--shiki-default:#953800;--shiki-dark:#FFA657}html pre.shiki code .sjeE4, html code.shiki .sjeE4{--shiki-default:#CF222E;--shiki-dark:#FF7B72}html pre.shiki code .sSVrQ, html code.shiki .sSVrQ{--shiki-default:#0A3069;--shiki-dark:#A5D6FF}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);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s4rv2, html code.shiki .s4rv2{--shiki-default:#1F2328;--shiki-dark:#E6EDF3}html pre.shiki code .sjgCt, html code.shiki .sjgCt{--shiki-default:#116329;--shiki-dark:#7EE787}",{"title":1699,"searchDepth":1793,"depth":1793,"links":3771},[3772,3773,3774,3775,3776,3777,3778,3779,3780,3781],{"id":2957,"depth":1775,"text":2958},{"id":1665,"depth":1775,"text":1666},{"id":3037,"depth":1775,"text":2979},{"id":3123,"depth":1775,"text":3124},{"id":3237,"depth":1775,"text":3238},{"id":3304,"depth":1775,"text":2989},{"id":3404,"depth":1775,"text":3405},{"id":3525,"depth":1775,"text":3526},{"id":3585,"depth":1775,"text":3569},{"id":2759,"depth":1775,"text":2760},"The axiom.ai desktop app bundles an MCP server. Point Claude Desktop, Claude Code, Cursor, or any MCP client at it and build axiom.ai automations in conversation, using your own API key.",{"metaTitle":3784},"Use the axiom.ai desktop app's bundled MCP server",{"title":421,"description":3782},"ZQKhqyD3nmzoveOYehnLWKGXcv53A2dhgAMwgSGVuL8",{"id":3788,"title":413,"body":3789,"date":2804,"description":4472,"extension":2806,"meta":4473,"navigation":1833,"order":1775,"path":414,"seo":4475,"stem":415,"__hash__":4476},"content\u002Fdocs\u002Fdeveloper-hub\u002Fmcp\u002Fbuild-your-own-server-python.md",{"type":1656,"value":3790,"toc":4464},[3791,3794,3796,3798,3800,3819,3821,3823,3843,3848,3863,3865,3867,3872,4299,4302,4304,4306,4310,4384,4390,4392,4394,4396,4435,4438,4440,4442,4461],[1659,3792,3793],{},"Build a small Python MCP server that wraps the axiom.ai REST API. The result is a tool any MCP-aware client (Claude Desktop, Claude Code, Cursor) can call to trigger automations and check their status from inside a conversation.",[1663,3795,1666],{"id":1665},[1668,3797],{},[1659,3799,1672],{},[1674,3801,3802,3805,3815],{},[1677,3803,3804],{},"Python 3.10 or later.",[1677,3806,3807,3810,3811,3814],{},[1701,3808,3809],{},"uv"," (recommended) or ",[1701,3812,3813],{},"pip"," for dependency management.",[1677,3816,1682,3817,1686],{},[1684,3818,199],{"href":200},[1663,3820,1690],{"id":1689},[1668,3822],{},[1694,3824,3826],{"className":1696,"code":3825,"language":1698,"meta":1699,"style":1699},"uv pip install \"mcp[cli]\" httpx\n",[1701,3827,3828],{"__ignoreMap":1699},[1704,3829,3830,3832,3835,3837,3840],{"class":1706,"line":1707},[1704,3831,3809],{"class":1710},[1704,3833,3834],{"class":1714}," pip",[1704,3836,1715],{"class":1714},[1704,3838,3839],{"class":1714}," \"mcp[cli]\"",[1704,3841,3842],{"class":1714}," httpx\n",[1659,3844,3845,3846,2282],{},"Or with ",[1701,3847,3813],{},[1694,3849,3851],{"className":1696,"code":3850,"language":1698,"meta":1699,"style":1699},"pip install \"mcp[cli]\" httpx\n",[1701,3852,3853],{"__ignoreMap":1699},[1704,3854,3855,3857,3859,3861],{"class":1706,"line":1707},[1704,3856,3813],{"class":1710},[1704,3858,1715],{"class":1714},[1704,3860,3839],{"class":1714},[1704,3862,3842],{"class":1714},[1663,3864,1728],{"id":1727},[1668,3866],{},[1659,3868,1733,3869,2282],{},[1701,3870,3871],{},"axiom_mcp.py",[1694,3873,3877],{"className":3874,"code":3875,"language":3876,"meta":1699,"style":1699},"language-python shiki shiki-themes github-light-default github-dark-default","import os\nimport httpx\nfrom mcp.server.fastmcp import FastMCP\n\nmcp = FastMCP(\"axiom\")\nAXIOM_BASE = \"https:\u002F\u002Flar.axiom.ai\u002Fapi\u002Fv3\"\nKEY = os.environ[\"AXIOM_API_KEY\"]\n\n@mcp.tool()\nasync def trigger_automation(name: str, data: list | None = None) -> dict:\n    \"\"\"Trigger an axiom.ai cloud automation by exact name.\n\n    Optional `data` is a 3-D array of [tables][rows][cells] passed as\n    the automation's input.\n    \"\"\"\n    body = {\"key\": KEY, \"name\": name}\n    if data is not None:\n        body[\"data\"] = data\n    async with httpx.AsyncClient(timeout=30) as c:\n        r = await c.post(f\"{AXIOM_BASE}\u002Ftrigger\", json=body)\n        return r.json()\n\n@mcp.tool()\nasync def run_status(run_id: str) -> dict:\n    \"\"\"Check the status of a triggered axiom.ai automation run.\"\"\"\n    async with httpx.AsyncClient(timeout=30) as c:\n        r = await c.post(\n            f\"{AXIOM_BASE}\u002Frun-data\",\n            json={\"key\": KEY, \"run_id\": run_id},\n        )\n        return r.json()\n\nif __name__ == \"__main__\":\n    mcp.run()  # stdio transport by default\n","python",[1701,3878,3879,3886,3892,3905,3909,3924,3933,3947,3951,3959,3999,4004,4008,4013,4018,4023,4048,4066,4082,4108,4146,4154,4158,4164,4184,4189,4209,4220,4238,4261,4266,4272,4276,4291],{"__ignoreMap":1699},[1704,3880,3881,3883],{"class":1706,"line":1707},[1704,3882,2625],{"class":1757},[1704,3884,3885],{"class":1771}," os\n",[1704,3887,3888,3890],{"class":1706,"line":1775},[1704,3889,2625],{"class":1757},[1704,3891,3842],{"class":1771},[1704,3893,3894,3897,3900,3902],{"class":1706,"line":1793},[1704,3895,3896],{"class":1757},"from",[1704,3898,3899],{"class":1771}," mcp.server.fastmcp ",[1704,3901,2625],{"class":1757},[1704,3903,3904],{"class":1771}," FastMCP\n",[1704,3906,3907],{"class":1706,"line":1830},[1704,3908,1834],{"emptyLinePlaceholder":1833},[1704,3910,3911,3914,3916,3919,3921],{"class":1706,"line":1837},[1704,3912,3913],{"class":1771},"mcp ",[1704,3915,2015],{"class":1757},[1704,3917,3918],{"class":1771}," FastMCP(",[1704,3920,2111],{"class":1714},[1704,3922,3923],{"class":1771},")\n",[1704,3925,3926,3928,3930],{"class":1706,"line":1863},[1704,3927,1885],{"class":1761},[1704,3929,1765],{"class":1757},[1704,3931,3932],{"class":1714}," \"https:\u002F\u002Flar.axiom.ai\u002Fapi\u002Fv3\"\n",[1704,3934,3935,3937,3939,3942,3944],{"class":1706,"line":1899},[1704,3936,1805],{"class":1761},[1704,3938,1765],{"class":1757},[1704,3940,3941],{"class":1771}," os.environ[",[1704,3943,2576],{"class":1714},[1704,3945,3946],{"class":1771},"]\n",[1704,3948,3949],{"class":1706,"line":1911},[1704,3950,1834],{"emptyLinePlaceholder":1833},[1704,3952,3953,3956],{"class":1706,"line":1929},[1704,3954,3955],{"class":1817},"@mcp.tool",[1704,3957,3958],{"class":1771},"()\n",[1704,3960,3961,3963,3966,3969,3972,3975,3978,3981,3983,3986,3988,3990,3993,3996],{"class":1706,"line":1946},[1704,3962,1840],{"class":1757},[1704,3964,3965],{"class":1757}," def",[1704,3967,3968],{"class":1817}," trigger_automation",[1704,3970,3971],{"class":1771},"(name: ",[1704,3973,3974],{"class":1761},"str",[1704,3976,3977],{"class":1771},", data: ",[1704,3979,3980],{"class":1761},"list",[1704,3982,3222],{"class":1757},[1704,3984,3985],{"class":1761}," None",[1704,3987,1765],{"class":1757},[1704,3989,3985],{"class":1761},[1704,3991,3992],{"class":1771},") -> ",[1704,3994,3995],{"class":1761},"dict",[1704,3997,3998],{"class":1771},":\n",[1704,4000,4001],{"class":1706,"line":1952},[1704,4002,4003],{"class":1714},"    \"\"\"Trigger an axiom.ai cloud automation by exact name.\n",[1704,4005,4006],{"class":1706,"line":1967},[1704,4007,1834],{"emptyLinePlaceholder":1833},[1704,4009,4010],{"class":1706,"line":1973},[1704,4011,4012],{"class":1714},"    Optional `data` is a 3-D array of [tables][rows][cells] passed as\n",[1704,4014,4015],{"class":1706,"line":1978},[1704,4016,4017],{"class":1714},"    the automation's input.\n",[1704,4019,4020],{"class":1706,"line":1994},[1704,4021,4022],{"class":1714},"    \"\"\"\n",[1704,4024,4025,4028,4030,4033,4036,4038,4040,4042,4045],{"class":1706,"line":2001},[1704,4026,4027],{"class":1771},"    body ",[1704,4029,2015],{"class":1757},[1704,4031,4032],{"class":1771}," {",[1704,4034,4035],{"class":1714},"\"key\"",[1704,4037,1920],{"class":1771},[1704,4039,1805],{"class":1761},[1704,4041,1854],{"class":1771},[1704,4043,4044],{"class":1714},"\"name\"",[1704,4046,4047],{"class":1771},": name}\n",[1704,4049,4050,4053,4056,4059,4062,4064],{"class":1706,"line":2030},[1704,4051,4052],{"class":1757},"    if",[1704,4054,4055],{"class":1771}," data ",[1704,4057,4058],{"class":1757},"is",[1704,4060,4061],{"class":1757}," not",[1704,4063,3985],{"class":1761},[1704,4065,3998],{"class":1771},[1704,4067,4068,4071,4074,4077,4079],{"class":1706,"line":2051},[1704,4069,4070],{"class":1771},"        body[",[1704,4072,4073],{"class":1714},"\"data\"",[1704,4075,4076],{"class":1771},"] ",[1704,4078,2015],{"class":1757},[1704,4080,4081],{"class":1771}," data\n",[1704,4083,4084,4086,4089,4092,4095,4097,4100,4102,4105],{"class":1706,"line":2057},[1704,4085,2230],{"class":1757},[1704,4087,4088],{"class":1757}," with",[1704,4090,4091],{"class":1771}," httpx.AsyncClient(",[1704,4093,4094],{"class":1710},"timeout",[1704,4096,2015],{"class":1757},[1704,4098,4099],{"class":1761},"30",[1704,4101,1808],{"class":1771},[1704,4103,4104],{"class":1757},"as",[1704,4106,4107],{"class":1771}," c:\n",[1704,4109,4110,4113,4115,4117,4120,4123,4126,4129,4131,4134,4137,4139,4141,4143],{"class":1706,"line":2063},[1704,4111,4112],{"class":1771},"        r ",[1704,4114,2015],{"class":1757},[1704,4116,1874],{"class":1757},[1704,4118,4119],{"class":1771}," c.post(",[1704,4121,4122],{"class":1757},"f",[1704,4124,4125],{"class":1714},"\"",[1704,4127,4128],{"class":1757},"{",[1704,4130,1885],{"class":1761},[1704,4132,4133],{"class":1757},"}",[1704,4135,4136],{"class":1714},"\u002Ftrigger\"",[1704,4138,1854],{"class":1771},[1704,4140,1961],{"class":1710},[1704,4142,2015],{"class":1757},[1704,4144,4145],{"class":1771},"body)\n",[1704,4147,4148,4151],{"class":1706,"line":2088},[1704,4149,4150],{"class":1757},"        return",[1704,4152,4153],{"class":1771}," r.json()\n",[1704,4155,4156],{"class":1706,"line":2093},[1704,4157,1834],{"emptyLinePlaceholder":1833},[1704,4159,4160,4162],{"class":1706,"line":2123},[1704,4161,3955],{"class":1817},[1704,4163,3958],{"class":1771},[1704,4165,4166,4168,4170,4173,4176,4178,4180,4182],{"class":1706,"line":2128},[1704,4167,1840],{"class":1757},[1704,4169,3965],{"class":1757},[1704,4171,4172],{"class":1817}," run_status",[1704,4174,4175],{"class":1771},"(run_id: ",[1704,4177,3974],{"class":1761},[1704,4179,3992],{"class":1771},[1704,4181,3995],{"class":1761},[1704,4183,3998],{"class":1771},[1704,4185,4186],{"class":1706,"line":2139},[1704,4187,4188],{"class":1714},"    \"\"\"Check the status of a triggered axiom.ai automation run.\"\"\"\n",[1704,4190,4191,4193,4195,4197,4199,4201,4203,4205,4207],{"class":1706,"line":2147},[1704,4192,2230],{"class":1757},[1704,4194,4088],{"class":1757},[1704,4196,4091],{"class":1771},[1704,4198,4094],{"class":1710},[1704,4200,2015],{"class":1757},[1704,4202,4099],{"class":1761},[1704,4204,1808],{"class":1771},[1704,4206,4104],{"class":1757},[1704,4208,4107],{"class":1771},[1704,4210,4211,4213,4215,4217],{"class":1706,"line":2153},[1704,4212,4112],{"class":1771},[1704,4214,2015],{"class":1757},[1704,4216,1874],{"class":1757},[1704,4218,4219],{"class":1771}," c.post(\n",[1704,4221,4222,4225,4227,4229,4231,4233,4236],{"class":1706,"line":2159},[1704,4223,4224],{"class":1757},"            f",[1704,4226,4125],{"class":1714},[1704,4228,4128],{"class":1757},[1704,4230,1885],{"class":1761},[1704,4232,4133],{"class":1757},[1704,4234,4235],{"class":1714},"\u002Frun-data\"",[1704,4237,1908],{"class":1771},[1704,4239,4240,4243,4245,4247,4249,4251,4253,4255,4258],{"class":1706,"line":2167},[1704,4241,4242],{"class":1710},"            json",[1704,4244,2015],{"class":1757},[1704,4246,4128],{"class":1771},[1704,4248,4035],{"class":1714},[1704,4250,1920],{"class":1771},[1704,4252,1805],{"class":1761},[1704,4254,1854],{"class":1771},[1704,4256,4257],{"class":1714},"\"run_id\"",[1704,4259,4260],{"class":1771},": run_id},\n",[1704,4262,4263],{"class":1706,"line":2173},[1704,4264,4265],{"class":1771},"        )\n",[1704,4267,4268,4270],{"class":1706,"line":2185},[1704,4269,4150],{"class":1757},[1704,4271,4153],{"class":1771},[1704,4273,4274],{"class":1706,"line":2215},[1704,4275,1834],{"emptyLinePlaceholder":1833},[1704,4277,4278,4280,4283,4286,4289],{"class":1706,"line":2221},[1704,4279,1796],{"class":1757},[1704,4281,4282],{"class":1761}," __name__",[1704,4284,4285],{"class":1757}," ==",[1704,4287,4288],{"class":1714}," \"__main__\"",[1704,4290,3998],{"class":1771},[1704,4292,4293,4296],{"class":1706,"line":2227},[1704,4294,4295],{"class":1771},"    mcp.run()  ",[1704,4297,4298],{"class":1997},"# stdio transport by default\n",[1659,4300,4301],{},"That's the whole server. Tool descriptions in the docstrings are what the LLM sees when deciding whether to call a tool, write them clearly.",[1663,4303,2504],{"id":2503},[1668,4305],{},[1659,4307,2509,4308,2512],{},[1684,4309,425],{"href":426},[1694,4311,4313],{"className":2515,"code":4312,"language":1961,"meta":1699,"style":1699},"{\n  \"mcpServers\": {\n    \"axiom\": {\n      \"command\": \"uv\",\n      \"args\": [\"run\", \"\u002Fabsolute\u002Fpath\u002Fto\u002Faxiom_mcp.py\"],\n      \"env\": { \"AXIOM_API_KEY\": \"your-api-key-here\" }\n    }\n  }\n}\n",[1701,4314,4315,4319,4325,4331,4342,4358,4372,4376,4380],{"__ignoreMap":1699},[1704,4316,4317],{"class":1706,"line":1707},[1704,4318,2523],{"class":1771},[1704,4320,4321,4323],{"class":1706,"line":1775},[1704,4322,2529],{"class":2528},[1704,4324,2532],{"class":1771},[1704,4326,4327,4329],{"class":1706,"line":1793},[1704,4328,2537],{"class":2528},[1704,4330,2532],{"class":1771},[1704,4332,4333,4335,4337,4340],{"class":1706,"line":1830},[1704,4334,2544],{"class":2528},[1704,4336,1920],{"class":1771},[1704,4338,4339],{"class":1714},"\"uv\"",[1704,4341,1908],{"class":1771},[1704,4343,4344,4346,4348,4351,4353,4356],{"class":1706,"line":1837},[1704,4345,2556],{"class":2528},[1704,4347,2559],{"class":1771},[1704,4349,4350],{"class":1714},"\"run\"",[1704,4352,1854],{"class":1771},[1704,4354,4355],{"class":1714},"\"\u002Fabsolute\u002Fpath\u002Fto\u002Faxiom_mcp.py\"",[1704,4357,2565],{"class":1771},[1704,4359,4360,4362,4364,4366,4368,4370],{"class":1706,"line":1863},[1704,4361,2570],{"class":2528},[1704,4363,2573],{"class":1771},[1704,4365,2576],{"class":2528},[1704,4367,1920],{"class":1771},[1704,4369,2581],{"class":1714},[1704,4371,2584],{"class":1771},[1704,4373,4374],{"class":1706,"line":1899},[1704,4375,2589],{"class":1771},[1704,4377,4378],{"class":1706,"line":1911},[1704,4379,2594],{"class":1771},[1704,4381,4382],{"class":1706,"line":1929},[1704,4383,1970],{"class":1771},[1659,4385,2601,4386,2605,4388,2609],{},[1701,4387,2604],{},[1701,4389,2608],{},[1663,4391,2701],{"id":2700},[1668,4393],{},[1659,4395,2706],{},[1674,4397,4398,4404,4410,4421,4428],{},[1677,4399,4400,2717],{},[2712,4401,4402],{},[1701,4403,2716],{},[1677,4405,4406,2725],{},[2712,4407,4408],{},[1701,4409,2724],{},[1677,4411,4412,2731,4414,2735,4417,4420],{},[2712,4413,2730],{},[1701,4415,4416],{},"scrape_amazon_asin(asin: str)",[1701,4418,4419],{},"trigger_automation(\"Amazon ASIN template\", data=[[[asin]]])"," and waits for completion. This is where the real value is, the LLM gets a clean, typed tool instead of having to learn each automation's input shape.",[1677,4422,4423,4425,4426,2747],{},[2712,4424,2743],{},", so the tool returns a finished result rather than a ",[1701,4427,2405],{},[1677,4429,4430,2753,4432,4434],{},[2712,4431,2752],{},[1684,4433,277],{"href":278}," if you want the LLM to drive a session step by step instead of just triggering pre-built automations.",[1659,4436,4437],{},"A typical extended server is 100 to 200 lines and covers the most common workflows for the team using it.",[1663,4439,2760],{"id":2759},[1668,4441],{},[1674,4443,4444,4453,4456],{},[1677,4445,2767,4446,4448,4449,4452],{},[1701,4447,1788],{}," like any other secret. Don't commit the env value into the config you check into version control, use a secrets manager or a ",[1701,4450,4451],{},".env"," file the client loads.",[1677,4454,4455],{},"The server runs as a child process of the MCP client. If it crashes, the client restarts it on the next tool call, so transient errors are usually fine.",[1677,4457,2784,4458,1686],{},[1684,4459,2789],{"href":2787,"rel":4460},[2670],[2791,4462,4463],{},"html pre.shiki code .sTDnQ, html code.shiki .sTDnQ{--shiki-default:#953800;--shiki-dark:#FFA657}html pre.shiki code .sSVrQ, html code.shiki .sSVrQ{--shiki-default:#0A3069;--shiki-dark:#A5D6FF}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);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s4rv2, html code.shiki .s4rv2{--shiki-default:#1F2328;--shiki-dark:#E6EDF3}html pre.shiki code .sjgCt, html code.shiki .sjgCt{--shiki-default:#116329;--shiki-dark:#7EE787}html pre.shiki code .sjeE4, html code.shiki .sjeE4{--shiki-default:#CF222E;--shiki-dark:#FF7B72}html pre.shiki code .sHrmB, html code.shiki .sHrmB{--shiki-default:#0550AE;--shiki-dark:#79C0FF}html pre.shiki code .sbjLL, html code.shiki .sbjLL{--shiki-default:#8250DF;--shiki-dark:#D2A8FF}html pre.shiki code .sU953, html code.shiki .sU953{--shiki-default:#6E7781;--shiki-dark:#8B949E}",{"title":1699,"searchDepth":1793,"depth":1793,"links":4465},[4466,4467,4468,4469,4470,4471],{"id":1665,"depth":1775,"text":1666},{"id":1689,"depth":1775,"text":1690},{"id":1727,"depth":1775,"text":1728},{"id":2503,"depth":1775,"text":2504},{"id":2700,"depth":1775,"text":2701},{"id":2759,"depth":1775,"text":2760},"Build a minimal Model Context Protocol server in Python that exposes axiom.ai automation triggers as tools for any MCP client.",{"metaTitle":4474},"Build a Python MCP server that wraps the axiom.ai API",{"title":413,"description":4472},"HPoy5DqI1WKu6urlvCjJLDPUiw_6Glwuhp7ipjFWNzg",{"id":1654,"title":417,"body":4478,"date":2804,"description":2805,"extension":2806,"meta":5292,"navigation":1833,"order":1793,"path":418,"seo":5293,"stem":419,"__hash__":2810},{"type":1656,"value":4479,"toc":5282},[4480,4482,4484,4486,4488,4496,4498,4500,4514,4516,4518,4520,4528,5088,5090,5092,5096,5162,5168,5170,5172,5178,5192,5194,5196,5198,5219,5221,5223,5225,5259,5261,5263,5280],[1659,4481,1661],{},[1663,4483,1666],{"id":1665},[1668,4485],{},[1659,4487,1672],{},[1674,4489,4490,4492],{},[1677,4491,1679],{},[1677,4493,1682,4494,1686],{},[1684,4495,199],{"href":200},[1663,4497,1690],{"id":1689},[1668,4499],{},[1694,4501,4502],{"className":1696,"code":1697,"language":1698,"meta":1699,"style":1699},[1701,4503,4504],{"__ignoreMap":1699},[1704,4505,4506,4508,4510,4512],{"class":1706,"line":1707},[1704,4507,1711],{"class":1710},[1704,4509,1715],{"class":1714},[1704,4511,1718],{"class":1714},[1704,4513,1721],{"class":1714},[1659,4515,1724],{},[1663,4517,1728],{"id":1727},[1668,4519],{},[1659,4521,1733,4522,1737,4524,1741,4526,1745],{},[1701,4523,1736],{},[1701,4525,1740],{},[1701,4527,1744],{},[1694,4529,4530],{"className":1748,"code":1749,"language":1750,"meta":1699,"style":1699},[1701,4531,4532,4544,4558,4582,4586,4604,4630,4638,4650,4662,4666,4676,4680,4684,4696,4700,4722,4740,4744,4748,4770,4774,4796,4800,4808,4814,4818,4822,4828,4832,4840,4864,4868,4872,4890,4916,4934,4952,4956,4960,4964,4972,4978,4982,4990,4998,5002,5016,5038,5056,5060,5064,5068,5084],{"__ignoreMap":1699},[1704,4533,4534,4536,4538,4540,4542],{"class":1706,"line":1707},[1704,4535,1758],{"class":1757},[1704,4537,1762],{"class":1761},[1704,4539,1765],{"class":1757},[1704,4541,1768],{"class":1714},[1704,4543,1772],{"class":1771},[1704,4545,4546,4548,4550,4552,4554,4556],{"class":1706,"line":1775},[1704,4547,1758],{"class":1757},[1704,4549,1780],{"class":1761},[1704,4551,1765],{"class":1757},[1704,4553,1785],{"class":1771},[1704,4555,1788],{"class":1761},[1704,4557,1772],{"class":1771},[1704,4559,4560,4562,4564,4566,4568,4570,4572,4574,4576,4578,4580],{"class":1706,"line":1793},[1704,4561,1796],{"class":1757},[1704,4563,1799],{"class":1771},[1704,4565,1802],{"class":1757},[1704,4567,1805],{"class":1761},[1704,4569,1808],{"class":1771},[1704,4571,1811],{"class":1757},[1704,4573,1814],{"class":1757},[1704,4575,1818],{"class":1817},[1704,4577,1821],{"class":1771},[1704,4579,1824],{"class":1714},[1704,4581,1827],{"class":1771},[1704,4583,4584],{"class":1706,"line":1830},[1704,4585,1834],{"emptyLinePlaceholder":1833},[1704,4587,4588,4590,4592,4594,4596,4598,4600,4602],{"class":1706,"line":1837},[1704,4589,1840],{"class":1757},[1704,4591,1843],{"class":1757},[1704,4593,1846],{"class":1817},[1704,4595,1821],{"class":1771},[1704,4597,1851],{"class":1710},[1704,4599,1854],{"class":1771},[1704,4601,1857],{"class":1710},[1704,4603,1860],{"class":1771},[1704,4605,4606,4608,4610,4612,4614,4616,4618,4620,4622,4624,4626,4628],{"class":1706,"line":1863},[1704,4607,1866],{"class":1757},[1704,4609,1869],{"class":1761},[1704,4611,1765],{"class":1757},[1704,4613,1874],{"class":1757},[1704,4615,1877],{"class":1817},[1704,4617,1821],{"class":1771},[1704,4619,1882],{"class":1714},[1704,4621,1885],{"class":1761},[1704,4623,1888],{"class":1714},[1704,4625,1851],{"class":1771},[1704,4627,1893],{"class":1714},[1704,4629,1896],{"class":1771},[1704,4631,4632,4634,4636],{"class":1706,"line":1899},[1704,4633,1902],{"class":1771},[1704,4635,1905],{"class":1714},[1704,4637,1908],{"class":1771},[1704,4639,4640,4642,4644,4646,4648],{"class":1706,"line":1911},[1704,4641,1914],{"class":1771},[1704,4643,1917],{"class":1714},[1704,4645,1920],{"class":1771},[1704,4647,1923],{"class":1714},[1704,4649,1926],{"class":1771},[1704,4651,4652,4654,4656,4658,4660],{"class":1706,"line":1929},[1704,4653,1932],{"class":1771},[1704,4655,1935],{"class":1761},[1704,4657,1686],{"class":1771},[1704,4659,1940],{"class":1817},[1704,4661,1943],{"class":1771},[1704,4663,4664],{"class":1706,"line":1946},[1704,4665,1949],{"class":1771},[1704,4667,4668,4670,4672,4674],{"class":1706,"line":1952},[1704,4669,1955],{"class":1757},[1704,4671,1958],{"class":1771},[1704,4673,1961],{"class":1817},[1704,4675,1964],{"class":1771},[1704,4677,4678],{"class":1706,"line":1967},[1704,4679,1970],{"class":1771},[1704,4681,4682],{"class":1706,"line":1973},[1704,4683,1834],{"emptyLinePlaceholder":1833},[1704,4685,4686,4688,4690,4692,4694],{"class":1706,"line":1978},[1704,4687,1821],{"class":1771},[1704,4689,1840],{"class":1757},[1704,4691,1985],{"class":1771},[1704,4693,1988],{"class":1757},[1704,4695,1991],{"class":1771},[1704,4697,4698],{"class":1706,"line":1994},[1704,4699,1998],{"class":1997},[1704,4701,4702,4704,4706,4708,4710,4712,4714,4716,4718,4720],{"class":1706,"line":2001},[1704,4703,1866],{"class":1757},[1704,4705,2006],{"class":1771},[1704,4707,2009],{"class":1761},[1704,4709,2012],{"class":1771},[1704,4711,2015],{"class":1757},[1704,4713,1874],{"class":1757},[1704,4715,2020],{"class":1757},[1704,4717,1821],{"class":1771},[1704,4719,2025],{"class":1714},[1704,4721,1827],{"class":1771},[1704,4723,4724,4726,4728,4730,4732,4734,4736,4738],{"class":1706,"line":2030},[1704,4725,1866],{"class":1757},[1704,4727,2006],{"class":1771},[1704,4729,2037],{"class":1761},[1704,4731,2012],{"class":1771},[1704,4733,2015],{"class":1757},[1704,4735,1874],{"class":1757},[1704,4737,2020],{"class":1817},[1704,4739,2048],{"class":1771},[1704,4741,4742],{"class":1706,"line":2051},[1704,4743,2054],{"class":1714},[1704,4745,4746],{"class":1706,"line":2057},[1704,4747,2060],{"class":1771},[1704,4749,4750,4752,4754,4756,4758,4760,4762,4764,4766,4768],{"class":1706,"line":2063},[1704,4751,1866],{"class":1757},[1704,4753,2006],{"class":1771},[1704,4755,2070],{"class":1761},[1704,4757,2012],{"class":1771},[1704,4759,2015],{"class":1757},[1704,4761,1874],{"class":1757},[1704,4763,2020],{"class":1757},[1704,4765,1821],{"class":1771},[1704,4767,2083],{"class":1714},[1704,4769,1827],{"class":1771},[1704,4771,4772],{"class":1706,"line":2088},[1704,4773,1834],{"emptyLinePlaceholder":1833},[1704,4775,4776,4778,4780,4782,4784,4786,4788,4790,4792,4794],{"class":1706,"line":2093},[1704,4777,1866],{"class":1757},[1704,4779,2098],{"class":1761},[1704,4781,1765],{"class":1757},[1704,4783,1814],{"class":1757},[1704,4785,2105],{"class":1817},[1704,4787,2108],{"class":1771},[1704,4789,2111],{"class":1714},[1704,4791,2114],{"class":1771},[1704,4793,2117],{"class":1714},[1704,4795,2120],{"class":1771},[1704,4797,4798],{"class":1706,"line":2123},[1704,4799,1834],{"emptyLinePlaceholder":1833},[1704,4801,4802,4804,4806],{"class":1706,"line":2128},[1704,4803,2131],{"class":1771},[1704,4805,2134],{"class":1817},[1704,4807,2048],{"class":1771},[1704,4809,4810,4812],{"class":1706,"line":2139},[1704,4811,2142],{"class":1714},[1704,4813,1908],{"class":1771},[1704,4815,4816],{"class":1706,"line":2147},[1704,4817,2150],{"class":1771},[1704,4819,4820],{"class":1706,"line":2153},[1704,4821,2156],{"class":1771},[1704,4823,4824,4826],{"class":1706,"line":2159},[1704,4825,2162],{"class":1714},[1704,4827,1908],{"class":1771},[1704,4829,4830],{"class":1706,"line":2167},[1704,4831,2170],{"class":1771},[1704,4833,4834,4836,4838],{"class":1706,"line":2173},[1704,4835,2176],{"class":1771},[1704,4837,2179],{"class":1817},[1704,4839,2182],{"class":1771},[1704,4841,4842,4844,4846,4848,4850,4852,4854,4856,4858,4860,4862],{"class":1706,"line":2185},[1704,4843,2188],{"class":1771},[1704,4845,2191],{"class":1817},[1704,4847,2194],{"class":1771},[1704,4849,2191],{"class":1817},[1704,4851,2194],{"class":1771},[1704,4853,2191],{"class":1817},[1704,4855,2194],{"class":1771},[1704,4857,2179],{"class":1817},[1704,4859,2207],{"class":1771},[1704,4861,2210],{"class":1817},[1704,4863,2182],{"class":1771},[1704,4865,4866],{"class":1706,"line":2215},[1704,4867,2218],{"class":1771},[1704,4869,4870],{"class":1706,"line":2221},[1704,4871,2224],{"class":1771},[1704,4873,4874,4876,4878,4880,4882,4884,4886,4888],{"class":1706,"line":2227},[1704,4875,2230],{"class":1757},[1704,4877,2233],{"class":1771},[1704,4879,2236],{"class":1710},[1704,4881,1854],{"class":1771},[1704,4883,2241],{"class":1710},[1704,4885,2244],{"class":1771},[1704,4887,1988],{"class":1757},[1704,4889,1991],{"class":1771},[1704,4891,4892,4894,4896,4898,4900,4902,4904,4906,4908,4910,4912,4914],{"class":1706,"line":2251},[1704,4893,2254],{"class":1757},[1704,4895,2257],{"class":1761},[1704,4897,1765],{"class":1757},[1704,4899,2262],{"class":1771},[1704,4901,1805],{"class":1761},[1704,4903,2267],{"class":1771},[1704,4905,2270],{"class":1757},[1704,4907,2273],{"class":1771},[1704,4909,2276],{"class":1757},[1704,4911,2279],{"class":1771},[1704,4913,2282],{"class":1757},[1704,4915,2285],{"class":1771},[1704,4917,4918,4920,4922,4924,4926,4928,4930,4932],{"class":1706,"line":2288},[1704,4919,2254],{"class":1757},[1704,4921,2293],{"class":1761},[1704,4923,1765],{"class":1757},[1704,4925,1874],{"class":1757},[1704,4927,1846],{"class":1817},[1704,4929,1821],{"class":1771},[1704,4931,2304],{"class":1714},[1704,4933,2307],{"class":1771},[1704,4935,4936,4938,4940,4942,4944,4946,4948,4950],{"class":1706,"line":2310},[1704,4937,2313],{"class":1757},[1704,4939,2316],{"class":1771},[1704,4941,2319],{"class":1714},[1704,4943,2322],{"class":1771},[1704,4945,1935],{"class":1761},[1704,4947,1686],{"class":1771},[1704,4949,1940],{"class":1817},[1704,4951,2331],{"class":1771},[1704,4953,4954],{"class":1706,"line":2334},[1704,4955,2224],{"class":1771},[1704,4957,4958],{"class":1706,"line":2339},[1704,4959,2060],{"class":1771},[1704,4961,4962],{"class":1706,"line":2344},[1704,4963,1834],{"emptyLinePlaceholder":1833},[1704,4965,4966,4968,4970],{"class":1706,"line":2349},[1704,4967,2131],{"class":1771},[1704,4969,2134],{"class":1817},[1704,4971,2048],{"class":1771},[1704,4973,4974,4976],{"class":1706,"line":2358},[1704,4975,2361],{"class":1714},[1704,4977,1908],{"class":1771},[1704,4979,4980],{"class":1706,"line":2366},[1704,4981,2150],{"class":1771},[1704,4983,4984,4986,4988],{"class":1706,"line":2371},[1704,4985,2374],{"class":1771},[1704,4987,2377],{"class":1714},[1704,4989,1908],{"class":1771},[1704,4991,4992,4994,4996],{"class":1706,"line":2382},[1704,4993,2385],{"class":1771},[1704,4995,2179],{"class":1817},[1704,4997,2390],{"class":1771},[1704,4999,5000],{"class":1706,"line":2393},[1704,5001,2224],{"class":1771},[1704,5003,5004,5006,5008,5010,5012,5014],{"class":1706,"line":2398},[1704,5005,2230],{"class":1757},[1704,5007,2233],{"class":1771},[1704,5009,2405],{"class":1710},[1704,5011,2244],{"class":1771},[1704,5013,1988],{"class":1757},[1704,5015,1991],{"class":1771},[1704,5017,5018,5020,5022,5024,5026,5028,5030,5032,5034,5036],{"class":1706,"line":2414},[1704,5019,2254],{"class":1757},[1704,5021,2293],{"class":1761},[1704,5023,1765],{"class":1757},[1704,5025,1874],{"class":1757},[1704,5027,1846],{"class":1817},[1704,5029,1821],{"class":1771},[1704,5031,2429],{"class":1714},[1704,5033,2432],{"class":1771},[1704,5035,1805],{"class":1761},[1704,5037,2437],{"class":1771},[1704,5039,5040,5042,5044,5046,5048,5050,5052,5054],{"class":1706,"line":2440},[1704,5041,2313],{"class":1757},[1704,5043,2316],{"class":1771},[1704,5045,2319],{"class":1714},[1704,5047,2322],{"class":1771},[1704,5049,1935],{"class":1761},[1704,5051,1686],{"class":1771},[1704,5053,1940],{"class":1817},[1704,5055,2331],{"class":1771},[1704,5057,5058],{"class":1706,"line":2459},[1704,5059,2224],{"class":1771},[1704,5061,5062],{"class":1706,"line":2464},[1704,5063,2060],{"class":1771},[1704,5065,5066],{"class":1706,"line":2469},[1704,5067,1834],{"emptyLinePlaceholder":1833},[1704,5069,5070,5072,5074,5076,5078,5080,5082],{"class":1706,"line":2474},[1704,5071,2477],{"class":1757},[1704,5073,2480],{"class":1771},[1704,5075,2483],{"class":1817},[1704,5077,1821],{"class":1771},[1704,5079,2488],{"class":1757},[1704,5081,2491],{"class":1817},[1704,5083,2494],{"class":1771},[1704,5085,5086],{"class":1706,"line":2497},[1704,5087,2500],{"class":1771},[1663,5089,2504],{"id":2503},[1668,5091],{},[1659,5093,2509,5094,2512],{},[1684,5095,425],{"href":426},[1694,5097,5098],{"className":2515,"code":2516,"language":1961,"meta":1699,"style":1699},[1701,5099,5100,5104,5110,5116,5126,5136,5150,5154,5158],{"__ignoreMap":1699},[1704,5101,5102],{"class":1706,"line":1707},[1704,5103,2523],{"class":1771},[1704,5105,5106,5108],{"class":1706,"line":1775},[1704,5107,2529],{"class":2528},[1704,5109,2532],{"class":1771},[1704,5111,5112,5114],{"class":1706,"line":1793},[1704,5113,2537],{"class":2528},[1704,5115,2532],{"class":1771},[1704,5117,5118,5120,5122,5124],{"class":1706,"line":1830},[1704,5119,2544],{"class":2528},[1704,5121,1920],{"class":1771},[1704,5123,2549],{"class":1714},[1704,5125,1908],{"class":1771},[1704,5127,5128,5130,5132,5134],{"class":1706,"line":1837},[1704,5129,2556],{"class":2528},[1704,5131,2559],{"class":1771},[1704,5133,2562],{"class":1714},[1704,5135,2565],{"class":1771},[1704,5137,5138,5140,5142,5144,5146,5148],{"class":1706,"line":1863},[1704,5139,2570],{"class":2528},[1704,5141,2573],{"class":1771},[1704,5143,2576],{"class":2528},[1704,5145,1920],{"class":1771},[1704,5147,2581],{"class":1714},[1704,5149,2584],{"class":1771},[1704,5151,5152],{"class":1706,"line":1899},[1704,5153,2589],{"class":1771},[1704,5155,5156],{"class":1706,"line":1911},[1704,5157,2594],{"class":1771},[1704,5159,5160],{"class":1706,"line":1929},[1704,5161,1970],{"class":1771},[1659,5163,2601,5164,2605,5166,2609],{},[1701,5165,2604],{},[1701,5167,2608],{},[1663,5169,2613],{"id":2612},[1668,5171],{},[1659,5173,2618,5174,2622,5176,2626],{},[1701,5175,2621],{},[1701,5177,2625],{},[1659,5179,2629,5180,2633,5182,2636,5184,2640,5186,2644,5188,2648,5190,2651],{},[1701,5181,2632],{},[1701,5183,1740],{},[1701,5185,2639],{},[1701,5187,2643],{},[1701,5189,2647],{},[1701,5191,2625],{},[1663,5193,2655],{"id":2654},[1668,5195],{},[1659,5197,2660],{},[1674,5199,5200,5205,5213,5217],{},[1677,5201,2665,5202,2672],{},[1684,5203,2671],{"href":2668,"rel":5204},[2670],[1677,5206,2675,5207,2679,5209,2683,5211,2687],{},[1701,5208,2678],{},[1701,5210,2682],{},[1701,5212,2686],{},[1677,5214,2690,5215,2694],{},[1701,5216,2693],{},[1677,5218,2697],{},[1663,5220,2701],{"id":2700},[1668,5222],{},[1659,5224,2706],{},[1674,5226,5227,5233,5239,5247,5253],{},[1677,5228,5229,2717],{},[2712,5230,5231],{},[1701,5232,2716],{},[1677,5234,5235,2725],{},[2712,5236,5237],{},[1701,5238,2724],{},[1677,5240,5241,2731,5243,2735,5245,2738],{},[2712,5242,2730],{},[1701,5244,2734],{},[1701,5246,2604],{},[1677,5248,5249,2744,5251,2747],{},[2712,5250,2743],{},[1701,5252,2405],{},[1677,5254,5255,2753,5257,2756],{},[2712,5256,2752],{},[1684,5258,277],{"href":278},[1663,5260,2760],{"id":2759},[1668,5262],{},[1674,5264,5265,5269,5275],{},[1677,5266,2767,5267,2770],{},[1701,5268,1788],{},[1677,5270,2773,5271,2777,5273,2781],{},[1701,5272,2776],{},[1701,5274,2780],{},[1677,5276,2784,5277,1686],{},[1684,5278,2789],{"href":2787,"rel":5279},[2670],[2791,5281,2793],{},{"title":1699,"searchDepth":1793,"depth":1793,"links":5283},[5284,5285,5286,5287,5288,5289,5290,5291],{"id":1665,"depth":1775,"text":1666},{"id":1689,"depth":1775,"text":1690},{"id":1727,"depth":1775,"text":1728},{"id":2503,"depth":1775,"text":2504},{"id":2612,"depth":1775,"text":2613},{"id":2654,"depth":1775,"text":2655},{"id":2700,"depth":1775,"text":2701},{"id":2759,"depth":1775,"text":2760},{"metaTitle":2808},{"title":417,"description":2805},{"id":5295,"title":425,"body":5296,"date":2804,"description":5787,"extension":2806,"meta":5788,"navigation":1833,"order":1830,"path":426,"seo":5790,"stem":427,"__hash__":5791},"content\u002Fdocs\u002Fdeveloper-hub\u002Fmcp\u002Fregister-with-claude.md",{"type":1656,"value":5297,"toc":5778},[5298,5307,5310,5312,5318,5348,5351,5421,5424,5490,5493,5496,5498,5505,5571,5574,5577,5579,5586,5652,5655,5659,5661,5664,5683,5686,5690,5692,5695,5699,5707,5730,5734,5736,5739,5756,5758,5760,5775],[1659,5299,5300,5301,2679,5303,5306],{},"Once you've built an MCP server (in ",[1684,5302,3766],{"href":414},[1684,5304,5305],{"href":418},"TypeScript","), point your MCP client at it. The configuration is similar across clients but the file location and field names differ. This page shows the snippet for each.",[1663,5308,3077],{"id":5309},"claude-desktop",[1668,5311],{},[1659,5313,5314,5315,5317],{},"Edit the ",[1701,5316,3086],{}," file in the platform-specific location:",[3054,5319,5320,5328],{},[3057,5321,5322],{},[3060,5323,5324,5326],{},[3063,5325,3258],{},[3063,5327,3261],{},[3070,5329,5330,5339],{},[3060,5331,5332,5334],{},[3075,5333,3268],{},[3075,5335,5336],{},[1701,5337,5338],{},"~\u002FLibrary\u002FApplication Support\u002FClaude\u002Fclaude_desktop_config.json",[3060,5340,5341,5343],{},[3075,5342,3278],{},[3075,5344,5345],{},[1701,5346,5347],{},"%APPDATA%\\Claude\\claude_desktop_config.json",[1659,5349,5350],{},"For the Python server:",[1694,5352,5353],{"className":2515,"code":4312,"language":1961,"meta":1699,"style":1699},[1701,5354,5355,5359,5365,5371,5381,5395,5409,5413,5417],{"__ignoreMap":1699},[1704,5356,5357],{"class":1706,"line":1707},[1704,5358,2523],{"class":1771},[1704,5360,5361,5363],{"class":1706,"line":1775},[1704,5362,2529],{"class":2528},[1704,5364,2532],{"class":1771},[1704,5366,5367,5369],{"class":1706,"line":1793},[1704,5368,2537],{"class":2528},[1704,5370,2532],{"class":1771},[1704,5372,5373,5375,5377,5379],{"class":1706,"line":1830},[1704,5374,2544],{"class":2528},[1704,5376,1920],{"class":1771},[1704,5378,4339],{"class":1714},[1704,5380,1908],{"class":1771},[1704,5382,5383,5385,5387,5389,5391,5393],{"class":1706,"line":1837},[1704,5384,2556],{"class":2528},[1704,5386,2559],{"class":1771},[1704,5388,4350],{"class":1714},[1704,5390,1854],{"class":1771},[1704,5392,4355],{"class":1714},[1704,5394,2565],{"class":1771},[1704,5396,5397,5399,5401,5403,5405,5407],{"class":1706,"line":1863},[1704,5398,2570],{"class":2528},[1704,5400,2573],{"class":1771},[1704,5402,2576],{"class":2528},[1704,5404,1920],{"class":1771},[1704,5406,2581],{"class":1714},[1704,5408,2584],{"class":1771},[1704,5410,5411],{"class":1706,"line":1899},[1704,5412,2589],{"class":1771},[1704,5414,5415],{"class":1706,"line":1911},[1704,5416,2594],{"class":1771},[1704,5418,5419],{"class":1706,"line":1929},[1704,5420,1970],{"class":1771},[1659,5422,5423],{},"For the Node server:",[1694,5425,5426],{"className":2515,"code":2516,"language":1961,"meta":1699,"style":1699},[1701,5427,5428,5432,5438,5444,5454,5464,5478,5482,5486],{"__ignoreMap":1699},[1704,5429,5430],{"class":1706,"line":1707},[1704,5431,2523],{"class":1771},[1704,5433,5434,5436],{"class":1706,"line":1775},[1704,5435,2529],{"class":2528},[1704,5437,2532],{"class":1771},[1704,5439,5440,5442],{"class":1706,"line":1793},[1704,5441,2537],{"class":2528},[1704,5443,2532],{"class":1771},[1704,5445,5446,5448,5450,5452],{"class":1706,"line":1830},[1704,5447,2544],{"class":2528},[1704,5449,1920],{"class":1771},[1704,5451,2549],{"class":1714},[1704,5453,1908],{"class":1771},[1704,5455,5456,5458,5460,5462],{"class":1706,"line":1837},[1704,5457,2556],{"class":2528},[1704,5459,2559],{"class":1771},[1704,5461,2562],{"class":1714},[1704,5463,2565],{"class":1771},[1704,5465,5466,5468,5470,5472,5474,5476],{"class":1706,"line":1863},[1704,5467,2570],{"class":2528},[1704,5469,2573],{"class":1771},[1704,5471,2576],{"class":2528},[1704,5473,1920],{"class":1771},[1704,5475,2581],{"class":1714},[1704,5477,2584],{"class":1771},[1704,5479,5480],{"class":1706,"line":1899},[1704,5481,2589],{"class":1771},[1704,5483,5484],{"class":1706,"line":1911},[1704,5485,2594],{"class":1771},[1704,5487,5488],{"class":1706,"line":1929},[1704,5489,1970],{"class":1771},[1659,5491,5492],{},"Restart Claude Desktop. Your tools appear in the tool list and the LLM can call them.",[1663,5494,3091],{"id":5495},"claude-code",[1668,5497],{},[1659,5499,5500,5501,5504],{},"Claude Code reads MCP servers from a project-level ",[1701,5502,5503],{},".mcp.json"," file or from a global config. The simplest setup is a per-project file:",[1694,5506,5507],{"className":2515,"code":2516,"language":1961,"meta":1699,"style":1699},[1701,5508,5509,5513,5519,5525,5535,5545,5559,5563,5567],{"__ignoreMap":1699},[1704,5510,5511],{"class":1706,"line":1707},[1704,5512,2523],{"class":1771},[1704,5514,5515,5517],{"class":1706,"line":1775},[1704,5516,2529],{"class":2528},[1704,5518,2532],{"class":1771},[1704,5520,5521,5523],{"class":1706,"line":1793},[1704,5522,2537],{"class":2528},[1704,5524,2532],{"class":1771},[1704,5526,5527,5529,5531,5533],{"class":1706,"line":1830},[1704,5528,2544],{"class":2528},[1704,5530,1920],{"class":1771},[1704,5532,2549],{"class":1714},[1704,5534,1908],{"class":1771},[1704,5536,5537,5539,5541,5543],{"class":1706,"line":1837},[1704,5538,2556],{"class":2528},[1704,5540,2559],{"class":1771},[1704,5542,2562],{"class":1714},[1704,5544,2565],{"class":1771},[1704,5546,5547,5549,5551,5553,5555,5557],{"class":1706,"line":1863},[1704,5548,2570],{"class":2528},[1704,5550,2573],{"class":1771},[1704,5552,2576],{"class":2528},[1704,5554,1920],{"class":1771},[1704,5556,2581],{"class":1714},[1704,5558,2584],{"class":1771},[1704,5560,5561],{"class":1706,"line":1899},[1704,5562,2589],{"class":1771},[1704,5564,5565],{"class":1706,"line":1911},[1704,5566,2594],{"class":1771},[1704,5568,5569],{"class":1706,"line":1929},[1704,5570,1970],{"class":1771},[1659,5572,5573],{},"Place this at the root of the project and Claude Code picks it up automatically.",[1663,5575,3099],{"id":5576},"cursor",[1668,5578],{},[1659,5580,5581,5582,5585],{},"Cursor uses a per-project or global ",[1701,5583,5584],{},"mcp.json"," file. The schema is the same as Claude Desktop's:",[1694,5587,5588],{"className":2515,"code":2516,"language":1961,"meta":1699,"style":1699},[1701,5589,5590,5594,5600,5606,5616,5626,5640,5644,5648],{"__ignoreMap":1699},[1704,5591,5592],{"class":1706,"line":1707},[1704,5593,2523],{"class":1771},[1704,5595,5596,5598],{"class":1706,"line":1775},[1704,5597,2529],{"class":2528},[1704,5599,2532],{"class":1771},[1704,5601,5602,5604],{"class":1706,"line":1793},[1704,5603,2537],{"class":2528},[1704,5605,2532],{"class":1771},[1704,5607,5608,5610,5612,5614],{"class":1706,"line":1830},[1704,5609,2544],{"class":2528},[1704,5611,1920],{"class":1771},[1704,5613,2549],{"class":1714},[1704,5615,1908],{"class":1771},[1704,5617,5618,5620,5622,5624],{"class":1706,"line":1837},[1704,5619,2556],{"class":2528},[1704,5621,2559],{"class":1771},[1704,5623,2562],{"class":1714},[1704,5625,2565],{"class":1771},[1704,5627,5628,5630,5632,5634,5636,5638],{"class":1706,"line":1863},[1704,5629,2570],{"class":2528},[1704,5631,2573],{"class":1771},[1704,5633,2576],{"class":2528},[1704,5635,1920],{"class":1771},[1704,5637,2581],{"class":1714},[1704,5639,2584],{"class":1771},[1704,5641,5642],{"class":1706,"line":1899},[1704,5643,2589],{"class":1771},[1704,5645,5646],{"class":1706,"line":1911},[1704,5647,2594],{"class":1771},[1704,5649,5650],{"class":1706,"line":1929},[1704,5651,1970],{"class":1771},[1659,5653,5654],{},"Restart Cursor. Tools appear in the chat side panel.",[1663,5656,5658],{"id":5657},"cowork","Cowork",[1668,5660],{},[1659,5662,5663],{},"Cowork registers MCP servers via its plugin marketplace or via direct config in the desktop app. For a custom server:",[5665,5666,5667,5670,5676],"ol",{},[1677,5668,5669],{},"Open Cowork settings.",[1677,5671,5672,5673,1686],{},"Go to ",[2712,5674,5675],{},"MCP servers",[1677,5677,5678,5679,5682],{},"Click ",[2712,5680,5681],{},"Add server"," and paste the same config object as above.",[1659,5684,5685],{},"Cowork hot-reloads the server, no restart needed.",[1663,5687,5689],{"id":5688},"verify-the-registration-worked","Verify the registration worked",[1668,5691],{},[1659,5693,5694],{},"After adding the config and restarting, ask the LLM:",[3533,5696,5697],{},[1659,5698,3537],{},[1659,5700,5701,5702,2605,5704,5706],{},"It should list ",[1701,5703,2604],{},[1701,5705,2608],{}," (or whatever names you chose). If they don't appear:",[1674,5708,5709,5715,5724],{},[1677,5710,5711,5714],{},[2712,5712,5713],{},"Check the path is absolute."," Relative paths break because the client runs the server from its own working directory.",[1677,5716,5717,5720,5721,5723],{},[2712,5718,5719],{},"Check the env var is set."," Most failures come from a missing ",[1701,5722,1788],{},". Restart the client after adding it.",[1677,5725,5726,5729],{},[2712,5727,5728],{},"Check the client logs."," Each client surfaces server stdout\u002Fstderr somewhere, look for connection errors or missing dependencies.",[1663,5731,5733],{"id":5732},"security","Security",[1668,5735],{},[1659,5737,5738],{},"The MCP config file holds your API key in plain text. A few precautions:",[1674,5740,5741,5744,5750],{},[1677,5742,5743],{},"Don't commit the config file to a public repo.",[1677,5745,5746,5747,5749],{},"Use a secrets manager or a ",[1701,5748,4451],{}," file the server reads, rather than hard-coding the key in the config, if your client supports it.",[1677,5751,5752,5753,5755],{},"Rotate your axiom.ai API key (see ",[1684,5754,199],{"href":200},") if you suspect the config has been exposed.",[1663,5757,2760],{"id":2759},[1668,5759],{},[1674,5761,5762,5765,5772],{},[1677,5763,5764],{},"Each client uses the stdio transport by default for local servers. For a server running on another machine, use streamable HTTP and update the config to point at the URL instead of a command.",[1677,5766,5767,5768,5771],{},"Multiple ",[1701,5769,5770],{},"mcpServers"," entries can coexist in a single config, your axiom.ai server can sit alongside servers for filesystem, GitHub, Slack, and so on.",[1677,5773,5774],{},"Restart the client after editing the config. Most clients don't watch the config file for changes.",[2791,5776,5777],{},"html pre.shiki code .s4rv2, html code.shiki .s4rv2{--shiki-default:#1F2328;--shiki-dark:#E6EDF3}html pre.shiki code .sjgCt, html code.shiki .sjgCt{--shiki-default:#116329;--shiki-dark:#7EE787}html pre.shiki code .sSVrQ, html code.shiki .sSVrQ{--shiki-default:#0A3069;--shiki-dark:#A5D6FF}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);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":1699,"searchDepth":1793,"depth":1793,"links":5779},[5780,5781,5782,5783,5784,5785,5786],{"id":5309,"depth":1775,"text":3077},{"id":5495,"depth":1775,"text":3091},{"id":5576,"depth":1775,"text":3099},{"id":5657,"depth":1775,"text":5658},{"id":5688,"depth":1775,"text":5689},{"id":5732,"depth":1775,"text":5733},{"id":2759,"depth":1775,"text":2760},"Configure Claude Desktop, Claude Code, Cursor, and Cowork to load your custom axiom.ai MCP server.",{"metaTitle":5789},"Register an axiom.ai MCP server with Claude Desktop, Code, Cursor, or Cowork",{"title":425,"description":5787},"eLBZt_r25WAMeppZnKJcP27l05--XLBUs1kxOa90xJw",1790161942315]