- Primeros pasos
- Mejores prácticas
- Tenant
- Acerca del contexto de tenant
- Buscar recursos en un tenant
- Gestionar robots
- Conexión de los robots a Orchestrator
- Almacenar credenciales de robots en CyberArk
- Almacenar contraseñas de robots desatendidos en Azure Key Vault (solo lectura)
- Almacenar las credenciales de robots desatendidos en HashiCorp Vault (solo lectura)
- Almacenamiento de credenciales de Unattended Robot en AWS Secrets Manager (solo lectura)
- Eliminar sesiones desconectadas y sin respuesta no atendidas
- Autenticación de Robot
- Autenticación de robots con credenciales de cliente
- Configurar las capacidades de automatización
- Soluciones
- Auditoría
- Configuración
- Registro
- Cloud Robots
- Información general sobre los robots de cloud
- Ejecución de automatizaciones unattended utilizando robots en la nube: VM
- Cargar tu propia imagen
- Reutilizar imágenes de máquina personalizadas (para grupos manuales)
- Restablecer credenciales para una máquina (para grupos manuales)
- Supervisión
- Actualizaciones de seguridad
- Pedir una prueba
- Preguntas frecuentes
- Configuración de VPN para robots en la nube
- Configurar una conexión de ExpressRoute
- Transmisión en vivo y control remoto
- Automation Suite Robots
- Contexto de carpetas
- Procesos
- Trabajos
- Apps
- Desencadenadores
- Registros
- Supervisión
- Índices
- Colas
- Activos
- Sobre los activos
- Gestión de Activos en Orchestrator
- Gestión de Activos en Studio
- Almacenar activos en Azure Key Vault (solo lectura)
- Almacenamiento de activos en HashiCorp Vault (solo lectura)
- Almacenamiento de activos en AWS Secrets Manager (solo lectura)
- Almacenamiento de activos en Google Secret Manager (solo lectura)
- Conexiones
- Reglas empresariales
- Depósitos de almacenamiento
- Servidores MCP
- Acerca de los servidores MCP
- Casos de uso y flujos de MCP
- Prueba de servidores MCP
- Solución de problemas de servidores MCP
- Directrices de cumplimiento de MCP
- Pruebas de Orchestrator
- Servicio de catálogo de recursos
- Integraciones
- Solución de problemas
Soluciones para problemas comunes distintos de la autenticación con servidores MCP de UiPath, incluidos errores de carpeta, disponibilidad de runtime, errores de CLI o cliente y patrones de fiabilidad para aplicaciones y herramientas externas.
Esta página cubre los errores comunes no relacionados con la autenticación al ejecutar o llamar a servidores MCP de UiPath. Para errores de autenticación (401, 403, OAuth), consulta Resolución de problemas de autenticación del servidor MCP.
400 Solicitud incorrecta: "Se requiere la clave de la carpeta" (código de error 10500)
Este error aparece como un HTTP 400 en el cliente MCP (por ejemplo, el MCP Inspector), con errorCode 10500, en la primera llamada.
El punto final requiere una clave de carpeta, pero a la URL del servidor MCP le falta el segmento {folderKey}.
Verifica que la URL incluya la clave de la carpeta:
https://cloud.uipath.com/{org}/{tenant}/agenthub_/mcp/{folderKey}/{slug}
https://cloud.uipath.com/{org}/{tenant}/agenthub_/mcp/{folderKey}/{slug}
La clave de la carpeta es un GUID, por ejemplo dfac03c4-b7d6-44f6-86b9-6f61bdd2c681. No es visible directamente en la IU de Orchestrator. Para encontrarlo:
- Desde el navegador: abre las herramientas de desarrollador, selecciona la pestaña Red , navega a la carpeta en Orchestrator y busca las llamadas a la API que contengan el campo
Keyde la carpeta. - Desde la API: llama a
GET /orchestrator_/api/FoldersNavigation/GetFoldersForCurrentUser. La propiedadKeyen cada objeto de carpeta es el GUID. - Desde la página Servidores MCP : la URL mostrada ya contiene la clave de la carpeta.
400 Solicitud incorrecta: "Se requiere una carpeta para esta acción" (código de error 1101)
Este error aparece como un HTTP 400 con código de error 1101, procedente de Orchestrator, cuando una llamada de herramienta inicia un trabajo. Es distinto del error de clave de carpeta anterior.
La aplicación externa tiene acceso a la API, pero no está asignada a la carpeta.
- Abre la carpeta que contiene el servidor MCP en Orchestrator.
- Navega a la pestaña Configuración de la carpeta.
- Asigna la aplicación externa con los permisos adecuados.
No hay tiempos de ejecución disponibles para este servidor MCP (400)
En la primera solicitud de una sesión (la llamada initialize ), o desde las herramientas de actualización en un servidor codificado o de comando, la plataforma devuelve HTTP 400 con el cuerpo No runtimes available for this MCP server.
Solo los servidores codificados, de comando y autoalojados pueden devolver este error. Los servidores UiPath, Platform, Swagger y Remote siempre resuelven un runtime.
| Tipo de servidor | Causa | Resolución |
|---|---|---|
| Codificado/Comando | El servidor inicia un trabajo en la primera solicitud. Este error significa que se ha aceptado la solicitud de trabajo, pero no se ha devuelto ningún trabajo. | Comprueba Trabajos en la carpeta del servidor para ver si hay un trabajo defectuoso o faltante. |
| Autoalojado | No hay ningún runtime local conectado. | Inicie uipath run y confirme que el servidor muestra active. Para la configuración, consulta Servidores MCP autoalojados. |
Si una sesión establecida pierde su runtime a mitad de sesión, la plataforma devuelve 404 Not Found en lugar de este error.
403 Forbidden
Licencia no disponible
Orchestrator devuelve 403 con errorCode 10000 cuando no hay ninguna licencia disponible para la identidad de la llamada. Consulta Admin > Licencias en tu organización para confirmar que hay una licencia disponible para la edición del producto vinculada a los servidores MCP.
la ejecución de uipath falla con "No está autorizado" (403)
Este error aparece en la salida del comando uipath run en la CLI.
Cuando ejecutas uipath run con credenciales de cliente (aplicación externa), el SDK llama a GetFoldersForCurrentUser para resolver UIPATH_FOLDER_PATH en una clave de carpeta. Este punto final de Orchestrator no admite la autenticación de credenciales de cliente y rechaza todos los tokens OAuth, aceptando solo el inicio de sesión de usuario interactivo.
Opción 1: establecer la clave de la carpeta directamente
export UIPATH_FOLDER_KEY=<your-folder-key>
uipath run my-mcp
export UIPATH_FOLDER_KEY=<your-folder-key>
uipath run my-mcp
El SDK omite la llamada GetFoldersForCurrentUser por completo.
Opción 2: utilizar la autenticación interactiva
uipath auth
uipath auth
Playwright MCP "Respuesta de publicación HTTP transmisible completada sin respuesta" Errores
Si utilizas el servidor MCP de Playwright como servidor MCP de comando, el cliente que llama (por ejemplo, ChatGPT o Claude) puede aparecer de forma intermitente:
"La herramienta de tipo MCP falló porque: la respuesta HTTP Post Streamable se completó sin una respuesta a la solicitud con ID X"
Este es un problema conocido en la implementación de HTTP Streamable de Playwright MCP, no un problema de UiPath. Durante las operaciones de larga duración, como las instantáneas DOM grandes o las navegaciones de página con esperas, el servidor MCP de Playwright puede desconectar la conexión y finalizar la sesión prematuramente. El cliente UiPath MCP muestra esto correctamente como un error según la especificación del protocolo MCP, y las solicitudes de seguimiento fallan con "Sesión no encontrada".
Patrones comunes
Los siguientes patrones ayudan a evitar los errores documentados anteriormente.
Verificar los permisos de la aplicación externa
Usa esta secuencia para confirmar que una aplicación externa está completamente configurada para el acceso al servidor MCP, combinando autenticación, resolución de carpetas y una llamada de herramienta en vivo:
# 1. Authenticate
uipath auth \
--client-id "<client-id>" \
--client-secret "<client-secret>" \
--base-url "https://cloud.uipath.com/{org}/{tenant}" \
--scope "OR.Default OR.Execution OR.Jobs"
# 2. Set folder key to skip folder lookup issues
echo "UIPATH_FOLDER_KEY=<your-folder-key>" >> .env
# 3. Test with MCP Inspector or cURL
npx @modelcontextprotocol/inspector@0.22.0
# 1. Authenticate
uipath auth \
--client-id "<client-id>" \
--client-secret "<client-secret>" \
--base-url "https://cloud.uipath.com/{org}/{tenant}" \
--scope "OR.Default OR.Execution OR.Jobs"
# 2. Set folder key to skip folder lookup issues
echo "UIPATH_FOLDER_KEY=<your-folder-key>" >> .env
# 3. Test with MCP Inspector or cURL
npx @modelcontextprotocol/inspector@0.22.0
Para la configuración completa de la aplicación externa, incluidos los ámbitos y la asignación de carpetas, consulta Autenticación con una aplicación externa.
Gestión de errores en servidores MCP de Python
Al crear servidores MCP codificados, gestiona los errores para que produzcan mensajes útiles para el LLM que llama. FastMCP detecta las excepciones planteadas y las devuelve como respuestas de error de MCP:
from mcp.server.fastmcp import FastMCP
import httpx
import os
mcp = FastMCP("My Server")
@mcp.tool()
async def get_customer(customer_id: str) -> dict:
"""Retrieve customer by ID.
Args:
customer_id: Customer identifier (e.g., "CUST-12345")
"""
if not customer_id or not customer_id.startswith("CUST-"):
raise ValueError(f"Invalid customer_id format: '{customer_id}'. Expected 'CUST-XXXXX'.")
try:
async with httpx.AsyncClient(timeout=30) as client:
response = await client.get(
f"https://api.internal.com/customers/{customer_id}",
headers={"Authorization": f"Bearer {os.getenv('CRM_API_KEY')}"},
)
if response.status_code == 404:
raise RuntimeError(f"Customer {customer_id} not found.")
response.raise_for_status()
return response.json()
except httpx.TimeoutException:
raise RuntimeError("CRM API timed out. Try again.")
except httpx.HTTPStatusError as e:
raise RuntimeError(f"CRM API returned {e.response.status_code}.")
from mcp.server.fastmcp import FastMCP
import httpx
import os
mcp = FastMCP("My Server")
@mcp.tool()
async def get_customer(customer_id: str) -> dict:
"""Retrieve customer by ID.
Args:
customer_id: Customer identifier (e.g., "CUST-12345")
"""
if not customer_id or not customer_id.startswith("CUST-"):
raise ValueError(f"Invalid customer_id format: '{customer_id}'. Expected 'CUST-XXXXX'.")
try:
async with httpx.AsyncClient(timeout=30) as client:
response = await client.get(
f"https://api.internal.com/customers/{customer_id}",
headers={"Authorization": f"Bearer {os.getenv('CRM_API_KEY')}"},
)
if response.status_code == 404:
raise RuntimeError(f"Customer {customer_id} not found.")
response.raise_for_status()
return response.json()
except httpx.TimeoutException:
raise RuntimeError("CRM API timed out. Try again.")
except httpx.HTTPStatusError as e:
raise RuntimeError(f"CRM API returned {e.response.status_code}.")
Para obtener una guía de inicio completa, consulta el uipath-mcp inicio rápido.
Lógica de reintento para el código de cliente MCP
Al llamar a servidores MCP desde un agente codificado, utiliza la lógica de reintento para fallos transitorios:
import asyncio
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
async def call_with_retry(url: str, token: str, tool: str, args: dict, retries: int = 3):
"""Call an MCP tool with exponential backoff."""
for attempt in range(retries):
try:
async with streamablehttp_client(
url=url,
headers={"Authorization": f"Bearer {token}"},
timeout=60,
) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
result = await session.call_tool(tool, args)
if result.isError:
raise RuntimeError(result.content[0].text if result.content else "Unknown error")
return result
except Exception as e:
if attempt < retries - 1:
wait = 2 ** attempt
await asyncio.sleep(wait)
else:
raise
import asyncio
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
async def call_with_retry(url: str, token: str, tool: str, args: dict, retries: int = 3):
"""Call an MCP tool with exponential backoff."""
for attempt in range(retries):
try:
async with streamablehttp_client(
url=url,
headers={"Authorization": f"Bearer {token}"},
timeout=60,
) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
result = await session.call_tool(tool, args)
if result.isError:
raise RuntimeError(result.content[0].text if result.content else "Unknown error")
return result
except Exception as e:
if attempt < retries - 1:
wait = 2 ** attempt
await asyncio.sleep(wait)
else:
raise
- 400 Solicitud incorrecta: "Se requiere la clave de la carpeta" (código de error 10500)
- 400 Solicitud incorrecta: "Se requiere una carpeta para esta acción" (código de error 1101)
- No hay tiempos de ejecución disponibles para este servidor MCP (400)
- 403 Forbidden
- Licencia no disponible
- la ejecución de uipath falla con "No está autorizado" (403)
- Playwright MCP "Respuesta de publicación HTTP transmisible completada sin respuesta" Errores
- Patrones comunes
- Verificar los permisos de la aplicación externa
- Gestión de errores en servidores MCP de Python
- Lógica de reintento para el código de cliente MCP