SilverBullet API

v1.0.0

MCP server for SilverBullet note-taking app - read, write, search, and manage markdown pages

1· 1.7k·0 current·0 all-time
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
The name, description, SKILL.md examples, and server.py tools all map to SilverBullet REST endpoints (.fs, .ping, .config). Required binaries and tools referenced in SKILL.md (python/uv, mcporter) are appropriate for running an MCP server and the provided pyproject lists expected deps (mcp[cli], httpx).
Instruction Scope
Runtime instructions confine activity to installing the package, configuring mcporter, setting SILVERBULLET_URL, and running the server. The SKILL.md does not direct the agent to read unrelated files, harvest system credentials, or transmit data to third-party endpoints outside the configured SilverBullet URL.
Install Mechanism
This is an instruction-first skill with a script-based install (uv venv + uv pip install -e .). Installing creates a virtualenv and installs from PyPI (mcp, httpx). This is expected for a Python MCP server, but the install writes files locally and runs package installs — review before running. No downloads from unknown hosts or URL shorteners are present.
Credentials
The code reads a single environment variable (SILVERBULLET_URL) to determine the server address, which is proportionate. However, registry metadata lists no required env vars while SKILL.md and README instruct the user to set SILVERBULLET_URL — this mismatch is a minor inconsistency to be aware of.
Persistence & Privilege
The skill does not request always:true and does not modify other skills or system-wide configuration. It suggests writing a mcporter entry (user-level config) which is appropriate for an MCP server integration.
Assessment
This skill appears to do what it says — it performs HTTP calls to a SilverBullet server and exposes standard file/read/write/search tools. Before installing: 1) Verify the SILVERBULLET_URL you will set (prefer a local or trusted host); the skill can read/write any pages accessible at that URL, so pointing it at an untrusted remote host risks exposing your notes. 2) Inspect server.py and the package contents (you already have them) and confirm you are comfortable running uv pip install -e . locally. 3) Be aware the SKILL.md asks you to add a mcporter entry in ~/.mcporter/mcporter.json and to export SILVERBULLET_URL — these are normal but note the registry metadata did not declare the env var (minor inconsistency). 4) If you run the demo or tests, do so against a test or local SilverBullet instance to avoid accidental modification of production notes. If you want greater assurance, run the package install in an isolated environment and review network traffic from the process while testing.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

Binspython3, uv
latestvk974as9kzgwy9rvh7n7c014705802pm0
1.7kdownloads
1stars
1versions
Updated 1mo ago
v1.0.0
MIT-0

SilverBullet MCP Server

This skill provides an MCP server for interacting with SilverBullet, a self-hosted markdown-based note-taking app.

Installation

Via ClawdHub

clawdhub install silverbullet

Manual

cd ~/.clawdbot/skills/silverbullet
uv venv
source .venv/bin/activate
uv pip install -e .

Configuration

1. Set SilverBullet URL

export SILVERBULLET_URL="http://localhost:3000"

Or add to your shell profile (~/.zshrc / ~/.bashrc).

2. Configure mcporter

Add to ~/.mcporter/mcporter.json:

{
  "servers": {
    "silverbullet": {
      "command": "python",
      "args": ["{baseDir}/server.py"],
      "transport": "stdio",
      "env": {
        "SILVERBULLET_URL": "http://localhost:3000"
      }
    }
  }
}

Replace {baseDir} with the actual skill path (e.g., ~/.clawdbot/skills/silverbullet).

3. Verify Installation

mcporter list silverbullet

Should show all available tools.

Available Tools

ToolDescription
list_filesList all files in the SilverBullet space
read_pageRead markdown content from a page
write_pageCreate or update a page
delete_pageDelete a page
append_to_pageAppend content to an existing page
search_pagesSearch pages by name pattern
get_page_metadataGet page metadata (modified, created, permissions)
ping_serverCheck if SilverBullet server is available
get_server_configGet server configuration

Usage Examples

List all pages

mcporter call silverbullet.list_files

Read a page

mcporter call silverbullet.read_page path:"index.md"
mcporter call silverbullet.read_page path:"journal/2024-01-15.md"

Create or update a page

mcporter call silverbullet.write_page path:"notes/meeting.md" content:"# Meeting Notes\n\n- Item 1\n- Item 2"

Append to a page

mcporter call silverbullet.append_to_page path:"journal/today.md" content:"## Evening Update\n\nFinished the project."

Search for pages

mcporter call silverbullet.search_pages query:"meeting"

Delete a page

mcporter call silverbullet.delete_page path:"drafts/old-note.md"

Check server status

mcporter call silverbullet.ping_server

Natural Language Examples

Once configured, you can ask Moltbot:

  • "List all my SilverBullet pages"
  • "Read my index page from SilverBullet"
  • "Create a new page called 'Project Ideas' with a list of features"
  • "Search for pages containing 'meeting' in the name"
  • "Append today's notes to my journal"
  • "What's the last modified date of my TODO page?"
  • "Is my SilverBullet server running?"

Troubleshooting

Server not responding

  1. Check if SilverBullet is running: curl http://localhost:3000/.ping
  2. Verify SILVERBULLET_URL is set correctly
  3. Check firewall/network settings

Permission denied errors

SilverBullet pages can be read-only. Check the X-Permission header or use get_page_metadata to verify permissions.

Tool not found

  1. Verify mcporter config: cat ~/.mcporter/mcporter.json
  2. Test server directly: python {baseDir}/server.py (should start without errors)
  3. Check Python/uv installation: which python3 uv

API Reference

See SilverBullet HTTP API for full documentation of the underlying REST API.

Comments

Loading comments...