NotifyMCP

NotifyMCP

Enables agents to publish messages to MQTT topics, which can be turned into phone notifications via the NotifyMQTT Android app.

Category
Visit Server

README

NotifyMCP

NotifyMCP is a small FastMCP server that lets an agent publish messages to a configured MQTT topic.

It is intended to pair with the NotifyMQTT Android app: an agent calls the MCP tool, NotifyMCP publishes to MQTT, and NotifyMQTT turns that MQTT message into a phone notification.

NotifyMCP can run either directly with uvx or as a Docker container pulled from Docker Hub.

Tools

publish_message

Publishes a message to the MQTT topic configured by environment variables.

Arguments:

  • message — message payload to publish.
  • qos — MQTT QoS level, defaults to 1.
  • retain — whether to publish as a retained MQTT message, defaults to false.

get_mqtt_config

Returns the configured MQTT target without exposing the password.

Environment variables

Required:

Variable Description
MQTT_URL Broker URL. Supports mqtt://, tcp://, mqtts://, and ssl://.
MQTT_TOPIC Topic to publish all agent messages to.

Optional:

Variable Description
MQTT_USERNAME MQTT username. Leave blank for anonymous brokers.
MQTT_PASSWORD MQTT password. Leave blank for anonymous brokers.
MQTT_KEEPALIVE_SECONDS MQTT keepalive. Defaults to 30.
MQTT_PUBLISH_TIMEOUT_SECONDS Publish wait timeout. Defaults to 10.

mqtt:// and tcp:// default to port 1883. mqtts:// and ssl:// default to port 8883 and enable TLS.

Run with uvx from GitHub

You can run the MCP server directly from the GitHub repo with uvx:

export MQTT_URL="mqtt://192.168.1.10:1883"
export MQTT_USERNAME=""
export MQTT_PASSWORD=""
export MQTT_TOPIC="notify/test"

uvx --from git+https://github.com/mbush91/NotifyMCP notifymcp

For a fixed version, use a tag or commit:

uvx --from git+https://github.com/mbush91/NotifyMCP@v0.1.0 notifymcp

Run from Docker Hub

After the Docker Hub publish workflow has run, pull and run the image:

docker pull <dockerhub-username>/notifymcp:latest

docker run --rm -i \
  -e MQTT_URL="mqtt://192.168.1.10:1883" \
  -e MQTT_USERNAME="" \
  -e MQTT_PASSWORD="" \
  -e MQTT_TOPIC="notify/test" \
  <dockerhub-username>/notifymcp:latest

The container runs the MCP server over stdio, so keep -i when using it from an MCP host.

Docker Hub publishing

The Docker Hub Publish GitHub Actions workflow pushes images on:

  • pushes to main as latest and sha-<commit>
  • tags like v0.1.0 as semver Docker tags
  • manual workflow_dispatch runs

Configure these repository secrets in GitHub before publishing:

Secret Description
DOCKERHUB_USERNAME Docker Hub username or organization.
DOCKERHUB_TOKEN Docker Hub access token.

The image name will be:

DOCKERHUB_USERNAME/notifymcp

Example MCP client config: uvx

{
  "mcpServers": {
    "notifymcp": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/mbush91/NotifyMCP",
        "notifymcp"
      ],
      "env": {
        "MQTT_URL": "mqtt://192.168.1.10:1883",
        "MQTT_USERNAME": "",
        "MQTT_PASSWORD": "",
        "MQTT_TOPIC": "notify/test"
      }
    }
  }
}

Example MCP client config: Docker

{
  "mcpServers": {
    "notifymcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "MQTT_URL=mqtt://192.168.1.10:1883",
        "-e",
        "MQTT_USERNAME=",
        "-e",
        "MQTT_PASSWORD=",
        "-e",
        "MQTT_TOPIC=notify/test",
        "<dockerhub-username>/notifymcp:latest"
      ]
    }
  }
}

Local development

uv sync --extra dev
uv run ruff check .
uv run pytest
uv build
docker build -t notifymcp:local .

You can also smoke-test the local checkout through uvx:

uvx --from . notifymcp

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured