What is MCP?
The Model Context Protocol (MCP) is an open standard published by Anthropic in 2024 that defines how AI assistants communicate with external tools and data sources. Think of it as the "USB port for AI", a universal interface that lets any MCP-compatible AI client connect to any MCP-compatible data source, using a standard protocol.
Before MCP, connecting an AI to your tools required custom integrations: writing specific API calls for each app, handling authentication separately, and trusting that the AI provider's cloud infrastructure was handling your data correctly. MCP replaces all of that with a single standard.
In practical terms: if your AI client supports MCP and your app exposes an MCP server, the AI can read from and write to your app's data using natural language instructions from you.
How It Actually Works
MCP uses a simple communication pattern:
- You configure your AI client (Claude Desktop, Cursor, etc.) to connect to a local MCP server by providing a command and path in the client's config file
- The AI client starts your MCP server as a subprocess, communicating via
stdio(standard input/output, no network port exposed to the internet) - The MCP server exposes a set of "tools", functions the AI can call, like
tasks:list,tasks:create,notes:search - The AI decides when to use these tools based on your natural language instructions
- The tools execute locally on your machine, with results returned to the AI for incorporation into its response
For Keepra, this looks like:
You: "Claude, add a task called 'Review PR #47' due tomorrow with high priority"
Claude: [calls tasks:create({
title: "Review PR #47",
dueDate: "2026-06-15",
priority: "high"
})]
Claude: "Done, I've added 'Review PR #47' to your Tasks in Keepra, due tomorrow, marked as high priority."
Keepra's 14 MCP Tools
| Tool Name | Module | What It Does | Scope |
|---|---|---|---|
tasks:list | Tasks | List tasks (filter by due date, priority, list) | Read |
tasks:create | Tasks | Create a new task with full metadata | Write |
tasks:update | Tasks | Update title, due date, priority, completion | Write |
notes:list | Notes | List notes with preview | Read |
notes:read | Notes | Read full Markdown content of a note | Read |
notes:create | Notes | Create a new Markdown note | Write |
notes:update | Notes | Append to or overwrite a note | Write |
links:list | Links | List bookmarks (filter by category, tag) | Read |
links:create | Links | Save a new bookmark with metadata | Write |
contacts:list | Contacts | List contacts with search | Read |
contacts:read | Contacts | Get full contact details (phones, emails, links) | Read |
contacts:create | Contacts | Create a new contact entry | Write |
vault:read_item | Vault | Read a specific vault item (requires per-item grant) | Read* |
vault:list_titles | Vault | List vault item titles only (no passwords) | Read |
*Vault items require explicit per-item access grants in Settings → AI Access. The AI cannot read vault credentials without your specific authorization for each item.
Why Local-Only Matters
Most AI integrations work by sending your data to the AI provider's cloud infrastructure. When you ask ChatGPT or Claude to "read my notes and summarize them," the notes travel over the network to a server, where they're processed, temporarily stored in context, and potentially used in ways you can't audit.
Keepra's MCP runs differently: the server process starts on your machine, the tools execute on your machine, and the data never leaves your machine. The AI client sends only the tool call and its parameters, structured JSON describing what action to take. The response is just the result. Your raw data never traverses the network to Anthropic, OpenAI, or anyone else.
MCP Security Model
Keepra's MCP Connector uses several security layers:
- Bearer token authentication: Each MCP key you generate in Settings → AI Access has a unique token. The AI client must present this token with every request.
- Per-tool scopes: When generating a key, you choose which tools it has access to. A read-only Claude Desktop key cannot create tasks or write notes.
- Vault locked by default: No MCP key has Vault access unless you explicitly grant it, and even then, only for specific individual items you approve.
- localhost only: The MCP HTTP endpoint is bound to
127.0.0.1. External network requests cannot reach it.
Which AI Clients Support MCP?
- Claude Desktop: full MCP support; add Keepra in
claude_desktop_config.json - Claude Code (CLI): MCP support via config; Keepra works in terminal workflows
- Cursor IDE: MCP support via
.cursor/mcp.json; query Keepra from your editor - ChatGPT: MCP support via Plugins; support coming
- Any MCP-compatible client: the protocol is open; any client can connect
For step-by-step setup instructions, see the Claude + Keepra setup guide or the MCP section in Keepra's Help docs.
MCP vs Other AI Integrations
| Integration | Data Leaves Device? | Offline? | Scoped Permissions? | Open Standard? |
|---|---|---|---|---|
| Notion AI | ✗ Yes | ✗ No | ✗ Full workspace | ✗ Proprietary |
| ChatGPT Plugins | ⚬ API calls | ✗ No | ⚬ Partial | ✓ OpenAPI |
| GitHub Copilot | ✗ Yes (code) | ✗ No | ✗ Full repo | ✗ Proprietary |
| Keepra MCP | ✓ No | ✓ Yes | ✓ Per-tool + per-item | ✓ MCP open standard |