MCP server

Kept ships an MCP (Model Context Protocol) server called kept-vault-server. Any MCP-aware client — Claude Desktop, Cursor, Cline, or your own — can connect to it and read, write, and search your vault from inside that client's chat.

What it exposes

The server provides these MCP tools:

ToolPurpose
vault_listList conversations, optionally filtered by platform / date / topic
vault_readRead a single conversation by path
vault_searchFull-text search across the archive
vault_recallSemantic search (Smart Recall)
vault_writeCreate a new note in the vault (e.g., to save a synthesis the model just produced)
vault_topicsList topics with their conversation counts

It also publishes Claude Code skills under mcp/skills/ — small instructions that teach the model how to use the tools effectively (e.g., "when the user asks 'what did I decide about X', use vault_recall rather than vault_search").

Auto-install

The fastest way to register the server with whatever MCP clients you have:

curl -fsSL https://kept.work/scripts/install-kept-mcp.sh | bash

Or, if you already cloned the repo:

cd kept.work
./scripts/install-kept-mcp.sh

This:

  1. Detects which MCP clients you have on PATH (claude, openclaw)
  2. npm installs and builds the mcp/ package
  3. Registers the server with each detected client at user scope

Flags:

./scripts/install-kept-mcp.sh --claudecode      # Only register with Claude Code
./scripts/install-kept-mcp.sh --openclaw        # Only register with OpenClaw
./scripts/install-kept-mcp.sh --no-build        # Skip npm install + build (assume dist/ exists)
./scripts/install-kept-mcp.sh --dir <repo-path> # Use a specific clone of the repo

Windows: same flags via install-kept-mcp.ps1.

Manual registration

If your MCP client isn't auto-detected, register manually.

Claude Code

cd kept.work/mcp
npm install && npm run build

claude mcp add kept-vault \
  --scope user \
  --command "node $(pwd)/bin/kept-vault-server.js"

Claude Desktop

Edit your claude_desktop_config.json (location varies by OS — see Claude Desktop's docs). Add:

{
  "mcpServers": {
    "kept-vault": {
      "command": "node",
      "args": ["/absolute/path/to/kept.work/mcp/bin/kept-vault-server.js"]
    }
  }
}

Restart Claude Desktop.

Cursor / Cline / Other

Most MCP clients accept a command + args pattern similar to the Claude Desktop config. Point them at node + the absolute path to mcp/bin/kept-vault-server.js.

As a Claude Code plugin

The repo also publishes a Claude Code plugin marketplace manifest (.claude-plugin/marketplace.json). If you have Claude Code's plugin features enabled, you can install kept-vault as a plugin instead of registering manually:

# Inside Claude Code
/plugin install kept-vault

This pulls the plugin from the repo and registers the MCP server, plus installs the bundled skills under mcp/skills/.

Verifying

# Claude Code
claude mcp list
# Should show: kept-vault: node /path/to/kept-vault-server.js

# In any MCP client, the model should now have vault_list, vault_search, etc. as tool calls.

Open any MCP-aware chat and try: "List my conversations from this week." The model should call vault_list and return the matches.

Configuration

The server reads its vault location from the KEPT_VAULT_DIR environment variable, defaulting to ~/.kept/vault. To point an MCP client at a different vault:

{
  "mcpServers": {
    "kept-vault": {
      "command": "node",
      "args": ["/path/to/kept-vault-server.js"],
      "env": {
        "KEPT_VAULT_DIR": "/path/to/alternative/vault"
      }
    }
  }
}

This is useful for keeping separate vaults (work / personal) and pointing different clients at different ones.