Skip to main content

mcp-allquiet

CI License

An MCP server for All Quiet, the incident management and on-call platform. It lets Claude, Cursor or any MCP client triage incidents, check who is on call and reach every operation of the All Quiet public API.

Built on the official MCP Python SDK v2 (mcp 2.x). Not affiliated with All Quiet.

Why

All Quiet has a complete public API (136 operations) but no official MCP server. Exposing one tool per operation would put 136 tool schemas into the model's context before the first question. This server ships 10 tools:

  • 5 incident tools for the on-call loop, returning compact summaries.
  • 5 generic tools driven by the bundled OpenAPI spec, which reach every other operation (teams, schedules, overrides, integrations, routing, status pages, maintenance windows...).

Install

Requires uv and an All Quiet API key (the API needs a Pro or Enterprise plan).

Claude Code:

claude mcp add allquiet -e ALLQUIET_API_KEY=your-key -- uvx mcp-allquiet

Claude Desktop, Cursor and other clients (mcpServers JSON):

{
  "mcpServers": {
    "allquiet": {
      "command": "uvx",
      "args": ["mcp-allquiet"],
      "env": { "ALLQUIET_API_KEY": "your-key" }
    }
  }
}

Configuration

Variable Required Default
ALLQUIET_API_KEY yes Organization API key or personal access token
ALLQUIET_BASE_URL no https://allquiet.app Use https://allquiet.eu for the EU region. Must be https://

The API key decides what the model can do

All Quiet keys carry per-resource scopes (incidents:list, teams:update...), can be limited to teams, and can expire. The server has no read-only switch on purpose: create a key with only list/get scopes and every write fails at the API. A personal access token can never do more than its user can in the UI.

A personal access token only reaches teams its user belongs to. A team created through the API stays out of reach (403) until a POST /team-membership adds the user as Administrator. Organization API keys skip team role checks.

Keys spanning several organizations need the organizationId query parameter on many operations. The API says so in its error, and the model can pass it through the generic tools.

Tools

Tool What it does Kind
list_incidents Filter by status, severity, team, user, text, unattended, date. Compact summaries, paged read
get_incident Full incident as markdown: timeline, attributes, assignees read
create_incident Open an incident write
update_incident Record an action (resolve, acknowledge, comment...) and/or change severity write
who_is_on_call Current (or past) on-call per team, with escalation tier read
list_operations Search the 136 API operations, with the key scope each needs read
describe_operation Parameters and request body schema of one operation read
call_read GET any operation read
call_write POST / PUT / PATCH any operation (JSON bodies) write
call_delete DELETE any operation destructive

Tools carry MCP annotations (readOnlyHint, destructiveHint), so clients can ask before writes and deletes.

Security

  • The key is read from the environment and only sent to the configured https:// host. It never appears in tool output or error messages (tested).
  • Generic tools accept only path templates that exist in the bundled spec. Path parameters are percent-encoded as a single segment, so a value cannot rewrite the path.
  • Responses are truncated at 40k characters and error bodies at 2k.
  • Incident content is untrusted input. Titles, messages and attributes often come from alert payloads written by third parties. Treat what the model reads there as data, and keep write scopes off keys you use with untrusted incident sources.

Report vulnerabilities through SECURITY.md.

Limitations

  • stdio transport only.
  • POST /inbound-integration/{id}/call-routing-media/{purpose} needs multipart/form-data and is not supported.
  • No retries. A 429 returns the Retry-After value to the model.

Development

uv sync
uv run pytest
uv run ruff check && uv run ruff format --check && uv run ty check

Try it with the MCP Inspector:

ALLQUIET_API_KEY=your-key npx @modelcontextprotocol/inspector uv run mcp-allquiet

Refresh the bundled OpenAPI spec:

curl -s https://allquiet.app/api/swagger/public-v1/swagger.json \
  | python -c "import json,sys; json.dump(json.load(sys.stdin), sys.stdout, separators=(',',':'))" \
  > src/mcp_allquiet/openapi.json

See CONTRIBUTING.md.

License

MIT

Release files for mcp-allquiet 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-allquiet 0.1.0
File Size Uploaded
mcp_allquiet-0.1.0.tar.gz 34.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-allquiet 0.1.0
File Interpreter ABI Platform
mcp_allquiet-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 70.1 kB

Release files / mcp_allquiet-0.1.0.tar.gz

Download URL mcp_allquiet-0.1.0.tar.gz
Size 34.5 kB
Tags Source
SHA-256 checksum
How to use checksums
d842435407be88708bf41d73c66ca1c3db9b22e017fbb19c4197b7468ddd4047
BLAKE2b-256 checksum
How to use checksums
4e6f6d342eacfb971a09510cf29520d8555f52b750eaf57979b63cfdbaee964e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / mcp_allquiet-0.1.0-py3-none-any.whl

Download URL mcp_allquiet-0.1.0-py3-none-any.whl
Size 35.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
02fef969e171b0db45639cecbc1288f037bb88c10e79a94ff4fcea94e192a7b3
BLAKE2b-256 checksum
How to use checksums
a3c52ea42e06a9b80b10d9445ebe07f12dafab20a3a38ce5c6aeca505b2a0a1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page