servicenow-mcp
servicenow-mcp
Un servidor MCP para gestionar incidentes de ServiceNow a través de la API de Tablas. Expone herramientas para crear, leer, actualizar, buscar, comentar y resolver incidentes.
Configuración
Instala las dependencias:
uv syncCopia
.env.examplea.envy completa tus credenciales:cp .env.example .envSERVICENOW_INSTANCE: solo el nombre de la instancia (por ejemplo,dev12345paradev12345.service-now.com)SERVICENOW_USERNAME/SERVICENOW_PASSWORD: credenciales de autenticación básica para un usuario con acceso a la tablaincident(lectura/escritura a través de la API de Tablas)
Ejecuta el servidor directamente para verificar que se inicia correctamente:
uv run servicenow-mcp
Related MCP server: servicenow-api
Uso con Claude Desktop / Claude Code
Hay dos formas de conectarse, dependiendo de si deseas que todos los usuarios del servidor compartan una cuenta de servicio de ServiceNow, o que cada persona se autentique por sí misma. Consulta Autenticación a continuación para obtener una visión completa.
Opción A — stdio, cuenta de servicio compartida
El cliente inicia el servidor como un subproceso; cada llamada a una herramienta utiliza
SERVICENOW_USERNAME / SERVICENOW_PASSWORD pasados a través de env.
{
"mcpServers": {
"servicenow": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/servicenow-mcp", "run", "servicenow-mcp"],
"env": {
"SERVICENOW_INSTANCE": "your-instance",
"SERVICENOW_USERNAME": "your-username",
"SERVICENOW_PASSWORD": "your-password"
}
}
}
}Opción B — HTTP, credenciales por cliente
Inicia el servidor una vez como un proceso HTTP de larga duración (solo necesita SERVICENOW_INSTANCE,
junto con SERVICENOW_USERNAME/PASSWORD como respaldo para solicitudes sin encabezado de autenticación):
uv run servicenow-mcp --transport streamable-http --host 127.0.0.1 --port 8003Luego apunta .mcp.json hacia él y envía tu propio inicio de sesión de ServiceNow como un encabezado
HTTP Basic Auth — esto es lo que hace que la conexión sea "a nivel de cliente": las credenciales residen en tu
configuración de cliente, no en la del servidor:
{
"mcpServers": {
"servicenow": {
"type": "http",
"url": "http://127.0.0.1:8003/mcp",
"headers": {
"Authorization": "Basic <base64 of your-username:your-password>"
}
}
}
}Genera el valor base64 desde una terminal (nota el espacio inicial, que echo con -n evita):
echo -n "your-username:your-password" | base64.mcp.json no está cubierto por .gitignore como sí lo está .env — no confirmes credenciales reales
en él si este directorio llega a convertirse en un repositorio git compartido.
Herramientas
create_incident— crear un nuevo incidenteget_incident— obtener por número (por ejemplo,INC0010023) o sys_idupdate_incident— actualizar campos arbitrariossearch_incidents— buscar con una consulta codificada de ServiceNow (sysparm_query)add_comment— agregar un comentario visible para el cliente o una nota de trabajo internaresolve_incident— establecer el estado a Resuelto con notas/código de cierre
Autenticación
La autenticación es autenticación básica (usuario/contraseña). De dónde provienen esas credenciales depende del transporte:
stdio: siempre utiliza las credenciales compartidas
SERVICENOW_USERNAME/SERVICENOW_PASSWORDde.env.HTTP (
sse/streamable-http): cada solicitud puede autenticarse como su propio usuario de ServiceNow enviando un encabezado HTTP Basic Auth estándar:Authorization: Basic base64(username:password)SERVICENOW_INSTANCEpermanece en el lado del servidor (es una instancia para todos los clientes), pero el nombre de usuario/contraseña son por cliente — por lo que los resultados desearch_incidents, la resolución decaller_id, etc. reflejan los permisos de ese usuario individual en ServiceNow en lugar de una cuenta de servicio compartida. Si una solicitud no tiene un encabezadoAuthorization, se recurre a las credenciales compartidasSERVICENOW_USERNAME/SERVICENOW_PASSWORDde.env.
Si necesitas OAuth 2.0 más adelante, cambia la configuración de requests.Session.auth en
src/servicenow_mcp/client.py por un flujo basado en tokens — el resto del cliente es
independiente del tipo de autenticación.
Notas
El campo
statede la tabla de incidentes es numérico (por ejemplo,6= Resuelto,7= Cerrado); los valores pueden diferir si tu instancia personaliza los estados de los incidentes.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityAmaintenanceAn MCP server that enables AI assistants to interact with ServiceNow instances, allowing script execution, data querying, ATF tests, and log tailing through natural language commands.8736413MIT
- Alicense-qualityBmaintenanceMCP server enabling interaction with ServiceNow API for managing incidents, CMDB, change management, and other ServiceNow operations via natural language.19MIT
- FlicenseAqualityCmaintenanceA production-ready MCP server that turns any MCP-compatible AI assistant into an AI-powered ServiceNow Incident Management Assistant, exposing incidents, users, CMDB records, and knowledge articles through validated tools.12
- Alicense-qualityDmaintenanceMCP server to interact with ServiceNow instances, enabling ITSM, CMDB, workflow, and knowledge search operations.MIT
Related MCP Connectors
GibsonAI MCP server: manage your databases with natural language
MCP server for generating rough-draft project plans from natural-language prompts.
Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/siddhardhan/servicenow-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server