io.github.CloudCorpRecords/pushnote
Gotify push notifications: send, read messages, manage apps and clients, one router tool.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
@reneturcios/pushnoteclaude mcp add pushnote -- npx -y @reneturcios/pushnote@0.1.0 mcp
{
"mcpServers": {
"pushnote": {
"command": "npx",
"args": [
"-y",
"@reneturcios/pushnote@0.1.0",
"mcp"
]
}
}
}
ghcr.io/cloudcorprecords/pushnote:0.1.0claude mcp add pushnote -- docker run -i --rm ghcr.io/cloudcorprecords/pushnote:0.1.0 mcp
{
"mcpServers": {
"pushnote": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/cloudcorprecords/pushnote:0.1.0",
"mcp"
]
}
}
}
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
pushnote
pushnote talks to a Gotify server: it sends push notifications,
reads back messages, server health and version, and manages the
Gotify applications and clients that notifications flow through.
Everything is exposed as one action-router tool, gotify, over a
command-line interface and a stdio MCP server, both served by the
same binary.
Three environment variables configure it. GOTIFY_URL is the
base URL of your Gotify server and is required — without it, every
action except the local help fails before any request is made.
GOTIFY_CLIENT_TOKEN is a Gotify client token used for reads and
management (current user, messages, applications, clients).
GOTIFY_APP_TOKEN is a Gotify application token used only by the
send action. Tokens come from the environment only; they are
never tool arguments.
Install
npx @reneturcios/pushnote health
Or run the container image:
docker run -i ghcr.io/cloudcorprecords/pushnote
The container defaults to the MCP server (see below). Pass CLI arguments to use it as a CLI instead.
CLI
Each command mirrors one router action. Multi-word commands accept
both the hyphenated form shown here and the underscore action name
(for example create-application or create_application).
export GOTIFY_URL=https://gotify.example.com
export GOTIFY_CLIENT_TOKEN=<client token>
export GOTIFY_APP_TOKEN=<app token>
pushnote health
pushnote version
pushnote me
pushnote messages --limit 25 --since 40
pushnote messages --app-id 7
pushnote applications
pushnote clients
pushnote status
pushnote send "deploy finished" --title CI --priority 5
pushnote create-application alerts --description "Alert channel" --default-priority 4
pushnote update-application 3 --name renamed
pushnote create-client phone
pushnote delete-message 9 --confirm
pushnote delete-all-messages --confirm
pushnote delete-application 4 --confirm
pushnote delete-client 5 --confirm
pushnote help
pushnote --version
Successful commands print the upstream JSON payload (status and
help print local output instead). Exit codes: 0 on success,
1 when a call fails (including an upstream API error or a
refused destructive action), 2 for usage errors.
Destructive commands — the four delete-* commands — do nothing
unless --confirm is passed. Without it they fail before any
request reaches the Gotify server.
MCP server
The mcp subcommand starts a stdio MCP server:
npx -y @reneturcios/pushnote mcp
MCP client configuration:
{
"mcpServers": {
"pushnote": {
"command": "npx",
"args": ["-y", "@reneturcios/pushnote", "mcp"],
"env": {
"GOTIFY_URL": "https://gotify.example.com",
"GOTIFY_CLIENT_TOKEN": "<client token>",
"GOTIFY_APP_TOKEN": "<app token>"
}
}
}
}
Tool
One tool, gotify, takes a required action argument plus the
parameters that action needs as optional top-level arguments:
| Action | Required | Optional | Token |
|---|---|---|---|
health | — | — | none |
version | — | — | none |
me | — | — | client |
messages | — | app_id, limit, since | client |
applications | — | — | client |
clients | — | — | client |
status | — | — | none (local) |
send | message | title, priority, extras | app |
create_application | name | description, default_priority | client |
update_application | app_id | name, description, default_priority | client |
create_client | name | — | client |
delete_message | id, confirm | — | client |
delete_all_messages | confirm | — | client |
delete_application | app_id, confirm | — | client |
delete_client | client_id, confirm | — | client |
help | — | — | none (local) |
All four delete actions refuse to run unless confirm is true,
and that check happens before any request. status returns a
local snapshot (Gotify URL, which tokens are configured, action
count) and never includes a token value. help returns the action
documentation locally.
Development
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev # run the CLI from source via tsx
License
MIT — see LICENSE.
Frequently asked questions
What is io.github.CloudCorpRecords/pushnote?
Gotify push notifications: send, read messages, manage apps and clients, one router tool.
How do I install io.github.CloudCorpRecords/pushnote?
It runs on your machine. In Claude Code: claude mcp add pushnote -- npx -y @reneturcios/pushnote@0.1.0 mcp. For other clients, paste the JSON configuration from this page into their MCP settings.
Does io.github.CloudCorpRecords/pushnote need an API key?
Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.
Is io.github.CloudCorpRecords/pushnote open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains io.github.CloudCorpRecords/pushnote?
It is published by CloudCorpRecords. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.