[{"data":1,"prerenderedAt":751},["ShallowReactive",2],{"docs:en:\u002Fdocs\u002Fconnections\u002Fcustom":3},{"page":4,"navigation":621,"surround":746,"prefix":624},{"id":5,"title":6,"body":7,"description":613,"extension":614,"meta":615,"navigation":616,"path":617,"seo":618,"stem":619,"__hash__":620},"agentDocs\u002Fdocs\u002F6.connections\u002F2.custom.md","Custom integrations and MCP",{"type":8,"value":9,"toc":594},"minimark",[10,20,25,28,65,71,78,81,88,93,171,185,188,192,238,241,245,256,266,282,285,321,324,328,334,340,350,356,360,363,425,428,434,437,456,459,463,469,473,517,521,527,531,534,546,555,562,565,568,572,588,591],[11,12,13,14,19],"p",{},"If a service is missing under ",[15,16,18],"a",{"href":17},"\u002Fdocs\u002Fconnections\u002Fservices","Connecting services",", you connect its API yourself. For a custom integration, you create the tools from the API documentation with the help of the AI. An MCP server is a third-party server that offers ready-made tools, and you select from them.",[21,22,24],"h2",{"id":23},"create-a-custom-integration","Create a custom integration",[11,26,27],{},"You store the base URL and credentials of an HTTPS API. The AI builds the requests to the API itself.",[29,30,31,44,50,53,59,62],"ol",{},[32,33,34,35,39,40,43],"li",{},"Under ",[36,37,38],"strong",{},"Connections",", open the tab ",[36,41,42],{},"Custom integrations",".",[32,45,46,47,43],{},"Click ",[36,48,49],{},"Add",[32,51,52],{},"In the dialog, paste the API documentation or upload files.",[32,54,46,55,58],{},[36,56,57],{},"Draft integration",". The AI reads the documentation and fills in the form.",[32,60,61],{},"Check the values and select the tools.",[32,63,64],{},"Enter the credentials and save.",[11,66,67,70],{},[36,68,69],{},"Create manually"," skips the AI and opens an empty form.",[11,72,73,74,77],{},"The AI suggests the name, base URL, kind of authentication, description, test path and named tools. It then adds the instructions per tool in the background. ",[36,75,76],{},"Create instructions again"," repeats this step. A further pass suggests only tools that do not exist yet.",[11,79,80],{},"You enter the credentials yourself; the AI does not know them. The integration exists only once you save.",[11,82,83,84,87],{},"The checkbox ",[36,85,86],{},"Additionally save the documentation as a knowledge document"," stores the documentation as a knowledge document in the workspace. Agents can then look up the schema there.",[89,90,92],"h3",{"id":91},"fields","Fields",[94,95,96,109],"table",{},[97,98,99],"thead",{},[100,101,102,106],"tr",{},[103,104,105],"th",{},"Field",[103,107,108],{},"Meaning",[110,111,112,123,147,161],"tbody",{},[100,113,114,120],{},[115,116,117],"td",{},[36,118,119],{},"Base URL",[115,121,122],{},"The common beginning of all endpoints. Starts with https:\u002F\u002F.",[100,124,125,128],{},[115,126,127],{},"Authentication",[115,129,130,133,134,133,137,133,140,143,144],{},[36,131,132],{},"None",", ",[36,135,136],{},"Basic Auth (user + password)",[36,138,139],{},"Bearer token",[36,141,142],{},"Custom header"," or ",[36,145,146],{},"Query parameter",[100,148,149,154],{},[115,150,151],{},[36,152,153],{},"Test path",[115,155,156,157,43],{},"GET path for the connection test. Without an entry, lowcloud tests ",[158,159,160],"code",{},"\u002F",[100,162,163,168],{},[115,164,165],{},[36,166,167],{},"Fixed headers",[115,169,170],{},"Additional headers for every request, for example an API version. At most 20.",[11,172,173,174,133,177,180,181,184],{},"The base URL must not point to local, internal or private addresses. lowcloud checks this on saving and on every call. ",[158,175,176],{},"Authorization",[158,178,179],{},"Host"," and ",[158,182,183],{},"Content-Length"," are reserved. You cannot set them as fixed headers.",[11,186,187],{},"The credentials are stored encrypted on the server. The AI never sees them. They also do not appear in the run events or in error messages.",[89,189,191],{"id":190},"limits-for-drafting","Limits for drafting",[94,193,194,204],{},[97,195,196],{},[100,197,198,201],{},[103,199,200],{},"Limit",[103,202,203],{},"Value",[110,205,206,214,222,230],{},[100,207,208,211],{},[115,209,210],{},"Pasted documentation",[115,212,213],{},"at least 50, at most 200,000 characters",[100,215,216,219],{},[115,217,218],{},"Files",[115,220,221],{},"10 files, 20 MB each",[100,223,224,227],{},[115,225,226],{},"Tools per draft pass",[115,228,229],{},"20",[100,231,232,235],{},[115,233,234],{},"Time limit per pass",[115,236,237],{},"3 minutes",[11,239,240],{},"You can upload PDF, Word, text, Markdown, JSON, YAML, XML, scripts and CSV.",[21,242,244],{"id":243},"create-named-tools","Create named tools",[11,246,247,248,251,252,255],{},"A named tool fixes a method and a path, for example ",[36,249,250],{},"Create invoice"," for ",[158,253,254],{},"POST \u002Fv1\u002Finvoices",". With named tools, the AI chooses more precisely, and you assign rights at a finer level.",[11,257,258,259,180,262,265],{},"Every integration also has two general calls: ",[36,260,261],{},"Fetch data (GET)",[36,263,264],{},"Send data",". With these, the AI can call any path of the API. Without named tools, agents use only these two.",[29,267,268,271,279],{},[32,269,270],{},"Open the integration.",[32,272,46,273,143,276,43],{},[36,274,275],{},"Add tool",[36,277,278],{},"Generate from API documentation",[32,280,281],{},"Fill in the fields.",[11,283,284],{},"The fields of a tool:",[286,287,288,303,309,315],"ul",{},[32,289,290,133,293,180,296,299,300,43],{},[36,291,292],{},"Name",[36,294,295],{},"Method",[36,297,298],{},"Path",": placeholders in the path are in curly brackets, for instance ",[158,301,302],{},"\u002Fv1\u002Finvoices\u002F{id}",[32,304,305,308],{},[36,306,307],{},"Description for the AI",": short, what the tool is for. At most 500 characters.",[32,310,311,314],{},[36,312,313],{},"Instructions for the AI",": how the tool is called, with mandatory fields, formats and example data. At most 8000 characters.",[32,316,317,320],{},[36,318,319],{},"Body format"," for writing methods: JSON, form data, text\u002FXML or file upload.",[11,322,323],{},"Tools are saved immediately when you add, change or remove them. An integration has at most 50 named tools.",[21,325,327],{"id":326},"test-edit-and-delete-an-integration","Test, edit and delete an integration",[11,329,330,333],{},[36,331,332],{},"Test"," sends a real GET request to the test path, by the same route a run takes. On success, lowcloud reports the integration as reachable and names the HTTP status. Otherwise \"Test failed\" appears.",[11,335,336,337,43],{},"A click on the tile opens a read-only view. You change the base URL, credentials and description via ",[36,338,339],{},"Edit",[11,341,342,343,346,347,43],{},"To delete, click ",[36,344,345],{},"…"," and then ",[36,348,349],{},"Delete",[351,352,353],"warning",{},[11,354,355],{},"After deleting, workflows and agents that use tools of the integration can no longer be activated. If you create the integration again under the same name, the link is restored.",[21,357,359],{"id":358},"connect-an-mcp-server","Connect an MCP server",[11,361,362],{},"For an MCP server you only need its URL from the provider.",[29,364,365,372,377,388,413,416,422],{},[32,366,34,367,39,369,43],{},[36,368,38],{},[36,370,371],{},"MCP servers",[32,373,46,374,43],{},[36,375,376],{},"Connect",[32,378,379,380,133,382,180,385,387],{},"Enter ",[36,381,292],{},[36,383,384],{},"URL",[36,386,307],{},". The URL starts with https:\u002F\u002F.",[32,389,390,391,394,395,143,398,401,402,404,405,408,409,412],{},"Choose the ",[36,392,393],{},"Sign-in",": ",[36,396,397],{},"Shared access",[36,399,400],{},"Own account per person",". With ",[36,403,397],{}," you enter the ",[36,406,407],{},"Token"," and, where needed, the ",[36,410,411],{},"Header name",". The default is Authorization.",[32,414,415],{},"Save. The detail page of the server opens.",[32,417,46,418,421],{},[36,419,420],{},"Read tools",". The server reports which tools it offers.",[32,423,424],{},"Tick the tools your workspace may use, and save.",[11,426,427],{},"Only the ticked tools are saved. lowcloud creates the server itself already when you connect it, even if the URL later does not answer.",[429,430,431],"note",{},[11,432,433],{},"The tool descriptions come from the server and end up in the prompt of the AI. Read them before you tick a tool.",[89,435,393],{"id":436},"sign-in",[286,438,439,444],{},[32,440,441,443],{},[36,442,397],{},": the token is stored encrypted and applies to everyone in the workspace. Every run acts with it. The AI never sees the token.",[32,445,446,448,449,452,453,455],{},[36,447,400],{},": every person signs in with their own account in a sign-in window (OAuth). This works on the detail page via ",[36,450,451],{},"Sign in"," or under ",[36,454,38],{}," in the row of the server. Every run acts with the account that its setup determines.",[11,457,458],{},"In both cases, whatever a step passes to a tool of the server goes to the host of the server.",[89,460,462],{"id":461},"update-tools","Update tools",[11,464,465,466,468],{},"If the provider has changed something, click ",[36,467,420],{}," again. The page marks new and removed tools. New tools are not selected automatically.",[89,470,472],{"id":471},"limits","Limits",[94,474,475,483],{},[97,476,477],{},[100,478,479,481],{},[103,480,200],{},[103,482,203],{},[110,484,485,493,501,509],{},[100,486,487,490],{},[115,488,489],{},"Tools per server",[115,491,492],{},"200. If the server offers more, lowcloud reads the first 200.",[100,494,495,498],{},[115,496,497],{},"Time limit per call",[115,499,500],{},"30 seconds",[100,502,503,506],{},[115,504,505],{},"Response length",[115,507,508],{},"20,000 characters, shortened after that",[100,510,511,514],{},[115,512,513],{},"Response format",[115,515,516],{},"Text only. If a tool returns a file or an image, you see only a reference to it.",[21,518,520],{"id":519},"delete-an-mcp-server","Delete an MCP server",[11,522,523,526],{},[36,524,525],{},"Delete MCP server"," removes the server. Agents and workflows that use its tools can then no longer be activated until the tools are removed there. A newly connected server with the same name does not necessarily restore the references.",[21,528,530],{"id":529},"approvals","Approvals",[11,532,533],{},"In a custom integration, every named tool has one of two settings:",[286,535,536,541],{},[32,537,538],{},[36,539,540],{},"Reads only (runs directly)",[32,542,543],{},[36,544,545],{},"Writes (every call needs your approval)",[11,547,548,549,551,552,554],{},"The method sets a suggestion: GET becomes reading, everything else writing. After that, your choice applies. If you set a tool that changes something to reading, it runs without approval. ",[36,550,261],{}," always reads, ",[36,553,264],{}," always writes.",[11,556,557,558,561],{},"On an MCP server, every tool has the switch ",[36,559,560],{},"Read-only"," on the detail page. If it is on, the tool counts as reading and runs without approval. If it is off, the tool counts as writing and stops before execution.",[11,563,564],{},"The server can state that a tool only reads. This statement cannot be verified and only pre-fills the switch. What is switched on when you save applies.",[11,566,567],{},"For both: the approval is a default. Per agent and per step you can switch it off for an individual writing tool. lowcloud then asks once more and points out that the agent then carries out the action immediately.",[21,569,571],{"id":570},"permissions","Permissions",[11,573,574,575,578,579,582,583,180,585,587],{},"Anyone who may build (the role ",[36,576,577],{},"admin",", or the former role ",[36,580,581],{},"developer",") creates custom integrations and MCP servers. Without build rights, the tabs ",[36,584,42],{},[36,586,371],{}," are missing. In a partner's client workspace, they are missing for the client's people as well.",[11,589,590],{},"Custom integrations and MCP servers belong to the workspace, not to a person. Everyone who may build sees them and uses their tools.",[11,592,593],{},"Only the person who connected an MCP server, or an admin of the workspace, may change and delete it. If the person who connected it has left the workspace, an admin can change the server.",{"title":595,"searchDepth":596,"depth":596,"links":597},"",2,[598,603,604,605,610,611,612],{"id":23,"depth":596,"text":24,"children":599},[600,602],{"id":91,"depth":601,"text":92},3,{"id":190,"depth":601,"text":191},{"id":243,"depth":596,"text":244},{"id":326,"depth":596,"text":327},{"id":358,"depth":596,"text":359,"children":606},[607,608,609],{"id":436,"depth":601,"text":393},{"id":461,"depth":601,"text":462},{"id":471,"depth":601,"text":472},{"id":519,"depth":596,"text":520},{"id":529,"depth":596,"text":530},{"id":570,"depth":596,"text":571},"Connect your own HTTP APIs and MCP servers as tools for your agents.","md",{},true,"\u002Fdocs\u002Fconnections\u002Fcustom",{"title":6,"description":613},"docs\u002F6.connections\u002F2.custom","CY3BO410fmHEIrOKmYTXTKNVvsMYQjmV37KGXens0Tg",[622],{"title":623,"path":624,"stem":625,"children":626,"page":-1},"Docs","\u002Fdocs","docs",[627,630,649,654,680,710,714,723,728],{"title":628,"path":624,"stem":629},"Documentation","docs\u002Findex",{"title":631,"icon":632,"path":633,"stem":634,"children":635,"page":648},"Getting started","i-lucide-compass","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started",[636,640,644],{"title":637,"path":638,"stem":639},"Overview","\u002Fdocs\u002Fgetting-started\u002Foverview","docs\u002F1.getting-started\u002F1.overview",{"title":641,"path":642,"stem":643},"Quickstart","\u002Fdocs\u002Fgetting-started\u002Fquickstart","docs\u002F1.getting-started\u002F2.quickstart",{"title":645,"path":646,"stem":647},"Glossary","\u002Fdocs\u002Fgetting-started\u002Fglossary","docs\u002F1.getting-started\u002F3.glossary",false,{"title":650,"path":651,"stem":652,"icon":653},"Chat","\u002Fdocs\u002Fchat","docs\u002F2.chat","i-lucide-message-circle",{"title":655,"icon":656,"path":657,"stem":658,"children":659,"page":648},"Agents","i-lucide-bot","\u002Fdocs\u002Fagents","docs\u002F3.agents",[660,664,668,672,676],{"title":661,"path":662,"stem":663},"Building agents","\u002Fdocs\u002Fagents\u002Fbuilding","docs\u002F3.agents\u002F1.building",{"title":665,"path":666,"stem":667},"Knowledge","\u002Fdocs\u002Fagents\u002Fknowledge","docs\u002F3.agents\u002F2.knowledge",{"title":669,"path":670,"stem":671},"Skills","\u002Fdocs\u002Fagents\u002Fskills","docs\u002F3.agents\u002F3.skills",{"title":673,"path":674,"stem":675},"Sharing and access","\u002Fdocs\u002Fagents\u002Fsharing","docs\u002F3.agents\u002F4.sharing",{"title":677,"path":678,"stem":679},"Microsoft Teams","\u002Fdocs\u002Fagents\u002Fteams","docs\u002F3.agents\u002F5.teams",{"title":681,"icon":682,"path":683,"stem":684,"children":685,"page":648},"Workflows","i-lucide-workflow","\u002Fdocs\u002Fworkflows","docs\u002F4.workflows",[686,690,694,698,702,706],{"title":687,"path":688,"stem":689},"Your first workflow","\u002Fdocs\u002Fworkflows\u002Ffirst-workflow","docs\u002F4.workflows\u002F1.first-workflow",{"title":691,"path":692,"stem":693},"The builder","\u002Fdocs\u002Fworkflows\u002Fbuilder","docs\u002F4.workflows\u002F2.builder",{"title":695,"path":696,"stem":697},"Steps","\u002Fdocs\u002Fworkflows\u002Fsteps","docs\u002F4.workflows\u002F3.steps",{"title":699,"path":700,"stem":701},"Triggers","\u002Fdocs\u002Fworkflows\u002Ftriggers","docs\u002F4.workflows\u002F4.triggers",{"title":703,"path":704,"stem":705},"Publishing and setup","\u002Fdocs\u002Fworkflows\u002Fpublishing","docs\u002F4.workflows\u002F5.publishing",{"title":707,"path":708,"stem":709},"Runs","\u002Fdocs\u002Fworkflows\u002Fruns","docs\u002F4.workflows\u002F6.runs",{"title":530,"path":711,"stem":712,"icon":713},"\u002Fdocs\u002Fapprovals","docs\u002F5.approvals","i-lucide-check-check",{"title":715,"icon":716,"path":717,"stem":718,"children":719,"page":648},"Integrations","i-lucide-cable","\u002Fdocs\u002Fconnections","docs\u002F6.connections",[720,722],{"title":18,"path":17,"stem":721},"docs\u002F6.connections\u002F1.services",{"title":6,"path":617,"stem":619},{"title":724,"path":725,"stem":726,"icon":727},"Sovereignty","\u002Fdocs\u002Fsovereignty","docs\u002F7.sovereignty","i-lucide-shield-check",{"title":729,"icon":730,"path":731,"stem":732,"children":733,"page":648},"Workspace","i-lucide-users","\u002Fdocs\u002Fworkspace","docs\u002F8.workspace",[734,738,742],{"title":735,"path":736,"stem":737},"Workspace and roles","\u002Fdocs\u002Fworkspace\u002Froles","docs\u002F8.workspace\u002F1.roles",{"title":739,"path":740,"stem":741},"Credit and costs","\u002Fdocs\u002Fworkspace\u002Fcosts","docs\u002F8.workspace\u002F2.costs",{"title":743,"path":744,"stem":745},"Partner","\u002Fdocs\u002Fworkspace\u002Fpartner","docs\u002F8.workspace\u002F3.partner",[747,749],{"title":18,"path":17,"stem":721,"description":748,"children":-1},"Connect accounts such as Gmail, Pipedrive or Stripe so that agents and workflows can work with them.",{"title":724,"path":725,"stem":726,"description":750,"icon":727,"children":-1},"Choose models that compute in the EU, and see where your data is stored.",1791184598094]