Allows AI agents to send notifications via Slack, Telegram, email, SMS, or push through an Alphorn webhook.
Also known as alphorn-dev/mcp, mcp, @alphorn/mcp
- Stars
- 0
- Tools
- 4
- Downloads, 30 days
- 608
- Latest version
- 0.1.1
- Last commit
- Oct 12, 2026
- License
- AGPL-3.0
What is Alphorn MCP?
Alphorn allows AI agents to send notifications via Slack, Telegram, email, SMS, or push through an Alphorn webhook. It exposes 4 tools, such as message, title, priority.
Summary generated from the project's README
About Alphorn MCP server
Alphorn provides a way for AI agents to communicate with users through various messaging channels. By using the send_notification tool, agents integrated with clients like Claude Desktop, Cursor, or Claude Code can dispatch alerts to Slack, Telegram, Discord, email, SMS, or push notifications. This server acts as a bridge to the Alphorn notification router, which can be used via the hosted service at app.alphorn.dev or through a self-hosted installation.
To set up the server, developers must provide an ALPHORN_WEBHOOK_URL and an optional ALPHORN_API_KEY as environment variables. The tool allows for detailed messaging, including a title, a message body up to 4,000 characters, a priority level from 1 to 5, and custom tags. These parameters enable users to route specific alerts, such as urgent failures, to different channels using Alphorn filters.
What you can do with it
- 1Notify about task completionAsk the agent to send a message to your preferred channel once a long-running coding task is finished.
- 2Alert on critical failuresInstruct the AI to send an urgent notification if a process becomes blocked or encounters an error.
- 3Request human interventionHave the agent trigger a notification when it reaches a point where it requires a user decision.
Written from the project's README. Every use case is checked against a quote from it.
How to install Alphorn MCP
Formats verified 10 Nov 2026Install Alphorn MCP in Claude Code
$ claude mcp add --env ALPHORN_WEBHOOK_URL=<YOUR_ALPHORN_WEBHOOK_URL> --env ALPHORN_API_KEY=<YOUR_ALPHORN_API_KEY> mcp -- npx -y @alphorn/mcpInstall Alphorn MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@alphorn/mcp"
],
"env": {
"ALPHORN_WEBHOOK_URL": "<YOUR_ALPHORN_WEBHOOK_URL>",
"ALPHORN_API_KEY": "<YOUR_ALPHORN_API_KEY>"
}
}
}
}Install Alphorn MCP in VS Code
.vscode/mcp.json
{
"servers": {
"mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@alphorn/mcp"
],
"env": {
"ALPHORN_WEBHOOK_URL": "<YOUR_ALPHORN_WEBHOOK_URL>",
"ALPHORN_API_KEY": "<YOUR_ALPHORN_API_KEY>"
}
}
}
}Install Alphorn MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@alphorn/mcp"
],
"env": {
"ALPHORN_WEBHOOK_URL": "<YOUR_ALPHORN_WEBHOOK_URL>",
"ALPHORN_API_KEY": "<YOUR_ALPHORN_API_KEY>"
}
}
}
}Install Alphorn MCP in Codex
~/.codex/config.toml
[mcp_servers.mcp] command = "npx" args = ["-y", "@alphorn/mcp"] [mcp_servers.mcp.env] ALPHORN_WEBHOOK_URL = "<YOUR_ALPHORN_WEBHOOK_URL>" ALPHORN_API_KEY = "<YOUR_ALPHORN_API_KEY>"
Install Alphorn MCP in Gemini CLI
~/.gemini/settings.json
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@alphorn/mcp"
],
"env": {
"ALPHORN_WEBHOOK_URL": "<YOUR_ALPHORN_WEBHOOK_URL>",
"ALPHORN_API_KEY": "<YOUR_ALPHORN_API_KEY>"
}
}
}
}Alphorn MCP tools 4
Detected from the READMEmessagetitleprioritytags
| message | — | |
| title | — | |
| priority | — | |
| tags | — |
Configuration
ALPHORN_WEBHOOK_URLRequiredSecretWebhook Endpoint URL, e.g. https://app.alphorn.dev/n/V1StGXR8_Z5jdHi6B-myT
ALPHORN_API_KEYSecretWebhook API key (alp_...), if the webhook requires one
| Name | Description | |
|---|---|---|
| ALPHORN_WEBHOOK_URL | Webhook Endpoint URL, e.g. https://app.alphorn.dev/n/V1StGXR8_Z5jdHi6B-myT | RequiredSecret |
| ALPHORN_API_KEY | Webhook API key (alp_...), if the webhook requires one | Secret |
Automated checks
Ran Nov 13, 2026Full report →Passed our automated checks. That is not a security audit: read the code and give the server the narrowest access it needs. How checks work
- Source repository linked and reachablePass
- Open source license (OSI)Pass
- Commit or release in the last yearPass
- Package name not close to a popular packagePass
- Remote endpoint uses HTTPSNot checked
- Destructive tools are labelledPass
- No hidden instructions to the modelPass
- No critical advisory in the package or its dependenciesPass
README
View on GitHubAlphorn MCP Server
MCP server for Alphorn, the open-source notification router. It gives AI agents (Claude Code, Claude Desktop, Cursor, Codex, and any other MCP client) a send_notification tool, so an agent can tell you when a task finishes, fails, or needs your decision, on whatever channel you configured in Alphorn: Slack, Telegram, Discord, email, SMS, push, and more.
Works with the hosted service at app.alphorn.dev and with self-hosted Alphorn.
Setup
- Create a webhook in Alphorn and copy its Endpoint URL, plus its API key if you switched on Require API key (docs).
- Add the server to your MCP client with two environment variables:
| Variable | Value |
|---|---|
ALPHORN_WEBHOOK_URL |
Endpoint URL, e.g. https://app.alphorn.dev/n/V1StGXR8_Z5jdHi6B-myT |
ALPHORN_API_KEY |
Webhook API key (alp_...). Leave unset if the webhook does not require one. |
Claude Code
claude mcp add alphorn -s user \
-e ALPHORN_WEBHOOK_URL=https://app.alphorn.dev/n/V1StGXR8_Z5jdHi6B-myT \
-e ALPHORN_API_KEY=alp_... \
-- npx -y @alphorn/mcp
Claude Desktop (one-click bundle)
Download alphorn.mcpb from the latest release and open it. Claude Desktop asks for the Endpoint URL and API key.
Claude Desktop, Cursor, and other JSON-configured clients
Add to claude_desktop_config.json, ~/.cursor/mcp.json, or your client's MCP config:
{
"mcpServers": {
"alphorn": {
"command": "npx",
"args": ["-y", "@alphorn/mcp"],
"env": {
"ALPHORN_WEBHOOK_URL": "https://app.alphorn.dev/n/V1StGXR8_Z5jdHi6B-myT",
"ALPHORN_API_KEY": "alp_..."
}
}
}
}
OpenAI Codex CLI
# ~/.codex/config.toml
[mcp_servers.alphorn]
command = "npx"
args = ["-y", "@alphorn/mcp"]
env = { ALPHORN_WEBHOOK_URL = "https://app.alphorn.dev/n/V1StGXR8_Z5jdHi6B-myT", ALPHORN_API_KEY = "alp_..." }
Tool
send_notification
| Argument | Type | Required | Description |
|---|---|---|---|
message |
string | yes | What happened and what the agent needs from you (max 4,000 characters) |
title |
string | no | Short title, e.g. my-app - tests passing (max 200 characters) |
priority |
integer 1-5 | no | 2 = finished, 3 = needs input, 4 = blocked or failed, 5 = urgent |
tags |
string[] | no | Tags to filter and route on in Alphorn, e.g. ["ai-agent", "completed"] |
The tool wraps Alphorn's send endpoint. For direct HTTP use, see the API reference and the OpenAPI 3.1 specification.
Use Alphorn's filters to decide where each notification goes, for example SMS only for priority 4 and above.
Development
pnpm install
pnpm test # builds, then runs the tests against a local fake endpoint
Releasing
- Bump
versioninpackage.json,server.json(both fields),manifest.json, andVERSIONinsrc/server.ts. npm publish --access public- Push a
v<version>tag (or run the Publish to MCP Registry workflow): it publishesserver.jsonto the MCP Registry via GitHub OIDC pnpm bundle, then attachalphorn.mcpbto a GitHub release
License
AGPL-3.0-or-later
Alphorn MCP questions
How do I add Alphorn MCP to Claude Code?
Run claude mcp add --env ALPHORN_WEBHOOK_URL=<YOUR_ALPHORN_WEBHOOK_URL> --env ALPHORN_API_KEY=<YOUR_ALPHORN_API_KEY> mcp -- npx -y @alphorn/mcp in your terminal. Add --scope user to make it available in every project.
How do I add Alphorn MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
What tools does Alphorn MCP provide?
It exposes 4 tools, including message, title, priority, tags.
What channels can I use to receive notifications?
You can receive notifications on Slack, Telegram, Discord, email, SMS, push, and more, depending on your Alphorn configuration.