UiPath MCP Server
README.md
# UiPath MCP Server
<div align="center">
# Uipath Mcp Server
[](https://github.com/LokiMCPUniverse/uipath-mcp-server/stargazers)
[](https://github.com/LokiMCPUniverse/uipath-mcp-server/network)
[](https://github.com/LokiMCPUniverse/uipath-mcp-server/watchers)
[](https://github.com/LokiMCPUniverse/uipath-mcp-server/blob/main/LICENSE)
[](https://github.com/LokiMCPUniverse/uipath-mcp-server/issues)
[](https://github.com/LokiMCPUniverse/uipath-mcp-server/pulls)
[](https://github.com/LokiMCPUniverse/uipath-mcp-server/commits)
[](https://python.org)
[](https://modelcontextprotocol.io)
</div>
A Model Context Protocol (MCP) server that exposes the UiPath Orchestrator
Cloud API to MCP-compatible clients such as Claude Desktop. Built on the
official `mcp` Python SDK (FastMCP) with async `httpx` and OAuth2 client
credentials authentication.
## Features
- OAuth2 client credentials flow against UiPath Cloud Identity Server with
automatic token caching and refresh.
- Personal access token (PAT) support via the `UIPATH_ACCESS_TOKEN` env var.
- Optional Orchestrator folder scoping through `X-UIPATH-OrganizationUnitId`.
- Typed tool surface covering processes, robots, machines, jobs, queues, and
assets.
- Single-retry on 401 with forced token refresh.
## Installation
Install from source:
```bash
git clone https://github.com/LokiMCPUniverse/uipath-mcp-server.git
cd uipath-mcp-server
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
```
## Configuration
All configuration is read from environment variables (prefixed with `UIPATH_`)
or an optional `.env` file in the working directory.
| Variable | Required | Description |
| --- | --- | --- |
| `UIPATH_ORCHESTRATOR_URL` | no | Base URL, defaults to `https://cloud.uipath.com`. |
| `UIPATH_ORGANIZATION_NAME` | yes | Organization (account) logical name. |
| `UIPATH_TENANT_NAME` | yes | Tenant logical name. |
| `UIPATH_CLIENT_ID` | yes* | OAuth2 client id of the external application. |
| `UIPATH_CLIENT_SECRET` | yes* | OAuth2 client secret. |
| `UIPATH_ACCESS_TOKEN` | no | Pre-issued access token or PAT (overrides client credentials). |
| `UIPATH_FOLDER_ID` | no | Folder id sent via `X-UIPATH-OrganizationUnitId`. |
| `UIPATH_TIMEOUT` | no | HTTP timeout in seconds (default 30). |
`*` Not required if `UIPATH_ACCESS_TOKEN` is provided.
## Running
```bash
uipath-mcp
```
### Claude Desktop configuration
Add the following to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"uipath": {
"command": "uipath-mcp",
"env": {
"UIPATH_ORGANIZATION_NAME": "your-org",
"UIPATH_TENANT_NAME": "your-tenant",
"UIPATH_CLIENT_ID": "...",
"UIPATH_CLIENT_SECRET": "...",
"UIPATH_FOLDER_ID": "123456"
}
}
}
}
```
## Tools
| Tool | Description |
| --- | --- |
| `list_processes` | List Orchestrator processes (Releases). |
| `list_robots` | List robots registered in the tenant. |
| `list_machines` | List machines registered in the tenant. |
| `start_job` | Start a process, optionally with specific robots and input arguments. |
| `list_jobs` | List jobs, optionally filtered by state. |
| `get_job` | Get a single job by id. |
| `stop_job` | Stop or kill a running job (`SoftStop` or `Kill`). |
| `list_queue_items` | List queue items, optionally filtered by queue name and status. |
| `add_queue_item` | Add a new item to a queue with arbitrary specific content. |
| `list_assets` | List assets in the current folder. |
## Development
```bash
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pytest -x --tb=short
ruff check src tests
```
## License
MIT License - see LICENSE file for details
TDQS
A3.5/5.0
Scored across 10 tools
Disambiguation5/5
Each tool targets a distinct resource and action (e.g., queue items, jobs, assets, machines, processes, robots), with clear boundaries. No two tools have overlapping purposes.
Naming Consistency5/5
All tools follow a consistent verb_noun pattern using underscores (e.g., list_assets, start_job). Verbs are uniform (add, get, list, start, stop) and nouns are appropriately singular or plural.
Tool Count5/5
10 tools is well-scoped for a UiPath Orchestrator management server, covering key operations without being excessive or insufficient.
Completeness2/5
Only queue items and jobs have multiple operations; assets, machines, processes, and robots are limited to listing, lacking create, update, or delete. This leaves significant gaps for managing the Orchestrator.
Maintenance
ActivityInactive
ResponsivenessNo issues