For AI agents · MCP · live now

Ready when your agent is.

One sentence connects Kept · your notes, tasks, and calendar · to any MCP-capable agent. Sign-in happens in your browser. Your agent never sees a password.

Fetch https://kept.do/agent-setup/prompt.md and follow its instructions to connect Kept (my notes, tasks, and calendar) to this agent over MCP.

OAuth 2.1 + PKCEScoped & revocableDisconnect any time
How it works

Four calm steps

01Copy the prompt

One sentence, on your clipboard. It points your agent at the published setup instructions · nothing hidden, nothing to install first.

02Paste it to your agent

Your agent fetches the instructions and walks the setup with you · a single MCP server entry, shown to you before it's added.

03Sign in and approve

A browser opens; you type a 6-digit code from your inbox, then review the exact access your agent asked for before granting it. Your agent never sees a password and never approves for you · if you're new to Kept, that same step creates your account.

04Keep it across sessions

This is what makes your assistant reach for Kept without being asked. The connection already persists. This standing behavior does not, unless it lives in the agent's instructions. If your agent can edit files, it will offer to add the block itself. If it cannot, paste the block into its custom instructions, project instructions, or user preferences. To remove it, delete the same lines.

When you work with my Kept account:
- Every todo, follow-up, or commitment goes to kept_create_task. I have one list, and it lives in Kept.
- Meetings and dated events go to kept_create_event.
- Durable facts and preferences go to kept_remember.
- Before answering from guesses about my life or work, call kept_get_today and, for the topic, kept_recall.
- You are a guest in my memory. The full skill: https://kept.do/agent-setup/memory.md
Or set it up by hand

Your agent, your way

Every path below is the same three lines your agent would follow · inspectable, standard config. The server is https://mcp.kept.do/mcp for all of them.

Claude Code

claude plugin marketplace add keptdo/skills
claude plugin install kept@kept

Then, inside the session:

/reload-plugins --force

Install, then activate it in the same conversation with /reload-plugins --force and sign in with /mcp. The --force matters: without it the reload stops with a warning and nothing loads. Inside a session you can run the whole thing as /plugin marketplace add keptdo/skills, /plugin install kept@kept, /reload-plugins --force, /mcp. Never add Kept with claude mcp add on top of the plugin · a directly-added server named kept shadows the plugin's own. Added it that way already? Run claude mcp remove kept first.

Claude (claude.ai or Claude Desktop)

https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Kept&connectorUrl=https%3A%2F%2Fmcp.kept.do%2Fmcp

Adding it by hand? The server URL:

https://mcp.kept.do/mcp

Open the install link and Claude opens Add custom connector with the name and URL already filled · you review it and confirm. Prefer the menu? Pro and Max: Settings → Customize → Connectors → + → Add custom connector. Team and Enterprise: only an Owner can add it, from Organization settings → Connectors.

ChatGPT

https://mcp.kept.do/mcp

Settings → Security and login → enable Developer mode. Then Settings → Plugins → + → create a developer-mode app for the server URL. The + only appears once Developer mode is on. Pro, Plus, Business, Enterprise, and Education, on the web.

Codex

codex mcp add kept --url https://mcp.kept.do/mcp
codex mcp login kept

Cursor

In .cursor/mcp.json (or global ~/.cursor/mcp.json), add under "mcpServers":

"kept": { "url": "https://mcp.kept.do/mcp" }

GitHub Copilot (VS Code)

In .vscode/mcp.json, add under "servers":

"kept": { "type": "http", "url": "https://mcp.kept.do/mcp" }

Windsurf

In ~/.codeium/windsurf/mcp_config.json (note serverUrl), add under "mcpServers":

"kept": { "serverUrl": "https://mcp.kept.do/mcp" }

OpenCode

In ~/.config/opencode/opencode.jsonc, add under "mcp":

"kept": { "type": "remote", "url": "https://mcp.kept.do/mcp", "enabled": true, "oauth": {} }

Any other agent

https://mcp.kept.do/mcp

Point any MCP-capable client at the server URL: streamable HTTP, OAuth 2.1 with dynamic client registration. No pre-shared credentials.

What your agent can do

Sixty-two tools, eight quiet families

Everything the Kept apps can do, your agent can do on your behalf · within the scopes you approve, with every call audited.

Capture

Say it once, it's filed · thoughts, errands, ideas land where they belong.

Tasks

Create, complete, and reshape work · with subtasks and comments.

Notes

Keyword and semantic search, plus the knowledge graph · people, projects, decisions, threads.

Calendar

Read the week, move events, send invites, answer RSVPs.

Goals

Check progress and log the next move on what matters most.

Habits

Mark the habits kept and see what's holding.

Memory

Remember the durable facts you'd rather not repeat.

Daily planning

Read today's plan, reshape it, and start tomorrow already sorted.

Security, honestly

Built to be checked

A connection you can’t inspect or leave isn’t worth having. Here is exactly how this one works.

OAuth 2.1 with PKCE

Dynamic client registration, proof-key exchange, audience-bound tokens. No pre-shared credentials, ever.

Sign-in stays in your browser

You enter your email and a one-time code on Kept's page · agents and config files never hold a password or API key.

Tokens are short-lived

Access tokens expire in one hour. Refresh tokens rotate on every use, and reuse is detected and revoked.

Every call is checked

Scope-checked against exactly what you approved, rate-limited, and audited · a complete log of what was done.

You see the exact access, and nothing deletes

Your agent asks for a specific set of permissions and you review that exact set before granting it · agents that ask for nothing specific get read-only, and you choose. No tool can delete anything; removals are reversible soft-archives.

Disconnect in one place

Kept → Settings → AI Agents → Disconnect. Immediate, and it cascades to every token that agent holds.

FAQ

Questions, answered

Is this safe?

Sign-in is OAuth 2.1 in your own browser, with a one-time email code · your agent never sees a password or API key, and config files only ever contain the server URL. Access tokens expire in an hour, refresh tokens rotate, and reuse is detected and revoked.

What can my agent actually see?

Only what you approve, and you see the exact list before granting it. Most agents · Claude Code, ChatGPT, Codex · ask for capture plus read and write across your tasks, notes, calendar, habits, goals, and memory, along with your daily plan and profile. Agents that ask for nothing specific get capture plus read-only, and you're offered the choice. No tool can delete anything; removals are reversible soft-archives. Every call is scope-checked, rate-limited, and audited.

What if I don't have Kept yet?

The sign-in step creates your account · enter your email, type the 6-digit code, done. Nothing else to install, no card required.

Does it cost anything?

No. Connecting an agent is part of Kept, and Kept is free to start. Founding members get 2 years of Pro, free.

How do I disconnect an agent?

Kept → Settings → AI Agents → Connected agents → Disconnect. Revocation is immediate and cascades to every token that agent holds · there's nothing to hunt down in config files.

My agent connected, but it never saves anything unless I ask

The connection persists. The standing behavior does not, until it lives in the agent's instructions. After you connect, agents that can edit files will offer to add a short Kept block to their own instructions file. Claude on the web and ChatGPT will give you a block to paste into custom instructions, project instructions, or user preferences. That is what makes the assistant reach for Kept without being asked. Remove it by deleting the same lines.

Which agents work?

Claude Code, Claude on claude.ai and Claude Desktop, ChatGPT, Codex, Cursor, GitHub Copilot, Windsurf, OpenCode · and any other MCP-capable client pointed at https://mcp.kept.do/mcp.