opsgenie-mcp
opsgenie-mcp
Opsgenie(Atlassian의 인시던트/알림 관리 및 온콜 플랫폼)용 MCP 서버 — 공개 Opsgenie REST API 전체를 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개 도구는 원래 213개 도구 전체 API 빌드(2026-08-04)에서 축소되었으며, 모두 단일 alert 카테고리에 있습니다. 이 공급업체에 대한 MSPbots 자체 저장 통합 구성은 정확히 1개의 엔드포인트(GET /v2/alerts, 읽기 전용, → opsgenie_alert_list_alerts)를 호출합니다. "실제 사용 + 동일 카테고리 핵심 CRUD" 범위 결정에 따라 다른 모든 카테고리(Incident, Incident Timeline, Integration, Heartbeat, Alert & Notification Policy, Policy(레거시 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개 핵심 알림 수명 주기 작업(목록/가져오기/생성/닫기/삭제/확인/확인 취소/메모/태그/할당/응답자/팀/에스컬레이션/스누즈/메시지-설명-우선순위 업데이트/개수/로그/요청 상태)으로 축소되었습니다. 저장된 검색 하위 기능(5개 도구), 첨부 파일 하위 기능(4개 도구), 사용자 지정 속성 추가/제거(2개 도구), execute_custom_action(1개), list_alert_recipients(1개)는 핵심 알림 CRUD가 아니므로 삭제되었습니다.
유지된 도구의 소스 데이터는 원래 docs.opsgenie.com/docs/alert-api를 가져와 각 문서화된 작업(메서드, 경로, 경로/쿼리 매개변수, JSON 본문 필드)을 기계 판독 가능한 형식으로 구조화하여 추출되었습니다. 이는 이 프로그램의 다른 대규모 API 공급업체(ConnectSecure, Dynu, Jira Data Center)에 사용된 것과 동일한 구조화된 사양에서 코드 생성 접근 방식이며, Opsgenie에는 다운로드 가능한 OpenAPI/Postman 사양이 없고 문서 형식의 설명만 있기 때문에 여기에 적용되었습니다. 나중에 제거된 카테고리가 필요하면 동일한 소스 페이지(docs.opsgenie.com/docs/*-api)를 같은 방식으로 다시 파싱할 수 있습니다.
인증
Opsgenie는 특정 Opsgenie 통합에 연결된 정적 API 키를 사용합니다(Opsgenie의 설정 → 통합 → API에서 생성). MSPbots 자체 통합 규칙은 이 키를 Authorization: GenieKey <apiKey>로 보내며, 이는 Opsgenie의 문서화된 형식과 일치하며 이 서버는 정확히 그 방식으로 전달합니다.
HEADER 인증 매개변수 설명
Header | 유형 | 필수 여부 | 기본값 | 열거 값 | 필드 설명 | Example |
| string | 예 | 없음 | 없음 | Opsgenie 통합 API 키, 업스트림 |
|
| string | 아니요 |
| 없음 | Opsgenie API 기본 URL, 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 | 아니요 |
| 기본 Opsgenie API 기본 URL( |
MCP 엔드포인트
POST /mcp— MCP 프로토콜(스트리밍 가능한 HTTP 전송)GET /health— 헬스 체크,{"status": "ok"}반환(순수 로컬 활성 프로브, Opsgenie 호출 안 함)
도구 목록
도구 이름은 opsgenie_<category>_<operation> 형식이며, 공식 문서의 각 작업 제목에서 파생됩니다(예: alert 카테고리의 "List Alerts" → opsgenie_alert_list_alerts). body 매개변수는 일반 dict로 허용됩니다. 각 도구의 정확한 필드 목록은 해당 도구의 docstring(소스 문서에서 추출)에 문서화되어 있으며, 전체 필드 스키마는 Opsgenie 자체 API 참조(아래 링크)에서 확인할 수 있습니다.
카테고리 | 도구 | 설명 | 메서드 + 경로 | 매개변수 |
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(MSPbots 자체가 호출하는 동일한 엔드포인트)가 이 실행 중인 서버를 통해 실제 테스트 API 키로 엔드투엔드 호출되었으며, 계정에서 실제 알림 데이터(메시지, 상태, 우선순위, 응답자, 통합 등)를 반환했습니다. 다른 카테고리의 두 도구(opsgenie_team_list_teams, opsgenie_account_get_account_info)도 동일한 키로 호출되었으며 Opsgenie 자체의 403 API Key is not granted with configuration access를 올바르게 반환했습니다. 이는 요청/인증 헤더 파이프라인이 alert 카테고리 외부에서도 올바르게 작동함을 확인합니다. 이 특정 테스트 키는 단지 알림 수준 액세스로만 범위가 제한되어 있습니다(일반적인 Opsgenie 통합 키 제한이며 버그가 아닙니다).
API 참조
카테고리별 문서는 https://docs.opsgenie.com/docs/alert-api의 사이드바에서 연결됩니다.
알려진 한계
2026-08-04에 213개 도구에서 22개 도구로 축소됨. 원래 빌드는 이전 범위 결정에 따라 28개 카테고리에 걸친 전체 공개 API를 다루었습니다. 이후 범위 결정으로 MSPbots가 실제로 사용하는 카테고리(
alert)와 핵심 CRUD만 남도록 축소되었습니다.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 컬렉션이 없으므로 모든 작업의 메서드/경로/매개변수는
docs.opsgenie.com의 HTML에서 파싱되었습니다.실제 데이터가 반환된 상태로 실시간 검증된 것은
opsgenie_alert_list_alerts(MSPbots 자체 엔드포인트)뿐입니다. 나머지 21개 도구는 구조적으로 올바르지만(스키마 검증됨, MCP 프로토콜tools/list확인됨, 모두compile()통과) 개별적으로 스모크 테스트되지는 않았습니다. 그중 여러 도구는 실제 알림을 생성, 수정 또는 닫는 쓰기/파괴적 작업이므로 라이브 테스트 계정에 대해 실행되지 않았습니다.공급업체가 지원 종료에 도달하고 있습니다(이 README 상단의 경고 배너 참조). Atlassian은 Jira Service Management 또는 Compass로 마이그레이션할 것을 권장합니다. 이 MCP는 이 빌드 시점의 아직 운영 중인 Opsgenie 공개 API를 대상으로 합니다.
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