# Connecting Skimless to Cursor or Claude Desktop via MCP

Your Skimless account exposes a personal MCP (Model Context Protocol) server
at a URL like:

```
https://skimless.com/api/mcp/<signed-token>
```

The URL is private. Anyone with it can query your knowledge base, read your
brief, and generate Context Packs on your behalf.

## Tools

- `search_kb(query, limit?, since_days?)` - semantic search over your knowledge
  base. Returns the most relevant items (url, title, excerpt, similarity).
- `latest_brief()` - returns your most recent ready daily brief as Markdown.
- `generate_pack(prompt)` - generates a Context Pack (six markdown files plus
  manifest) from your knowledge base. Returns the files inline; the pack is
  also saved to your account.

## Access and privacy

MCP access is available on paid plans. The signed URL is the credential: keep it
out of public repos, screenshots, shared logs, and published docs. A client with
the URL can search your Skimless knowledge base, read your latest brief, and
generate Context Packs.

Skimless validates each request against the token and your current plan before
running a tool. Rotate the token from Settings -> MCP if it is exposed.

## Protocol

The server speaks JSON-RPC 2.0 over HTTP POST and supports the MCP protocol
version `2025-06-18`. It implements:

- `initialize`
- `notifications/initialized`
- `tools/list`
- `tools/call`
- `ping`

## Cursor

Edit `~/.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "skimless": {
      "url": "https://skimless.com/api/mcp/<your-token>"
    }
  }
}
```

Restart Cursor. Open Cursor Chat and the tools should appear under the MCP icon.

## Claude Desktop

Edit `~/Library/Application Support/Claude/claude_desktop_config.json` on macOS
(or the equivalent path on Windows/Linux):

```json
{
  "mcpServers": {
    "skimless": {
      "type": "http",
      "url": "https://skimless.com/api/mcp/<your-token>"
    }
  }
}
```

Restart Claude Desktop.

## Revoking

If your URL leaks, go to Settings -> MCP, rotate the token, and update your
client config. Old tokens stop working immediately once revoked.

## Troubleshooting

- 401 "invalid token": rotate the token in settings and retry.
- 403 "MCP access requires a paid plan": upgrade to a plan that includes MCP
  access, then retry.
- Empty `latest_brief`: your first brief is generated once ingestion has been
  running for 24 hours. Add more sources and wait.
- Slow `generate_pack`: first call cold-starts the LLM. 20-60s is normal.
