MCP server for Keepsake — the personal CRM that helps you nurture your relationships. Connect your AI assistant (Claude, Cursor, or any MCP-compatible client) to your Keepsake data: contacts, interactions, tasks, notes, daily journal, companies, and tags. Your AI assistant becomes a personal relationship manager. Ask it to: - "Who did I last talk to at Acme Corp?" - "Add a note that I ran into Sar
Add this skill
npx mdskills install nicolascroce/keepsake-mcpComprehensive personal CRM integration with 42 well-documented tools across all major data types
1# keepsake-mcp23MCP server for [Keepsake](https://keepsake.place) — the personal CRM that helps you nurture your relationships.45Connect your AI assistant (Claude, Cursor, or any MCP-compatible client) to your Keepsake data: contacts, interactions, tasks, notes, daily journal, companies, and tags.67## Why89Your AI assistant becomes a personal relationship manager. Ask it to:1011- "Who did I last talk to at Acme Corp?"12- "Add a note that I ran into Sarah at the conference"13- "What tasks are overdue?"14- "Show me everything related to the #house-project tag"15- "Create a follow-up task for my meeting with John next week"1617## Quick start1819### 1. Get your API key2021Sign up at [keepsake.place](https://keepsake.place), then go to **Account > API Keys** to generate one.2223### 2. Configure your MCP client2425#### Claude Desktop2627Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows):2829```json30{31 "mcpServers": {32 "keepsake": {33 "command": "npx",34 "args": ["-y", "keepsake-mcp"],35 "env": {36 "KEEPSAKE_API_KEY": "ksk_YOUR_API_KEY"37 }38 }39 }40}41```4243#### Claude Code4445```bash46claude mcp add keepsake -- npx -y keepsake-mcp47```4849Then set `KEEPSAKE_API_KEY` in your environment.5051#### Cursor5253Add to `.cursor/mcp.json` in your project:5455```json56{57 "mcpServers": {58 "keepsake": {59 "command": "npx",60 "args": ["-y", "keepsake-mcp"],61 "env": {62 "KEEPSAKE_API_KEY": "ksk_YOUR_API_KEY"63 }64 }65 }66}67```6869## Available tools (42)7071### Contacts72| Tool | Description |73|------|-------------|74| `list_contacts` | List all contacts with pagination and sorting |75| `get_contact` | Get a contact with recent interactions, tags, and stats |76| `create_contact` | Create a new contact |77| `update_contact` | Update contact fields |78| `delete_contact` | Permanently delete a contact |79| `search_contacts` | Accent-insensitive search by name, email, company |80| `get_contact_timeline` | Unified chronological feed of all items for a contact |8182### Companies83| Tool | Description |84|------|-------------|85| `list_companies` | List all companies |86| `get_company` | Get company with linked contacts and tags |87| `create_company` | Create a new company |88| `update_company` | Update company fields |89| `delete_company` | Soft-delete (or permanent delete) a company |90| `search_companies` | Accent-insensitive company search |9192### Entries (Interactions)93| Tool | Description |94|------|-------------|95| `list_entries` | List interactions (calls, emails, meetings, etc.) |96| `create_entry` | Log a new interaction — supports `#tag#` and `[[tag]]` syntax |97| `update_entry` | Update an interaction |98| `delete_entry` | Delete an interaction |99100### Tasks101| Tool | Description |102|------|-------------|103| `list_tasks` | List tasks with status/date filters |104| `create_task` | Create a task — supports `#tag#` and `[[tag]]` syntax |105| `update_task` | Update task fields |106| `delete_task` | Delete a task |107| `complete_task` | Mark as completed (auto-creates next occurrence for recurring tasks) |108| `uncomplete_task` | Mark as pending again |109| `snooze_task` | Reschedule to a new date |110| `get_tasks_today` | Today's tasks: overdue + due today + ASAP |111| `get_tasks_overdue` | Only overdue tasks |112113### Quick Notes114| Tool | Description |115|------|-------------|116| `list_notes` | List notes (filter by pinned/archived) |117| `create_note` | Create a note — supports `#tag#` and `[[tag]]` syntax |118| `update_note` | Update note content |119| `delete_note` | Soft-delete (or permanent) |120| `pin_note` | Pin to top |121| `archive_note` | Archive a note |122| `restore_note` | Restore a deleted/archived note |123124### Daily Journal125| Tool | Description |126|------|-------------|127| `list_days` | List journal entries by date range |128| `get_day` | Get a specific day's journal |129| `update_day` | Create or update a day's journal (upsert) |130131### Tags132| Tool | Description |133|------|-------------|134| `list_tags` | List all tags |135| `get_tag_items` | Get everything linked to a tag |136| `link_tag` | Link any entity to a tag |137| `unlink_tag` | Remove a tag link |138139### Utilities140| Tool | Description |141|------|-------------|142| `search` | Global search across all data types |143| `get_changelog` | Items modified since a timestamp (for sync) |144| `get_agent_instructions` | Best practices for AI agents |145146## Tool annotations147148All tools include MCP safety annotations:149150- **Read-only tools** (`list_*`, `get_*`, `search_*`): marked `readOnlyHint: true`151- **Create tools**: marked `destructiveHint: false`152- **Update tools**: marked `destructiveHint: false, idempotentHint: true`153- **Delete tools**: marked `destructiveHint: true, idempotentHint: true`154155## Environment variables156157| Variable | Required | Description |158|----------|----------|-------------|159| `KEEPSAKE_API_KEY` | Yes | Your API key (starts with `ksk_`) |160| `KEEPSAKE_API_URL` | No | Custom API URL (default: `https://app.keepsake.place/api/v1`) |161162## Rate limits16316460 requests per minute per API key. Rate limit headers are included in responses.165166## API documentation167168Full REST API docs: [keepsake.place/api](https://keepsake.place/en/api)169170## Privacy171172Keepsake MCP server only communicates with the Keepsake API (`app.keepsake.place`). It does not send data to any third-party service. Your data stays between your MCP client and your Keepsake account.173174All API calls are authenticated with your personal API key and scoped to your account via Row Level Security. No other user's data is accessible.175176See our privacy policy at [keepsake.place/privacy](https://keepsake.place/en/privacy).177178## License179180MIT181
Full transparency — inspect the skill content before installing.