Install
$ agentstack add mcp-sandraschi-bookmarks-mcp ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Browser Bookmarks Tools (MCP)
> 📖 [Installation Guide](INSTALL.md) — quick start, manual setup, and troubleshooting
FastMCP 3.3 MCP server with multiple portmanteau tools (not one mega bookmarks tool). Ported from database-operations-mcp.
MCP Tools (portmanteau surfaces)
| Tool | Purpose | |------|---------| | browser_bookmarks | Universal CRUD/search/export across Firefox, Chrome, Edge, Brave | | firefox_profiles | Firefox profile create/load/portmanteau profiles | | firefox_backup | Backup/restore Firefox profile data | | firefox_curated | Curated bookmark source collections | | firefox_tagging | Folder/year-based auto-tagging | | firefox_utils | Firefox paths, lock checks, places DB info | | sync_bookmarks | Cross-browser sync (dry-run supported) | | chrome_profiles | Chromium profile management | | ai_bookmark_portmanteau | AI categorize, dedupe, curate, maintain, export |
firefox_bookmarks remains an internal helper used by browser_bookmarks for Firefox-specific SQLite operations.
Quick Start
git clone https://github.com/sandraschi/bookmarks-mcp
cd bookmarks-mcp
just
This opens an interactive dashboard showing all available commands. Run just bootstrap to install dependencies, then just serve or just dev to start.
Installation
Prerequisites
- uv installed (RECOMMENDED)
- Python 3.12+
Quick Start
Run immediately via uvx:
uvx bookmarks-mcp
Claude Desktop Integration
Add to your claude_desktop_config.json:
"mcpServers": {
"bookmarks-mcp": {
"command": "uv",
"args": ["--directory", "D:/Dev/repos/bookmarks-mcp", "run", "bookmarks-mcp"]
}
}
Running the Server
As a Python Module (Recommended for MCP clients)
python -m browser_bookmarks_tools
As a Direct Script (Development)
python src/browser_bookmarks_tools/mcp_server.py
With uv
uv run python -m browser_bookmarks_tools
MCP Client Configuration
Cursor IDE (mcp.json)
{
"mcpServers": {
"bookmarks-mcp": {
"command": "python",
"args": ["-m", "browser_bookmarks_tools"],
"env": {
"PYTHONPATH": "D:/Dev/repos/bookmarks-mcp/src",
"PYTHONUNBUFFERED": "1"
}
}
}
}
Claude Desktop (claudedesktopconfig.json)
{
"mcpServers": {
"bookmarks-mcp": {
"command": "python",
"args": ["-m", "browser_bookmarks_tools"],
"env": {
"PYTHONPATH": "/path/to/bookmarks-mcp/src"
}
}
}
}
Available Operations
See tool docstrings for full operation lists. Primary entry points:
browser_bookmarks—list_bookmarks,add_bookmark,search_bookmarks,find_duplicates,export_bookmarks, tag ops, age analysis, broken links, etc.sync_bookmarks— cross-browser transfer withdry_runai_bookmark_portmanteau—categorize,dedupe,curate,maintain,export
Browser Support Details
Firefox (Primary)
- Storage:
places.sqlitedatabase - Features: Full history, tags, folders, favicons
- Path:
~/.mozilla/firefox/*/places.sqlite
Chrome/Edge/Brave
- Storage: JSON bookmark files
- Features: Basic bookmarks with folders
- Path:
~/Library/Application Support/Google/Chrome/Default/Bookmarks
Safari (macOS only)
- Storage: Binary plist files
- Features: Basic bookmarks
- Path:
~/Library/Safari/Bookmarks.plist
Development
Project Structure
bookmarks-mcp/
src/browser_bookmarks_tools/
__init__.py # Package initialization
__main__.py # Module entry point for `python -m`
mcp_server.py # FastMCP server implementation
bookmarks/ # Core bookmark operations
manager.py # CRUD operations
organizer.py # Organization features
portmanteau.py # Main tool interface
sync.py # Cross-browser sync
ai/ # AI-powered features
analyzer.py # Content analysis
summarizer.py # Summary generation
tagger.py # Smart tagging
browsers/ # Browser-specific implementations
tests/
pyproject.toml
Running Tests
python -m pytest tests/
Code Quality
# Format code
black src/
# Lint code
ruff check src/
# Type checking
mypy src/
Troubleshooting
"Module not found" errors
Ensure PYTHONPATH includes the src directory:
export PYTHONPATH="/path/to/bookmarks-mcp/src:$PYTHONPATH"
Browser permission issues
- Firefox: Ensure Firefox is not running when accessing
places.sqlite - Chrome/Edge: No special permissions needed for reading bookmark files
- Safari: Requires macOS and appropriate file permissions
MCP connection issues
- Verify the server starts without errors when run manually
- Check that
PYTHONPATHis correctly set in your MCP client configuration - Ensure no firewall/antivirus is blocking the connection
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Submit a pull request
🛡️ Industrial Quality Stack
This project adheres to SOTA 14.1 industrial standards for high-fidelity agentic orchestration:
- Python (Core): Ruff for linting and formatting. Zero-tolerance for
printstatements in core handlers (T201). - Webapp (UI): Biome for sub-millisecond linting. Strict
noConsoleLogenforcement. - Protocol Compliance: Hardened
stdout/stderrisolation to ensure crash-resistant JSON-RPC communication. - Automation: [Justfile](./justfile) recipes for all fleet operations (
just lint,just fix,just dev). - Security: Automated audits via
banditandsafety.
License
[Add appropriate license information]
Changelog
v0.1.0
- Initial FastMCP 3.1.0 compliant implementation
- Firefox, Chrome, Edge, Brave, and Safari support
- Unified portmanteau tool interface
- AI-powered bookmark analysis and tagging
- Cross-browser synchronization
Web dashboard
| Service | Port | Notes | |---------|------|-------| | Frontend (Vite) | 10802 | web_sota/start.ps1 | | Backend (FastAPI + MCP) | 10803 | MCP_TRANSPORT=http |
Pages: Dashboard, Bookmarks (CRUD + pagination), Search (folder/tag filters), Tree, Bulk ops (sync wizard, export download), Tags, AI Command, MCP Tools, Settings, Help.
Production auth
HTTP Basic auth is enabled by default on /api/* routes.
| Variable | Default | Purpose | |----------|---------|---------| | BOOKMARKS_WEB_AUTH | 1 | Set 0 to disable (dev only) | | BOOKMARKS_WEB_USER | admin | Username | | BOOKMARKS_WEB_PASS | mcp | Password |
Configure credentials in Settings → API auth (stored in browser localStorage as Basic auth header).
Root /health is unauthenticated for load balancers.
Tauri desktop
cd native
.\build.ps1
Spawns the MCP backend sidecar on 10803 and loads the built SPA.
Webapp Dashboard
This MCP server includes a React web interface for monitoring and control. By default, the web dashboard runs on port 10802. (Assigned ports: 10802 (Web dashboard frontend), 10803 (Web dashboard backend))
To start the webapp:
- Navigate to the
webapp(orweb,frontend) directory. - Run
start.bat(Windows) or./start.ps1(PowerShell). - Open
http://localhost:10802in your browser.
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: sandraschi
- Source: sandraschi/bookmarks-mcp
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.