chrome-bookmark-mcp-server

mamba-mental/chrome-bookmark-mcp-server

3.2

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.

Tools
5
Resources
0
Prompts
0

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

  1. Open Chrome and navigate to chrome://extensions/
  2. Enable "Developer mode"
  3. Click "Load unpacked"
  4. Select the chrome-extension folder from this repository
  5. 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

  1. Click the extension icon in Chrome
  2. 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 filters
  • get_bookmark: Retrieve a specific bookmark by ID
  • analyze_bookmarks: Get analytics and insights
  • organize_bookmarks: Auto-organize bookmarks
  • export_bookmarks: Export bookmarks in various formats

REST API Endpoints

  • GET /api/bookmarks: List all bookmarks
  • GET /api/bookmarks/search: Search bookmarks
  • GET /api/bookmarks/{id}: Get specific bookmark
  • POST /api/bookmarks/sync: Sync bookmarks from Chrome
  • GET /api/analytics/dashboard: Get analytics data
  • POST /api/auth/login: Authenticate and get JWT token
  • WS /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

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. 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

  1. Extension not connecting to server

    • Check server is running on port 8012
    • Verify no firewall blocking
    • Check browser console for errors
  2. Search not working

    • Ensure ElasticSearch is running
    • Check if bookmarks are indexed
    • Verify ElasticSearch connection
  3. 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.