One-Line Summary: Build the server, configure Claude Desktop to launch it, and test every tool live.
Prerequisites: All previous steps completed
Build the Server
npx tscVerify the output exists:
ls dist/You should see index.js, db.js, tools.js, resources.js, and prompts.js.
Configure Claude Desktop
Claude Desktop reads MCP server configurations from a JSON file. Open it:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add your server to the mcpServers object:
{
"mcpServers": {
"bookmarks": {
"command": "node",
"args": ["/absolute/path/to/bookmark-mcp/dist/index.js"],
"cwd": "/absolute/path/to/bookmark-mcp"
}
}
}Important: Replace /absolute/path/to/bookmark-mcp with the actual path to your project directory. Use the full absolute path — relative paths will not work.
To find your absolute path:
# In your project directory
pwdConfigure Claude Code (Alternative)
If you use Claude Code instead of Claude Desktop, add the server to your project's .mcp.json:
{
"mcpServers": {
"bookmarks": {
"command": "node",
"args": ["/absolute/path/to/bookmark-mcp/dist/index.js"],
"cwd": "/absolute/path/to/bookmark-mcp"
}
}
}Or add it globally via the CLI:
claude mcp add bookmarks -- node /absolute/path/to/bookmark-mcp/dist/index.jsRestart and Verify
Claude Desktop: Quit and reopen the app. Click the MCP icon (plug icon) in the bottom-left corner. You should see "bookmarks" listed with 5 tools, 4 resources, and 2 prompts.
Claude Code: Start a new session. Your server will be available automatically.
Test Your Server
Try these prompts in Claude:
Save a bookmark:
Save this article: https://modelcontextprotocol.io/docs — tag it with "mcp" and "docs"
Save a few more:
Bookmark https://news.ycombinator.com — title "Hacker News", tags: "tech", "news"
Save https://arxiv.org/abs/2301.00001 as "Attention Is All You Need" with tags "ai", "research", "transformers"
Search:
What bookmarks do I have about AI?
Browse by tag:
Show me everything tagged "research"
Use a prompt:
Run my weekly digest
Tag cleanup:
Analyze my tags and suggest improvements
Troubleshooting
Server doesn't appear in Claude Desktop:
- Check that
claude_desktop_config.jsonis valid JSON (no trailing commas) - Verify the absolute path is correct — try running
node /your/path/dist/index.jsdirectly to see if it errors - Restart Claude Desktop completely (quit from the dock/taskbar, not just close the window)
"Module not found" error:
- Make sure you ran
npx tscto compile the TypeScript - Check that
dist/index.jsexists
Database errors:
- The server creates
bookmarks.dbin the current working directory. Make sure thecwdin your config points to the project root.
What You Built
You now have a fully functional MCP server with:
| Capability | Count | Details |
|---|---|---|
| Tools | 5 | save, search, get by tag, delete, add tags |
| Resources | 4 | all bookmarks, tags, recent, stats |
| Prompts | 2 | weekly digest, tag cleanup |
Your bookmarks are stored locally in SQLite — no cloud services, no API keys, no subscriptions. The server runs as a subprocess of Claude and communicates over STDIO.
Next Steps
Some ideas to extend your server:
- Add a
fetch_titletool that automatically extracts the page title from a URL usingfetch - Add full-text search with SQLite FTS5 for better search relevance
- Export to HTML — add a tool that generates a browsable HTML page from your bookmarks
- Import from browser — parse a Chrome/Firefox bookmarks export file
- Scheduled digests — combine with a cron job to email yourself weekly summaries