alertmanager-mcp-server
The Prometheus Alertmanager MCP server enables programmatic querying and management of Alertmanager resources. With this server, you can:
Query Alertmanager status: Retrieve the current status of an Alertmanager instance and its cluster
Manage alerts: List alerts with filtering options, create new alerts, and retrieve alert groups
Handle silences: Retrieve, create, update, and delete silences by ID
Manage receivers: Get a list of all notification integration receivers
Integration with AI assistants: Interact with Alertmanager using natural language through supported AI tools like Claude Desktop
Supports containerized deployment of the MCP server through Docker, with configuration via environment variables for connecting to Alertmanager instances.
Enables querying and managing Prometheus Alertmanager resources including status, alerts, silences, receivers, and alert groups. Supports creating new alerts, managing silences (create, update, delete), and retrieving alert information through the Alertmanager API v2.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@alertmanager-mcp-servershow me all active alerts"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Table of Contents
Related MCP server: ilert
1. Introduction
Prometheus Alertmanager MCP is a Model Context Protocol (MCP) server for Prometheus Alertmanager. It enables AI assistants and tools to query and manage Alertmanager resources programmatically and securely.
2. Features
Query Alertmanager status, alerts, silences, receivers, and alert groups
Smart pagination support to prevent LLM context window overflow when handling large numbers of alerts
Create, update, and delete silences
Create new alerts
Authentication support (Basic auth via environment variables)
Multi-tenant support (via
X-Scope-OrgIdheader for Mimir/Cortex)Docker containerization support
3. Quickstart
3.1. Prerequisites
Python 3.12+
uv (for fast dependency management).
Docker (optional, for containerized deployment).
Ensure your Prometheus Alertmanager server is accessible from the environment where you'll run this MCP server.
3.2. Installing via Smithery
To install Prometheus Alertmanager MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @ntk148v/alertmanager-mcp-server --client claude3.3. Local Run
Clone the repository:
# Clone the repository
$ git clone https://github.com/ntk148v/alertmanager-mcp-server.gitConfigure the environment variables for your Prometheus server, either through a .env file or system environment variables:
# Set environment variables (see .env.sample)
ALERTMANAGER_URL=http://your-alertmanager:9093
ALERTMANAGER_USERNAME=your_username # optional
ALERTMANAGER_PASSWORD=your_password # optional
ALERTMANAGER_TENANT=your_tenant_id # optional, for multi-tenant setupsMulti-tenant Support
For multi-tenant Alertmanager deployments (e.g., Grafana Mimir, Cortex), you can specify the tenant ID in two ways:
Static configuration: Set
ALERTMANAGER_TENANTenvironment variablePer-request: Include
X-Scope-OrgIdheader in requests to the MCP server
The X-Scope-OrgId header takes precedence over the static configuration, allowing dynamic tenant switching per request.
Transport configuration
You can control how the MCP server communicates with clients using the transport options and host/port settings. These can be set either with command-line flags (which take precedence) or with environment variables.
MCP_TRANSPORT: Transport mode. One of
stdio,http, orsse. Default:stdio.MCP_HOST: Host/interface to bind when running
httporssetransports (used by the embedded uvicorn server). Default:0.0.0.0.MCP_PORT: Port to listen on when running
httporssetransports. Default:8000.
Examples:
Use environment variables to set defaults (CLI flags still override):
MCP_TRANSPORT=sse MCP_HOST=0.0.0.0 MCP_PORT=8080 python3 -m src.alertmanager_mcp_server.serverOr pass flags directly to override env vars:
python3 -m src.alertmanager_mcp_server.server --transport http --host 127.0.0.1 --port 9000Notes:
The
stdiotransport communicates over standard input/output and ignores host/port.The
http(streamable HTTP) andssetransports are served via an ASGI app (uvicorn) so host/port are respected when using those transports.Add the server configuration to your client configuration file. For example, for Claude Desktop:
{
"mcpServers": {
"alertmanager": {
"command": "uv",
"args": [
"--directory",
"<full path to alertmanager-mcp-server directory>",
"run",
"src/alertmanager_mcp_server/server.py"
],
"env": {
"ALERTMANAGER_URL": "http://your-alertmanager:9093s",
"ALERTMANAGER_USERNAME": "your_username",
"ALERTMANAGER_PASSWORD": "your_password"
}
}
}
}Or install it using make command:
$ make installRestart Claude Desktop to load new configuration.
You can now ask Claude to interact with Alertmanager using natual language:
"Show me current alerts"
"Filter alerts related to CPU issues"
"Get details for this alert"
"Create a silence for this alert for the next 2 hours"


3.4. Docker Run
Run it with pre-built image (or you can build it yourself):
$ docker run -e ALERTMANAGER_URL=http://your-alertmanager:9093 \
-e ALERTMANAGER_USERNAME=your_username \
-e ALERTMANAGER_PASSWORD=your_password \
-e ALERTMANAGER_TENANT=your_tenant_id \
-p 8000:8000 ghcr.io/ntk148v/alertmanager-mcp-serverRunning with Docker in Claude Desktop:
{
"mcpServers": {
"alertmanager": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"ALERTMANAGER_URL",
"-e",
"ALERTMANAGER_USERNAME",
"-e",
"ALERTMANAGER_PASSWORD",
"ghcr.io/ntk148v/alertmanager-mcp-server:latest"
],
"env": {
"ALERTMANAGER_URL": "http://your-alertmanager:9093s",
"ALERTMANAGER_USERNAME": "your_username",
"ALERTMANAGER_PASSWORD": "your_password"
}
}
}
}This configuration passes the environment variables from Claude Desktop to the Docker container by using the -e flag with just the variable name, and providing the actual values in the env object.
4. Tools
The MCP server exposes tools for querying and managing Alertmanager, following its API v2:
Get status:
get_status()List alerts:
get_alerts(filter, silenced, inhibited, active, count, offset)Pagination support: Returns paginated results to avoid overwhelming LLM context
count: Number of alerts per page (default: 10, max: 25)offset: Number of alerts to skip (default: 0)Returns:
{ "data": [...], "pagination": { "total": N, "offset": M, "count": K, "has_more": bool } }
List silences:
get_silences(filter, count, offset)Pagination support: Returns paginated results to avoid overwhelming LLM context
count: Number of silences per page (default: 10, max: 50)offset: Number of silences to skip (default: 0)Returns:
{ "data": [...], "pagination": { "total": N, "offset": M, "count": K, "has_more": bool } }
Create silence:
post_silence(silence_dict)Delete silence:
delete_silence(silence_id)List receivers:
get_receivers()List alert groups:
get_alert_groups(silenced, inhibited, active, count, offset)Pagination support: Returns paginated results to avoid overwhelming LLM context
count: Number of alert groups per page (default: 3, max: 5)offset: Number of alert groups to skip (default: 0)Returns:
{ "data": [...], "pagination": { "total": N, "offset": M, "count": K, "has_more": bool } }Note: Alert groups have lower limits because they contain all alerts within each group
Pagination Benefits
When working with environments that have many alerts, silences, or alert groups, the pagination feature helps:
Prevent context overflow: By default, only 10 items are returned per request
Efficient browsing: LLMs can iterate through results using
offsetandcountparametersSmart limits: Maximum of 50 items per page prevents excessive context usage
Clear navigation:
has_moreflag indicates when additional pages are available
Example: If you have 100 alerts, the LLM can fetch them in manageable chunks (e.g., 10 at a time) and only load what's needed for analysis.
See src/alertmanager_mcp_server/server.py for full API details.
5. Development
Contributions are welcome! Please open an issue or submit a pull request if you have any suggestions or improvements.
This project uses uv to manage dependencies. Install uv following the instructions for your platform.
# Clone the repository
$ git clone https://github.com/ntk148v/alertmanager-mcp-server.git
$ cd alertmanager-mcp-server
$ make setup
# Run test
$ make test
# Run in development mode
$ mcp dev src/alertmanager_mcp_server/server.py
# Install in Claude Desktop
$ make install6. License
Available Tools
9 toolsdelete_silenceB
Delete a silence by its ID
| Name | Required | Description | Default |
|---|---|---|---|
| silence_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates it is a destructive operation ('Delete'), but with no annotations, it fails to disclose additional behavioral details like reversibility, permissions, error handling (e.g., what happens if silence not found), or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundant words. It efficiently communicates the core action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation with one parameter, the description covers the basic functionality but lacks completeness by not mentioning success/failure behavior, error conditions, or integration with sibling tools (e.g., calling get_silence first to verify ID).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no description for the single parameter (0% coverage), and the description only says 'by its ID' without adding semantic context such as format, source, or constraints. The parameter name is self-explanatory but the description adds no extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Delete', the resource 'silence', and the identifier 'by its ID'. It is a specific verb+resource combination that distinguishes it from sibling tools like get_silence or post_silence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as when a silence should be removed or preconditions like ensuring the ID exists. The description only states what it does, not when it should be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_alert_groupsD
Get a list of alert groups
| Name | Required | Description | Default |
|---|---|---|---|
| silenced | No | ||
| inhibited | No | ||
| active | No | ||
| count | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it only states the basic function. It fails to disclose important behavioral traits like default parameter values, pagination (count/offset), or the significance of filtering fields (silenced, inhibited, active).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one sentence), but the conciseness comes at the expense of essential information. It is under-specified and not well-structured for effective tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no output schema, and no annotations, the description is grossly incomplete. It provides no information about return values, filtering logic, pagination, or how alert groups relate to other resources.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema coverage is 0%, meaning no parameter descriptions in the schema. The tool description itself mentions none of the five parameters, leaving the agent to guess the meaning of silenced, inhibited, active, count, and offset.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get a list of alert groups', which is a clear verb and resource, but lacks context on what constitutes an alert group and does not differentiate from sibling tools like get_alerts or get_silences.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as get_alerts or get_silences. The description does not mention any filtering or pagination behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_alertsC
Get a list of alerts
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| silenced | No | ||
| inhibited | No | ||
| active | No | ||
| count | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits like read-only nature, pagination, or rate limits. It only implies a read operation via 'get'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at one sentence but may be too minimal for the tool's complexity. It is not verbose, but lacks substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 6 parameters, no output schema, and no annotations, the description is severely incomplete. It does not explain alert behavior, filtering, pagination, or how to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% with no parameter descriptions. The description adds no meaning to parameters like 'filter', 'silenced', or 'count'. Parameter names are partially self-explanatory but insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get a list of alerts' which is a clear verb+resource but lacks any differentiation from sibling tools like get_alert_groups or get_receivers. It is not a tautology but is vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as get_alert_groups or get_silences. There is no context about prerequisites or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_receiversA
Get list of all receivers (name of notification integrations)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. However, the description only states the operation without mentioning side effects, read-only nature, or any resource constraints. It does not reveal whether this call is safe or has any impact on the system.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no extraneous words. It conveys the essential purpose efficiently. Every word earns its place, and the structure is front-loaded with the key action 'Get list of all receivers'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description is adequate for a simple list retrieval. However, it could be more complete by specifying the return format (e.g., array of strings) or including a note about the data source. As is, it is sufficient but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so baseline is 4 per guidelines. The description adds meaning by explaining that receivers are 'names of notification integrations', which clarifies what the returned list represents. This provides value beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets a list of all receivers, further specifying they are names of notification integrations. The verb 'Get' and resource 'list of all receivers' is specific and unambiguous. Compared to sibling tools like get_alerts or get_silences, this tool is uniquely about receivers, so differentiation is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not specify scenarios where receivers are needed, nor does it mention any prerequisites or exclusions. The usage context is only implied by the tool's name and purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_silenceC
Get a silence by its ID
| Name | Required | Description | Default |
|---|---|---|---|
| silence_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It only states the operation but does not disclose behavior on error (e.g., 404), authentication needs, rate limits, or side effects, which are important for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 6 words, highly concise and front-loaded. However, it may be too terse, missing opportunities to add value without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-ID operation, the minimal description is borderline adequate. However, without an output schema or behavioral details, an agent lacks information about return format or error handling, leaving gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the description adds no meaning beyond the schema. The parameter 'silence_id' is only mentioned implicitly via 'by its ID', but no format, validation, or source is explained. The schema itself provides only a title and type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Get a silence by its ID', clearly identifying the verb (Get) and resource (silence by ID). This distinguishes it from sibling tools like get_silences (list all) and delete_silence (delete), though it lacks additional context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description does not mention that it is for retrieving a single silence, while get_silences is for listing, nor does it provide prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_silencesC
Get list of all silences
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| count | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only says 'Get list' implying a read operation but fails to disclose any other behavioral traits (e.g., idempotent, rate limits). Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise but lacks structure. Could be expanded into a brief summary with parameter details without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 3 parameters, no output schema, and no annotations, the description is far from complete. It fails to address pagination, filtering, or expected return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 3 parameters with 0% description coverage. Description does not explain filter, count, or offset, leaving the agent without guidance on how to use them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Get list' and resource 'silences', distinguishing from sibling get_silence (single item) and other mutation tools. However, it could explicitly mention that it returns a list of all silences.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like get_silence or post_silence. No mention of pagination or filtering context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statusA
Get current status of an Alertmanager instance and its cluster
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states the action but does not explicitly confirm it is read-only, nor does it disclose any behavioral traits like side effects or rate limits. However, the simplicity of the operation keeps this from being severely lacking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that conveys the tool's purpose without any extraneous words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter tool with no output schema, the description adequately states the tool's purpose. Including what the return value contains (e.g., health info) would improve completeness, but the current level is sufficient for a basic status check.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the schema provides all necessary information. The description adds context that the status covers both the instance and its cluster, which is helpful beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('current status of an Alertmanager instance and its cluster'), clearly distinguishing it from sibling tools that deal with alerts, silences, and receivers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or context for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_alertsC
Create new alerts
| Name | Required | Description | Default |
|---|---|---|---|
| alerts | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. 'Create new alerts' does not disclose behavioral traits like idempotency, side effects, or requirements. It is insufficient for understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (3 words), but it is under-specified rather than concise. It fails to provide necessary details, making it less useful despite its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (flexible input schema, no output schema, no annotations), the description is inadequate. It does not explain return values, required fields, or constraints, leaving the agent without sufficient context to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning for the 'alerts' parameter. The parameter is an array of objects with additionalProperties: true, but the description does not clarify required fields, format, or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create new alerts' clearly states the action (create) and the resource (alerts). It distinguishes from sibling tools like get_alerts (read) and delete_silence (delete).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as when to create alerts versus using get_alerts for reading. No context about prerequisites or typical usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_silenceC
Post a new silence or update an existing one
| Name | Required | Description | Default |
|---|---|---|---|
| silence | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It states a write operation (create/update) but fails to explain side effects, idempotency, permission requirements, or how updates are identified (likely by ID). The description is minimal and lacks crucial behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence) but omits necessary details about the parameter, behavior, and usage context. While front-loaded, it fails to justify its brevity by providing essential information, making it insufficient rather than efficiently concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has a single complex nested parameter and no output schema or annotations, the description is woefully incomplete. It does not define the structure of the silence object, specify any field requirements, or describe the response, leaving the agent with significant ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has a single parameter 'silence' with no description and allows additional properties (0% schema description coverage). The description does not add any meaning or constraints to this parameter, leaving the agent without guidance on what fields or values are expected.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool can 'Post a new silence or update an existing one,' identifying its dual create/update nature. This distinguishes it from sibling tools like delete_silence (deletion) and get_silences (retrieval). However, the verb 'post' is somewhat ambiguous and could be more precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool over alternatives. The description does not mention prerequisites, context, or when not to use it (e.g., for reading silences). Usage is only implied by the action statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v1.0.0- Changed
get_alert_groups2 fields changed- added
Input schema / properties / countAdded value: +{ + "default": 3, + "title": "Count", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "title": "Offset", + "type": "integer" +}
- Changed
get_alerts2 fields changed- added
Input schema / properties / countAdded value: +{ + "default": 10, + "title": "Count", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "title": "Offset", + "type": "integer" +}
- Changed
get_silences2 fields changed- added
Input schema / properties / countAdded value: +{ + "default": 10, + "title": "Count", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "title": "Offset", + "type": "integer" +}
9 tool updates
- First observed
delete_silence - First observed
get_alert_groups - First observed
get_alerts - First observed
get_receivers - First observed
get_silence - First observed
get_silences - First observed
get_status - First observed
post_alerts - First observed
post_silence
TDQS
Each tool targets a distinct resource and action (e.g., get vs post, alerts vs silences vs status). There is no overlap; get_alert_groups and get_alerts are clearly differentiated.
All tool names follow a consistent verb_noun pattern with lowercase underscores: delete_, get_, post_. No mixing of styles or irregular verbs.
With 9 tools covering common Alertmanager operations (list, get, create, delete for alerts and silences, plus status and receivers), the count is well-scoped for the domain.
Covers core alert and silence lifecycle management, status, and receivers. A minor gap: no tool to update alert fields or manage alert rules, but these are outside Alertmanager's typical CRUD.
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
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
MCP server for AI dialogue using various LLM models via AceDataCloud
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Related MCP Servers
- AlicenseBqualityFmaintenanceA Model Context Protocol server that enables AI assistants to query Prometheus metrics, discover available data, and analyze system performance through natural language interactions.585MIT
- AlicenseNot gradedqualityDmaintenanceThe official Model Context Protocol (MCP) server for ilert.13MIT
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol server that enables AI agents to interact directly with Prometheus metrics data through natural language queries.MIT
- AlicenseAqualityDmaintenanceMCP server that enables AI assistants to query Grafana/Loki logs and Thanos/Prometheus metrics directly from MCP-compatible clients like Cursor or Claude Desktop.8MIT
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/ntk148v/alertmanager-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server