mamba-mental/chrome-bookmark-mcp-server
If you are the rightful owner of chrome-bookmark-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A Model Context Protocol (MCP) server implementation that integrates Chrome bookmarks with AI assistants for intelligent management and analysis.
Chrome Bookmark MCP Server
A Model Context Protocol (MCP) server implementation that provides seamless integration between Chrome bookmarks and AI assistants. This server enables AI models to access, search, analyze, and manage Chrome bookmarks through a standardized protocol.
Overview
This project implements an MCP server that bridges Chrome bookmarks with AI assistants, allowing for intelligent bookmark management, search, and analysis. It includes both a Chrome extension for data collection and a Python-based MCP server for processing requests.
Features
Core Functionality
- Bookmark Access: Read and search through Chrome bookmarks
- Advanced Search: Full-text search with ElasticSearch integration
- Real-time Sync: Automatic synchronization of bookmark changes via WebSocket
- Analytics: Bookmark usage patterns and insights
- Security: JWT authentication and secure communication
Chrome Extension
- Bookmark export and synchronization
- Search interface with advanced filtering
- Usage analytics dashboard
- Real-time updates via WebSocket
- Offline message queuing
MCP Server
- Standard MCP protocol implementation
- WebSocket support for real-time updates
- RESTful API endpoints
- Redis caching for performance
- ElasticSearch for advanced search
- Docker support for easy deployment
Architecture
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Chrome Browser ββββββΆβ Chrome Ext. ββββββΆβ MCP Server β
β (Bookmarks) β β (Data Export) β β (Processing) β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β
βββββββββββββββββββββββββββ΄ββββββββββββββ
β β
βββββββββΌβββββββββ ββββββββββΌββββββββ
β Redis β β ElasticSearch β
β (Caching) β β (Search) β
ββββββββββββββββββ ββββββββββββββββββ
Prerequisites
- Python 3.8+
- Docker and Docker Compose
- Chrome Browser
- Redis (via Docker)
- ElasticSearch (via Docker)
Installation
1. Clone the Repository
git clone https://github.com/mamba-mental/chrome-bookmark-mcp-server.git
cd chrome-bookmark-mcp-server
2. Set Up the Server
Using Docker (Recommended)
# Start all services
docker-compose up -d
# Check service status
docker-compose ps
Manual Setup
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Set up Redis and ElasticSearch (see docs/REDIS_SETUP.md and docs/ELASTICSEARCH_SETUP.md)
3. Install Chrome Extension
- Open Chrome and navigate to
chrome://extensions/
- Enable "Developer mode"
- Click "Load unpacked"
- Select the
chrome-extension
folder from this repository - The extension icon should appear in your toolbar
4. Configure the Server
Create a .env
file in the project root:
# Server Configuration
MCP_SERVER_HOST=localhost
MCP_SERVER_PORT=8012
SECRET_KEY=your-secret-key-here
# Redis Configuration
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_DB=0
# ElasticSearch Configuration
ELASTICSEARCH_HOST=localhost
ELASTICSEARCH_PORT=9200
ELASTICSEARCH_INDEX=chrome_bookmarks
# Security
JWT_SECRET_KEY=your-jwt-secret-key-here
JWT_ALGORITHM=HS256
JWT_EXPIRATION_DELTA=3600
Usage
Starting the Server
With Docker
docker-compose up
Without Docker
python server/MCP_Chrome_Server_033025.py
Chrome Extension
- Click the extension icon in Chrome
- Use the popup interface to:
- Export bookmarks to the server
- Search bookmarks with filters
- View analytics dashboard
- Configure settings
MCP Integration
Connect your AI assistant to the MCP server:
{
"mcpServers": {
"chrome-bookmarks": {
"command": "python",
"args": ["/path/to/server/MCP_Chrome_Server_033025.py"],
"env": {
"PYTHONPATH": "/path/to/project"
}
}
}
}
API Documentation
MCP Tools
The server provides the following MCP tools:
search_bookmarks
: Search bookmarks with advanced filtersget_bookmark
: Retrieve a specific bookmark by IDanalyze_bookmarks
: Get analytics and insightsorganize_bookmarks
: Auto-organize bookmarksexport_bookmarks
: Export bookmarks in various formats
REST API Endpoints
GET /api/bookmarks
: List all bookmarksGET /api/bookmarks/search
: Search bookmarksGET /api/bookmarks/{id}
: Get specific bookmarkPOST /api/bookmarks/sync
: Sync bookmarks from ChromeGET /api/analytics/dashboard
: Get analytics dataPOST /api/auth/login
: Authenticate and get JWT tokenWS /ws
: WebSocket endpoint for real-time updates
Development
Project Structure
chrome-bookmark-mcp-server/
βββ chrome-extension/ # Chrome extension source
β βββ manifest.json # Extension manifest
β βββ popup.html/js # Extension popup interface
β βββ background.js # Background service worker
β βββ search.html # Search interface
β βββ analysis.html # Analytics dashboard
β βββ icons/ # Extension icons
βββ server/ # MCP server implementation
β βββ MCP_Chrome_Server_033025.py # Main server
β βββ MCP_Chrome_Schemas_033025.py # Data schemas
β βββ Security_Module_033025.py # Security module
β βββ Advanced_Features_Module_033025.py # Advanced features
β βββ requirements.txt # Python dependencies
βββ config/ # Configuration files
βββ docs/ # Documentation
β βββ ELASTICSEARCH_SETUP.md
β βββ REDIS_SETUP.md
β βββ MCP_Implementation_Project_Master_Plan_031125.md
βββ docker-compose.yml # Docker configuration
βββ requirements.txt # Root Python dependencies
Running Tests
# Run unit tests
python -m pytest tests/
# Run with coverage
python -m pytest --cov=server tests/
Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Security Considerations
- JWT tokens for authentication
- API rate limiting to prevent abuse
- Secure WebSocket connections (WSS in production)
- Input validation and sanitization
- No storage of sensitive user data
Troubleshooting
Common Issues
-
Extension not connecting to server
- Check server is running on port 8012
- Verify no firewall blocking
- Check browser console for errors
-
Search not working
- Ensure ElasticSearch is running
- Check if bookmarks are indexed
- Verify ElasticSearch connection
-
WebSocket disconnections
- Check network stability
- Review server logs
- Ensure proper CORS configuration
For detailed setup instructions, see:
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Model Context Protocol specification by Anthropic
- Chrome Extensions API documentation
- Open source libraries and contributors
Contact
For questions, issues, or contributions, please open an issue on GitHub.
Note: This is an active development project. Features and APIs may change. Please refer to the latest documentation and release notes.