{
  "markdown": "# @pingfyr/mcp\n\nConnect your AI assistant to Pingfyr via MCP. Manage reminders through natural conversation.\n\nOne API call. Seven channels. Your reminders fire automatically — no external cron, no polling, no babysitting.\n\nAvailable as a local npm package or as a hosted server at `mcp.pingfyr.com` — no local install required.\n\n## Installation\n\n```bash\nnpm install -g @pingfyr/mcp\n```\n\nOr run directly with npx:\n\n```bash\nnpx @pingfyr/mcp\n```\n\n## Configuration\n\n### Local Setup (stdio)\n\nRun the MCP server as a local process. Requires Node.js 18+.\n\nAdd to your MCP client config (Claude Code, Cursor, Windsurf, etc.):\n\n```json\n{\n  \"mcpServers\": {\n    \"pingfyr\": {\n      \"command\": \"pingfyr-mcp\",\n      \"env\": {\n        \"PINGFYR_API_KEY\": \"rm_your_api_key\"\n      }\n    }\n  }\n}\n```\n\nSign up at [pingfyr.com](https://pingfyr.com) to get your API key.\n\n### Hosted Setup\n\nNo install required. Connect directly to `mcp.pingfyr.com` using HTTP transport. Your API key is sent as a Bearer token per request.\n\n```json\n{\n  \"mcpServers\": {\n    \"pingfyr\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.pingfyr.com\",\n      \"headers\": {\n        \"Authorization\": \"Bearer rm_your_api_key\"\n      }\n    }\n  }\n}\n```\n\nHTTP transport is supported by Claude Code and Cursor. Claude Desktop requires the local (stdio) option above.\n\n## Available Tools\n\n| Tool              | Description                                                                                        |\n| ----------------- | -------------------------------------------------------------------------------------------------- |\n| `create_reminder` | Schedule a new reminder via email, webhook, Slack, Discord, Telegram, OpenClaw, or Google Calendar |\n| `list_reminders`  | List all reminders with optional filtering by status, limit, and offset                            |\n| `update_reminder` | Update a pending reminder (title, body, fire_at, channel, recipients, repeat, timezone)            |\n| `cancel_reminder` | Cancel a pending reminder                                                                          |\n\n### `create_reminder` Parameters\n\n| Parameter         | Required | Type     | Description                                                                       |\n| ----------------- | -------- | -------- | --------------------------------------------------------------------------------- |\n| `title`           | Yes      | string   | Title of the reminder (max 200 chars)                                             |\n| `fire_at`         | Yes      | string   | When to fire (ISO 8601 datetime, must be in the future)                           |\n| `channel`         | Yes      | enum     | `email`, `webhook`, `slack`, `discord`, `telegram`, `openclaw`, `google_calendar` |\n| `recipients`      | Yes      | string[] | Delivery addresses (see Channels table for format per channel)                    |\n| `body`            | No       | string   | Body/description of the reminder (max 2000 chars)                                 |\n| `repeat`          | No       | enum     | `daily`, `weekly`, `monthly`, `custom`                                            |\n| `cron_expression` | No       | string   | Cron expression (required when `repeat` is `custom`)                              |\n| `timezone`        | No       | string   | IANA timezone for recurring reminders (default: UTC)                              |\n| `metadata`        | No       | object   | Arbitrary key-value metadata to attach to the reminder                            |\n\n### `list_reminders` Parameters\n\n| Parameter | Required | Type   | Description                                                 |\n| --------- | -------- | ------ | ----------------------------------------------------------- |\n| `status`  | No       | enum   | `pending`, `processing`, `delivered`, `failed`, `cancelled` |\n| `limit`   | No       | number | Max results (default: 50, max: 100)                         |\n| `offset`  | No       | number | Pagination offset (default: 0)                              |\n\n### `update_reminder` Parameters\n\n| Parameter    | Required | Type     | Description                          |\n| ------------ | -------- | -------- | ------------------------------------ |\n| `id`         | Yes      | string   | UUID of the reminder to update       |\n| `title`      | No       | string   | New title                            |\n| `body`       | No       | string   | New body                             |\n| `fire_at`    | No       | string   | New fire time (ISO 8601)             |\n| `channel`    | No       | enum     | New channel                          |\n| `recipients` | No       | string[] | Updated delivery addresses           |\n| `repeat`     | No       | enum     | New repeat schedule (null to remove) |\n| `timezone`   | No       | string   | New timezone                         |\n\n## Examples\n\n### Email reminder (multi-recipient)\n\n```json\n{\n  \"title\": \"Project deadline reminder\",\n  \"fire_at\": \"2026-12-15T08:00:00Z\",\n  \"channel\": \"email\",\n  \"recipients\": [\"alice@example.com\", \"bob@example.com\"]\n}\n```\n\n### Slack reminder\n\n```json\n{\n  \"title\": \"Weekly team sync reminder\",\n  \"fire_at\": \"2026-12-01T09:00:00Z\",\n  \"channel\": \"slack\",\n  \"recipients\": [\"https://hooks.slack.com/services/T.../B.../xxx\"],\n  \"repeat\": \"weekly\",\n  \"timezone\": \"America/New_York\"\n}\n```\n\n### Discord notification\n\n```json\n{\n  \"title\": \"Deploy notification\",\n  \"fire_at\": \"2026-12-01T17:00:00Z\",\n  \"channel\": \"discord\",\n  \"recipients\": [\"https://discord.com/api/webhooks/xxx/yyy\"]\n}\n```\n\n### Telegram reminder\n\n```json\n{\n  \"title\": \"Daily standup\",\n  \"fire_at\": \"2026-12-01T09:00:00Z\",\n  \"channel\": \"telegram\",\n  \"recipients\": [\"bot:your-bot-uuid:your-chat-id\"],\n  \"repeat\": \"daily\",\n  \"timezone\": \"Europe/Berlin\"\n}\n```\n\nFind your `bot_id` in Settings → Telegram Bots on the Pingfyr dashboard.\n\n### OpenClaw notification\n\n```json\n{\n  \"title\": \"Agent task complete\",\n  \"fire_at\": \"2026-12-01T10:00:00Z\",\n  \"channel\": \"openclaw\",\n  \"recipients\": [\"https://openclaw.example.com/webhook\"]\n}\n```\n\n### Google Calendar event (Starter+ plan required)\n\nCreates a Google Calendar event on the user's connected Google account.\nConnect your account at Settings → Google Calendar in the Pingfyr dashboard.\n\n```json\n{\n  \"title\": \"Team sync\",\n  \"fire_at\": \"2026-12-01T09:00:00Z\",\n  \"channel\": \"google_calendar\",\n  \"recipients\": [\"google\"]\n}\n```\n\n### Webhook (agent wake-up)\n\n```json\n{\n  \"title\": \"Check for new orders\",\n  \"fire_at\": \"2026-12-01T10:00:00Z\",\n  \"channel\": \"webhook\",\n  \"recipients\": [\"https://your-agent.example.com/webhook\"],\n  \"repeat\": \"daily\"\n}\n```\n\n### Custom cron schedule\n\n```json\n{\n  \"title\": \"Weekday morning check\",\n  \"fire_at\": \"2026-12-01T09:00:00Z\",\n  \"channel\": \"webhook\",\n  \"recipients\": [\"https://your-agent.example.com/webhook\"],\n  \"repeat\": \"custom\",\n  \"cron_expression\": \"0 9 * * MON-FRI\",\n  \"timezone\": \"America/New_York\"\n}\n```\n\n## Channels\n\n| Channel           | `recipients` format        | Description                                                                       |\n| ----------------- | -------------------------- | --------------------------------------------------------------------------------- |\n| `email`           | Email addresses            | Deliver to one or more email inboxes (Starter+ plan required)                     |\n| `webhook`         | HTTP/HTTPS URL             | POST request to wake up agents                                                    |\n| `slack`           | Slack Incoming Webhook URL | Post message to a Slack channel                                                   |\n| `discord`         | Discord Webhook URL        | Post message to a Discord channel                                                 |\n| `telegram`        | `bot:<bot_id>:<chat_id>`   | Send message via Telegram bot (register bot in Settings → Telegram Bots)          |\n| `openclaw`        | OpenClaw URL               | POST request to an OpenClaw endpoint                                              |\n| `google_calendar` | `google` (literal)         | Create a Google Calendar event on your connected account (Starter+ plan required) |\n\n## Plans\n\n| Plan       | Price   | Reminders/month | Recipients/month |\n| ---------- | ------- | --------------- | ---------------- |\n| Free       | $0      | 50              | 100              |\n| Starter    | $59/mo  | 10,000          | 20,000           |\n| Pro        | $269/mo | 50,000          | 100,000          |\n| Enterprise | Contact | Unlimited       | Unlimited        |\n\nFree plan includes Webhook, Slack, Discord, Telegram, and OpenClaw channels. Email and Google Calendar require a paid plan (Starter+).\n\n## Environment Variables\n\n| Variable          | Required | Description                                   |\n| ----------------- | -------- | --------------------------------------------- |\n| `PINGFYR_API_KEY` | Yes      | Your Pingfyr API key                          |\n| `PINGFYR_API_URL` | No       | API base URL (default: `https://pingfyr.com`) |\n\n## License\n\nMIT\n",
  "bytes": 9002,
  "sha": "e43dc0a01e3a82201eab692873bc4e21129b8f828d4e5dcbc510860d9dd98c25",
  "repo_slug": "pingfyr/mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_com_pingfyr_pingfyr_6d1850c1/readme"
}