Connectors · Service desk & support
Opsgenie MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Opsgenie and the rest of your systems. It gives your agent 205 Opsgenie actions (77 reads, 95 writes and 33 that wait for a confirmation) and holds the Opsgenie credential itself, so the agent never does. It paces Opsgenie's limits and records every call.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "opsgenie.account.get", intent: "check which Opsgenie account is connected"}# Get account info · read · 1 upstream call- 205actionsin one signed file
- 77readlook, never change
- 95writecreate and update
- 33wait for a yesdestructive, confirmed first
Set up
Connect Opsgenie in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect Opsgenie.
API key. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.
api_keyOpsgenie API key (Settings > API key management, or an API integration's key)api_baseWhere your Opsgenie lives: your api base
account { op: "connections.requirements", service: "opsgenie" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "opsgenie.account.get" }# get account info · read · 1 upstream callcheck { action: "opsgenie.users.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Opsgenie at a glance
- Sign-in
- API key. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
- You provide
api_key- Setup fields
api_base- Limits we pace to
- 100 calls a minute, per connection
- API covered
- Atlassian Opsgenie (on-call and alerting; end-of-life 2027-04-05) API v2
api.opsgenie.com - Built from
- Opsgenie's documentation, read 20 September 2026OpenAPI spec (GitHub)docs.opsgenie.comdocs.opsgenie.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 76 of 77 reads, for up to an hour; a write clears what it affects
- Ready-made plans
- 9 in the store
- Shared entities
- 5, so ask can line Opsgenie up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Opsgenie.
205 actions in 1 area. Every one carries its effect, so a key can allow the reads and hold the rest.
- 77readlook, never change
- 95writecreate and update
- 33destructivewait for a confirmation
Oncall
20577 read · 95 write · 33 destructive
List users · List incidents · List teams · List services
Top actions
The Opsgenie API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 127 of Opsgenie's 130 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
opsgenie.users.listList users | Users on the account with role, contacts and state; offset paged. | read | identity.user.list474 connectors |
opsgenie.incidents.listList incidents | Search and list incidents; offset paged, max 100 per page. | read | monitoring.incident.list19 connectors |
opsgenie.teams.listList teams | All teams on the account (the vendor does not page this list). | read | identity.group.list262 connectors |
opsgenie.services.listList services | Services on the account (or of the key's team); offset paged, max 100 per page. | read | monitoring.service.list12 connectors |
opsgenie.custom_user_roles.listList custom user roles | Custom user roles on the account. | read | identity.role.list184 connectors |
opsgenie.users.createCreate user | Create a user (invitation emailed unless disabled). | write | identity.user.create262 connectors |
opsgenie.user_teams.listList user teams | Teams a user belongs to. | read | identity.group.list262 connectors |
opsgenie.incidents.createCreate incident | Create an incident (asynchronous, answers a requestId). Incident API needs a Standard or Enterprise plan. | write | monitoring.incident.create13 connectors |
opsgenie.team_roles.listList team roles | Custom roles defined on a team. | read | identity.role.list184 connectors |
opsgenie.services.createCreate service | Create a service owned by a team. Service API needs a Standard or Enterprise plan. | write | monitoring.service.create11 connectors |
opsgenie.alerts.listList alerts | Search and list alerts with the Opsgenie alert query syntax; offset paged, max 100 per page, offset+limit under 20000. | read | monitoring.alert.list51 connectors |
opsgenie.users.deleteDelete user | Delete a user. | destructive | identity.user.delete253 connectors |
Try it
Prompts to paste into Claude.
Each one names the Opsgenie actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Which Opsgenie incidents are open, and how long has each been open?
calls
opsgenie.incidents.list - Planwrite
Onboard a new responder onto a team and its pager in Opsgenie.
calls
opsgenie.users.createopsgenie.team_members.addopsgenie.contacts.createopsgenie.contacts.enableopsgenie.user_teams.list+1 more - Planwrite
Resolve an incident and leave a closing record in Opsgenie. Ask me before anything is sent or changed.
calls
opsgenie.incidents.getopsgenie.incident_associated_alerts.listopsgenie.incident_timeline_entries.createopsgenie.incident_tags.addopsgenie.incidents.resolve - Writewrite
Create user in Opsgenie. Show me exactly what you will send before you save it.
calls
opsgenie.users.create
The plan store
Ready-made plans for Opsgenie.
9 plans in the store. Install one and your agent runs it by name; the reply says which connections are still missing. A schedule can run a plan on a timetable. There are no triggers or webhooks, by design.
Sweep heartbeats and raise an alert for the dead ones
Use it when Someone wants to know which heartbeat-monitored jobs have stopped reporting and be alerted about them.
Triage open alerts and acknowledge the noisy ones
Use it when A flood of open alerts needs a first pass of acknowledgement so paging stops while a human investigates.
Close stale acknowledged alerts after approval
Use it when The open alert list is full of acknowledged alerts nobody has closed and someone wants a supervised sweep.
A person decides
Close stale count stale acknowledged Opsgenie alerts matching query.
Declare an incident from an existing alert
Use it when An alert has turned out to be a real customer-affecting problem and needs to become a tracked incident.
A person decides
Declare an Opsgenie incident for alert alert id. Alert: alert.
Open a maintenance window and snooze alerts during it
Use it when Planned work is about to start and alerting for the affected systems should be suppressed for its duration.
A person decides
Open an Opsgenie maintenance window and suppress alerting until end time.
Escalate a P1 alert that nobody acknowledged
Use it when A high severity alert has been sitting unacknowledged and needs to be pushed up the escalation chain.
Onboard a new responder onto a team and its pager
Use it when A new engineer is joining an on-call team and needs an Opsgenie account wired up to be paged.
Cover an on-call gap with an approved schedule override
Use it when Someone on call is unavailable and another engineer must take their shift for a defined window.
A person decides
Put user on call for schedule schedule from start date to end date.
Resolve an incident and leave a closing record
Use it when An incident is believed fixed and needs resolving with a proper record and its alerts cleared.
A person decides
Resolve incident incident id (incident) and close its number of items associated alerts.
account { op: "plans.install", slug: "opsgenie-heartbeat-health-sweep" }
# then ask for it by name; a schedule can run it on a timetableGovernance for Opsgenie
Destructive actions wait for a yes.
33 Opsgenie actions are destructive. The first 10:
- Delete user
opsgenie.users.delete - Delete team
opsgenie.teams.delete - Delete service
opsgenie.services.delete - Delete incident
opsgenie.incidents.delete - Delete team role
opsgenie.team_roles.delete - Delete custom user role
opsgenie.custom_user_roles.delete - Delete heartbeat
opsgenie.heartbeats.delete - Execute custom alert action
opsgenie.alert_custom_actions.execute - Delete user contact
opsgenie.contacts.delete - Delete action channel
opsgenie.action_channels.delete
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Delete user?
intent: the user asked me to delete user
account { op: "keys.create", name: "opsgenie-agent", allowed_actions: ["opsgenie.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "opsgenie.users.delete", approver: "[email protected]" }, { match: "opsgenie.teams.delete", approver: "[email protected]" }, { match: "opsgenie.services.delete", approver: "[email protected]" } ]}Cost
What Opsgenie costs on actionlake.
Every Opsgenie action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Opsgenie refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 205 Opsgenie actions
- 205actions pageeach page of a long list is one call
- 76reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Opsgenie action.
205 actions by area: the id your agent calls, what it does, and its effect.
Oncall205
opsgenie.account.getGet account inforeadopsgenie.action_channels.createCreate action channelwriteopsgenie.action_channels.deleteDelete action channeldestructiveopsgenie.action_channels.getGet action channelreadopsgenie.action_channels.listList action channelsreadopsgenie.action_channels.updateUpdate action channelwriteopsgenie.action_executions.createExecute actionwriteopsgenie.action_executions.getGet action executionreadopsgenie.actions.createCreate actionwriteopsgenie.actions.deleteDelete actiondestructiveopsgenie.actions.getGet actionreadopsgenie.actions.listList actionsreadopsgenie.actions.updateUpdate actionwriteopsgenie.alert_attachments.deleteRemove alert attachmentdestructiveopsgenie.alert_attachments.getGet alert attachmentreadopsgenie.alert_attachments.listList alert attachmentsreadopsgenie.alert_custom_actions.executeExecute custom alert actiondestructiveopsgenie.alert_description.updateUpdate alert descriptionwriteopsgenie.alert_details.addAdd details to alertwriteopsgenie.alert_details.removeRemove details from alertdestructiveopsgenie.alert_logs.listList alert logsreadopsgenie.alert_message.updateUpdate alert messagewriteopsgenie.alert_notes.createAdd note to alertwriteopsgenie.alert_notes.listList alert notesreadopsgenie.alert_policies.listList alert policiesreadopsgenie.alert_priority.updateUpdate alert prioritywriteopsgenie.alert_recipients.listList alert recipientsreadopsgenie.alert_requests.getGet alert request statusreadopsgenie.alert_responders.addAdd responder to alertwriteopsgenie.alert_saved_searches.createCreate alert saved searchwriteopsgenie.alert_saved_searches.deleteDelete alert saved searchdestructiveopsgenie.alert_saved_searches.getGet alert saved searchreadopsgenie.alert_saved_searches.listList alert saved searchesreadopsgenie.alert_saved_searches.updateUpdate alert saved searchwriteopsgenie.alert_tags.addAdd tags to alertwriteopsgenie.alert_tags.removeRemove tags from alertdestructiveopsgenie.alert_teams.addAdd team to alertwriteopsgenie.alerts.acknowledgeAcknowledge alertwriteopsgenie.alerts.assignAssign alertwriteopsgenie.alerts.closeClose alertwriteopsgenie.alerts.countCount alertsreadopsgenie.alerts.createCreate alertwriteopsgenie.alerts.deleteDelete alertdestructiveopsgenie.alerts.escalateEscalate alert to nextwriteopsgenie.alerts.getGet alertreadopsgenie.alerts.listList alertsreadopsgenie.alerts.snoozeSnooze alertwriteopsgenie.alerts.unacknowledgeUnacknowledge alertwriteopsgenie.contacts.createCreate user contactwriteopsgenie.contacts.deleteDelete user contactdestructiveopsgenie.contacts.disableDisable user contactwriteopsgenie.contacts.enableEnable user contactwriteopsgenie.contacts.getGet user contactreadopsgenie.contacts.listList user contactsreadopsgenie.contacts.updateUpdate user contactwriteopsgenie.custom_user_roles.createCreate custom user rolewriteopsgenie.custom_user_roles.deleteDelete custom user roledestructiveopsgenie.custom_user_roles.getGet custom user rolereadopsgenie.custom_user_roles.listList custom user rolesreadopsgenie.custom_user_roles.updateUpdate custom user rolewriteopsgenie.escalations.createCreate escalationwriteopsgenie.escalations.deleteDelete escalationdestructiveopsgenie.escalations.getGet escalationreadopsgenie.escalations.listList escalationsreadopsgenie.escalations.updateUpdate escalationwriteopsgenie.forwarding_rules.createCreate forwarding rulewriteopsgenie.forwarding_rules.deleteDelete forwarding ruledestructiveopsgenie.forwarding_rules.getGet forwarding rulereadopsgenie.forwarding_rules.listList forwarding rulesreadopsgenie.forwarding_rules.updateUpdate forwarding rulewriteopsgenie.heartbeats.createCreate heartbeatwriteopsgenie.heartbeats.deleteDelete heartbeatdestructiveopsgenie.heartbeats.disableDisable heartbeatwriteopsgenie.heartbeats.enableEnable heartbeatwriteopsgenie.heartbeats.getGet heartbeatreadopsgenie.heartbeats.listList heartbeatsreadopsgenie.heartbeats.pingPing heartbeatwriteopsgenie.heartbeats.updateUpdate heartbeatwriteopsgenie.incident_associated_alerts.listList incident associated alert idsreadopsgenie.incident_description.updateUpdate incident descriptionwriteopsgenie.incident_details.addAdd details to incidentwriteopsgenie.incident_details.removeRemove details from incidentdestructiveopsgenie.incident_logs.listList incident logsreadopsgenie.incident_message.updateUpdate incident messagewriteopsgenie.incident_notes.createAdd note to incidentwriteopsgenie.incident_notes.listList incident notesreadopsgenie.incident_priority.updateUpdate incident prioritywriteopsgenie.incident_requests.getGet incident request statusreadopsgenie.incident_responder_alerts.listList incident responder alert idsreadopsgenie.incident_responders.addAdd responder to incidentwriteopsgenie.incident_tags.addAdd tags to incidentwriteopsgenie.incident_tags.removeRemove tags from incidentdestructiveopsgenie.incident_timeline_entries.createAdd incident timeline entrywriteopsgenie.incident_timeline_entries.deleteDelete incident timeline entrydestructiveopsgenie.incident_timeline_entries.getGet incident timeline entryreadopsgenie.incident_timeline_entries.hideHide incident timeline entrywriteopsgenie.incident_timeline_entries.listList incident timeline entriesreadopsgenie.incident_timeline_entries.unhideUnhide incident timeline entrywriteopsgenie.incident_timeline_entries.updateUpdate incident timeline entrywriteopsgenie.incidents.closeClose incidentwriteopsgenie.incidents.createCreate incidentwriteopsgenie.incidents.deleteDelete incidentdestructiveopsgenie.incidents.getGet incidentreadopsgenie.incidents.listList incidentsreadopsgenie.incidents.reopenReopen incidentwriteopsgenie.incidents.resolveResolve incidentwriteopsgenie.integration_actions.createCreate integration actionwriteopsgenie.integration_actions.listList integration actionsreadopsgenie.integration_actions.replaceReplace integration actionswriteopsgenie.integrations.authenticateAuthenticate integrationreadopsgenie.integrations.createCreate integrationwriteopsgenie.integrations.deleteDelete integrationdestructiveopsgenie.integrations.disableDisable integrationwriteopsgenie.integrations.enableEnable integrationwriteopsgenie.integrations.getGet integrationreadopsgenie.integrations.listList integrationsreadopsgenie.integrations.updateUpdate integrationwriteopsgenie.log_files.listList log filesreadopsgenie.maintenance.cancelCancel maintenancedestructiveopsgenie.maintenance.createCreate maintenancewriteopsgenie.maintenance.deleteDelete maintenancedestructiveopsgenie.maintenance.getGet maintenancereadopsgenie.maintenance.listList maintenancesreadopsgenie.maintenance.updateUpdate maintenancewriteopsgenie.notification_policies.listList notification policiesreadopsgenie.notification_rule_steps.createCreate notification rule stepwriteopsgenie.notification_rule_steps.deleteDelete notification rule stepdestructiveopsgenie.notification_rule_steps.disableDisable notification rule stepwriteopsgenie.notification_rule_steps.enableEnable notification rule stepwriteopsgenie.notification_rule_steps.getGet notification rule stepreadopsgenie.notification_rule_steps.listList notification rule stepsreadopsgenie.notification_rule_steps.updateUpdate notification rule stepwriteopsgenie.notification_rules.change_orderChange notification rule orderwriteopsgenie.notification_rules.createCreate notification rulewriteopsgenie.notification_rules.deleteDelete notification ruledestructiveopsgenie.notification_rules.disableDisable notification rulewriteopsgenie.notification_rules.enableEnable notification rulewriteopsgenie.notification_rules.getGet notification rulereadopsgenie.notification_rules.listList notification rulesreadopsgenie.notification_rules.updateUpdate notification rulewriteopsgenie.on_calls.getGet who is on callreadopsgenie.on_calls.listList who is on callreadopsgenie.on_calls.nextGet next on callreadopsgenie.policies.change_orderChange policy orderwriteopsgenie.policies.createCreate policywriteopsgenie.policies.deleteDelete policydestructiveopsgenie.policies.disableDisable policywriteopsgenie.policies.enableEnable policywriteopsgenie.policies.getGet policyreadopsgenie.policies.updateUpdate policywriteopsgenie.schedule_overrides.createCreate schedule overridewriteopsgenie.schedule_overrides.deleteDelete schedule overridedestructiveopsgenie.schedule_overrides.getGet schedule overridereadopsgenie.schedule_overrides.listList schedule overridesreadopsgenie.schedule_overrides.updateUpdate schedule overridewriteopsgenie.schedule_rotations.createCreate schedule rotationwriteopsgenie.schedule_rotations.deleteDelete schedule rotationdestructiveopsgenie.schedule_rotations.getGet schedule rotationreadopsgenie.schedule_rotations.listList schedule rotationsreadopsgenie.schedule_rotations.updateUpdate schedule rotationwriteopsgenie.schedule_timeline.getGet schedule timelinereadopsgenie.schedules.createCreate schedulewriteopsgenie.schedules.deleteDelete scheduledestructiveopsgenie.schedules.getGet schedulereadopsgenie.schedules.listList schedulesreadopsgenie.schedules.updateUpdate schedulewriteopsgenie.service_audience_templates.getGet service audience templatereadopsgenie.service_audience_templates.updateUpdate service audience templatewriteopsgenie.service_incident_rules.createCreate service incident rulewriteopsgenie.service_incident_rules.deleteDelete service incident ruledestructiveopsgenie.service_incident_rules.listList service incident rulesreadopsgenie.service_incident_rules.updateUpdate service incident rulewriteopsgenie.services.createCreate servicewriteopsgenie.services.deleteDelete servicedestructiveopsgenie.services.getGet servicereadopsgenie.services.listList servicesreadopsgenie.services.updateUpdate servicewriteopsgenie.team_logs.listList team logsreadopsgenie.team_members.addAdd team memberwriteopsgenie.team_members.deleteRemove team memberdestructiveopsgenie.team_roles.createCreate team rolewriteopsgenie.team_roles.deleteDelete team roledestructiveopsgenie.team_roles.getGet team rolereadopsgenie.team_roles.listList team rolesreadopsgenie.team_roles.updateUpdate team rolewriteopsgenie.team_routing_rules.change_orderChange team routing rule orderwriteopsgenie.team_routing_rules.createCreate team routing rulewriteopsgenie.team_routing_rules.deleteDelete team routing ruledestructiveopsgenie.team_routing_rules.getGet team routing rulereadopsgenie.team_routing_rules.listList team routing rulesreadopsgenie.team_routing_rules.updateUpdate team routing rulewriteopsgenie.teams.createCreate teamwriteopsgenie.teams.deleteDelete teamdestructiveopsgenie.teams.getGet teamreadopsgenie.teams.listList teamsreadopsgenie.teams.updateUpdate teamwriteopsgenie.user_escalations.listList user escalationsreadopsgenie.user_forwarding_rules.listList user forwarding rulesreadopsgenie.user_schedules.listList user schedulesreadopsgenie.user_teams.listList user teamsreadopsgenie.users.createCreate userwriteopsgenie.users.deleteDelete userdestructiveopsgenie.users.getGet userreadopsgenie.users.listList usersreadopsgenie.users.updateUpdate userwrite
Questions
The Opsgenie MCP server, answered.
Is there an Opsgenie MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 205 Opsgenie actions, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Opsgenie.
What do I need to connect Opsgenie?
Opsgenie API key (Settings > API key management, or an API integration's key). Plus your api base. The free call account { op: "connections.requirements", service: "opsgenie" } lists exactly what to paste.
Can an AI agent delete or change things in Opsgenie?
Only if its key allows it, and only with an explicit confirmation. 33 Opsgenie actions are destructive, including delete user, delete team and delete service. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my Opsgenie API limit?
actionlake paces every call to the limits in the Opsgenie service file: 100 calls a minute per connection. Repeated reads are answered from cache (76 Opsgenie actions can be), which never reaches Opsgenie.
What does an Opsgenie action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (205 Opsgenie actions page). Cache hits, searches, dry runs and calls Opsgenie refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which Opsgenie API does it cover?
The Atlassian Opsgenie (on-call and alerting; end-of-life 2027-04-05) API v2 at api.opsgenie.com by default, or the base URL set when you connect. It is built from Opsgenie's documentation as read on 20 September 2026. 205 actions in 1 area, each one in the signed service file (version 1.0.0).
Does actionlake keep my Opsgenie data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to an hour, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Opsgenie credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent Opsgenie today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.