javaos74/uipath-mcp-server
If you are the rightful owner of uipath-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
UiPath Dynamic MCP Server is an HTTP Streamable MCP server that dynamically creates multiple MCP endpoints and registers MCP Tools to execute UiPath RPA processes.
UiPath MCP Server
UiPath On-Premise MCP Server with Web UI for managing multiple MCP endpoints.
Architecture
- Backend: Python (FastAPI/Starlette) - MCP server with authentication
- Frontend: React + TypeScript (Vite) - Web UI for server management
- Database: SQLite - User, server, and tool configuration
Development
Prerequisites
- Python 3.11+
- Node.js 18+
- uv (Python package manager)
Backend Development
cd backend
uv sync
uv run python -m src.main
Backend runs on http://localhost:8000
Frontend Development
cd frontend
npm install
npm run dev
Frontend dev server runs on http://localhost:3000 with API proxy to backend.
Production Build
Build Frontend and Run
# Build frontend (outputs to backend/static/)
./build.sh
# Run backend (serves both API and frontend)
cd backend
uv run python -m src.main
Access the application at http://localhost:8000
Docker Deployment
# 1. Build frontend first
./build.sh
# 2. Build Docker image (uses version from pyproject.toml)
./docker-build-simple.sh
# 3. Run with Docker Compose
docker-compose up -d
Docker image will be tagged with the version from backend/pyproject.toml (currently: 0.1.0).
See for detailed Docker deployment guide.
Manual Build
# Build frontend
cd frontend
npm install
npm run build
# Run backend
cd ../backend
uv run python -m src.main
Features
- 🔐 Multi-tenant Authentication - User registration and JWT-based authentication
- 🤖 Multiple MCP Servers - Create and manage multiple MCP server endpoints
- 🔧 Dynamic Tool Management - Create tools mapped to UiPath processes
- 🔑 Dual Authentication Support - PAT (Personal Access Token) and OAuth 2.0
- 🌐 Web UI - React-based interface for easy management
- 📊 Real-time Monitoring - Track tool execution and job status
- 🔒 Secure Token Management - Generate and manage API tokens per server
- 🏢 On-Premise Support - Works with both UiPath Cloud and On-Premise installations
API Endpoints
Authentication
POST /auth/register- Register new user{ "username": "user", "email": "user@example.com", "password": "password123" }POST /auth/login- Login and get JWT token{ "username": "user", "password": "password123" }GET /auth/me- Get current user info (requires JWT)PUT /auth/uipath-config- Update UiPath configurationOr for OAuth:{ "uipath_url": "https://cloud.uipath.com/org/tenant", "uipath_auth_type": "pat", "uipath_access_token": "your-pat-token" }{ "uipath_url": "https://your-server.com/org/tenant", "uipath_auth_type": "oauth", "uipath_client_id": "your-client-id", "uipath_client_secret": "your-client-secret" }
MCP Servers
GET /api/servers- List all servers for current userPOST /api/servers- Create new MCP server{ "tenant_name": "MyTenant", "server_name": "MyServer", "description": "Server description" }GET /api/servers/{tenant}/{server}- Get server detailsPUT /api/servers/{tenant}/{server}- Update serverDELETE /api/servers/{tenant}/{server}- Delete server
Server Token Management
GET /api/servers/{tenant}/{server}/token- Get current API tokenPOST /api/servers/{tenant}/{server}/token- Generate new API tokenDELETE /api/servers/{tenant}/{server}/token- Revoke API token
MCP Tools
GET /api/servers/{tenant}/{server}/tools- List all toolsPOST /api/servers/{tenant}/{server}/tools- Create new tool{ "name": "my_tool", "description": "Tool description", "input_schema": { "type": "object", "properties": { "param1": {"type": "string"} }, "required": ["param1"] }, "uipath_process_name": "ProcessName", "uipath_folder_id": "folder-id" }GET /api/servers/{tenant}/{server}/tools/{tool}- Get tool detailsPUT /api/servers/{tenant}/{server}/tools/{tool}- Update toolDELETE /api/servers/{tenant}/{server}/tools/{tool}- Delete tool
UiPath Integration
GET /api/uipath/folders- List UiPath foldersGET /api/uipath/processes?folder_id={id}- List processes in folder
MCP Protocol
GET /mcp/{tenant}/{server}/sse- SSE connection for MCP clientsPOST /mcp/{tenant}/{server}/sse/messages- SSE message postingGET /mcp/{tenant}/{server}- HTTP Streamable (GET)POST /mcp/{tenant}/{server}- HTTP Streamable (POST)DELETE /mcp/{tenant}/{server}- HTTP Streamable (DELETE)
Authentication: MCP endpoints require API token in header:
Authorization: Bearer <server-api-token>
Health Check
GET /health- Server health check endpoint
UiPath Configuration
Authentication Methods
The server supports two authentication methods for UiPath:
1. Personal Access Token (PAT)
Best for UiPath Cloud environments:
- Generate PAT from UiPath Cloud Admin Console
- Configure in Settings page
- Suitable for: UiPath Cloud (cloud.uipath.com)
2. OAuth 2.0 (Client Credentials)
Best for On-Premise installations:
- Create OAuth application in UiPath
- Get Client ID and Client Secret
- Configure in Settings page
- Suitable for: On-Premise UiPath installations with self-signed certificates
SSL Certificate Handling
The server automatically handles self-signed certificates for On-Premise installations:
- SSL verification is disabled for non-cloud URLs
- SSL warnings are suppressed
- Works seamlessly with internal CA certificates
Execution Methods
The server automatically selects the appropriate execution method:
- UiPath Cloud (
uipath.comin URL): Uses UiPath Python SDK - On-Premise: Uses REST API with
startJobsendpoint
Environment Variables
Create a .env file in the backend/ directory:
cd backend
cp .env.example .env
# Edit .env with your configuration
Available variables:
API_HOST- Server host (default: 0.0.0.0)API_PORT- Server port (default: 8000)DB_PATH- Database file path (default: database/mcp_servers.db)SECRET_KEY- JWT secret key (required for production)TOOL_CALL_TIMEOUT- UiPath tool execution timeout in seconds (default: 600)LOG_LEVEL- Logging level (default: INFO)
Default Admin Account
When the database is first created, a default admin account is automatically created:
- Username:
admin - Password:
admin - Email:
admin@mydomain.com - Role:
admin
⚠️ Security Warning: Please change the default password immediately after first login!
Usage Guide
1. Register and Login
- Access the web UI at
http://localhost:8000 - Login with the default admin account (username:
admin, password:admin) - Or register a new account and login with your credentials
2. Configure UiPath
- Go to Settings page
- Enter your UiPath URL
- Choose authentication method:
- PAT: Enter your Personal Access Token
- OAuth: Enter Client ID and Client Secret
- Save configuration
3. Create MCP Server
- Go to Dashboard
- Click "Create Server"
- Enter tenant name and server name
- Generate API token for the server
4. Add Tools
- Select a server from the list
- Click "Add Tool from UiPath"
- Select folder and process
- Configure tool parameters
- Save tool
5. Use MCP Server
Configure your MCP client (e.g., Claude Desktop) with:
{
"mcpServers": {
"uipath": {
"url": "http://localhost:8000/mcp/MyTenant/MyServer/sse",
"headers": {
"Authorization": "Bearer <your-server-api-token>"
}
}
}
}
License
MIT