opsgenie-mcp
opsgenie-mcp
MCP-сервер для Opsgenie (платформа Atlassian для управления инцидентами/оповещениями и дежурствами) — предоставляет полный публичный REST API Opsgenie в виде инструментов MCP.
⚠️ Примечание вендора: Atlassian объявила, что Opsgenie достигнет конца поддержки и рекомендует перейти на Jira Service Management или Compass. Публичный API, описанный здесь (
docs.opsgenie.com), всё ещё работает и не менялся на момент этой сборки, но ожидается, что со временем он будет объявлен устаревшим.
Обзор
Статусный HTTP-сервис. Учётные данные никогда не сохраняются — каждый запрос предоставляет свой собственный API-ключ через заголовок, который используется только в течение жизни этого единственного запроса.
Поддерживает конкурентные запросы; изоляция учётных данных для каждого запроса выполняется через Python
contextvars, а не через глобальный/общий экземпляр клиента.Точки входа:
POST /mcp(протокол MCP) иGET /health(проверка работоспособности).Порт по умолчанию:
8080(настраивается черезMCP_HTTP_PORT).
Related MCP server: MCP Setup Server
Область применения
22 инструмента, сокращённых из исходной полной сборки API с 213 инструментами (2026-08-04), все в единственной категории alert. Собственная сохранённая конфигурация интеграции MSPbots для этого вендора вызывает ровно 1 конечную точку (GET /v2/alerts, только чтение, → opsgenie_alert_list_alerts). Согласно решению об области применения «фактическое использование + базовые CRUD-операции той же категории», все другие категории (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 категорий, ~178 инструментов) были полностью удалены, поскольку MSPbots их не использует; в самой категории alert 35 исходных инструментов были сокращены до 22 основных операций жизненного цикла оповещений (list/get/create/close/delete/acknowledge/unacknowledge/note/tags/assign/responder/team/escalate/snooze/update message-description-priority/count/logs/request-status) — были удалены подфункция сохранённых поисков (5 инструментов), подфункция вложений (4 инструмента), добавление/удаление пользовательских свойств (2 инструмента), execute_custom_action (1) и list_alert_recipients (1), ни одна из которых не является базовым CRUD для оповещений.
Исходные данные для сохранённых инструментов были первоначально извлечены путём получения docs.opsgenie.com/docs/alert-api и структурирования каждой документированной операции (метод, путь, параметры пути/запроса, поля JSON-тела) в машиночитаемый формат — тот же подход codegen-from-structured-spec, который используется для других крупных API-вендоров в этой программе (ConnectSecure, Dynu, Jira Data Center), адаптированный здесь, потому что у Opsgenie нет загружаемой спецификации OpenAPI/Postman, только прозаическая документация. Если позже понадобится удалённая категория, те же исходные страницы (docs.opsgenie.com/docs/*-api) можно повторно разобрать тем же способом.
Аутентификация
Opsgenie использует статический API-ключ, привязанный к конкретной интеграции Opsgenie (создаётся в Opsgenie: Settings → Integrations → API). Собственная конвенция интеграции MSPbots отправляет этот ключ как Authorization: GenieKey <apiKey>, что соответствует документированному формату Opsgenie, и этот сервер пересылает его именно так.
Параметры авторизации в заголовке
Заголовок | Тип | Обязательность | Значение по умолчанию | Допустимые значения | Описание поля | Пример |
| string | Да | нет | нет | API-ключ интеграции Opsgenie, передаётся как есть в заголовок |
|
| string | Нет |
| нет | Базовый URL API Opsgenie; для клиентов EU-инстанса необходимо передавать |
|
Отсутствие обязательного заголовка возвращает 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"]
}Переменные окружения
Переменная | Тип | Обязательность | Значение по умолчанию | Описание |
| int | Нет |
| Порт HTTP-прослушивания |
| string | Нет |
| Адрес HTTP-прослушивания |
| string | Нет |
| Базовый URL API Opsgenie по умолчанию (может быть переопределён заголовком |
Конечная точка MCP
POST /mcp— протокол MCP (транспорт streamable HTTP)GET /health— проверка работоспособности, возвращает{"status": "ok"}(чисто локальный зонд живости, не вызывает Opsgenie)
Список инструментов
Имена инструментов имеют вид opsgenie_<категория>_<операция>, образованные от заголовка каждой операции в официальной документации (например, «List Alerts» в категории alert → opsgenie_alert_list_alerts). Параметры body принимаются как универсальный dict — точный список полей для каждого инструмента описан в его собственной docstring (извлечённой из исходной документации), а полная схема полей доступна в справочнике API Opsgenie (ссылка ниже).
Категория | Инструмент | Описание | Метод + Путь | Параметры |
alert |
| Подтвердить оповещение. | POST /v2/alerts/:identifier/acknowledge | identifier(required), body(required), identifier_type(optional) |
alert |
| Добавить заметку к оповещению. | POST /v2/alerts/:identifier/notes | identifier(required), body(required), identifier_type(optional) |
alert |
| Добавить ответственного к оповещению. | POST /v2/alerts/:identifier/responders | identifier(required), body(required), identifier_type(optional) |
alert |
| Добавить теги к оповещению. | POST /v2/alerts/:identifier/tags | identifier(required), body(required), identifier_type(optional) |
alert |
| Добавить команду к оповещению. | POST /v2/alerts/:identifier/teams | identifier(required), body(required), identifier_type(optional) |
alert |
| Назначить оповещение. | POST /v2/alerts/:identifier/assign | identifier(required), body(required), identifier_type(optional) |
alert |
| Закрыть оповещение. | POST /v2/alerts/:identifier/close | identifier(required), body(required), identifier_type(optional) |
alert |
| Подсчитать оповещения. | GET /v2/alerts/count | query(optional), search_identifier(optional), search_identifier_type(optional) |
alert |
| Создать оповещение. | POST /v2/alerts | body(required) |
alert |
| Удалить оповещение. | DELETE /v2/alerts/:identifier | identifier(required), identifier_type(optional), user(optional), source(optional) |
alert |
| Эскалировать оповещение дальше. | POST /v2/alerts/:identifier/escalate | identifier(required), body(required), identifier_type(optional) |
alert |
| Получить оповещение. | GET /v2/alerts/:identifier | identifier(required), identifier_type(optional) |
alert |
| Получить статус запроса. | GET /v2/alerts/requests/:requestId | request_id(required) |
alert |
| Список журналов оповещений. | GET /v2/alerts/:identifier/logs | identifier(required), identifier_type(optional), offset(optional), direction(optional), limit(optional), order(optional) |
alert |
| Список заметок оповещений. | GET /v2/alerts/:identifier/notes | identifier(required), identifier_type(optional), offset(optional), direction(optional), limit(optional), order(optional) |
alert |
| Список оповещений. | GET /v2/alerts | query(optional), search_identifier(optional), search_identifier_type(optional), offset(optional), limit(optional), sort(optional), order(optional) |
alert |
| Удалить теги из оповещения. | DELETE /v2/alerts/:identifier/tags | identifier(required), tags(required), identifier_type(optional), user(optional), source(optional), note(optional) |
alert |
| Отложить оповещение. | POST /v2/alerts/:identifier/snooze | identifier(required), body(required), identifier_type(optional) |
alert |
| Снять подтверждение оповещения. | POST /v2/alerts/:identifier/unacknowledge | identifier(required), body(required), identifier_type(optional) |
alert |
| Обновить описание оповещения. | POST /v2/alerts/:identifier/description | identifier(required), body(required), identifier_type(optional) |
alert |
| Обновить сообщение оповещения. | POST /v2/alerts/:identifier/message | identifier(required), body(required), identifier_type(optional) |
alert |
| Обновить приоритет оповещения. | PUT /v2/alerts/:identifier/priority | identifier(required), body(required), identifier_type(optional) |
Примеры тестирования
# 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}
}
}'Проверено вживую (2026-07-30): opsgenie_alert_list_alerts (тот же endpoint, который вызывает сам MSPbots) был вызван сквозным образом через этот запущенный сервер с реальным тестовым API-ключом и вернул реальные данные оповещений (сообщение, статус, приоритет, ответственные, интеграция и т. д.) из аккаунта. Два других инструмента из разных категорий (opsgenie_team_list_teams, opsgenie_account_get_account_info) также были вызваны с тем же ключом и корректно вернули собственный 403 API Key is not granted with configuration access — что подтверждает, что механизм запросов/заголовков аутентификации работает корректно и за пределами категории alert; этот конкретный тестовый ключ просто ограничен доступом только на уровне оповещений (обычное ограничение ключа интеграции Opsgenie, а не ошибка).
Справочник API
Аутентификация: https://docs.opsgenie.com/docs/authentication
Документация по категориям доступна по ссылкам на боковой панели: https://docs.opsgenie.com/docs/alert-api
Известные пробелы
Сокращено с 213 до 22 инструментов 2026-08-04. Первоначальная сборка охватывала полный публичный API по 28 категориям согласно более раннему решению о границах. Более позднее решение сократило её до реально используемой категории MSPbots (
alert) плюс её базовых CRUD-операций — см. раздел Scope выше, чтобы узнать, что именно было сохранено/удалено в рамкахalert, и полный список 27 удалённых категорий (~178 инструментов). Если удалённая категория понадобится позже, те же страницыdocs.opsgenie.com/docs/*-apiможно повторно распарсить тем же способом, каким были сгенерированы сохранённые инструменты.Некоторые сохранённые инструменты по-прежнему изменяют реальное состояние оповещений Opsgenie (
opsgenie_alert_delete_alert,opsgenie_alert_close_alert,opsgenie_alert_create_alertи т. д.) — относитесь к ним как к необратимым/изменяющим состояние и подтверждайте с человеком перед вызовом.Параметры
bodyне типизированы (dict), а не полностью смоделированы — в docstring каждого инструмента перечислены имена полей, извлечённые из документации Opsgenie, но воспроизведение всех их в виде типизированных параметров Python выходило за рамки механически сгенерированного сервера.Исходные данные были извлечены из текстовой документации, а не из машинной спецификации — у Opsgenie нет загружаемой коллекции OpenAPI/Postman, поэтому метод/путь/параметры каждой операции были распарсены из HTML
docs.opsgenie.com.Только
opsgenie_alert_list_alerts(собственный endpoint MSPbots) был проверен вживую с возвратом реальных данных. Остальные 21 инструмент структурно корректны (схема проверена, MCP-протоколtools/listподтверждён, все проходятcompile()), но не были индивидуально смоук-тестированы — некоторые из них являются операциями записи/разрушения, которые создали бы, изменили или закрыли реальные оповещения, поэтому они не выполнялись против живого тестового аккаунта.Вендор приближается к завершению поддержки (см. предупреждающий баннер в верхней части этого README) — Atlassian рекомендует перейти на Jira Service Management или Compass. Этот MCP нацелен на всё ещё работающий публичный API Opsgenie по состоянию на эту сборку.
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