Integrations
Connect Cursor to Knownbase.
One entry in mcp.json gives Cursor persistent project memory in chat, Composer and agent mode — shared with every other MCP client you use.
Add it to mcp.json
.cursor/mcp.json{
"mcpServers": {
"knownbase": {
"url": "https://knownbase.dev/mcp"
}
}
}
No headers required — Cursor opens a browser on first use so you can sign in and pick a workspace.
Step by step
- Create a workspace. Sign up free; no card required.
- Add the entry to
.cursor/mcp.jsonin your repo (or the global config, if you want it everywhere). - Check it loaded. Cursor's MCP settings should list
knownbaseand its tools. - Authorize by asking the agent to search project memory — the first tool call opens the browser.
- Add a rule so the agent searches and saves at sensible moments.
Using a static key
{
"mcpServers": {
"knownbase": {
"url": "https://knownbase.dev/mcp",
"headers": {
"Authorization": "Bearer kb_YOUR_KEY_HERE"
}
}
}
}
Generate the key in Settings → Workspace & MCP. It can be read-only, scoped to one project, and given an expiry.
The rule to add
Project memory is available via the `knownbase` MCP server. Search it (`search_notes`) before starting work on an unfamiliar area. Save (`upsert_note`) decisions, root causes, constraints and rejected approaches — anything durable that isn't visible in the code itself. Keep code in git; store the reasoning in memory.
What the agent can do once connected
search_notes— find notes by query, project, tag, status or last-modified date. Returns snippets and metadata rather than full bodies, so searching is cheap; passincludeBody:truewhen you want everything inline.get_note/get_notes— read one note in full, or up to 50 by id in one call, with resolved[[links]]and backlinks.upsert_note— create or update. Updates are partial: omitted fields are left alone, so fixing a tag can't blank the body.list_projects— every project with note counts by status.list_note_revisions/get_note_revision— how a note changed, and what it used to say.delete_note— soft delete; restorable from the dashboard trash.backup_project— full content for one project, returned inline.
Every call is scoped to the workspace the credential belongs to. A key can additionally be marked read-only, or restricted to a single project — in which case notes in other projects are invisible to it, not merely refused.
Related
- Persistent memory for Cursor, explained
- MCP memory servers explained
- Connect Claude Code to the same workspace
- Full MCP tool reference
FAQ
Where does mcp.json live?
Cursor reads a project-level MCP config from .cursor/mcp.json in your repository and a global one from your Cursor settings directory. Project-level is usually what you want for project memory, so the workspace travels with the repo.
Do I need an API key?
Not usually. Cursor supports OAuth for remote MCP servers, so the URL alone is enough and it opens a browser on first use. Add a bearer header if you'd rather use a static key.
Does this replace Cursor's rules?
No, they do different jobs. Rules are instructions applied to every relevant request and should stay short. Memory is accumulated knowledge searched on demand and can grow without limit. Use both.
Will it index my repository?
No. Knownbase has no access to your code. It stores only the notes your agent explicitly writes to it. Cursor's own indexing is unaffected and unrelated.
Give Cursor a memory that outlives the chat
One mcp.json entry. Free plan, no card required.