Chances are near zero that you know about Agents and haven’t heard of MCP—for good reason. MCP (Model Context Protocol) is to Agents what Bluetooth is to Wireless Devices.
UiPath will soon rollout support for hosting (build or bring) MCP servers within the platform.
In this early DEMO, we showcase a Payments Coded Agent (LangChain) that leverages multiple MCP servers to process customer emails autonomously—validating requests, executing payments or refunds, and replying with confirmations.
I think this is great and I’m so excited to work with these tools . When is MCP Server going to be available in Orchestrator? I thought it was already.
Hi, I’m trying to connect to a type “UiPath” MCP server with MCP inspector and using a streamable HTTP client, but there is very little documentation available. Unfortunately, the official docs page is completely useless.
I found the SDK documentation here, which is a little more promising, but it only says to create a personal access token, not which scopes are needed. If I create a token with only folders view permission, I can connect to the server by putting the token into an authorization header, but not list the tools (I get 403 unauthorized).
All the examples I’ve seen already assume you have set up a token, so no help there, either. Some pointers (and better docs) would be appreciated. If I create a token with all permissions, the client works, but I have to use the principle of least privilege here.
async def main():
# Connect to a streamable HTTP server
async with streamablehttp_client(url="", headers={"Authorization": f"Bearer token"}) as (
read_stream,
write_stream,
_,
):
# Create a session using the client streams
async with ClientSession(read_stream, write_stream) as session:
# Initialize the connection
await session.initialize()
# List available tools
tools = await session.list_tools()
print(f"Available tools: {[tool.name for tool in tools.tools]}")
# output: mcp.shared.exceptions.McpError: {"message":"You are not authorized!","errorCode":0,"result":null,"targetUrl":null,"success":false,"error":{"code":0,"message":"You are not authorized!","details":"You are not allowed to perform this operation.","validationErrors":null},"unAuthorizedRequest":true,"__abp":true}
I’m excited that UiPath will let us host and integrate MCP servers directly in the platform, making it easier to connect AI Agents (like LangChain) with automation workflows. The Payments demo shows real potential — customer emails can be processed end-to-end (validation → execution → confirmation) without manual intervention. This could greatly reduce time for finance and support processes.
yes, I played around with it some more and found out that to list the tools you need the Executions scope and to start jobs the Jobs scope. Hope this helps!
@Stefan_Reutter right now you can obtain a token by cheating a little
Sign in to Orchestrator
Go to Swagger by typing in “swagger” after the “orchestrator_/” in your URL
In Swagger, make sure you are authorized. If the padlock on the “Authorize” button on the top right is open (it can be hard to see), click it. Scroll to the bottom of the popup, and click “Authorize”. Then click “Close”. Now the padlock should be closed, meaning you are authorized.
Expand (for example) the “Folders” section, and click GET on (for example) the “/odata/Folders” item.
On the right, click “Try it out”, and then scroll down and click “Execute”. This runs the HTTP request against Orchestrator.
In the black “Curl” section that appears, the bottom line should contain a Bearer token. Copy it, and you can use it to call the UiPath type MCP server you have set up. You do not need to set up External Applications (and scopes and so on) in order to do this, as of right now. I suspect this will not keep working.
Bearer tokens are set to expire after 1h so you’d need to get the refresh token. I managed to get it to work with a personal access token anyways, you have to use this in the client as an authorization header.
I managed to get the UiPath MCP to work with MCP Inspector and with Claude Desktop using the mcp-remote package. It doesn’t work with Claude Code, though, where it gets a formatting error