Pushary
About
Push notifications and human-in-the-loop approvals for AI agents: ask a question mid-run and get the answer back from a phone lock screen.
Details
- Author
- pushary
- Categories
- Communication, Productivity
Jump to
Setup: Cursor / Windsurf / Other MCP Agents
1. Add the MCP serverto your agent's MCP config (usually.cursor/mcp.jsonor similar):
{ "mcpServers": { "pushary": { "url": "https://pushary.com/api/mcp/mcp", "headers": { "Authorization": "Bearer pk_xxx.sk_xxx" } } } }
2. Install the skill(if your agent supports skills.sh):
](https://pushary.com/dashboard/agent/policies)Lovableis a hosted app builder, so there is no local install step (npx skills adddoes not apply). You connect the MCP server in Lovable's UI, then paste the skill into Lovable's Knowledge so the agent uses it on its own.
1. Connect the MCP server.In Lovable, go toSettings -> Connectors -> Personal connectors(paid Lovable plans), clickNew MCP server, set the URL tohttps://pushary.com/api/mcp/mcp, chooseBearer token, and paste your API key (pk_xxx.sk_xxx).
2. Add the skill to Knowledge.Lovable cannot install skills vianpx, so paste the skill guidance intoSettings -> Knowledge. Use the condensedSKILL-LITE.mdas the source. This makes the Lovable agent notify you when a build finishes and ask before risky changes, without you prompting each time.
Lovable gets notifications and questions only (no enforced gate, since it has no permission hook). Full walkthrough:Lovable guide.
1. Connect the MCP server.Get your connector link from thePushary dashboard(Settings -> Connections, Claude section). In Claude, openSettings -> Connectors -> Add custom connector, leave the OAuth fields empty, and paste the link. Connectors are account level, so the same connector is available inside Cowork; enable it in a session underCustomize -> Connectors.
Cowork gets notifications and questions only (no enforced gate; Cowork exposes no hooks). Full walkthrough:Claude Cowork guide. Dedicated plugin repo:Pushary/cowork-plugin.
Full tool documentation with parameters, examples, and usage guidelines is inskills/pushary/SKILL.md.
The agent can ask you decisions via push and wait for your answer:
- Confirm- yes/no binary decisions
- Select- pick from 2-6 options
- Input- free text response
The flow usesask_user->wait_for_answerwith automatic retries. Answers persist for 10 minutes, so there's no rush.
Works with any agent that supportsskills.shor the Model Context Protocol:
- Claude Code(MCP + permission hooks)
- Claude Cowork(custom connector + skill upload)
- Hermes Agent(native plugin or MCP)
- Cursor(MCP)
- Windsurf(MCP)
- Lovable(MCP connector + skill via Knowledge)
- OpenAI Codex(MCP)
- And39+ more agents
server.jsonis not published by merging it. TheMCP registryserves one record per version, so an edit here reaches nobody until the new version is pushed to the registry, and the old text keeps being what every agent reads.
Everyday path: bumpversioninserver.jsonand merge tomain. TheRelease MCP registry entryworkflow picks it up.
That workflow needs a credential it does not have yet. The registry grants publish rights asio.github.<repository_owner>/*, taken from the GitHub OIDC token'srepository_ownerclaim. Our server isio.github.Pushary/pusharyand the monorepo is owned byaadilghani1, so tokenless OIDC from the monorepo cannot reach the namespace. Until one of the two fixes in that workflow's header is applied, the run stops with an explicit error rather than passing quietly.
curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher ./mcp-publisher login github ./mcp-publisher publish
Check what the registry actually serves, which is the only number that matters:
curl -s "https://registry.modelcontextprotocol.io/v0/servers?search=pushary"
That endpoint returnseveryversion, oldest first. Read the entry whose_meta."io.modelcontextprotocol.registry/official".isLatestistrue; the first row in the list is the oldest record, not the live one.
Contributions are welcome! Please read thecontributing guidebefore submitting a pull request.
If you discover a security vulnerability, please report it responsibly. SeeSECURITY.mdfor details.
This project is fully funded byRalphNex OU, an Estonian software development agency.
Manage your WhatsApp, SMS and Phone Calls using a single MCP connector
Connect to any function, any language, across network boundaries using AgentRPC.
Access your meeting transcripts, summaries, and action items from any AI assistant.
Connect Claude, ChatGPT, and other AI tools to your Granola meeting notes via MCP. Query your notes, search transcripts, and get meeting insights in your favorite AI assistants.
Build with the Kudosity API to send SMS and MMS. Access developer docs, API references and live testing tools to send messages, manage contact lists, configure webhooks and more.
Send SMS, WhatsApp, and RCS messages programmatically with DLT compliance. Manage contacts, schedule campaigns, and track delivery reports.
Push notifications and human-in-the-loop for AI agents. Approve from your phone.
Get started·Skills directory·Report a bug
Your AI agent finishes a 20-minute refactor while you're making coffee. Without Pushary, you'd never know until you checked back. With Pushary, you get a push notification on your phone the moment it's done - or a question on your lock screen when the agent needs a decision. It's the tool behind "keep going, ping me on my phone if you need anything".
Pushary is a hosted service: $9.99/mo after a 3-day card-first trial. It works with Claude Code, Claude Cowork, Codex, Cursor, Windsurf, Hermes, Lovable, or any MCP client, and it does not need a Claude Max subscription. If you run Claude Code with Claude Max, Anthropic Remote Control covers that one setup for free. Pushary covers what it does not: Codex, Cursor, Claude Code without Max, a cross-agent fleet, enforced policy gating, lock screen answer buttons, and an audit trail of every question and answer.
AI Agent -> MCP Protocol -> Pushary API -> Push Notification -> Your Phone
Three question types- yes/no confirmations, multiple choice, and free text input. Your agent picks the right one for the situation.
Rich context notifications- agents can include file changes, error details, and suggested next steps in a detail page you see when tapping the notification.
Agent identification- when you run multiple agents, each notification shows which agent is asking so you always know what you're responding to.
Permission hooks- route Claude Code's tool approval prompts through push notifications so you can approve or deny from your phone.
Option 0: Claude Code plugin (one command)
This repo is a Claude Code plugin. Install it and you get the MCP tools, the permission hooks, and the skill in one step:
/plugin marketplace add Pushary/pushary-skill /plugin install pushary
SetPUSHARY_API_KEYin your environment (get a key atpushary.com, $9.99/mo after a 3-day trial). Claude Code expands${PUSHARY_API_KEY}in the plugin's MCP config.
Pick one install path. If you already rannpx @pushary/agent-hooks setup, the same hooks live in your~/.claude/settings.json; installing the plugin on top runs each hook twice. Either uninstall the plugin or runnpx @pushary/agent-hooks cleanbefore switching.
Option A: MCP Server (notifications + questions)
The agent calls Pushary tools when it wants to notify you or ask a question.
1. Sign upatpushary.com/sign-upand get your API key.
3. Add the MCP serverto your Claude Code settings (~/.claude/settings.jsonor project.claude/settings.json):
{ "mcpServers": { "pushary": { "url": "https://pushary.com/api/mcp/mcp", "headers": { "Authorization": "Bearer pk_xxx.sk_xxx" } } } }
Replacepk_xxx.sk_xxxwith your API key.
4. Enable notificationson your phone by visiting your Pushary dashboard and allowing browser notifications.
That's it. The agent will proactively send you notifications when tasks complete, errors occur, or decisions are needed.
Option B: Permission Hooks (approve/deny tools via push)
Route Claude Code's built-in permission prompts through push notifications. When the agent wants to run a command or edit a file, you get a push notification to approve or deny from your phone.
2. Set your API keyin your shell profile (~/.zshrcor~/.bashrc):
export PUSHARY_API_KEY="pk_xxx.sk_xxx"
3. Add the hookto your Claude Code settings (~/.claude/settings.json):
{ "hooks": { "PreToolUse": [ { "matcher": "Bash|Write|Edit", "hooks": [ { "type": "command", "command": "pushary-hook", "timeout": 120 } ] } ] } }
4. Configure timeout policiesin yourPushary dashboard:
When you don't respond to a push notification in time, the configured fallback kicks in: auto-approve, auto-deny, or fall back to the normal terminal permission prompt.
Use Option A and Option B together. The MCP server handles notifications and voluntary questions. The permission hook handles tool approvals. They use the same API key and dashboard.
Full integration with native Hermes tools and automatic error notifications.
export PUSHARY_API_KEY="pk_xxx.sk_xxx"
export PUSHARY_AGENT_NAME="Hermes - my-project"
The plugin registers 4 native tools (pushary_notify,pushary_ask,pushary_wait,pushary_cancel) and automatically sends push notifications when tools return errors.
SetPUSHARY_AUTO_NOTIFY_SESSION_END=1to also get notified when a Hermes session ends.
If you prefer MCP over the native plugin:
mcp: servers: pushary: url: https://pushary.com/api/mcp/sse headers: Authorization: "Bearer ${PUSHARY_API_KEY}"
hermes skills tap add Pushary/pushary-skill hermes skills install pushary-hermes
Codex has native MCP support. One command:
1. Set your API keyin your shell profile (~/.zshrcor~/.bashrc):
export PUSHARY_API_KEY="pk_xxx.sk_xxx"
codex mcp add pushary --url https://pushary.com/api/mcp/mcp --bearer-token-env-var PUSHARY_API_KEY
That's it. Codex now has access to all Pushary tools - notifications, questions, and rich context.
Or use the setup wizard(configures everything including the API key):
Setup: Cursor / Windsurf / Other MCP Agents
1. Add the MCP serverto your agent's MCP config (usually.cursor/mcp.jsonor similar):
{ "mcpServers": { "pushary": { "url": "https://pushary.com/api/mcp/mcp", "headers": { "Authorization": "Bearer pk_xxx.sk_xxx" } } } }
2. Install the skill(if your agent supports skills.sh):
1. Connect the MCP server.In Lovable, go toSettings -> Connectors -> Personal connectors(paid Lovable plans), clickNew MCP server, set the URL tohttps://pushary.com/api/mcp/mcp, chooseBearer token, and paste your API key (pk_xxx.sk_xxx).
2. Add the skill to Knowledge.Lovable cannot install skills vianpx, so paste the skill guidance intoSettings -> Knowledge. Use the condensedSKILL-LITE.mdas the source. This makes the Lovable agent notify you when a build finishes and ask before risky changes, without you prompting each time.
Lovable gets notifications and questions only (no enforced gate, since it has no permission hook). Full walkthrough:Lovable guide.
1. Connect the MCP server.Get your connector link from thePushary dashboard(Settings -> Connections, Claude section). In Claude, openSettings -> Connectors -> Add custom connector, leave the OAuth fields empty, and paste the link. Connectors are account level, so the same connector is available inside Cowork; enable it in a session underCustomize -> Connectors.
Cowork gets notifications and questions only (no enforced gate; Cowork exposes no hooks). Full walkthrough:Claude Cowork guide. Dedicated plugin repo:Pushary/cowork-plugin.
Full tool documentation with parameters, examples, and usage guidelines is inskills/pushary/SKILL.md.
The agent can ask you decisions via push and wait for your answer:
- Confirm- yes/no binary decisions
- Select- pick from 2-6 options
- Input- free text response
The flow usesask_user->wait_for_answerwith automatic retries. Answers persist for 10 minutes, so there's no rush.
Works with any agent that supportsskills.shor the Model Context Protocol:
- Claude Code(MCP + permission hooks)
- Claude Cowork(custom connector + skill upload)
- Hermes Agent(native plugin or MCP)
- Cursor(MCP)
- Windsurf(MCP)
- Lovable(MCP connector + skill via Knowledge)
- OpenAI Codex(MCP)
- And39+ more agents
server.jsonis not published by merging it. TheMCP registryserves one record per version, so an edit here reaches nobody until the new version is pushed to the registry, and the old text keeps being what every agent reads.
Everyday path: bumpversioninserver.jsonand merge tomain. TheRelease MCP registry entryworkflow picks it up.
That workflow needs a credential it does not have yet. The registry grants publish rights asio.github.<repository_owner>/*, taken from the GitHub OIDC token'srepository_ownerclaim. Our server isio.github.Pushary/pusharyand the monorepo is owned byaadilghani1, so tokenless OIDC from the monorepo cannot reach the namespace. Until one of the two fixes in that workflow's header is applied, the run stops with an explicit error rather than passing quietly.
curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher ./mcp-publisher login github ./mcp-publisher publish
Check what the registry actually serves, which is the only number that matters:
curl -s "https://registry.modelcontextprotocol.io/v0/servers?search=pushary"
That endpoint returnseveryversion, oldest first. Read the entry whose_meta."io.modelcontextprotocol.registry/official".isLatestistrue; the first row in the list is the oldest record, not the live one.
Contributions are welcome! Please read thecontributing guidebefore submitting a pull request.
If you discover a security vulnerability, please report it responsibly. SeeSECURITY.mdfor details.
This project is fully funded byRalphNex OU, an Estonian software development agency.
Manage your WhatsApp, SMS and Phone Calls using a single MCP connector
Connect to any function, any language, across network boundaries using AgentRPC.
Access your meeting transcripts, summaries, and action items from any AI assistant.
Connect Claude, ChatGPT, and other AI tools to your Granola meeting notes via MCP. Query your notes, search transcripts, and get meeting insights in your favorite AI assistants.
Build with the Kudosity API to send SMS and MMS. Access developer docs, API references and live testing tools to send messages, manage contact lists, configure webhooks and more.
Send SMS, WhatsApp, and RCS messages programmatically with DLT compliance. Manage contacts, schedule campaigns, and track delivery reports.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



