io.github.KiMiGuel/claude-desktop-bridge
Shared local knowledge vault MCP server for Claude Desktop (Chat + Code)
Open source Open in the app JSON README (API)
About
Shared local knowledge vault MCP server for Claude Desktop (Chat + Code)
Details
- Kind
- MCP servers
- Topic
- Security & identity
- Publisher
- kimiguel
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 1.0.0
- Last push
- 2026-09-08T11:31:26Z
- Repository state
- ativo
- Language
- TypeScript
- License
- MIT
- Added
- 2026-09-08 12:38:16
- Updated
- 2026-09-08 12:38:16
- Origin id
io.github.KiMiGuel/claude-desktop-bridge
README
# Claude-Desktop-Bridge
> Built for **Claude Desktop** users. If you only use the standalone `claude` CLI or Claude.ai in a browser, this isn't for you — skip to [Where this works](#where-this-works) for the one exception.
## The problem
Claude Desktop's Chat tab and Code tab live in the same app, one click apart. But they don't share a single byte of context.
Ask Claude something in Chat, switch to Code to actually build it — Claude in Code has no memory the conversation ever happened. Spend an hour in Code working through a decision, hop to Chat to think out loud about what's next — Chat starts from zero. Two tabs, one window, and no connection between them at all.
So close, yet so far. The workaround is re-explaining yourself every time you switch tabs — burning tokens and patience re-deriving context that existed ten seconds ago, one tab over.
## The solution
Claude-Desktop-Bridge is a small local MCP server, installed once into Claude Desktop, that gives Chat and Code a shared, persistent knowledge vault. Save a note while working in Code, read it back in Chat five minutes later. Research something in Chat, recall it in Code without repeating yourself.
It's deliberately not a context dump. Instead of pasting whole documents or files into the conversation, Claude gets five narrow tools — save, retrieve, search, update, delete — so it pulls in only what's actually relevant, on demand, instead of loading everything every time.
| Tool | Description |
|---|---|
| `save_note` | Save a new note (title, content, optional tags, optional project) |
| `get_notes` | Retrieve notes by id, tags, or project, most recent first |
| `search_notes` | Full-text search over note titles and content |
| `update_note` | Update an existing note's title, content, tags, or project |
| `delete_note` | Permanently delete a note by id |
Notes can be tagged with an optional `project` field, so if you work across multiple codebases, the vault doesn't turn into one undifferentiated pile — each project's notes can be filtered independently.
## Install
1. Download `claude-desktop-bridge.mcpb` from [Releases](https://github.com/KiMiGuel/Indepentest-CDB/releases/latest).
2. Drag it onto the Claude Desktop window — or Settings → Extensions → Advanced settings → Install Extension…
3. That's it. No configuration screen, nothing to fill in. The vault lives at `~/.claude-bridge/vault.db`.
## Use it
Once installed, just talk normally in either tab — Claude calls `save_note`, `get_notes`, `search_notes`, etc. on its own when it's useful, the same way it uses any other tool. You don't invoke anything manually.
A few things worth knowing:
- **It's proactive, not automatic-automatic.** Claude decides when something's worth saving or worth searching for — it's not logging every message. If you want something remembered, it helps to say so ("remember this for later").
- **Tag by project if you work across multiple codebases.** Ask Claude to filter by `project` when recalling notes, so a search in one repo's context doesn't surface notes from an unrelated one.
- **Chat tab "Projects" (claude.ai-style, with Custom Instructions) don't auto-link to a Code tab folder.** There's no protocol-level way for Chat to know which codebase it corresponds to. If you want a Chat Project to stay in sync with a specific repo's notes, say so explicitly in that Project's Custom Instructions — e.g. "This project corresponds to the `my-repo` codebase; use Claude-Desktop-Bridge with `project: 'my-repo'`."
## Where this works
| Surface | Works out of the box? |
|---|---|
| Claude Desktop — Chat tab | ✅ Yes |
| Claude Desktop — Code tab (local sessions) | ✅ Yes |
| Standalone `claude` CLI (terminal, Desktop not required) | ⚠️ Needs one extra step |
| Claude Code on the Web / cloud sessions | ❌ Not available (local-only server, no filesystem/network access from the cloud) |
Chat and the Desktop Code tab both connect through the same install automatically — nothing extra to configure there.
The **standalone terminal CLI** (`claude` run directly, without the Desktop app open) doesn't read Desktop's extension config, so it won't see Claude-Desktop-Bridge unless you register it explicitly:
```bash
# macOS or WSL — imports every MCP server Desktop has configured
claude mcp add-from-claude-desktop
# Any platform, including Linux — register Claude-Desktop-Bridge directly,
# pointed at this repo's built server:
claude mcp add --scope user claude-desktop-bridge -- node /path/to/claude-desktop-bridge/server/index.js
```
`--scope user` makes it available in every terminal project, not just the one you ran the command from. Once added, `claude mcp list` should show `claude-desktop-bridge` connected — and it reads from the same `~/.claude-bridge/vault.db` the Desktop extension uses, so notes saved from the terminal and notes saved from Desktop are the same vault.
> **Want notes to cost fewer tokens?** [cdb-companion](https://github.com/KiMiGuel/indepentest-skills/tree/main/cdb-companion) is a small companion skill that compresses content before it hits `save_note`/`update_note` — drop it alongside this extension for a leaner vault.
## Building from source
```bash
npm install
npm run build # bundles src/index.ts -> server/index.js
npm run pack # produces claude-desktop-bridge.mcpb
```
Requires Node.js 22+ (for the built-in `node:sqlite` module). Claude Desktop's own built-in Node.js runtime is used automatically when the installed extension runs — end users don't need Node installed separately.
## Privacy Policy
Claude-Desktop-Bridge runs entirely on your own machine and makes no network requests.
- **Data collection**: Claude-Desktop-Bridge does not collect any data. No analytics, telemetry, or crash reporting of any kind.
- **Usage and storage**: Notes you save (titles, content, tags, and project labels) are stored exclusively in a local SQLite database at `~/.claude-bridge/vault.db` on the device where the extension is installed.
- **Third-party sharing**: No data is ever transmitted anywhere. Claude-Desktop-Bridge has no server component and makes no outbound network connections.
- **Data retention**: Notes persist in the local database until you delete them (via the `delete_note` tool) or delete the database file yourself. Uninstalling the extension does not delete the database file.
- **Contact**: For questions about this policy, open an issue on this repository.
## License
MIT