Chrome Bookmarks MCP
Chrome Bookmarks MCP
Управляйте синхронизированными закладками Chrome из Claude Code — список, поиск, добавление, перемещение, переименование, дедупликация и реорганизация целых деревьев папок. Каждое изменение проходит через официальный API chrome.bookmarks Chrome, поэтому изменения записываются в собственную модель Chrome и надёжно синхронизируются между устройствами (в отличие от прямых правок файла закладок, которые движок синхронизации отбрасывает при запуске).
Как это работает
Два связанных компонента общаются через локальный WebSocket:
Claude Code ──stdio──▶ MCP server ──ws://127.0.0.1:8765──▶ Chrome extension ──▶ chrome.bookmarks
(this plugin) (localhost bridge) (load unpacked) (synced store)MCP-сервер (
dist/bundle.cjs) — stdio MCP-сервер, предоставляющий 17 инструментов для работы с закладками. Он запускает локальный WebSocket-мост на порту8765.Расширение Chrome (
extension/) — подключается к этому мосту и выполняет каждую операцию в контекстеchrome.bookmarksбраузера.
MCP-сервер может действовать только пока Chrome открыт с загруженным расширением; инструмент bookmarks_status сообщает, подключён ли мост.
Related MCP server: safari-bookmarks-mcp
Требования
Node.js 18+ (хост MCP запускает собранный сервер)
Google Chrome (или браузер на Chromium, поддерживающий распакованные MV3-расширения)
Установка
1. Плагин (MCP-сервер)
Из маркетплейса RedJay:
/plugin marketplace add JoshuaRamirez/claude-code-plugins
/plugin install chrome-bookmarks-mcp@RedJayСервер уже собран (dist/bundle.cjs) — npm install при загрузке плагина не требуется.
2. Расширение Chrome (однократно)
Расширение находится в каталоге extension/ этого плагина. После установки найдите корень плагина (обычно ~/.claude/plugins/cache/RedJay/chrome-bookmarks-mcp/<version>/), затем:
Откройте
chrome://extensionsВключите Режим разработчика (в правом верхнем углу)
Нажмите Загрузить распакованное и выберите папку
extension/плагинаПри первой загрузке откроется полный менеджер закладок; в любой момент его можно открыть заново через значок на панели инструментов
Не уверены, какую папку выбрать? Попросите Claude выполнить bookmarks_status — в отключённом состоянии он выводит точный абсолютный путь для загрузки (его поле extension_dir). После загрузки и при запущенном Chrome выполните его снова, чтобы убедиться, что мост подключён.
Инструменты
Инструмент | Назначение |
| Подключён ли мост расширения? |
| Количество папок и URL |
| Все папки с id, глубиной и полным путём |
| Плоский список закладок ( |
| Живой фильтр по всем закладкам |
| Создать закладку, указав любую папку или путь |
| Создать папку внутри любой родительской папки или по пути |
| Идемпотентно создать вложенный путь папок |
| Переименовать и/или изменить URL закладки |
| Переместить закладку или папку |
| Удалить закладку или папку (опционально рекурсивно) |
| Сгруппировать закладки с одинаковым URL |
| Оставить по одной на каждый URL, удалить остальные |
| Удалить папки без потомков (поддерживает |
| Пакетное перемещение закладок из плана TSV (поддерживает |
| Экспортировать всё дерево в переносимый JSON |
| Воссоздать экспортированное JSON-дерево в целевой папке (восстановление из резервной копии) |
См. examples/USAGE.md для пошагового руководства — первая проверка, добавление в папку, безопасная дедупликация и пакетная реорганизация.
remove_duplicates, remove_empty_folders и apply_moves принимают флаг dry_run; remove_bookmark — нет. Сначала сделайте экспорт для резервной копии.
Конфигурация
Переменная окружения | По умолчанию | Назначение |
|
| Порт WebSocket, на котором слушает сервер / к которому подключается расширение |
|
| Файл плана по умолчанию для |
Если вы меняете порт, обновите bridge.js расширения, чтобы он совпадал.
Устранение неполадок
Сначала выполните bookmarks_status — когда мост отключён, он возвращает точные шаги для исправления. Частые случаи:
Симптом | Причина | Исправление |
Инструменты выдают ошибку "Chrome bridge not connected" | Расширение не загружено или Chrome закрыт | Откройте Chrome; загрузите расширение как распакованное (см. шаг 2 выше) |
Работало, теперь тайм-аут | Chrome был закрыт или service worker MV3 перешёл в бездействие | Снова откройте Chrome / один раз нажмите значок на панели инструментов, чтобы разбудить worker; расширение автоматически переподключится в течение нескольких секунд |
Всё ещё отключено после загрузки | Несовпадение порта | Расширение подключается к |
| Нет файла плана по пути по умолчанию | Передайте |
Расширение автоматически переподключается (повтор через 3 секунды), если MCP-сервер перезапускается, так что перезагружать его нужно редко — просто убедитесь, что Chrome запущен.
Сборка из исходников
npm install
npm run build # esbuild → dist/bundle.cjs
npm test # smoke + port-conflict + bookmarkstore + apply-moves (no browser needed)
npm run probe # optional: live connectivity probe (needs the extension)Хотите внести вклад? См. CONTRIBUTING.md — обратите внимание, что dist/bundle.cjs включён в репозиторий, поэтому любое изменение в src/ должно быть пересобрано и закоммичено (CI это проверяет).
Конфиденциальность
Нет сетевого доступа, кроме локального моста. Закладки никогда не покидают ваш компьютер; расширение общается только с 127.0.0.1.
Лицензия
MIT © Joshua Ramirez
Available Tools
17 toolsadd_bookmarkA
Add a bookmark. Target a folder by folder_path (created if missing, default 'Bookmarks bar') or by parent_id. A folder_path's top level must be 'Bookmarks bar', 'Other bookmarks', or 'Mobile bookmarks'.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| title | Yes | ||
| parent_id | No | ||
| folder_path | No | slash path whose top level is a permanent root, e.g. 'Bookmarks bar/AspenESS' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description partially discloses behavior: folder_path creates missing folders, defaults to 'Bookmarks bar', and top-level constraints. It does not mention behavior when both folder_path and parent_id are provided, or any authorization or rate limits. The additive nature is implied but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences that are front-loaded with the core action in the first sentence. Every sentence provides essential detail without redundancy. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers main usage but lacks details on return values, handling when both folder_path and parent_id are omitted (default behavior), conflict resolution, or output. Given the complexity (4 params, no output schema, many siblings), it is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (25%). The description adds meaning for folder_path (constraints, default, creation) and parent_id, but the required parameters url and title lack any description beyond the schema's type fields. The description does not fully compensate for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Add' and resource 'bookmark'. It distinguishes from siblings like create_folder by explicitly mentioning targeting a folder via folder_path or parent_id. The constraints on folder_path top-level names further specify the resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on how to specify the target folder using folder_path or parent_id, and mentions the default folder. However, it does not give guidance on when not to use this tool or alternatives like update_bookmark. Explicit exclusions are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_movesA
Apply a catalogue plan TSV (columns: id, proposed, current, via, title, url). Creates each target folder and moves the bookmark into it. dry_run=true previews counts without changing anything. delete_junk=true also removes rows whose proposed folder is 'DELETE?'.
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No | ||
| file_path | No | ||
| delete_junk | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. It discloses core actions (create, move, delete) and dry_run behavior, but omits details on error handling, idempotency, or return format beyond 'previews counts'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences with no redundant information. Front-loaded with the core purpose, and each sentence adds essential detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description partially addresses return values ('previews counts') for dry_run but not for actual runs. Lacks information on atomicity, success/failure reporting, and what the function returns after execution.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must explain parameters. dry_run and delete_junk are explained; file_path is implied as the TSV path but not explicitly linked. Two of three parameters are clarified, one is left implicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (apply a catalogue plan TSV) and resources (creates folders, moves bookmarks). It differentiates from single-operation siblings like move_bookmark and create_folder by implying batch processing, though not explicitly naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context for dry_run and delete_junk options, but lacks explicit guidance on when to use this tool versus alternatives (e.g., move_bookmark for single moves). No exclusions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bookmarks_statusA
Report whether the Chrome extension bridge is connected and on what port. When disconnected, returns step-by-step setup guidance — call this first if any other tool fails to reach the browser.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It explains the tool reports status and provides setup guidance when disconnected, but does not explicitly state it is read-only or has no side effects. The behavior is implied but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with front-loaded core function and immediate usage guidance. No redundant words, each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters or output schema, the description covers both success (connected/port) and failure (disconnected with guidance) cases. It is complete for a diagnostic tool, though output format is not detailed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so description coverage is 100% by default. Baseline is 4 for no parameters, and the description adds value by explaining the tool's purpose and return behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'report' and the resource 'Chrome extension bridge,' specifying both the connectivity status and port details. It also provides guidance to call this first if other tools fail, distinguishing it from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises to call this tool first if any other fails to reach the browser, providing clear usage context. It lacks explicit when-not-to-use or alternatives, but the guidance is sufficient for a diagnostic tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_folderA
Create a folder under parent_path (created if missing, default 'Bookmarks bar') or parent_id. A parent_path's top level must be 'Bookmarks bar', 'Other bookmarks', or 'Mobile bookmarks'.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| parent_id | No | ||
| parent_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It explains that parent_path can be created if missing and lists valid root folders. However, it omits details on handling conflicts (e.g., both identifiers provided), duplicate names, or return value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, concise and well-structured. Every line adds value without redundancy. It is appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters, no output schema, and no annotations, the description covers key usage but lacks details on return value, error handling (e.g., duplicate names), and behavior when parent_path already exists. More completeness would improve agent confidence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description compensates by explaining parent_path (default, creation behavior, valid top-levels) and mentioning parent_id. However, 'name' lacks constraints, and 'parent_id' format is unspecified, leaving some ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Create a folder' and specifies the resource. It distinguishes from siblings like 'add_bookmark' by focusing on folder creation. The default path and valid top-level folders are mentioned, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on using parent_path vs parent_id, including default behavior and valid top-level folders. However, it does not explicitly state when to prefer this tool over 'ensure_folder_path', which might be used for creating entire folder paths.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ensure_folder_pathA
Ensure a nested folder path exists (e.g. 'Bookmarks bar/Work/Reports'), creating missing levels. Returns the leaf folder. Top level must be 'Bookmarks bar', 'Other bookmarks', or 'Mobile bookmarks'.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | slash-separated folder path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behaviors: it creates missing levels, returns the leaf folder, and restricts top-level folders. It does not mention error handling or idempotency, but for a simple tool it is fairly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load the action and provide essential context. No redundant or unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, no output schema), the description covers the core functionality and constraints. It could mention possible errors or the exact return format, but it is largely complete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema describes 'path' as 'slash-separated folder path' (100% coverage). The description adds context by listing valid top-level folders and examples, which helps the agent understand constraints beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool ensures a nested folder path exists and creates missing levels. It specifies the resource (folder path) and action (ensure existence), distinguishing it from sibling tools like create_folder that likely create a single folder.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a full path needs to exist, and it specifies allowed top-level folders. However, it does not explicitly state when not to use this tool versus alternatives like create_folder, leaving the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_jsonA
Export the whole bookmark tree as portable JSON. If file_path is given, write it server-side and return the path; otherwise return the JSON.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It mentions writing server-side if file_path is given but fails to note whether files are overwritten, permissions required, or rate limits. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. The first sentence states the main action, and the second adds conditional behavior. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers the main functionality and conditional behavior. Lacks details on output format or error handling, but adequate overall.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the description compensates by explaining the conditional behavior of file_path. It adds meaning beyond the schema by detailing the two output scenarios.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool exports the whole bookmark tree as portable JSON, with a specific verb and resource. It distinguishes from sibling tools like list_bookmarks and search_bookmarks by specifying the full tree export.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for exporting the bookmark tree but does not explicitly state when to use this vs alternatives. No exclusions or alternative tool mentions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_duplicatesB
List groups of bookmarks that share the same URL.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not specify output format or behavior (e.g., how groups are structured, if there are limits, or if duplicate URLs across folders are included). The agent cannot infer the return value structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words. It is front-loaded with the main action. However, it could benefit from additional details within the same concise structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description is minimally complete. It states what the tool does but lacks any indication of the output structure (e.g., 'Returns an array of groups, each containing bookmark IDs'). More detail would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty with 0 parameters and 100% coverage. According to guidelines, 0 parameters gives a baseline of 4. The description adds no parameter info, but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'groups of bookmarks that share the same URL'. It distinguishes this tool from siblings like 'remove_duplicates' (removal) and 'search_bookmarks' (searching with criteria).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. For example, it does not suggest using it before 'remove_duplicates' or mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_jsonA
Import a previously exported bookmark JSON file (see export_json) under a target folder. Recreates the tree; it does NOT deduplicate, so importing into a folder that already has the same bookmarks will create copies. Target via into_path (created if missing, default 'Other bookmarks') or into_parent_id.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| into_path | No | ||
| into_parent_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that it does NOT deduplicate and can create duplicates. Also mentions target folders are created if missing. With no annotations, this carries key behavioral info, though idempotency or side effects could be elaborated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with efficient phrasing. The first sentence combines two ideas with a semicolon, but overall concise and front-loaded with key purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so return value is missing. Context of export_json is provided, but error conditions or success indicators are absent. Adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaning to parameters: explains into_path default and creation behavior, and into_parent_id as alternative. With 0% schema coverage, this compensates well, though file_path type/format is not detailed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool imports a previously exported bookmark JSON file and recreates the tree. References the sibling tool export_json, distinguishing it from other tools like add_bookmark.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions importing after export (see export_json), but does not explicitly guide when not to use it or provide alternatives among the many sibling tools. Implied but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_bookmarksA
List bookmarks as a flat array of {id, title, url, folder}. Optionally scope to a folder path (e.g. 'Bookmarks bar/Dev') to avoid returning the whole tree; omit to list everything.
| Name | Required | Description | Default |
|---|---|---|---|
| folder_path | No | only list bookmarks within this folder path and its subfolders |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the output format (flat array of {id, title, url, folder}) and scoping behavior. While it doesn't mention performance or pagination, it's adequate for a simple list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words, front-loaded with the primary function. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but the description lists the return fields. For a simple list tool with one optional parameter, this is fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter described. The description adds value by providing an example folder path format ('Bookmarks bar/Dev'), which goes beyond the schema's brief description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it lists bookmarks as a flat array of specific fields, and optionally filters by folder path. This clearly distinguishes it from siblings like search_bookmarks or list_folders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the folder_path parameter to avoid returning the whole tree, providing clear usage context. However, it does not explicitly state when not to use this tool or mention alternatives beyond the parameter hint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_foldersA
List every folder with its id, title, depth, and full path — useful before adding/moving.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavior. It correctly implies a read-only, non-destructive operation and describes output fields, but does not disclose potential side effects, authentication needs, or pagination details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no extraneous words. It efficiently conveys the action and output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list-all tool with no parameters, the description covers the output details and use case. It lacks mention of potential limits or output schema, but given the tool's simplicity, it is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and 100% schema coverage, the description has no need to explain parameters. The baseline of 4 applies; no contradictions or missing information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists every folder with specific attributes (id, title, depth, full path) and indicates its usefulness before adding/moving operations. This distinguishes it from siblings like list_bookmarks or create_folder.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the tool is useful before adding/moving, providing context for its use. However, it does not explicitly state when not to use it or contrast with alternatives like ensure_folder_path or list_bookmarks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_bookmarkA
Move a node into a folder by to_path (created if missing) or to_parent_id. A to_path's top level must be 'Bookmarks bar', 'Other bookmarks', or 'Mobile bookmarks'.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| to_path | No | ||
| to_parent_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description discloses that to_path can create folders if missing and imposes a path structure constraint. However, it does not specify behavior when both to_path and to_parent_id are provided, or what happens on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and syntax, followed by a critical constraint. No waste, every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters, no output schema, and no annotations, the description covers the two move methods, creation behavior, and path constraints. It misses details about id validity, return values, and error handling, but is largely complete for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must add meaning. It explains that to_path is a path that can create folders and has top-level constraints. For to_parent_id, it only says 'or to_parent_id' without additional details. The description adds significant value for to_path but less for to_parent_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('Move') and resources ('node into a folder'), and clearly distinguishes between two methods (to_path or to_parent_id). It differentiates from siblings like 'add_bookmark' and 'remove_bookmark'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the two methods but does not provide explicit guidance on when to use each or when to avoid this tool. It mentions constraints for to_path but lacks when-not or alternative sibling tools context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_bookmarkA
Remove a bookmark by id, or a folder and its contents (set recursive=true for folders).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| recursive | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, description must disclose behavioral traits. It mentions folder recursive behavior but omits details on error cases, irreversibility, permissions, or return values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 17 words, front-loaded with action. Every word contributes, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-param tool with no output schema, description covers primary use cases but lacks completeness on edge cases (e.g., nonexistent id, empty folder). Adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage. Description adds meaning: id is from a bookmark or folder, recursive only applies to folders. However, it does not specify id format, default for recursive, or behavior when folder has recursive=false.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool removes a bookmark by or a folder's contents with recursive=true. It is specific and distinguishes from siblings like remove_empty_folders and remove_duplicates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage: for single bookmark, don't set recursive; for folder, set recursive to delete contents. Lacks explicit when-not-to-use or comparisons to alternatives like delete or move tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_duplicatesA
Remove duplicate-URL bookmarks, keeping the first in each group. Use dry_run=true to preview without deleting.
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility. It discloses the destructive nature (removes duplicates) and the preview option (dry_run). This is sufficient for a simple tool. It does not mention reversibility or impact on other bookmarks, but the behavior is clearly summarized.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no unnecessary words. The first sentence states the action and its effect, and the second provides a key usage guideline. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, no output schema), the description covers the essential aspects: what it does, how to preview, and the default behavior. It could mention that the operation is irreversible without dry_run, but it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only defines a boolean dry_run parameter with no description. The description compensates by explaining its purpose ('to preview without deleting'), adding meaning beyond the schema structure. With 0% schema description coverage, this is valuable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove duplicate-URL bookmarks') and the resource ('bookmarks'). It specifies the behavior of keeping the first in each group, which distinguishes it from sibling tools like find_duplicates (which only identifies) and remove_bookmark (which removes a single bookmark).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a usage hint for the dry_run parameter ('Use dry_run=true to preview without deleting'), which helps agents use the tool safely. However, it does not explicitly state when to use this tool versus alternatives like find_duplicates (e.g., to preview before deletion) or provide conditions for not using it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_empty_foldersA
Sweep the tree and delete folders that contain no bookmarks (bottom-up), e.g. folders left empty after a re-catalogue. Skips the permanent roots. dry_run=true lists them without deleting.
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully describes behavior: bottom-up deletion, skipping permanent roots, and dry_run mode. It lacks details on idempotency or permission requirements, but still provides sufficient transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, efficient and front-loaded. Every word adds value. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers the core functionality and parameter. Could optionally mention what is returned on actual deletion, but not necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'dry_run' is clearly explained: dry_run=true lists without deleting. Since schema provides no description, the tool description compensates well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: delete empty folders bottom-up. It provides a concrete example (after re-catalogue) and notes exceptions (skips permanent roots). This distinguishes it from sibling tools like list_folders or remove_bookmark.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use (to clean empty folders) and what it does, but does not explicitly mention when not to use or list alternative tools. However, the context is clear for an agent to infer appropriateness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_bookmarksA
Search bookmarks by text in title or URL.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | text to match in title or URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the basic functionality without disclosing search behavior (e.g., case sensitivity, partial matching, pagination, or limits). This is insufficient for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, concise sentence that is front-loaded and contains no unnecessary words. It efficiently conveys the tool's core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should explain what is returned (e.g., matching bookmarks, total count). It lacks details on search behavior, default sort order, or any limitations. The tool description feels incomplete for decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already describes the parameter. The description adds the same information as the schema's description, providing no additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'search', the resource 'bookmarks', and the criteria 'by text in title or URL'. It is specific and distinguishes from sibling tools like list_bookmarks or find_duplicates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (searching by text) but does not explicitly state when to use this tool over alternatives or provide exclusions. However, given the simple nature of the tool, the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
statsA
Return counts of bookmarks and folders.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must convey behavioral traits. It only says 'return counts', indicating a read operation, but lacks details on performance, caching, or any side effects. Minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, perfectly concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with no parameters and no output schema, but the description does not detail what specific counts are returned (e.g., total bookmarks, folders, or other metrics). It is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the schema coverage is 100%. The description adds no extra meaning about parameters, which is acceptable as none exist. Baseline for zero parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns counts of bookmarks and folders, which is a specific verb and resource. It distinguishes itself from sibling tools that manipulate or list individual items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The context implies it is for getting aggregate counts, but no exclusions or preferences are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_bookmarkA
Update a node's title and/or a bookmark's URL, by id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| url | No | ||
| title | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It mentions updating specific fields (title and/or URL) by ID, which adds some transparency, but it does not specify side effects, error handling, or whether updates are partial or full replacements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 12 words, front-loading the verb and resource. Every word is functional, with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple update tool with three parameters and no output schema, the description covers the essential actions and parameters. It could mention that the update is applied to an existing bookmark and possibly the return value, but it is largely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds meaning by explaining that 'id' identifies the node and that 'url' and 'title' are the updatable fields. This clarifies the role of each parameter beyond the bare schema, though it lacks details on formatting or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'update', the resources 'node's title and/or a bookmark's URL', and the method 'by id'. It distinguishes the tool from siblings like add_bookmark, remove_bookmark, or move_bookmark.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., move_bookmark, remove_bookmark). It does not state prerequisites or the expected context, leaving the agent to infer usage solely from the action 'update'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v1.1.2- Changed
add_bookmark1 field changed- changed
Input schema / properties / folder_path / descriptionPrevious value: -"e.g. 'Bookmarks bar/AspenESS'"New value: +"slash path whose top level is a permanent root, e.g. 'Bookmarks bar/AspenESS'"
- Added
import_json - Changed
list_bookmarks2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / folder_pathAdded value: +{ + "description": "only list bookmarks within this folder path and its subfolders", + "type": "string" +}
16 tool updates
v1.0.2- First observed
add_bookmark - First observed
apply_moves - First observed
bookmarks_status - First observed
create_folder - First observed
ensure_folder_path - First observed
export_json - First observed
find_duplicates - First observed
list_bookmarks - First observed
list_folders - First observed
move_bookmark - First observed
remove_bookmark - First observed
remove_duplicates - First observed
remove_empty_folders - First observed
search_bookmarks - First observed
stats - First observed
update_bookmark
TDQS
Each tool targets a distinct operation: adding, creating, moving, removing, updating, searching, listing, finding duplicates, exporting/importing, applying batch moves, and checking status. No overlapping purposes.
Most tools follow a verb_noun pattern (e.g., add_bookmark, remove_empty_folders), but 'bookmarks_status' and 'stats' deviate slightly from the verb-first convention.
17 tools cover all essential bookmark management operations without being excessive. The count is proportional to the domain's complexity.
The set covers full CRUD, search, duplicate handling, import/export, batch moves, folder management, and connection status. No obvious gaps for typical bookmark workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted real Google Chrome MCP with per-user persistent state. Navigate, click, type, screenshot.
Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.
Personal knowledge base MCP server with semantic search, auto-categorization, metadata extraction
Google Keep-style notes app with an MCP server for AI agents to read/write notes.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA 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.1MIT
- AlicenseNot gradedqualityBmaintenanceManage Safari bookmarks through an MCP server, providing tools to list, search, add, remove, and organize bookmarks and folders.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceUnified MCP server for browser automation (Playwright + CDP + CLI) and bookmark management across Chrome, Firefox, Edge, and Brave, including cross-browser sync, deduplication, and a React dashboard.1MIT
- AlicenseCqualityCmaintenanceA local-first MCP server that turns browser bookmark exports into a searchable knowledge base with classification, merging, full-text indexing, and Chrome integration.20MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/JoshuaRamirez/chrome-bookmarks-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server