@kstreak/mcp-server
Model Context Protocol server for KStreak — talk to your notes, Knowledge Ledger assets, tasks, and goals from Claude Desktop, ChatGPT, Cursor, Windsurf, or any other MCP-compatible AI client.
✨ Ask Claude: "What frameworks have I tracked in my Knowledge Ledger about strategy? Which one have I reused the most?" — and it just answers, using your live KStreak data.
What it does
Exposes 9 read-mostly tools:
kstreak_search_notes | Search your notes by keyword |
kstreak_list_notes | Recent notes, filter by tag/type |
kstreak_get_note | Read one note in full |
kstreak_search_assets | Search your Knowledge Ledger |
kstreak_get_asset | Read one asset + its usage log |
kstreak_log_asset_use | Log a re-use (requires assets:write) |
kstreak_get_portfolio | Portfolio snapshot with estimated hours saved + dollars earned |
kstreak_list_tasks | Your tasks by status |
kstreak_list_goals | Your goals by status |
All calls are user-scoped — the API key is bound to one KStreak account and never sees anyone else's data.
Setup — 60 seconds
1. Mint a personal KStreak API key
- Open KStreak → Settings → Developer
- Tap Create key and give it a name like "Claude Desktop"
- Copy the
sk_live_… token that appears once (KStreak never stores the plaintext — save it now)
2. Install the MCP server
Via npx (recommended — no install):
{
"command": "npx",
"args": ["-y", "@kstreak/mcp-server"]
}
Or globally:
npm install -g @kstreak/mcp-server
3. Add to your MCP client config
Claude Desktop — edit claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"kstreak": {
"command": "npx",
"args": ["-y", "@kstreak/mcp-server"],
"env": {
"KSTREAK_API_KEY": "sk_live_paste_your_key_here"
}
}
}
}
Restart Claude Desktop. In a new chat, type: "What tools do you have from KStreak?"
ChatGPT (via desktop app + MCP)
Settings → Beta Features → MCP → Add server:
Command: npx
Args: -y @kstreak/mcp-server
Env: KSTREAK_API_KEY=sk_live_paste_your_key_here
Cursor / Windsurf — edit ~/.cursor/mcp.json
{
"mcpServers": {
"kstreak": {
"command": "npx",
"args": ["-y", "@kstreak/mcp-server"],
"env": {
"KSTREAK_API_KEY": "sk_live_paste_your_key_here"
}
}
}
}
Configuration
KSTREAK_API_KEY | ✅ | — | Your sk_live_… key from Settings → Developer |
KSTREAK_BASE_URL | ❌ | https://api.kstreak.com | Override for self-hosted / staging |
Scopes
The MCP tools require these scopes on your API key (defaults grant all of them):
notes:read · search:read · tags:read — Note reads
assets:read · tasks:read · goals:read — Ledger, task & goal reads
assets:write — Only needed if you want the assistant to log asset re-uses on your behalf
If a tool call returns 403 insufficient_scope, mint a new key from Settings → Developer with the required scope box checked.
Privacy & security
- Your API key is stored only in your MCP client's config — KStreak never sees it after mint.
- KStreak stores a SHA-256 hash of your key, not the plaintext. A DB leak cannot be used to impersonate you.
- Every request is user-scoped — the key belongs to one KStreak account. You cannot query anyone else's data.
- Revoke keys anytime from Settings → Developer. Revocation is immediate.
Rate limits
Public API v1 is rate-limited to 60 requests / minute per key. In practice, MCP flows rarely exceed 5-10 requests per user turn, so you'll only hit this if a runaway script is misbehaving. When you do, the response has an X-RateLimit-Reset header and a Retry-After in seconds.
License
MIT © KStreak