opsgenie-mcp
opsgenie-mcp
MCP-Server für Opsgenie (Atlassians Incident-/Alert-Management- und On-Call-Plattform) – stellt die vollständige öffentliche Opsgenie-REST-API als MCP-Tools bereit.
⚠️ Hinweis zum Anbieter: Atlassian hat angekündigt, dass Opsgenie das Ende des Supports erreicht, und empfiehlt die Migration zu Jira Service Management oder Compass. Die hier dokumentierte öffentliche API (
docs.opsgenie.com) ist weiterhin live und unverändert zum Zeitpunkt dieses Builds, aber es ist zu erwarten, dass sie schließlich veraltet.
Übersicht
Zustandsloser HTTP-Dienst. Es werden niemals Anmeldeinformationen gespeichert – jede Anfrage liefert ihren eigenen API-Schlüssel über einen Header, der nur für die Lebensdauer dieser einzelnen Anfrage verwendet wird.
Unterstützt gleichzeitige Anfragen; die Isolierung der Anmeldeinformationen pro Anfrage erfolgt über Python-
contextvars, nicht über eine globale/geteilte Client-Instanz.Einstiegspunkte:
POST /mcp(MCP-Protokoll) undGET /health(Health-Check).Standardport:
8080(konfigurierbar überMCP_HTTP_PORT).
Related MCP server: MCP Setup Server
Umfang
22 Tools, reduziert von einem ursprünglichen 213-Tool-Voll-API-Build (2026-08-04), alle in der einzigen Kategorie alert. Die eigene gespeicherte Integrationskonfiguration von MSPbots für diesen Anbieter ruft genau 1 Endpunkt auf (GET /v2/alerts, schreibgeschützt, → opsgenie_alert_list_alerts). Gemäß der Scope-Entscheidung „tatsächliche Nutzung + Core-CRUD derselben Kategorie“ wurde jede andere Kategorie (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 Kategorien, ~178 Tools) vollständig entfernt, da MSPbots keine davon berührt; innerhalb der Kategorie alert selbst wurden 35 ursprüngliche Tools auf die 22 Kernoperationen des Alert-Lebenszyklus reduziert (list/get/create/close/delete/acknowledge/unacknowledge/note/tags/assign/responder/team/escalate/snooze/update message-description-priority/count/logs/request-status) – entfernt wurden die Unterfunktion gespeicherte Suche (5 Tools), die Anhang-Unterfunktion (4 Tools), benutzerdefinierte Eigenschaften hinzufügen/entfernen (2 Tools), execute_custom_action (1) und list_alert_recipients (1), von denen keines zum Core-Alert-CRUD gehört.
Die Quelldaten für die behaltenen Tools wurden ursprünglich durch Abrufen von docs.opsgenie.com/docs/alert-api extrahiert und jede dokumentierte Operation (Methode, Pfad, Pfad-/Query-Parameter, JSON-Body-Felder) in ein maschinenlesbares Format strukturiert – derselbe Codegen-aus-strukturierter-Spezifikation-Ansatz, der auch für andere große API-Anbieter in diesem Programm verwendet wird (ConnectSecure, Dynu, Jira Data Center), hier angepasst, weil Opsgenie keine herunterladbare OpenAPI/Postman-Spezifikation hat, sondern nur Prosa-Dokumentation. Falls eine entfernte Kategorie später benötigt wird, können dieselben Quellseiten (docs.opsgenie.com/docs/*-api) auf dieselbe Weise neu geparst werden.
Authentifizierung
Opsgenie verwendet einen statischen API-Schlüssel, der an eine bestimmte Opsgenie-Integration gebunden ist (erstellt in Opsgenies Einstellungen → Integrationen → API). Die eigene Integrationskonvention von MSPbots sendet diesen Schlüssel als Authorization: GenieKey <apiKey>, was dem von Opsgenie dokumentierten Format entspricht, und dieser Server leitet ihn genau so weiter.
Header-Autorisierungsparameter
Header | Typ | Erforderlich | Standardwert | Enum-Werte | Feldbeschreibung | Beispiel |
| string | Ja | Keiner | Keine | Opsgenie-Integrations-API-Schlüssel, wird unverändert als Upstream- |
|
| string | Nein |
| Keine | Basis-URL der Opsgenie-API; Kunden der EU-Instanz müssen |
|
Fehlt der erforderliche Header, wird 401 zurückgegeben:
{
"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"]
}Umgebungsvariablen
Variable | Typ | Erforderlich | Standardwert | Beschreibung |
| int | Nein |
| HTTP-Listener-Port |
| string | Nein |
| HTTP-Listener-Adresse |
| string | Nein |
| Standard-Basis-URL der Opsgenie-API (kann durch den Header |
MCP-Endpunkt
POST /mcp– MCP-Protokoll (streambarer HTTP-Transport)GET /health– Health-Check, gibt{"status": "ok"}zurück (reiner lokaler Liveness-Test, ruft Opsgenie nicht auf)
Tool-Liste
Tool-Namen sind opsgenie_<Kategorie>_<Operation>, abgeleitet von der Überschrift jeder Operation in der offiziellen Dokumentation (z. B. „List Alerts“ in der Kategorie alert → opsgenie_alert_list_alerts). body-Parameter werden als generisches dict akzeptiert – die genaue Feldliste für jedes Tool ist in dessen eigenem Docstring dokumentiert (aus den Quelldokumenten extrahiert), und das vollständige Feldschema ist in der eigenen API-Referenz von Opsgenie verfügbar (unten verlinkt).
Category | Tool | Description | Method + Path | Params |
alert |
| Alert bestätigen. | POST /v2/alerts/:identifier/acknowledge | identifier(required), body(required), identifier_type(optional) |
alert |
| Notiz zum Alert hinzufügen. | POST /v2/alerts/:identifier/notes | identifier(required), body(required), identifier_type(optional) |
alert |
| Responder zum Alert hinzufügen. | POST /v2/alerts/:identifier/responders | identifier(required), body(required), identifier_type(optional) |
alert |
| Tags zum Alert hinzufügen. | POST /v2/alerts/:identifier/tags | identifier(required), body(required), identifier_type(optional) |
alert |
| Team zum Alert hinzufügen. | POST /v2/alerts/:identifier/teams | identifier(required), body(required), identifier_type(optional) |
alert |
| Alert zuweisen. | POST /v2/alerts/:identifier/assign | identifier(required), body(required), identifier_type(optional) |
alert |
| Alert schließen. | POST /v2/alerts/:identifier/close | identifier(required), body(required), identifier_type(optional) |
alert |
| Alerts zählen. | GET /v2/alerts/count | query(optional), search_identifier(optional), search_identifier_type(optional) |
alert |
| Alert erstellen. | POST /v2/alerts | body(required) |
alert |
| Alert löschen. | DELETE /v2/alerts/:identifier | identifier(required), identifier_type(optional), user(optional), source(optional) |
alert |
| Alert an nächste Stufe eskalieren. | POST /v2/alerts/:identifier/escalate | identifier(required), body(required), identifier_type(optional) |
alert |
| Alert abrufen. | GET /v2/alerts/:identifier | identifier(required), identifier_type(optional) |
alert |
| Anfragestatus abrufen. | GET /v2/alerts/requests/:requestId | request_id(required) |
alert |
| Alert-Protokolle auflisten. | GET /v2/alerts/:identifier/logs | identifier(required), identifier_type(optional), offset(optional), direction(optional), limit(optional), order(optional) |
alert |
| Alert-Notizen auflisten. | GET /v2/alerts/:identifier/notes | identifier(required), identifier_type(optional), offset(optional), direction(optional), limit(optional), order(optional) |
alert |
| Alerts auflisten. | GET /v2/alerts | query(optional), search_identifier(optional), search_identifier_type(optional), offset(optional), limit(optional), sort(optional), order(optional) |
alert |
| Tags vom Alert entfernen. | DELETE /v2/alerts/:identifier/tags | identifier(required), tags(required), identifier_type(optional), user(optional), source(optional), note(optional) |
alert |
| Alert schlummern lassen. | POST /v2/alerts/:identifier/snooze | identifier(required), body(required), identifier_type(optional) |
alert |
| Alert-Bestätigung zurücknehmen. | POST /v2/alerts/:identifier/unacknowledge | identifier(required), body(required), identifier_type(optional) |
alert |
| Alert-Beschreibung aktualisieren. | POST /v2/alerts/:identifier/description | identifier(required), body(required), identifier_type(optional) |
alert |
| Alert-Nachricht aktualisieren. | POST /v2/alerts/:identifier/message | identifier(required), body(required), identifier_type(optional) |
alert |
| Alert-Priorität aktualisieren. | PUT /v2/alerts/:identifier/priority | identifier(required), body(required), identifier_type(optional) |
Testbeispiel
# 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}
}
}'Live-verifiziert (2026-07-30): opsgenie_alert_list_alerts (derselbe Endpunkt, den MSPbots selbst aufruft) wurde Ende-zu-Ende über diesen laufenden Server mit einem echten Test-API-Schlüssel aufgerufen und lieferte echte Alert-Daten (Nachricht, Status, Priorität, Responder, Integration usw.) vom Konto zurück. Zwei weitere Tools aus anderen Kategorien (opsgenie_team_list_teams, opsgenie_account_get_account_info) wurden ebenfalls mit demselben Schlüssel aufgerufen und gaben korrekt Opsgenies eigenen 403 API Key is not granted with configuration access zurück – was bestätigt, dass die Request-/Auth-Header-Verkabelung auch außerhalb der Kategorie alert korrekt funktioniert; dieser spezifische Testschlüssel ist nur auf Alert-Ebene beschränkt (eine normale Opsgenie-Integrationsschlüssel-Einschränkung, kein Fehler).
API-Referenz
Übersicht: https://docs.opsgenie.com/docs/api-overview
Authentifizierung: https://docs.opsgenie.com/docs/authentication
Dokumentation pro Kategorie ist über die Seitenleiste unter https://docs.opsgenie.com/docs/alert-api verlinkt
Bekannte Lücken
Am 2026-08-04 von 213 auf 22 Tools reduziert. Der ursprüngliche Build deckte die vollständige öffentliche API über 28 Kategorien gemäß einer früheren Scope-Entscheidung ab. Eine spätere Scope-Entscheidung reduzierte dies auf die tatsächlich von MSPbots genutzte Kategorie (
alert) plus deren Kern-CRUD – siehe den Scope-Abschnitt oben für genau das, was innerhalb vonalertbehalten/entfernt wurde, sowie die vollständige Liste der 27 entfernten Kategorien (~178 Tools). Falls eine entfernte Kategorie später benötigt wird, können dieselbendocs.opsgenie.com/docs/*-api-Seiten auf dieselbe Weise neu geparst werden, wie die behaltenen Tools generiert wurden.Mehrere behaltene Tools verändern weiterhin echten Opsgenie-Alert-Zustand (
opsgenie_alert_delete_alert,opsgenie_alert_close_alert,opsgenie_alert_create_alertusw.) – behandeln Sie diese als irreversibel/zustandsändernd und bestätigen Sie vor dem Aufruf mit einem Menschen.body-Parameter sind untypisiert (dict) statt vollständig modelliert – die Docstrings jedes Tools listen die aus Opsgenies Dokumentation extrahierten Feldnamen auf, aber die vollständige Reproduktion als typisierte Python-Parameter war für einen mechanisch generierten Server außerhalb des Rahmens.Die Quelldaten wurden aus Prosa-Dokumentation extrahiert, nicht aus einer Maschinenspezifikation – Opsgenie hat keine herunterladbare OpenAPI/Postman-Sammlung, daher wurden Methode/Pfad/Parameter jeder Operation aus dem HTML von
docs.opsgenie.comgeparst.Nur
opsgenie_alert_list_alerts(MSPbots' eigener Endpunkt) wurde live mit zurückgegebenen echten Daten verifiziert. Die übrigen 21 Tools sind strukturell korrekt (Schema validiert, MCP-Protokolltools/listbestätigt, alle bestehencompile()), wurden aber nicht einzeln einem Smoke-Test unterzogen – mehrere sind Schreib-/destruktive Operationen, die echte Alerts erstellen, ändern oder schließen würden, daher wurden sie nicht gegen das Live-Testkonto ausgeführt.Der Anbieter nähert sich dem Ende des Supports (siehe das Warnbanner oben in dieser README) – Atlassian empfiehlt die Migration zu Jira Service Management oder Compass. Dieses MCP zielt auf die zum Zeitpunkt dieses Builds noch aktive öffentliche Opsgenie-API ab.
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