@fil-technology/pushes-mcp
v0.3.0
Published
`@fil-technology/pushes-mcp` exposes Pushes Cloud as a local stdio MCP server for tools such as Claude Desktop, Cursor, and other MCP-compatible clients.
Readme
Pushes Cloud MCP Server
@fil-technology/pushes-mcp exposes Pushes Cloud as a local stdio MCP server for tools such as Claude Desktop, Cursor, and other MCP-compatible clients.
Install
npx @fil-technology/pushes-mcp # run the published server
# or build from this repo:
pnpm --filter @fil-technology/pushes-mcp buildRun
PUSHES_API_TOKEN=your_token_here \
PUSHES_API_URL=https://api.pushes.cloud \
node packages/mcp/dist/index.jsClient config
{
"mcpServers": {
"pushes-cloud": {
"command": "npx",
"args": ["-y", "@fil-technology/pushes-mcp"],
"env": {
"PUSHES_API_URL": "https://api.pushes.cloud",
"PUSHES_API_TOKEN": "your_token_here"
}
}
}
}Claude Code (one-liner)
claude mcp add pushes-cloud \
--env PUSHES_API_URL=https://api.pushes.cloud \
--env PUSHES_API_TOKEN=your_admin_api_key \
-- npx -y @fil-technology/pushes-mcpPUSHES_API_TOKEN must be an admin API key (one that can send pushes — not a public app key).
Diagnosing failed deliveries
Ask the agent: "figure out why pushes are failing for app <appId>". It can:
pushes_check_delivery— returns, per environment, the APNs key (signingKeyId) sends will sign with and the APNs host, plus recent delivery logs (eachpush.failedcarrieskeyId,statusCode,reason).- Cross-check
signingKeyIdagainst your current Apple Developer keys.403 InvalidProviderToken= that key is revoked/unknown;BadEnvironmentKeyInToken= a Sandbox key used on Production (or vice-versa);BadDeviceToken= key is fine but the device token is for the wrong environment. pushes_send_push(withconfirmProductionSend: truefor production) to send a test, then re-runpushes_check_delivery.
Notes
PUSHES_API_TOKENis required.PUSHES_API_URLdefaults tohttps://api.pushes.cloud.- APNs private keys are never exposed through tools or resources.
- Production sends require
confirmProductionSend: true. - App deletion requires
confirm: "DELETE".
