Skip to main content
Flashduty MCP Server is a Model Context Protocol (MCP) server that connects the Flashduty API seamlessly into MCP-capable AI tools (such as Cursor and Claude Desktop). With it, you can let an LLM query, acknowledge, and close incidents, retrieve channels and members, and validate notification templates directly — embedding incident management and automation into your AI workflow.
Flashduty MCP Server is built on the go-flashduty SDK; every tool is a thin wrapper over the Flashduty Open API.

Use cases


Automate incident workflows

Hand incident creation, acknowledgment, and closure in Flashduty over to AI orchestration, wired into your operations workflow.

Data extraction & analysis

Let an LLM retrieve incidents, alerts, and change records by time range, status, severity, and other criteria, and summarize them.

Build AI ops tools

Call Flashduty capabilities from your own AI apps to build intelligent on-call, incident retrospectives, and more.

Template validation & debugging

Validate rendering and query available variables and functions in real time while editing notification templates.

Deployment


Flashduty MCP Server offers three deployment modes; choose based on your MCP client’s capabilities and your runtime environment.

Authentication and transport


The server does not support the legacy standalone SSE transport (a separate GET /sse endpoint) and returns 405 Method Not Allowed for GET requests. Streamable HTTP already streams responses over POST per the MCP spec — use it directly; if your client only supports legacy SSE, upgrade the client or switch to stdio locally.

Configuration


Flashduty MCP Server supports toolset trimming, read-only mode, output format, and other settings to suit different scenarios. Local deployments are configured via environment variables or command-line flags; the remote service is configured dynamically by appending query parameters to the URL.

Environment variables

FieldDefaultDescription
FLASHDUTY_APP_KEY-Flashduty APP Key (required).
FLASHDUTY_TOOLSETSall toolsetsComma-separated list of enabled toolsets (e.g. incidents,users,channels); use all to enable everything.
FLASHDUTY_READ_ONLYfalseEnable read-only mode (1 or true), keeping only query tools and forbidding any write operations.
FLASHDUTY_OUTPUT_FORMATjsonTool result output format, either json or toon.
FLASHDUTY_BASE_URLhttps://api.flashcat.cloudBase URL of the Flashduty API.
Enable only the toolsets you need — it helps the LLM choose tools more accurately and reduces context size. Read-only mode improves safety in read-only scenarios such as data analysis and on-call inspection.
Docker example:

Command-line flags

When building from source and running the binary directly, you can use the following flags (which take precedence over the env vars of the same name):
  • --app-key: Flashduty APP Key (equivalent to FLASHDUTY_APP_KEY).
  • --toolsets: comma-separated list of enabled toolsets.
  • --read-only: enable read-only mode.
  • --output-format: tool result output format (json or toon).
  • --base-url: base URL of the Flashduty API.

Remote service configuration

When using the official remote instance, append query parameters to the URL to configure toolsets and read-only mode dynamically:

Output format (TOON)

The server supports outputting tool results in TOON (Token-Oriented Object Notation) format. For arrays of objects with uniform fields (such as member lists or incident lists), TOON can cut token usage by 30%–50% compared with JSON, and modern LLMs can parse it directly. Set FLASHDUTY_OUTPUT_FORMAT=toon (or --output-format toon) to enable it.

Toolsets and tools


The server provides 8 toolsets and 23 tools in total, all enabled by default. The table below summarizes each toolset:
Toolset names (incidents, status_page, etc.) are internal program identifiers; keep them in English when configuring.
The tools in each toolset are as follows:
query_incidents parameter referencesince / until time-window behavior
  • Both omitted: defaults to the last 30 days (convenient for querying current/open incidents).
  • Only since provided: queries from that time through the current moment.
  • Only until provided: not allowed — returns an error (since is required when until is set; omit both to use the 30-day default).
  • Both provided: queries the specified range; the backend hard-caps the span at ~30 days.
Accepted time formats for since and until:
  • Relative duration: 30d, 24h, 168h (meaning “this far before now”)
  • RFC3339 with timezone: 2026-04-01T10:00:00+08:00 or 2026-04-01T10:00:00Z (SDK-emitted timestamps can be passed back directly as filter bounds)
  • Date: 2026-04-01 (parsed as local midnight)
  • Datetime: 2026-04-01 10:00:00 or 2026-04-01T10:00:00 (local time)
  • Unix timestamp: 1712000000

go-flashduty SDK

The Go SDK that MCP Server depends on, covering the entire Flashduty Open API.

GitHub repository

Browse the source, releases, and issue tracker.