# Quickstart

Give your agent memory that never silently expires. One server, any MCP-capable runtime.

> **Status note:** the hosted endpoint (`https://mcp.walkeep.io`) ships with M3. Today the server runs locally over stdio — same tools, same shapes, so everything below transfers unchanged when the URL goes live. Sections marked 🔜 apply to the hosted endpoint.

## Claude Code

```sh
# today (local, from the walkeep repo):
claude mcp add walkeep -- npx tsx "$PWD/packages/mcp/src/index.ts"

# 🔜 hosted:
claude mcp add walkeep --transport http https://mcp.walkeep.io \
  --header "Authorization: Bearer wk_live_YOURKEY"
```

Then inside a session, `/mcp` should list `walkeep`. Talk normally:

> "Store a memory that the deploy password rotation happens on Fridays, then show me its runway."

## Claude Desktop (config JSON)

```jsonc
// today (local):
{ "mcpServers": { "walkeep": {
    "command": "npx",
    "args": ["tsx", "/absolute/path/to/walkeep/packages/mcp/src/index.ts"]
} } }

// 🔜 hosted:
{ "mcpServers": { "walkeep": {
    "url": "https://mcp.walkeep.io",
    "headers": { "Authorization": "Bearer wk_live_YOURKEY" }
} } }
```

## Any other MCP client (Hermes, custom)

The server is standard MCP: stdio today, Streamable HTTP 🔜. Point your client at it, list tools, call them. See [the tool reference](/docs/tools) for exact schemas and error codes.

## Your first five minutes

1. **`store`** — content: anything worth remembering; `request_id`: any unique string. You get back `blob_id`, `blob_object_id`, `runway_epochs`, and what it cost.
2. **`recall`** — query something semantically related. Your memory comes back with its runway attached.
3. **`check_runway`** — the receipt: end epoch, renewals performed, and (once real renewals happen) the Sui tx digest of the last extension. Paste that digest into a chain explorer — you're now verifying your storage provider's promise cryptographically, which is not a sentence you can say about any other memory product.
4. **`store` again with the same `request_id`** — notice: same result, no second charge. That's the idempotency contract; build your retries on it.
5. Run out of credits someday → `INSUFFICIENT_BALANCE` → `top_up` → a checkout link for your human. The agent economy isn't *quite* here yet.

## Troubleshooting

- **Tools don't appear:** check `/mcp` (Claude Code) or the client logs; the stdio path must be absolute and `npx tsx` available (`npm install` in the repo first).
- **`RELAYER_UNAVAILABLE`:** the storage backend is down or unreachable — nothing was stored or billed; retry later with the same `request_id`.
- **`QUOTA_EXCEEDED`:** you hit a per-account cap (single-memory size, total bytes, or daily stores). The error's `data` says which. Memories are for context, not file hosting.

Questions → hello@walkeep.io · Security → security@walkeep.io