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

Metadata

Release files for ntfy-blade-mcp 0.2.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 ntfy-blade-mcp 0.2.0
File Size Uploaded
ntfy_blade_mcp-0.2.0.tar.gz 91.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ntfy-blade-mcp 0.2.0
File Interpreter ABI Platform
ntfy_blade_mcp-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 103.9 kB

Release files / ntfy_blade_mcp-0.2.0.tar.gz

Download URL ntfy_blade_mcp-0.2.0.tar.gz
Size 91.9 kB
Tags Source
SHA-256 checksum
How to use checksums
b8b4cbada6248ddf0eaf3e2713ff618ce5a890effb2550df0f8e6ee123501861
BLAKE2b-256 checksum
How to use checksums
122b9332937f035d8951cc8856d53f12b6a9f1f9a4e935e071b90a26a5e3e929
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 28, 2026.

Transparency log

Release files / ntfy_blade_mcp-0.2.0-py3-none-any.whl

Download URL ntfy_blade_mcp-0.2.0-py3-none-any.whl
Size 12.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4b25e9ec6eab30d73790d1ced6632641f4fbf24f8f7a4a5b1e925efd8ed461f3
BLAKE2b-256 checksum
How to use checksums
cfb7d7042500d48ab728950024512dd9e8a10448492962d8b66125c76baab2e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 28, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.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