NewAgent Observability is live.
Back to directory
FireHydrant logo

FireHydrant MCP server: five read-only tools

FireHydrant exposes incident data through five tools. The context cost is higher than some nine-tool connectors, and a scope flag makes it read-only.

Connector
Official, local
Coverage
Incidents, alerts, retrospectives
Tools
5, with a read-only scope flag
Biggest risk for an agent
Unreleased since February 2026

Last verified 1 September 2026 · from FireHydrant's repository, npm and the server's own tools/list response

This page is one of 90 in a directory of monitoring and developer tools. Each page checks what an AI coding agent can get out of the tool through its MCP server, the connector that lets the agent query the tool directly.

Summary

The FireHydrant MCP server is official and carries five tools: listing incidents and alerts, creating an incident, and reading and updating retrospectives.

It does something only a handful of connectors in this guide do. A --scope flag takes read or write. The server enforces it. It is not a rule the agent is asked to follow.

It is the least maintained connector here, and it still works. Version 0.0.4 shipped on 24 February 2026 and nothing has moved since.

What is the FireHydrant MCP server?

It is FireHydrant's server for the Model Context Protocol. FireHydrant runs incident response, so what the agent gains is the incident record: what happened, who was alerted, and what the retrospective said.

The surface is narrow on purpose. Five tools cover listing incidents, listing alerts including Signals alerts, creating an incident, listing retrospectives for an incident, and updating a single retrospective field.

The server is generated from FireHydrant's API specification, which is why the tools map so directly onto endpoints and why the descriptions are short.

FireHydrant reaches part of the way into production observability through incident response, and reaches nothing in code review, release, agent observability or cost.

Part of the workWhat FireHydrant has hereCan an agent reach it
Code, tests & reviewNoneNo code-review product
CI & releaseNoneNo CI product, and no build or test pipeline
Production observabilityIncidents, alerts, retrospectivesPartial. Specific. FireHydrant holds the response to an outage and what was learned, not the telemetry that detected it
Agent observability & evalsNoneNo traces, evaluations or prompt versioning for your own agents
AI cost managementNoneNo token or model spend data

In practice, FireHydrant answers what happened during an incident and what the team concluded afterwards, and nothing about the system itself. An agent connected here can pull the incident record and the retrospective that followed. It cannot show you the failing query. Pair this connector with a telemetry connector.

What can an AI agent do with FireHydrant?

TaskToolsWorksWatch out for
Find recent incidentslist-incidentsYesOne list tool, so filtering is done through its parameters rather than a search tool
See what alertedlist-alertsYesIncludes Signals alerts, so the list mixes alert sources
Read what a retrospective concludedlist-retros-by-incidentYesRetrospectives exist only for incidents where one was started
Update a retrospective fieldupdate-retrospective-fieldYesA write. Blocked entirely when the server runs with read scope
Declare an incidentcreate-incidentYesA write that pages people. Blocked under read scope
Explain why the service failedNoNo telemetry. FireHydrant records the response, not the cause

5 tools registered, all on by default, gated by a read or write scope

Incidents2
list-incidentslist-alerts
Retrospectives1
list-retros-by-incident
Writes2
create-incidentupdate-retrospective-field

The write group is absent when the server runs with --scope read, which is a server-side gate rather than a client allowlist. Counted from the server's own tools/list response on 24 August 2026.

What connecting costs before the first question

A context window is the amount of text a model can hold at once, and connecting uses some of it before the agent asks anything. Every tool the server registers sends its name, description and input schema to the model when the session starts. The tool list is charged whether or not a single tool is called.

Five tools cost 5,858 tokens at the low end, more than OpenSearch's nine and more than Dynatrace's eighteen. Descriptions are short at 128 characters, so this is not verbosity.

The schemas carry it, at 3,241 characters per tool. A generated server describes its endpoints exactly, including every optional filter, and an agent receives all of that whether it filters or not.

Tool setToolsTokens (GPT-5.6, GPT-5.5)Tokens (GPT-4, GPT-3.5)Tokens (Claude Haiku 4.5 to Opus 5)Share of a 200,000-token window
Every tool, as registered55,858 to 8,1395,700 to 8,0787,781 to 9,6172.9% to 4.8%

Encodings: GPT-5.6, GPT-5.5 o200k_base; GPT-4, GPT-3.5 cl100k_base; Claude Haiku 4.5 to Opus 5 count_tokens. Counted 24 August 2026 from tools/list on the published firehydrant-mcp package. It was run locally with a placeholder key.

Registration is static, so no FireHydrant account was involved. Figures cover name, description and input schema.

The two models in column one share the o200k_base encoding, so they get one count. The spread is formatting, about 39%. Reasoning tokens are output, spent per request. The tool list is input, charged once at connection.

The Claude figures are measured rather than encoded. Anthropic publishes no local tokenizer. So the definitions were sent to the API's count_tokens endpoint, and a no-tools baseline was subtracted. The range covers two tokenizer generations rather than two serializations. Haiku 4.5 and Opus 4.6 sit at the low end. Opus 5 and Sonnet 5 sit at the high end. The gap between them is about a quarter.

FireHydrant MCP server limits: where answers come back incomplete

The server is generated from FireHydrant's API specification, and it has not been regenerated. Two of the three limits below follow from that.

The agent says: I opened an incident. That pages people.

create-incident is a real incident declaration, and incident declaration is what wakes an on-call engineer. update-retrospective-field similarly edits a record other people rely on.

Unlike most connectors here, the fix is a server flag rather than a client allowlist: --scope read blocks both at the server.

Guard: Run with --scope read for investigation. Start a separate server with write scope only when declaring or editing is the point.

The agent says: FireHydrant is connected. It is, and nothing has shipped since February.

Version 0.0.4 was published on 24 February 2026 and the repository has not moved since. The package still installs and answers, so nothing in the agent's behavior signals the gap.

A generated server that is not regenerated drifts from its API. New endpoints do not appear, and changed parameters are not reflected.

Guard: Pin the version, and check FireHydrant's API documentation rather than the tool list when something you expect is missing.

The agent says: This incident has no retrospective. One may never have been started.

list-retros-by-incident reads retrospectives that exist. An incident closed without one returns an empty list, which reads the same as an incident whose retrospective is still being written.

Guard: Treat an empty result as absent rather than as complete, and check the incident's state alongside it.

How to configure FireHydrant MCP for agents

  1. 1

    Run with --scope read unless writing is the point

    It is a genuine server-side gate, which most connectors in this guide do not offer.

  2. 2

    Pin the version

    The package has not moved since 0.0.4 in February 2026, so pinning costs nothing and protects against a surprise publish.

  3. 3

    Use --tool if five is still too many

    The flag mounts named tools only, which is a finer gate than scope.

  4. 4

    Keep the transport local

    --transport sse opens a port; stdio does not.

Paste this into your agent’s instructions

An empty retrospective list and an incident with no retrospective look identical, and the generated server may simply lack a newer endpoint. The block makes both visible.

Terminal
When you answer using FireHydrant MCP tools, state:
- The time range you searched, and how many incidents you
  retrieved against the limit you used.
- Whether a retrospective existed. An empty result means none
  was started, not that the incident had no cause.
- Whether the server is running with read or write scope.
Never state that data does not exist. State that none was
returned under the constraints above.
Write your answer in ASD-STE100 Simplified Technical
English. Use short sentences with one idea in each.

Do you need the MCP server at all?

Often not. FireHydrant's REST API is documented and this server is generated from it, so a coding agent calling the API directly reaches strictly more than five tools.

The connector's advantage is the scope flag. Getting the same guarantee from raw API calls means trusting the agent, or building your own gate.

Given the package has not moved since February 2026, the API is also the surface that will keep pace with the product.

Connect the server with read scope for incident investigation. Use the API where you need an endpoint the generated server never got.

FireHydrant MCP server setup

The package runs with npx and takes a FireHydrant API key on the command line. The start subcommand is required; running the package alone prints usage.

--scope accepts read or write and is repeatable, which is how the tool list is gated at the server.

Claude Code, read-only

Read scope removes the two write tools from the tool list entirely.

Terminal
claude mcp add-json "firehydrant" '{"command":"npx",
  "args":["-y","firehydrant-mcp","start",
          "--scope","read","--api-key","<your-key>"]}'

Cursor

In ~/.cursor/mcp.json for all projects, or .cursor/mcp.json in one.

Terminal
{"mcpServers":{"firehydrant":{"command":"npx",
  "args":["-y","firehydrant-mcp","start","--scope","read",
          "--api-key","<your-key>"]}}}

Codex CLI

Codex reads TOML, so the JSON blocks above will not transfer.

Terminal
[mcp_servers.firehydrant]
command = "npx"
args = ["-y", "firehydrant-mcp", "start", "--scope", "read", "--api-key", "<your-key>"]

Every other client

Each block below is the configuration for one client, with the file path and the key that client expects.

Claude Desktop

macOS ~/Library/Application Support/Claude/claude_desktop_config.json. Windows %APPDATA%\Claude\claude_desktop_config.json. There is no CLI. Edit through Settings, Developer, Edit Config.

Quit and restart fully for changes to load. Paths in args must be absolute. Logs at ~/Library/Logs/Claude/mcp.log.

Terminal
{"mcpServers":{"firehydrant":{"command":"npx",
  "args":["-y","firehydrant-mcp","start","--scope","read","--api-key","<your-key>"]}}}
Gemini CLI

~/.gemini/settings.json globally, or .gemini/settings.json per project. Key mcpServers. CLI: gemini mcp add.

Terminal
{"mcpServers":{"firehydrant":{"command":"npx",
  "args":["-y","firehydrant-mcp","start","--scope","read","--api-key","<your-key>"]}}}
VS Code Copilot

.vscode/mcp.json per workspace, or your user profile. CLI: code --add-mcp.

Terminal
{"servers":{"firehydrant":{"command":"npx",
  "args":["-y","firehydrant-mcp","start","--scope","read","--api-key","<your-key>"]}}}

The key is `servers`, not `mcpServers`. VS Code is the only client that uses that name, and copying a config from anywhere else fails silently.

Windsurf

~/.codeium/windsurf/mcp_config.json, which is the path Windsurf documents. Key mcpServers, the same JSON shape as Cursor, carrying the same API key in args.

Zed

~/.config/zed/settings.json, carrying the same API key in args as the blocks above.

The key is `context_servers`. Zed does not call them MCP servers in config, so searching its settings for mcp finds nothing.

Google Antigravity

~/.gemini/config/mcp_config.json globally, or .agents/mcp_config.json per project. Key mcpServers. There is no CLI. Use the /mcp overlay in the editor. Supports stdio, streamable HTTP, SSE and websocket.

Terminal
{"mcpServers":{"firehydrant":{"command":"npx",
  "args":["-y","firehydrant-mcp","start","--scope","read","--api-key","<your-key>"]}}}
Amp (Sourcegraph)

~/.config/amp/settings.json or .amp/settings.json, carrying the same API key in args. The amp mcp CLI covers approve, doctor and oauth.

The key is `amp.mcpServers`, namespaced. A bare mcpServers block is ignored.

Cline

~/.cline/mcp.json per the docs. The source also reads ~/.cline/data/settings/cline_mcp_settings.json. Key mcpServers, standard JSON shape, carrying the same API key in args. Supports stdio, streamable HTTP and SSE.

Goose (Block)

~/.config/goose/config.yaml, carrying the same API key in args.

YAML, and servers are called `extensions`. Goose does not use the MCP vocabulary in config at all. Add one interactively with goose configure, or per session with goose session --with-extension.

Kiro (AWS)

.kiro/settings/mcp.json per workspace, or ~/.kiro/settings/mcp.json globally. Key mcpServers, standard JSON shape, carrying the same API key in args.

Warp

~/.warp/.mcp.json or .warp/.mcp.json. Key mcpServers, standard shape, carrying the same API key in args. Also addable through the /agent-add-mcp skill.

JetBrains Junie

.junie/mcp/mcp.json per project, or ~/.junie/mcp/mcp.json. Key mcpServers, carrying the same API key in args. Use /mcp in the CLI to manage.

Roo Code

.roo/mcp.json per project. The global file is mcp_settings.json, opened from the Roo Code MCP settings view with Edit Global MCP. Key mcpServers, carrying the same API key in args.

Continue

.continue/mcpServers/*.yaml, one file per server, carrying the same API key in args.

YAML, and `mcpServers` is a list, not an object. Every JSON client keys servers by name. Continue takes an array, so a converted config will not parse.

Trae

.trae/mcp.json per project, or paste into the UI under Raw Config (JSON). Key mcpServers, standard shape, carrying the same API key in args.

Devin

Devin has no config file to edit. Servers are added through a web form in the settings UI, and Devin's documentation states you do not need to write or paste JSON. The block below is the shape those fields describe, shown for reference. Either route uses the same API key in args.

Named tools only

Mounts just the tools you list, which is tighter than a scope and needs the same key.

Terminal
npx -y firehydrant-mcp start --api-key <your-key> \
  --tool list-incidents --tool list-retros-by-incident

Read-only access, permissions and security

  • --scope read is a real server-side gate

    Write tools do not appear in the tool list at all, so an agent cannot call them however the client is configured.

  • Declaring an incident pages people

    create-incident is not a draft; it is the same action a human takes to start an incident response.

  • --tool narrows further

    Mounting only the tools you need is finer than scope, and useful where read access itself should be partial.

  • The package is frozen at 0.0.4

    A generated server that is not regenerated drifts from its API, so treat missing capability as a packaging gap rather than a product one.

Troubleshooting

The server prints usage and exits
The start subcommand is required. npx firehydrant-mcp start --api-key <key> is the working form.
The agent has no tool for creating an incident
The server is running with --scope read, which removes the write tools from the list. That is the intended behavior for investigation.
An incident has no retrospective
None was started. list-retros-by-incident returns what exists, and an empty result is not evidence that the incident was uncomplicated.
An endpoint you use is not available as a tool
The server is generated from FireHydrant's API specification and has not been regenerated since February 2026. Call the REST API directly for anything newer.

FireHydrant MCP server: Reference

ItemValue
Statusnpm 0.0.4, published 24 February 2026 · unchanged since
Adoption5 stars · MIT license
Packagefirehydrant-mcp on npm, invoked with the start subcommand
Transportstdio by default, with an SSE option on port 2718
Auth--api-key, a FireHydrant API key
Tools5, all on by default; 2 removed under read scope
Read-only--scope read, enforced by the server

What engineers report

FireHydrant's connector has a very small public footprint, so this section reports counts rather than quotes.

What was checkedWhat it shows
Stars5
Packagefirehydrant-mcp 0.0.4, published 24 February 2026
LicenseMIT
Tools5, all on by default
Read-only--scope read, enforced by the server
Average schema size3,241 characters per tool

Repository facts from the GitHub API and package facts from npm, both retrieved 24 August 2026. Tool counts and schema sizes come from the server's own tools/list response.

Should you connect an agent to FireHydrant?

Yes, though it is no longer actively maintained. Best for read-scope investigation, with the REST API kept in reserve for anything the five tools do not reach.

Strongest fit
FireHydrant teams who want an agent reading incident history and retrospectives during or after an outage.
Main advantage
A genuine server-side read-only scope, which most connectors in this guide do not offer.
Main weakness
Five tools is a narrow slice of FireHydrant, and the package has not been regenerated since February 2026.
Operational risk
Under write scope an agent can declare an incident, which pages people.

From Oodle

One platform for agent traces and infrastructure

Agent traces usually sit in a different product from the rest of your telemetry, so when a slow database makes an agent slow the symptom is in one tool and the cause is in another. Oodle keeps both in one query surface, from $10 per million spans.

See agent observability

Frequently asked questions

How many tools does the FireHydrant MCP server have?

Five: list-incidents, list-alerts, create-incident, list-retros-by-incident and update-retrospective-field. Counted from the server's own tools/list response, 24 August 2026.

Can I stop an agent declaring incidents?

Yes. Start the server with --scope read. That is a server-side gate, so it holds regardless of what the client allows.

Is it maintained?

Lightly. Version 0.0.4 was published on 24 February 2026 and the repository has not moved since. It still installs and works.

Why do five tools cost 5,858 tokens?

The schemas, at 3,241 characters per tool. It is generated from FireHydrant's API specification, so every optional parameter is described whether you use it or not.

Does it tell me why an incident happened?

No. FireHydrant records the response and the retrospective. Pair it with an observability connector for the cause.

Changelog

  • 24 February 2026. firehydrant-mcp 0.0.4 published to npm. Nothing has been published since, and it remains at 0.0.x.

Sources

Every number on this page traces to one of these

  1. Repository facts from the GitHub API · freshworks-oss/firehydrant-mcp, retrieved 24 August 2026
  2. Scope flag and invocation from the server's own command-line help
  3. Package version and publication date from npm, retrieved 24 August 2026
  4. Tool counts and schema sizes from the server's own tools/list response

FireHydrant’s own MCP documentation

Also incident response:

For the telemetry behind an incident: