Pushary Agent Skill
MCP serverAI & modelsPushary lets your AI reach a human while it is running, so a task does not have to stop when it needs a decision. Approval requests show up on your phone's lock screen, and every request and decision is recorded in a single audit trail shared across your AI agents.
Use Pushary Agent Skill in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add Pushary Agent Skill and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use Pushary Agent Skill to send notification
No key or account is asked for. Not verified by us yet: Ahel has not run a call through it.
Details
Available today. Use it from your connected AI after setup.
No key or account is asked for. Not verified by us yet: Ahel has not run a call through it.
After adding pushary, open its GitHub repository at github.com/pushary/pushary-skill and follow the setup instructions there to connect your agents.
What your AI can do with it
- Reach you for a decision while a task is still running
- Send approval requests to your lock screen
- Collect approvals directly from the lock screen
- Log every request and approval in an audit trail
- Keep one audit history across all your AI agents
Install Pushary Agent Skill
The server’s own address, for the clients that take one directly. Or connect Ahel once and every client you use reads it from one address, with the account kept on Ahel rather than in each client’s config.
Claude Code
claude mcp add --transport http --scope user pushary-agent-skill 'https://pushary.com/api/mcp/mcp'Run it once in your project, then open /mcp to approve any sign-in the server asks for.
Claude Desktop
https://pushary.com/api/mcp/mcpAdd a custom connector in Settings, paste this address, and approve the sign-in.
Cursor
cursor://anysphere.cursor-deeplink/mcp/install?name=pushary-agent-skill&config=eyJ1cmwiOiJodHRwczovL3B1c2hhcnkuY29tL2FwaS9tY3AvbWNwIn0=Open the link and Cursor adds the server at that address.
ChatGPT
https://pushary.com/api/mcp/mcpIn Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.
Codex
codex mcp add pushary-agent-skill --url 'https://pushary.com/api/mcp/mcp'Run it once, then sign in with codex mcp login pushary-agent-skill if the server asks for an account.
From the project's README
As published by pushary/pushary-skill in README.md.
Start here
Try an approval without signing up → connect an open phone page → approve or decline → see the agent continue or stop. This browser demo uses polling and temporary state, not real push delivery or the production ledger.
| What you want to build | Start with |
|---|---|
| Notifications and questions for a coding agent | The setup instructions below |
| An enforced tool approval in the Vercel AI SDK | Runnable AI SDK example |
| A LangGraph workflow that branches on a human decision | Runnable LangGraph example |
| Another agent framework | All Pushary integrations |
The skill and adapters are MIT-licensed. Hosted phone delivery requires a Pushary account; embedding approvals for your own users requires Partner access. The two framework examples also run locally with simulated answers and no credentials.
If Pushary helped you, star this repo. Want to help? Public issues and patches are welcome.
Pushary lets your coding agent send task updates and ask you for a decision on your phone. Supported host hooks also enforce approvals before an action runs.
Hosted delivery requires a paid Pushary plan. MCP questions and notifications work with any compatible client; enforced approvals depend on the host integration.
How It Works
AI Agent -> MCP Protocol -> Pushary API -> Push Notification -> Your Phone
Pushary is an MCP server that connects your AI coding agent to push notifications. The agent calls Pushary's tools over the Model Context Protocol, and you receive notifications instantly on any device.
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.
Personal setup: phone first
Run the pairing setup in your agent's terminal:
npx pushary@latest setup
Install Pushary on your phone, scan the QR or open the printed link, compare the fingerprints, and approve. Setup then configures the selected agent's tools, supported hooks and skill. You do not need to copy an API key first. Personal accounts require a paid plan. Existing credentials are reused.
Verify setup:
npx pushary@latest doctor
Ask your agent for one harmless test question. Confirm the intended device receives it and the answer returns to the same task.
For Hermes specifically:
npx pushary@latest setup --agents hermes
This installs the native plugin in Hermes' interpreter and configures it. The plugin provides notification, question, wait, cancel and scope tools, plus Partner enrollment and customer-question tools. Its parameters use snake_case; use the Hermes skill, not MCP parameter names. The native approval transport preserves Hermes' session and standing approvals.
Mac notch and other answer surfaces
Install Pushary for Mac, sign in with the same personal account and connect your agents from the app. The notch provides confirm, choice, text and question-set controls with keyboard support. Keep the app running for presence and delivery; verify one harmless question there, then phone fallback while away from the Mac.
| Surface | Answers |
|---|---|
| Mobile | Confirm, choice and text in the app. Supported confirm notifications expose lock-screen approve/deny; arbitrary choices and text open the app. |
| Mac notch | Personal account questions, including keyboard answering. No Partner customer inbox is currently provided. |
| Slack | Buttons, choice menus and text modals when the integration and recipient are configured. |
| Browser | Decision-page fallback and browser notifications when permission is enabled. |
Delivery follows your settings and presence. push_first uses presence, push_only requests push every time, notify_only keeps decisions in the current client, and terminal_only avoids push. A successful API call alone does not prove a device displayed the request.
Partner setup: your own customers
Personal pairing connects you, the operator. Partner integrations enroll each of your application's customers through a scoped connection link and address decisions using your stable customer ID. Customers use the mobile enrollment flow; do not route their approvals to your personal Mac inbox or share an operator API key.
Start with the Partner integration guide, then a Mastra agent example, AI SDK example or LangGraph example. Tools choose confirm, choice or text. Approving an action and supplying an answer are different operations; a text answer saying “yes” is not permission to execute another tool.
Browser and manual fallbacks
For browser pairing:
npx pushary@latest setup --connect browser
For a client that needs manual MCP configuration, obtain your key in the Pushary dashboard and configure:
{
"mcpServers": {
"pushary": {
"url": "https://pushary.com/api/mcp/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
Keep the key private. Install the skill with npx skills add Pushary/pushary-skill if the client supports skills.sh. Manual MCP provides cooperative questions and notifications; enforced approvals require the supported host hooks/runtime integration.
Claude Code users can alternatively install this repository as a plugin:
/plugin marketplace add Pushary/pushary-skill
/plugin install pushary
That path reads PUSHARY_API_KEY from the environment. Pick one installation path: installing the plugin on top of CLI-installed Claude hooks can run hooks twice. Use npx pushary@latest clean before switching paths.
Setup: Lovable
Lovable is a hosted app builder, so there is no local install step (npx skills add does 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 to Settings -> Connectors -> Personal connectors (paid Lovable plans), click New MCP server, set the URL to https://pushary.com/api/mcp/mcp, choose Bearer token, and paste your API key (pk_xxx.sk_xxx).
2. Add the skill to Knowledge. Lovable cannot install skills via npx, so paste the skill guidance into Settings -> Knowledge. Use the condensed SKILL-LITE.md as 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.
Setup: Claude Chat and Cowork
For Claude Chat or Claude Code, use Pushary for Claude. In Chat, open Customize > Plugins > Add > Add marketplace, add https://github.com/Pushary/claude-plugin, and install Pushary for Claude. In Claude Code, run /plugin marketplace add Pushary/claude-plugin, then /plugin install pushary@pushary-claude-plugin.
For Cowork, the existing Pushary for Cowork plugin remains available. Add https://github.com/Pushary/cowork-plugin as the marketplace and install Pushary for Cowork. Cowork also supports standing instructions under Settings > Cowork. Its existing plugin, marketplace, and pushary-cowork skill identifiers are preserved.
Both bundles use the public OAuth connector and the same shared skill. Connect Pushary from the plugin's Connectors tab in Chat or Cowork, or /mcp in Claude Code, and sign in with the same Pushary account used by your phone or Mac. No CLI or API key is needed for either bundle.
If the connector is missing, add https://pushary.com/api/mcp/mcp under Customize > Connectors > Add custom connector and leave the OAuth Client ID and Secret fields empty. Enable Pushary in the conversation, ask one harmless test question, and verify your answer returns to Claude.
These bundles provide questions and notifications and install no native permission hooks. For Claude Code approval hooks, use the Claude Code setup above. Choose one installation path per app to avoid duplicate Pushary connectors. Full Claude guide.
Tools
The skill guides these MCP tools:
| Tool | Description |
|---|---|
send_notification | Send a push notification with optional rich context (file changes, errors, next steps) |
ask_user | Ask the user a question via push - yes/no, multiple choice, or free text |
wait_for_answer | Long-poll for the user's response to a question |
cancel_question | Cancel a pending question that's no longer relevant |
list_sessions | Read-only view of your live agent sessions and pending questions |
propose_scope | Ratify the boundary of a run: file globs, enforced on supported hosts, or a recorded promise when the run changes no files |
Full tool documentation with parameters, examples, and usage guidelines is in skills/pushary/SKILL.md.
Human-in-the-Loop
The agent can ask you decisions via push and wait for your answer:
Agent: "Which auth strategy should I use?"
Options: JWT tokens / Session cookies / OAuth2 + PKCE
-> push to your phone
You: tap "JWT tokens"
Agent: proceeds with JWT implementation
Supports three question types:
- Confirm - yes/no binary decisions
- Select - pick from 2-6 options
- Input - free text response
Read answered, status and handoffAction (or nextAction) from the tool result. Poll only as directed; cancel a live question before handing it to another surface and honor any winning answer. Expiry and waits follow server policy. Silence is not approval, and a late reply cannot restart an ended agent turn.
Packages
| Package | Registry | Description |
|---|---|---|
pushary | npm | The Pushary CLI: setup, permission hooks and doctor. Also published as @pushary/agent-hooks, the same package |
hermes-plugin-pushary | PyPI | Hermes Agent native plugin |
Compatible Agents
Works with any agent that supports skills.sh or 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)
- Other clients that support remote MCP servers
Publishing the MCP registry entry
server.json is not published by merging it. The MCP registry serves 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: bump version in server.json, merge to main, then sync the public skill mirror. Its release workflow publishes the new registry entry.
The release workflow publishes from the public Pushary repository so GitHub OIDC can prove ownership of the io.github.Pushary/pushary namespace. Verify the workflow and registry result after release.
Manual fallback, from this directory:
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 returns every version, oldest first. Read the entry whose _meta."io.modelcontextprotocol.registry/official".isLatest is true; the first row in the list is the oldest record, not the live one.
Contributing
Contributions are welcome! Please read the contributing guide before submitting a pull request.
Security
If you discover a security vulnerability, please report it responsibly. See SECURITY.md for details.
Funding
This project is fully funded by RalphNex OU, an Estonian software development agency.
License
MIT - Copyright (c) 2025 RalphNex OU
Tools it offers (5)
What this server listed when Ahel dialed its public endpoint in Sep 2026, with no key and no account of yours. The names are the server’s own.
send_notificationask_userpropose_scopewait_for_answercancel_question
Signals
- GitHub stars
- 1
- Last commit
- Oct 2026
Advanced
- Delivery
- pushary MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
- Item type
- mcp-server
- Key
io-github-pushary-pushary- Source
- github.com/pushary/pushary-skill
- Hosted endpoint
https://pushary.com/api/mcp/mcp
github.com/pushary/pushary-skill
More in AI & models
MCP server · upstash
More in AI & modelsAdButler
MCP server · adbutler
More in AI & modelsatom-mcp-server
MCP server · a7om-ai
More in AI & modelsottasia
MCP server · aiweather-anurag
More in AI & modelsunphurl
MCP server · 123ergo
More in AI & modelsmicrosoft-learn-mcp
MCP server · microsoftdocs
More in AI & models