Fossel is a local-first MCP server. Your editor's AI just knows the conventions, bug fixes, reviewer patterns, and architectural decisions for every repo you contribute to. No cloud, no accounts, your data never leaves your laptop.
localStorage; 401 redirects to /loginhttp://localhost:5000/apinpm run ci before mergeEvery new chat starts from zero. You re-explain the conventions, the reviewer preferences, the bug you already solved last week. Now multiply that by every repo you contribute to.
remember this. Fossel infers type, tags, and repo.Fossel sits in ~/.fossel/memory.db. Migrations run on startup. Every tool is non-breaking; the simple ones are enough for 80% of cases.
One npx command sets up the local database, prints the MCP config snippet for Cursor and Claude Desktop, and runs migrations.
The remember tool auto-infers memory_type, generates 2–5 tags, resolves the repo, and merges near-duplicates instead of creating a second row.
get_context returns pinned first, then recent, then FTS matches when a query is provided. Default limit is tuned for direct LLM injection.
dedupe_repo merges near-duplicates with a changelog audit trail. fossel doctor --fix cleans repo-key sprawl, stale alias mentions, and exact duplicates in one shot.
Fossel auto-classifies into one of six types so retrieval can group by intent. Override the inferred type when you want — the tools still accept explicit values.
Uses Blaze, not React. Components live in client/. Avoid TypeScript generics in PR descriptions.
Reviewer A wants PRs under 200 lines. Reviewer B asks for edge-case tests. Don't merge without both.
Subscription calls in the toolbar fired 3× on re-render without debouncing. Fixed with a 200ms delay.
Decided NOT to use Prisma here — too much overhead for the read-heavy query pattern. Sticking with raw SQL.
Issue #892 — tried fixing in RoomHeader.js but conflicts with the i18n module. Try Toolbar.js next.
Notes that don't fit cleanly anywhere else still get FTS-searchable, repo-scoped, and pinnable.
Node.js 18+ is the only requirement. Data lives in ~/.fossel/memory.db (override with FOSSEL_DB_PATH). Set FOSSEL_WORKSPACE in your MCP config to pin Fossel to the right project root.
No global install needed. Detects your canonical repo key, prints copy-paste MCP config, and inserts a starter memory if the DB is empty.
Drop the JSON into Cursor's ~/.cursor/mcp.json or Claude Desktop settings. Restart the client once.
Ask "what does Fossel remember about auth here?" or say "remember: API base is /api/v2." No type or tags required.
Run npx fossel doctor any time to spot duplicate clusters, repo-key sprawl, or stale alias mentions. Add --fix to auto-clean.
$ npx -y fossel init # Canonical repo key: 7vignesh/fossel # source: git-remote # git remote: https://github.com/7vignesh/fossel.git # # MCP config printed below — paste into your client. # DB path: ~/.fossel/memory.db
{
"mcpServers": {
"fossel": {
"command": "npx",
"args": ["-y", "fossel"],
"env": {
"FOSSEL_WORKSPACE": "${workspaceFolder}"
}
}
}
}
{
"mcpServers": {
"fossel": {
"command": "npx",
"args": ["-y", "fossel"],
"env": {
"FOSSEL_WORKSPACE": "/path/to/your/project"
}
}
}
}
# Just paste this into Cursor or Claude.
remember: API base URL is /api/v2
and 401 redirects to /login
remember and get_context are all you need. doctor keeps things clean. Advanced tools are documented in the README.
Save a memory using only a natural-language note. Fossel infers the memory type, generates 2–5 tags, resolves the repo, and merges near-duplicates instead of storing them twice.
Works in Cursor, Claude Desktop, and any stdio MCP client. Full tool reference →
Free, open-source, fully local. Your memories never leave your machine.