chromium-sync-mcp
MCP server for accessing browser data (tabs, history, bookmarks) from Chromium-based browsers.
Supports Brave, Chrome, and Chromium.
Installation
# Using uvx (recommended)
uvx chromium-sync-mcp
# Or install with pip
pip install chromium-sync-mcp
System Requirements
Requires the LevelDB library:
# Ubuntu/Debian
sudo apt-get install libleveldb-dev
# macOS
brew install leveldb
# Fedora
sudo dnf install leveldb-devel
Claude Code Configuration
Add to your Claude Code MCP settings:
{
"mcpServers": {
"chromium-sync": {
"command": "uvx",
"args": ["chromium-sync-mcp"]
}
}
}
Tools
| Tool | Description |
|---|---|
get_tabs_all_devices |
Get open tabs from all synced devices |
get_tabs_local |
Get open tabs from the local browser session |
get_history |
Search browsing history with optional filters |
get_bookmarks |
Get bookmarks, optionally filtered by folder |
search_bookmarks |
Search bookmarks by title or URL |
select_browser |
Select which browser to use (when multiple installed) |
set_profile_path |
Manually set the browser profile path |
check_sync_status |
Check what data is accessible (for debugging) |
get_history
Returns a JSON array of history entries. Supports substring search, regex patterns, and date filtering.
Parameters:
| Parameter | Type | Description |
|---|---|---|
query |
string | Substring match against URL and title (case-insensitive). Cannot be used with pattern. |
pattern |
string | Regex match against URL and title. Cannot be used with query. |
limit |
integer | Maximum results to return. Default: 100 |
days_back |
integer | Only return entries from the last N days. |
after |
string | ISO date or datetime. Only entries on or after this time. |
before |
string | ISO date or datetime. Only entries before this time. |
Date formats: YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS
Example response:
[
{
"url": "https://github.com/anthropics/claude-code",
"title": "GitHub - anthropics/claude-code",
"visit_time": "2026-01-11T14:30:00",
"visit_count": 5
}
]
Configuration
Auto-detection
The server automatically detects installed Chromium-based browsers. If multiple browsers are found, you'll be prompted to select one.
Environment Variable
Override auto-detection by setting CHROMIUM_PROFILE_PATH:
export CHROMIUM_PROFILE_PATH=~/.config/google-chrome/Default
Saved Preference
When prompted to select a browser, use select_browser with save_default: true to save your preference to ~/.config/chromium-sync/profile.
Supported Browsers
| Browser | Linux | macOS | Windows |
|---|---|---|---|
| Brave | ✓ | ✓ | ✓ |
| Chrome | ✓ | ✓ | ✓ |
| Chromium | ✓ | ✓ | ✓ |
How It Works
This server reads directly from your browser's local profile files:
- History: SQLite database
- Bookmarks: JSON file
- Synced Tabs: LevelDB (contains tabs from all your synced devices)
No authentication or network requests required.
Headless Setup (Sync Passphrase Entry)
If you're running on a headless server and need to enter your Chrome sync passphrase, use the chromium-sync-setup command. It launches a browser in a virtual display and provides a secure web URL for remote access.
This is a one-time setup per machine. Once you've entered your passphrase and sync is established, you won't need to run this again.
# If you installed via uvx (recommended)
uvx --with chromium-sync-mcp[setup] --from chromium-sync-mcp chromium-sync-setup
# If you installed via pip
pip install chromium-sync-mcp[setup]
chromium-sync-setup
What it does:
- Starts a virtual X display (Xvnc or Xvfb)
- Launches your browser to the sync settings page
- Provides a secure HTTPS URL via Cloudflare tunnel
System requirements (one of):
- TigerVNC:
sudo apt install tigervnc-standalone-server - Or Xvfb + x11vnc:
sudo apt install xvfb x11vnc
The script auto-downloads cloudflared and noVNC, so those don't need manual installation.
License
Apache 2.0
Metadata
Release files for chromium-sync-mcp 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| chromium_sync_mcp-0.3.1.tar.gz | 22.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| chromium_sync_mcp-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 44.5 kB
Release files / chromium_sync_mcp-0.3.1.tar.gz
| Download URL | chromium_sync_mcp-0.3.1.tar.gz |
|---|---|
| Size | 22.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
42e05b484df3180327c4fd772df2bfe66b05900d2d86523f664e3f1a9d7ce442
|
|
BLAKE2b-256 checksum How to use checksums |
f7d73be55b26b8d24d6b6a1c08500f48cd8a67599f08e8b8f7cb94886eb5322d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 11, 2026.
Transparency logRelease files / chromium_sync_mcp-0.3.1-py3-none-any.whl
| Download URL | chromium_sync_mcp-0.3.1-py3-none-any.whl |
|---|---|
| Size | 22.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
70913b7e767c6045916d0edaeee2b4f9b4c6a772270a4fa89804c3c72e0d2f2d
|
|
BLAKE2b-256 checksum How to use checksums |
f229c9407111a1ec684344d374e5b7a1459ff66572c403e809dc58246c62b5b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 11, 2026.
Transparency log