Skip to main content
Glama
siddhardhan

servicenow-mcp

by siddhardhan

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

  1. Instala las dependencias:

    uv sync
  2. Copia .env.example a .env y completa tus credenciales:

    cp .env.example .env
    • SERVICENOW_INSTANCE: solo el nombre de la instancia (por ejemplo, dev12345 para dev12345.service-now.com)

    • SERVICENOW_USERNAME / SERVICENOW_PASSWORD: credenciales de autenticación básica para un usuario con acceso a la tabla incident (lectura/escritura a través de la API de Tablas)

  3. 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 8003

Luego 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 incidente

  • get_incident — obtener por número (por ejemplo, INC0010023) o sys_id

  • update_incident — actualizar campos arbitrarios

  • search_incidents — buscar con una consulta codificada de ServiceNow (sysparm_query)

  • add_comment — agregar un comentario visible para el cliente o una nota de trabajo interna

  • resolve_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_PASSWORD de .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_INSTANCE permanece 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 de search_incidents, la resolución de caller_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 encabezado Authorization, se recurre a las credenciales compartidas SERVICENOW_USERNAME / SERVICENOW_PASSWORD de .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 state de 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.

Install Server
F
license - not found
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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