Labsco
MCP SERVER

SilverBullet MCP Server

by Ahmad-A0

Put a SilverBullet space behind a token-authenticated MCP endpoint, so an assistant can read and work with your notes over HTTP without exposing SilverBullet itself.

Note-Taking & Personal Knowledge Bases
Summary
Two separate tokens, which is the right shape for this.

`SB_AUTH_TOKEN` is the bridge's own credential into SilverBullet and `MCP_TOKEN` is what a client presents — so revoking an assistant's access does not mean rotating your note-taking setup. Note that the query-parameter form puts the token in the URL, where it tends to end up in logs and shell history; prefer the `Authorization` header where your client supports one.

What it is

A bridge between a SilverBullet instance and MCP clients. It runs beside your SilverBullet container under Docker Compose, holds the credential that talks to SilverBullet's API, and exposes your space to external applications as standardised MCP tools and resources behind its own token — so the client authenticates to the bridge, not to SilverBullet.

What you get
  • Your SilverBullet notes and data reachable through MCP tools and resources, rather than through SilverBullet's own API surface
  • A Streamable HTTP endpoint at `http://localhost:4000/mcp` for clients that can send custom headers
  • Two accepted authentication forms: an `Authorization: Bearer` header, or a `?token=` query parameter appended to the endpoint URL
  • A stdio path for clients that cannot do HTTP, by putting `mcp-remote` in front with `--transport http-only` and the token passed as a header
  • A Docker Compose setup that brings up both SilverBullet and the bridge together, with SilverBullet on `http://localhost:3000`
Requirements

Docker and Docker Compose, plus a running SilverBullet instance — `docker-compose up --build` starts both. Three settings live in `.env`: `SB_AUTH_TOKEN`, the shared token between SilverBullet and the bridge; `MCP_TOKEN`, the token your client presents; and optionally `SB_API_BASE_URL`, which defaults to `http://silverbullet:3000` under the provided Compose file. `PORT` moves the bridge off its default of `4000`. The package is `silverbullet-mcp-server` 1.1.0. Clients that only speak stdio need `mcp-remote`; on Cursor and Claude Desktop on Windows, keep the header argument free of spaces, as the README's `Authorization:Bearer ${MCP_SERVER_TOKEN}` form does.

Setup effort

One command — docker-compose up --build