Metadata-Version: 2.5
Name: reminderit-mcp
Version: 0.3.0
Summary: MCP server for ReminderIt — schedule real phone-call and WhatsApp reminders from Claude, ChatGPT, Cursor and other AI assistants
Project-URL: Homepage, https://reminderit.com
Project-URL: Repository, https://github.com/Venkatnvs/ReminderIt
License: MIT
Keywords: ai,claude,mcp,reminderit,reminders
Requires-Python: >=3.11
Requires-Dist: httpx>=0.27.0
Requires-Dist: mcp[cli]<2.0.0,>=1.20.0
Requires-Dist: uvicorn>=0.30.0
Description-Content-Type: text/markdown

# ReminderIt MCP server

<!-- mcp-name: com.reminderit/reminderit -->

Let Claude, ChatGPT, Cursor or any MCP client schedule **real phone-call reminders** for you.
Say *"call me at 6:30am every weekday"* and your phone actually rings at 6:30 — in a
natural voice, with a WhatsApp message if you miss it.

Good for medication, wake-up calls, appointments, bill deadlines, and daily check-ins
on an elderly parent.

- **Hosted endpoint:** `https://mcp.reminderit.com/mcp` (streamable HTTP, OAuth sign-in)
- **Local package:** `pip install reminderit-mcp` (stdio, API key)
- **Category:** Productivity · Reminders · Scheduling · Health & wellness · Family care

## What it does

Gives Claude, ChatGPT, Cursor or any MCP client 25 tools:

**Reminders**

| Tool | What it does |
|---|---|
| `list_reminders` | All reminders with schedule, state and why any are paused |
| `get_reminder` | Full configuration of one reminder |
| `list_upcoming` | Next scheduled calls across all reminders, in time order |
| `create_reminder` | Schedule a new call — once or recurring, with optional voice |
| `update_reminder` | Change wording, times, timezone, start/end dates |
| `pause_reminder` / `resume_reminder` | Stop and restart calling, reversibly |
| `set_skip_dates` | Skip specific dates (holidays, travel) |
| `skip_next_occurrence` | Skip just the next call |
| `test_call` | Ring the phone immediately to check it works |
| `delete_reminder` | Remove permanently |

**Voice**

| Tool | What it does |
|---|---|
| `list_voices` | Browse available voices with language, accent and tier |
| `preview_voice` | Hear a sample before choosing |
| `get_voice_settings` / `set_voice_settings` | The account's default voice |
| `set_reminder_voice` | Give one reminder its own voice or language |
| `clear_reminder_voice` | Revert a reminder to the default voice |
| `set_reminder_channels` | WhatsApp / email fallback when a call is missed |

**Account & people**

| Tool | What it does |
|---|---|
| `whoami` | Which account is connected, its timezone, plan and quota |
| `get_usage` | Calls remaining, used, and the billing period |
| `get_recent_calls` | Delivery history — answered, missed, failed, blocked |
| `list_recipients` | Care-recipients who can receive reminders |
| `add_recipient` | Add someone else (triggers a consent call) |
| `resend_recipient_verification` | Re-send that consent call |
| `remove_recipient` | Remove a care-recipient |

## Connect (hosted — no install)

Use the connector URL `https://mcp.reminderit.com/mcp`. You'll be asked to sign in to
ReminderIt once; no API key needed.

| Client | How |
|---|---|
| **Claude** (web / desktop) | Settings → Connectors → *Add custom connector* → paste the URL |
| **ChatGPT** | Search *ReminderIt* in Plugins, or Settings → Plugins → developer mode → *Create* → paste the URL |
| **Claude Code** | `claude mcp add --transport http reminderit https://mcp.reminderit.com/mcp` |
| **Cursor** | `~/.cursor/mcp.json` → `{"mcpServers": {"reminderit": {"url": "https://mcp.reminderit.com/mcp"}}}` |
| **VS Code** | `code --add-mcp '{"name":"reminderit","type":"http","url":"https://mcp.reminderit.com/mcp"}'` |
| **Windsurf / others** | Add a remote (streamable HTTP) server with the same URL |

Then try:

> *"Remind me to take my blood pressure tablet at 9pm every day"*
> *"Call my mum at 10am on weekdays to check she's eaten"* (she gets a consent call first)
> *"What calls do I have coming up this week?"*
> *"Skip tomorrow's wake-up call — I'm on holiday"*
> *"Did my 8am reminder actually reach me?"*

## Safety built in

- **Real calls, careful defaults.** The server tells the assistant to resolve your
  timezone, read the schedule back, and flag anything between midnight and 6am.
- **Consent for other people.** Adding someone else triggers a verification call;
  nothing is delivered to them until they accept.
- **Honest tool annotations.** Every tool declares `readOnlyHint` / `destructiveHint` /
  `openWorldHint`, so clients can ask before deletes, test calls and outbound calls.
- **Scoped access.** Tools only see the signed-in ReminderIt account.

## Local install (stdio)

**1. Get an API key** — sign in at [reminderit.com](https://reminderit.com), open
**Settings → Developers → API keys**.

**2. Install**

```bash
pip install reminderit-mcp      # or: uvx reminderit-mcp
```

**3. Add to your client** (Claude Desktop shown — `claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "reminderit": {
      "command": "reminderit-mcp",
      "env": {
        "REMINDERIT_API_KEY": "rmt_your_key_here"
      }
    }
  }
}
```

Restart the client and ask away.

## Environment variables

| Variable | Required | Default |
|---|---|---|
| `REMINDERIT_API_KEY` | Yes (stdio) | — |
| `REMINDERIT_API_URL` | No | `https://api.reminderit.com` |
| `MCP_ALLOWED_ORIGINS` | No | `*` (any client) |
| `MCP_ALLOWED_HOSTS` | No | `mcp.reminderit.com,localhost,127.0.0.1` |
| `OPENAI_APPS_CHALLENGE` | No | — (token for OpenAI domain verification) |

In HTTP mode every request carries its own `Authorization: Bearer ...`, so
`REMINDERIT_API_KEY` is only needed for stdio. The `Host` allow-list guards against
DNS rebinding, so keep it restricted.

## HTTP mode (self-hosted)

```bash
reminderit-mcp http        # listens on :8080, override with PORT
```

Extra routes: `/health`, `/.well-known/oauth-protected-resource`,
`/.well-known/oauth-authorization-server`, `/.well-known/mcp/server-card.json`
(tool list for directory scanners) and `/.well-known/openai-apps-challenge`.

## Links

[Website](https://reminderit.com) · [Privacy](https://reminderit.com/legal/privacy) ·
[Terms](https://reminderit.com/legal/terms) · [Support](https://reminderit.com/contact) ·
[Status](https://status.reminderit.com)

License: MIT
