Skip to main content

ntfy Blade MCP

Token-efficient MCP server for ntfy push notifications. Publish alerts, poll topics, manage tokens and reservations.

Requirements

  • Python 3.12+
  • A ntfy server (self-hosted or ntfy.sh)
  • Optional: bearer token for authenticated access

Quick Start

# Install
uv sync

# Configure
export NTFY_BASE_URL=https://ntfy.sh
export NTFY_TOKEN=tk_your_token_here
export NTFY_DEFAULT_TOPIC=my-alerts
export NTFY_WRITE_ENABLED=true

# Run
uv run ntfy-blade-mcp

Tools (10)

Tool Type Description
ntfy_info read Server health + capabilities + stats (3-in-1)
ntfy_account read Usage limits, reserved topics, active tokens
ntfy_poll read Poll topic(s) for cached messages
ntfy_publish write Send notification (priority, tags, actions, markdown, delay)
ntfy_cancel write Cancel a scheduled message
ntfy_reserve write Reserve a topic (set ACL)
ntfy_unreserve write Release a topic reservation
ntfy_token_create write Create a new API token
ntfy_token_extend write Extend/relabel a token
ntfy_token_revoke write Revoke a token

Security Model

  1. Environment gate — all write tools require NTFY_WRITE_ENABLED=true
  2. Per-call confirmation — every write tool requires confirm=true
  3. Token redaction — tokens are truncated in output (full token shown only on create)
  4. PII scrubbing — bearer tokens and API keys redacted from error messages
  5. No admin endpoints — user management excluded by design

Token Efficiency

  • ntfy_info collapses 3 API calls (health + config + stats) into 1 tool call
  • Pipe-delimited output, null-field omission, truncation at 200 chars
  • Default priority (3) omitted from poll output
  • NTFY_DEFAULT_TOPIC eliminates per-call topic specification

Environment Variables

Variable Required Secret Description
NTFY_BASE_URL yes no ntfy server URL
NTFY_TOKEN no yes Bearer token (tk_...)
NTFY_DEFAULT_TOPIC no no Default topic for publish/poll
NTFY_WRITE_ENABLED no no Enable write operations
TRANSPORT no no stdio (default) or http
NTFY_MCP_PORT no no HTTP port (default: 8773)
NTFY_MCP_API_TOKEN no yes HTTP transport bearer auth

Development

make install-dev   # Install with dev deps
make test          # Run unit tests
make check         # Lint + format + typecheck
make test-cov      # Tests with coverage

Architecture

src/ntfy_blade_mcp/
├── __init__.py
├── __main__.py      # Entry point
├── server.py        # FastMCP + 10 @mcp.tool definitions
├── client.py        # httpx async client for ntfy API
├── formatters.py    # Pipe-delimited token-efficient output
└── models.py        # Config, gates, constants, exceptions

Sidereal Marketplace

Contract: notifications-push-v1 — see sidereal-plugin.yaml.

Licence

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ntfy_blade_mcp-0.2.0.tar.gz (91.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ntfy_blade_mcp-0.2.0-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file ntfy_blade_mcp-0.2.0.tar.gz.

File metadata

  • Download URL: ntfy_blade_mcp-0.2.0.tar.gz
  • Upload date:
  • Size: 91.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ntfy_blade_mcp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b8b4cbada6248ddf0eaf3e2713ff618ce5a890effb2550df0f8e6ee123501861
MD5 441bf0da0a688967886439c7c171a5bc
BLAKE2b-256 122b9332937f035d8951cc8856d53f12b6a9f1f9a4e935e071b90a26a5e3e929

See more details on using hashes here.

Provenance

The following attestation bundles were made for ntfy_blade_mcp-0.2.0.tar.gz:

Publisher: publish.yml on Groupthink-dev/ntfy-blade-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ntfy_blade_mcp-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: ntfy_blade_mcp-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ntfy_blade_mcp-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4b25e9ec6eab30d73790d1ced6632641f4fbf24f8f7a4a5b1e925efd8ed461f3
MD5 1a1be4b8a0953268a4bbabd01788dbbc
BLAKE2b-256 cfb7d7042500d48ab728950024512dd9e8a10448492962d8b66125c76baab2e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for ntfy_blade_mcp-0.2.0-py3-none-any.whl:

Publisher: publish.yml on Groupthink-dev/ntfy-blade-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page