opsgenie-mcp
opsgenie-mcp
Servidor MCP para Opsgenie (la plataforma de gestión de incidentes/alertas y guardias de Atlassian) — expone la API REST pública completa de Opsgenie como herramientas MCP.
⚠️ Nota del proveedor: Atlassian ha anunciado que Opsgenie está llegando a su fin de soporte y recomienda migrar a Jira Service Management o Compass. La API pública documentada aquí (
docs.opsgenie.com) sigue activa y sin cambios a partir de esta compilación, pero se espera que eventualmente quede obsoleta.
Resumen
Servicio HTTP sin estado. No se persisten credenciales nunca: cada solicitud proporciona su propia clave de API mediante un encabezado, utilizada solo durante la vida de esa única solicitud.
Admite solicitudes concurrentes; el aislamiento de credenciales por solicitud se realiza mediante
contextvarsde Python, no con una instancia de cliente global/compartida.Puntos de entrada:
POST /mcp(protocolo MCP) yGET /health(comprobación de salud).Puerto predeterminado:
8080(configurable medianteMCP_HTTP_PORT).
Related MCP server: MCP Setup Server
Alcance
22 herramientas, reducidas de una compilación original de 213 herramientas de API completa (2026-08-04), todas en la única categoría alert. La configuración de integración almacenada de MSPbots para este proveedor llama exactamente 1 endpoint (GET /v2/alerts, solo lectura, → opsgenie_alert_list_alerts). Según la decisión de alcance de "uso real + CRUD central de la misma categoría", cada otra categoría (Incident, Incident Timeline, Integration, Heartbeat, Alert & Notification Policy, Policy (legacy v1), Maintenance, Account, User, Custom User Role, Contact, Notification Rule (+ Step), Team (+ Member/Role/Routing Rule), Schedule (+ Rotation/Override), Escalation, Who Is On Call, Forwarding Rule, Service (+ Incident Rules/Templates), Incident Templates — 27 categorías, ~178 herramientas) se eliminó por completo, ya que MSPbots no toca ninguna de ellas; dentro de la propia categoría alert, 35 herramientas originales se redujeron a las 22 operaciones centrales del ciclo de vida de alertas (list/get/create/close/delete/acknowledge/unacknowledge/note/tags/assign/responder/team/escalate/snooze/update message-description-priority/count/logs/request-status) — se eliminaron la subcaracterística de búsqueda guardada (5 herramientas), la subcaracterística de adjuntos (4 herramientas), agregar/eliminar propiedades personalizadas (2 herramientas), execute_custom_action (1) y list_alert_recipients (1), ninguna de las cuales es CRUD central de alertas.
Los datos de origen de las herramientas conservadas se extrajeron originalmente obteniendo docs.opsgenie.com/docs/alert-api y estructurando cada operación documentada (método, ruta, parámetros de ruta/consulta, campos del cuerpo JSON) en un formato legible por máquina: el mismo enfoque de generación de código a partir de especificaciones estructuradas utilizado para otros proveedores de API grandes en este programa (ConnectSecure, Dynu, Jira Data Center), adaptado aquí porque Opsgenie no tiene una especificación OpenAPI/Postman descargable, solo documentación en prosa. Si se necesita una categoría eliminada más adelante, las mismas páginas de origen (docs.opsgenie.com/docs/*-api) se pueden volver a analizar de la misma manera.
Autenticación
Opsgenie utiliza una clave de API estática vinculada a una integración específica de Opsgenie (creada en Configuración → Integraciones → API de Opsgenie). La convención de integración propia de MSPbots envía esta clave como Authorization: GenieKey <apiKey>, coincidiendo con el formato documentado de Opsgenie, y este servidor la reenvía exactamente de esa manera.
Descripción de parámetros de autorización del encabezado
Encabezado | Tipo | Obligatorio | Valor predeterminado | Enumeración | Descripción del campo | Ejemplo |
| string | Sí | Ninguno | Ninguno | Clave de API de integración de Opsgenie, reenviada tal cual como encabezado de solicitud |
|
| string | No |
| Ninguno | URL base de la API de Opsgenie; los clientes de instancias de la UE deben enviar |
|
Si falta el encabezado requerido, se devuelve 401:
{
"error": "Missing credentials",
"message": "This server requires the X-Opsgenie-Api-Key header",
"required_headers": ["X-Opsgenie-Api-Key"],
"optional_headers": ["X-Opsgenie-Base-Url"]
}Variables de entorno
Variable | Tipo | Obligatorio | Valor predeterminado | Descripción |
| int | No |
| Puerto de escucha HTTP |
| string | No |
| Dirección de escucha HTTP |
| string | No |
| URL base predeterminada de la API de Opsgenie (puede ser anulada por el encabezado de solicitud |
Endpoint MCP
POST /mcp— protocolo MCP (transporte HTTP transmisible)GET /health— comprobación de salud, devuelve{"status": "ok"}(sonda de actividad local pura, no llama a Opsgenie)
Lista de herramientas
Los nombres de las herramientas son opsgenie_<category>_<operation>, derivados del encabezado de cada operación en la documentación oficial (por ejemplo, "List Alerts" en la categoría alert → opsgenie_alert_list_alerts). Los parámetros body se aceptan como un dict genérico: la lista exacta de campos para cada uno está documentada en el docstring de esa herramienta (extraído de la documentación de origen), y el esquema completo de campos está disponible en la referencia de la API de Opsgenie (enlazada a continuación).
Category | Tool | Description | Method + Path | Params |
alert |
| Reconocer alerta. | POST /v2/alerts/:identifier/acknowledge | identifier(required), body(required), identifier_type(optional) |
alert |
| Añadir nota a la alerta. | POST /v2/alerts/:identifier/notes | identifier(required), body(required), identifier_type(optional) |
alert |
| Añadir respondedor a la alerta. | POST /v2/alerts/:identifier/responders | identifier(required), body(required), identifier_type(optional) |
alert |
| Añadir etiquetas a la alerta. | POST /v2/alerts/:identifier/tags | identifier(required), body(required), identifier_type(optional) |
alert |
| Añadir equipo a la alerta. | POST /v2/alerts/:identifier/teams | identifier(required), body(required), identifier_type(optional) |
alert |
| Asignar alerta. | POST /v2/alerts/:identifier/assign | identifier(required), body(required), identifier_type(optional) |
alert |
| Cerrar alerta. | POST /v2/alerts/:identifier/close | identifier(required), body(required), identifier_type(optional) |
alert |
| Contar alertas. | GET /v2/alerts/count | query(optional), search_identifier(optional), search_identifier_type(optional) |
alert |
| Crear alerta. | POST /v2/alerts | body(required) |
alert |
| Eliminar alerta. | DELETE /v2/alerts/:identifier | identifier(required), identifier_type(optional), user(optional), source(optional) |
alert |
| Escalar alerta al siguiente. | POST /v2/alerts/:identifier/escalate | identifier(required), body(required), identifier_type(optional) |
alert |
| Obtener alerta. | GET /v2/alerts/:identifier | identifier(required), identifier_type(optional) |
alert |
| Obtener estado de la solicitud. | GET /v2/alerts/requests/:requestId | request_id(required) |
alert |
| Listar registros de alerta. | GET /v2/alerts/:identifier/logs | identifier(required), identifier_type(optional), offset(optional), direction(optional), limit(optional), order(optional) |
alert |
| Listar notas de alerta. | GET /v2/alerts/:identifier/notes | identifier(required), identifier_type(optional), offset(optional), direction(optional), limit(optional), order(optional) |
alert |
| Listar alertas. | GET /v2/alerts | query(optional), search_identifier(optional), search_identifier_type(optional), offset(optional), limit(optional), sort(optional), order(optional) |
alert |
| Eliminar etiquetas de la alerta. | DELETE /v2/alerts/:identifier/tags | identifier(required), tags(required), identifier_type(optional), user(optional), source(optional), note(optional) |
alert |
| Posponer alerta. | POST /v2/alerts/:identifier/snooze | identifier(required), body(required), identifier_type(optional) |
alert |
| Anular reconocimiento de alerta. | POST /v2/alerts/:identifier/unacknowledge | identifier(required), body(required), identifier_type(optional) |
alert |
| Actualizar descripción de la alerta. | POST /v2/alerts/:identifier/description | identifier(required), body(required), identifier_type(optional) |
alert |
| Actualizar mensaje de la alerta. | POST /v2/alerts/:identifier/message | identifier(required), body(required), identifier_type(optional) |
alert |
| Actualizar prioridad de la alerta. | PUT /v2/alerts/:identifier/priority | identifier(required), body(required), identifier_type(optional) |
Ejemplo de prueba
# Health check
curl -s http://localhost:8080/health
# Call a tool via the MCP protocol (streamable HTTP) — requires an
# initialize handshake first per the MCP spec; abbreviated example below
# shows the tool-call request body only:
curl -s -X POST http://localhost:8080/mcp \
-H "X-Opsgenie-Api-Key: <your-opsgenie-api-key>" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "mcp-session-id: <session-id-from-initialize>" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "opsgenie_alert_list_alerts",
"arguments": {"limit": 5}
}
}'Verificado en vivo (2026-07-30): se llamó a opsgenie_alert_list_alerts (el mismo endpoint que MSPbots utiliza) de extremo a extremo a través de este servidor en ejecución con una clave de API de prueba real y devolvió datos reales de alertas (mensaje, estado, prioridad, respondedores, integración, etc.) de la cuenta. También se llamaron otras dos herramientas de categorías diferentes (opsgenie_team_list_teams, opsgenie_account_get_account_info) con la misma clave y devolvieron correctamente el 403 API Key is not granted with configuration access de Opsgenie, lo que confirma que la canalización de solicitudes/cabeceras de autenticación funciona correctamente también fuera de la categoría alert; esta clave de prueba específica solo tiene acceso a nivel de alertas (una restricción normal de clave de integración de Opsgenie, no un error).
Referencia de la API
Descripción general: https://docs.opsgenie.com/docs/api-overview
Autenticación: https://docs.opsgenie.com/docs/authentication
La documentación por categorías está enlazada desde la barra lateral en https://docs.opsgenie.com/docs/alert-api
Brechas conocidas
Reducido de 213 a 22 herramientas el 2026-08-04. La compilación original cubría la API pública completa en 28 categorías según una decisión de alcance anterior. Una decisión de alcance posterior lo recortó a la categoría realmente utilizada por MSPbots (
alert) más su CRUD básico; consulte la sección de Alcance anterior para ver exactamente qué se mantuvo/eliminó dentro dealerty la lista completa de las 27 categorías eliminadas (~178 herramientas). Si se necesita una categoría eliminada más adelante, las mismas páginasdocs.opsgenie.com/docs/*-apise pueden volver a analizar de la misma manera en que se generaron las herramientas conservadas.Varias herramientas conservadas aún mutan el estado real de las alertas de Opsgenie (
opsgenie_alert_delete_alert,opsgenie_alert_close_alert,opsgenie_alert_create_alert, etc.); trátelas como irreversibles/cambiantes de estado y confirme con una persona antes de invocarlas.Los parámetros
bodyno están tipados (dict) en lugar de estar completamente modelados: el docstring de cada herramienta enumera los nombres de campos extraídos de la documentación de Opsgenie, pero reproducirlos todos como parámetros Python tipados estaba fuera del alcance de un servidor generado mecánicamente.Los datos de origen se extrajeron de documentación en prosa, no de una especificación de máquina — Opsgenie no tiene una colección OpenAPI/Postman descargable, por lo que el método/ruta/parámetros de cada operación se analizó del HTML de
docs.opsgenie.com.Solo
opsgenie_alert_list_alerts(el endpoint propio de MSPbots) se verificó en vivo con datos reales devueltos. Las 21 herramientas restantes son estructuralmente correctas (esquema validado,tools/listdel protocolo MCP confirmado, todas pasancompile()), pero no se probaron individualmente; varias son operaciones de escritura/destructivas que crearían, modificarían o cerrarían alertas reales, por lo que no se ejecutaron contra la cuenta de prueba en vivo.El proveedor está llegando al fin de soporte (consulte el banner de advertencia en la parte superior de este README) — Atlassian recomienda migrar a Jira Service Management o Compass. Este MCP apunta a la API pública de Opsgenie aún activa a partir de esta compilación.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
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 Connectors
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
A basic MCP server to operate on the Postman API.
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP server for the Splunk On-Call (VictorOps) API providing comprehensive incident management, on-call schedules, team administration, and alert reporting through natural language.MIT
- FlicenseNot gradedqualityCmaintenanceA modular MCP server exposing tools for integrating with services like GitHub, Redash, Jenkins, Figma, Jira, Confluence, Teams, Datadog, PagerDuty, Slack, and Presto, enabling users to manage these platforms through natural language via an MCP client.-
- AlicenseBqualityCmaintenanceMCP server for the Level v2 REST API, enabling management of alerts, automations, devices, groups, tags, updates, and custom fields through typed tools.35MIT
- AlicenseNot gradedqualityCmaintenanceJira Cloud MCP server providing Jira-first tools for common workflows and full REST API coverage through a generic request tool.640MIT
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/MSPbotsAI/opsgenie-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server