
List alerts, optionally filtered by status, source, service, environment, team or label. Use get_alert for a single alert by ID.
Create a new alert. The summary is the alert's headline. Use listservices, listenvironments and list_teams for association IDs.
Get details about a specific alert by ID.
Update an alert's summary, description, noise flag, labels or associations. Status cannot be changed here.
Permanently delete an alert by ID.
List the severity levels configured in this workspace. Call this before createincident or updateincident to get a valid severityid, and before listincidents to get a valid severity filter value.
List the incident types configured in this workspace. Call this before createincident or updateincident to get valid incidenttypeids, and before list_incidents to get valid type filter values.
Get a list of environments with optional filtering by name.
Create a new environment.
Get details about a specific environment by ID.
Update an environment's name, description, or notification settings.
Permanently delete an environment.
Get a list of functionalities with optional filtering by name or services.
Create a new functionality.
Get details about a specific functionality by ID.
Update a functionality's name, description, notifications, or services.
Permanently delete a functionality.
Get a list of incidents with optional filtering by status, severity, services, or environments.
Create a new incident. Call listseverities for a valid severityid and listincidenttypes for incidenttypeids before calling this; both are workspace-specific and cannot be guessed. Use listservices, listenvironments, listfunctionalities and listteams for the association IDs.
Get details about a specific incident by ID.
Update an incident's title, status, severity, or associations. Use listseverities for severityid and listincidenttypes for incidenttypeids.
Permanently delete an incident.
Mark an incident as resolved with optional resolution summary and root cause.
Mark an incident as mitigated with optional mitigation summary.
Get all follow-up action items for an incident.
Create a follow-up action item for an incident.
Get a list of services with optional filtering by name.
Create a new service.
Get details about a specific service by ID.
Update a service's name, description, or notification settings.
Permanently delete a service.
Get a list of teams with optional filtering by name.
Create a new team.
Get details about a specific team by ID.
Update a team's name, description, or notification settings.
Permanently delete a team.
Get a list of users with optional filtering by email or role.
Get details about a specific user by ID.
Update a user's first name, last name, role, or on-call role.
Get information about the currently authenticated user.
Validate Rootly API credentials by checking access to the current user endpoint.
Get a list of workflows with optional filtering by name or enabled status.
Create a new workflow.
Get details about a specific workflow by ID.
Update any attribute of a workflow: name, description, enabled, triggerparams, priority, workflowgroupid, or the environment, service, functionality, team, severity and incident type IDs it is scoped to. Only the fields you pass are changed. Use listservices, listenvironments, listfunctionalities, listteams, listseverities and listincidenttypes for those IDs.
Permanently delete a workflow.

In an mcp.json file, add the configuration below, and restart Cursor.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5 "headers": {
6 "Authorization": "Bearer yMt*****"
7 }
8 }
9 }
10}
11Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.
Make sure Claude is using the Node v20+.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "yMt*****"
14 }
15 }
16 }
17}Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "<ah-production-access-key>"
14 }
15 }
16 }
17 }In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".
You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.
Learn more in the official documentation ↗
1{
2 "inputs": [
3 {
4 "type": "promptString",
5 "id": "agent-handler-auth",
6 "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7 "password": true
8 }
9 ],
10 "servers": {
11 "agent-handler": {
12 "type": "stdio",
13 "command": "npx",
14 "args": [
15 "-y",
16 "mcp-remote@latest",
17 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18 "--header",
19 "Authorization: Bearer ${input:agent-handler-auth}"
20 ]
21 }
22 }
23}It's an MCP server that lets your agents interface with Rootly's incident response platform via tools. Your agents can invoke these tools to open and resolve incidents, create action items, trigger workflows, manage alerts, and more.
Rootly offers an official MCP server, but you can also use one from a third-party platform, like Merge Agent Handler.
The use cases naturally depend on the agent you've built, but here are a few common ones:
Here are some of the most commonly used tools:
create_incident: opens a new Rootly incident with specified title, severity, and affected services. Useful for agents that need to kick off incident response automatically when an external alert or threshold is triggeredlist_incidents: retrieves active and historical incidents with filters for status, severity, or service. Call this when an agent needs to assess current incident load or pull data for a weekly reliability reportresolve_incident: marks an open incident as resolved with a resolution summary. Good for workflows where an agent confirms a successful deployment and closes the corresponding incident without manual interventionmitigate_incident: transitions an incident to a mitigated state before full resolution. Use this when an agent needs to signal that the immediate impact has been contained while investigation continuescreate_incident_action_item: adds a follow-up action item to an incident with an owner and due date. Helpful when an agent is running a post-incident workflow and needs to ensure remediation steps are formally trackedlist_workflows: fetches the available Rootly workflows with their trigger conditions. Call this when an agent needs to determine which workflow to invoke based on an incident's characteristics before taking automated actionMerge Agent Handler's Rootly MCP server has a few clear advantages over building your own integration or using an alternative:
You can take the following steps:
1. Create or log into your Merge Agent Handler account.
2. Install the Merge CLI by running pipx install merge-api, then run merge configure to link the CLI to your Merge account and merge login to authenticate your session.
3. Register the Agent Handler MCP server with Claude Code by running claude mcp add --transport http agent-handler https://ah-api.merge.dev/mcp, then open Claude Code and run /mcp to confirm agent-handler appears with a connected status.
4. Select agent-handler from the MCP list. This opens a browser window where you select which integrations to authenticate. Choose Rootly and complete the auth flow. Merge stores and manages the credentials going forward.
5. Open a Claude Code session and start querying Rootly data directly. The first time you use a Rootly tool, a Magic Link may appear to complete connector authentication.
If you want to connect Merge Agent Handler's Rootly MCP with internal or customer-facing agentic products, you can follow the steps in our docs.
Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now