MCP CopyQ Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP CopyQ Serversearch for API documentation in my workspace"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP CopyQ Server
MCP-сервер для интеграции CopyQ (менеджер буфера обмена) с LLM-агентами.
Концепция
Структура данных в CopyQ
mcp/
├── info/ # 🔒 только элементы (без подвкладок)
├── заметки/ # 🔒 только элементы (без подвкладок)
└── workspace/ # ✅ элементы + подвкладкиЭлемент (Item)
Каждый элемент содержит:
text — основной текст
tags — метки (массив строк)
note — заметка к тексту
Related MCP server: mcp-clipboardify
Инструменты (3 шт.)
1. mcp_read
Универсальное чтение данных.
Параметры
Параметр | Тип | Default | Описание |
|
| — | обязательный |
| string |
| Путь: |
| number | — | Для mode=item |
| string | — | Для mode=search (regex) |
|
|
| Где искать |
| number | 2 | Для tree — макс. глубина |
| number | 20 | Лимит элементов |
| number | 0 | Пагинация — пропустить N |
| bool | true | Включить текст/превью |
| bool | true | Включить метки |
| bool | false | Включить заметку |
Режимы (mode)
tree — структура вкладок с метаданными
mcp/info [5]
0: "Инструкция по API..." [api,docs]
1: "Конфиг сервера..." [config]
mcp/workspace [3]
└─ mcp/workspace/проект1 [12]list — элементы конкретной вкладки
mode:list|tab:info|total:47|showing:0-19
0|"Инструкция по API..."|[api,docs]|+note
1|"Конфиг сервера..."|[config]|item — один элемент полностью
search — поиск по содержимому
Возможные ошибки
Код | Описание |
| Вкладка не существует |
| Индекс за пределами |
| Неизвестный mode |
Под капотом (CopyQ CLI)
# tree
copyq tab | grep "^mcp/"
copyq tab "mcp/..." count
copyq tab "mcp/..." read 0 | head -c 50
# list
copyq tab "mcp/${tab}" count
copyq tab "mcp/${tab}" read $i
copyq tab "mcp/${tab}" read "application/x-copyq-tags" $i
# item
copyq tab "mcp/${tab}" read ${index}
copyq tab "mcp/${tab}" read "application/x-copyq-tags" ${index}
copyq tab "mcp/${tab}" read "application/x-copyq-item-notes" ${index}
# search
copyq eval "/* JS: grep по tabs */"2. mcp_write
Универсальная запись данных.
Параметры
Параметр | Тип | Default | Описание |
| string | — | обязательный (см. ниже) |
| string | — | Путь вкладки |
| number | — | Для item-операций |
| string | — | Текст (для add/update) |
| string[] | — | Метки |
| string | — | Заметка |
|
| — | Для update — что менять |
|
|
| Как менять |
| string | — | Для substitute — что заменить |
| string | — | Для move — куда переместить |
| string | — | Для tab_create/tab_delete |
|
|
| Выполнить или показать эффект |
Режимы (mode)
mode | Уровень | Описание | Обязательные параметры |
| item | Добавить элемент в начало | tab, text |
| item | Изменить элемент | tab, index, field, (text/tags/note) |
| item | Удалить элемент | tab, index |
| item | Переместить в другую вкладку | tab, index, to_tab |
| collection | Создать подвкладку | path (только workspace/*) |
| collection | Удалить подвкладку | path (только workspace/*) |
edit_mode для update
field | edit_mode | Действие |
text/note |
| Полная замена |
text/note |
| Дописать в конец |
text/note |
| Дописать в начало |
text/note |
| Заменить |
tags |
| Заменить все метки |
tags |
| Добавить метки (сохранив старые) |
tags |
| Удалить указанные метки |
intent: preview
При intent="preview" — не выполняет действие, а возвращает что произойдёт:
action: delete
target: mcp/info[3]
will_remove: "Текст который удалится..." | [метки] | +noteВозможные ошибки
Код | Описание |
| Вкладка не существует |
| Индекс за пределами |
| tab_create/tab_delete вне workspace |
| Неизвестный mode |
| Не хватает обязательного параметра |
| substitute: match не найден в тексте |
Формат ответа
ok|mode:add|tab:info|index:0|text_len:156|tags:2Под капотом (CopyQ CLI)
# add
copyq tab "mcp/${tab}" write 0 \
"text/plain" "${text}" \
"application/x-copyq-tags" "${tags}" \
"application/x-copyq-item-notes" "${note}"
# update (substitute)
OLD=$(copyq tab "mcp/${tab}" read ${index})
NEW=$(echo "$OLD" | sed "s/${match}/${value}/g")
TAGS=$(copyq tab "mcp/${tab}" read "application/x-copyq-tags" ${index})
NOTE=$(copyq tab "mcp/${tab}" read "application/x-copyq-item-notes" ${index})
copyq tab "mcp/${tab}" write ${index} \
"text/plain" "$NEW" \
"application/x-copyq-tags" "$TAGS" \
"application/x-copyq-item-notes" "$NOTE"
# delete
copyq tab "mcp/${tab}" remove ${index}
# move
# read all → write to to_tab → remove from tab
# tab_create
copyq tab "mcp/${path}"
# tab_delete
copyq removeTab "mcp/${path}"3. mcp_validate
Проверить корректность вызова без выполнения.
Параметры
Параметр | Тип | Описание |
|
| Какой инструмент проверить |
| object | Параметры вызова |
Формат ответа
Успех:
valid: true | warnings: [] | estimated_tokens: 340Ошибка:
valid: false | errors: ["TAB_NOT_FOUND: workspace/xxx"]Права доступа
Операция | info | заметки | workspace |
read (все режимы) | ✅ | ✅ | ✅ |
add | ✅ | ✅ | ✅ |
update | ✅ | ✅ | ✅ |
delete | ✅ | ✅ | ✅ |
move | ✅ | ✅ | ✅ |
tab_create | ❌ | ❌ | ✅ |
tab_delete | ❌ | ❌ | ✅ |
Установка
# Требования
# - Python 3.11+
# - CopyQ установлен и запущен
# - Путь к CopyQ: C:\Program Files\CopyQ\copyq.exe
# Установка
cd C:\sts\projects\mcp-copyq
uv venv
uv pip install -e .
# Запуск
uv run mcp-copyqКонфигурация Claude Desktop
{
"mcpServers": {
"copyq": {
"command": "uv",
"args": ["--directory", "C:\\sts\\projects\\mcp-copyq", "run", "mcp-copyq"]
}
}
}Примеры использования
Получить структуру
mcp_read(mode="tree", max_depth=2, max_items=5)Список элементов вкладки
mcp_read(mode="list", tab="info", max_items=10, include_note=true)Прочитать элемент
mcp_read(mode="item", tab="info", index=0)Поиск
mcp_read(mode="search", query="API", search_in="all", max_items=10)Добавить элемент
mcp_write(mode="add", tab="info", text="Новая запись", tags=["important"])Изменить текст (дописать в конец)
mcp_write(mode="update", tab="info", index=0, field="text", edit_mode="append", text="\n\nДополнение")Заменить фрагмент
mcp_write(mode="update", tab="info", index=0, field="text", edit_mode="substitute", match="старое", text="новое")Добавить метку (сохранив существующие)
mcp_write(mode="update", tab="info", index=0, field="tags", edit_mode="append", tags=["urgent"])Удалить с превью
mcp_write(mode="delete", tab="info", index=0, intent="preview")
mcp_write(mode="delete", tab="info", index=0, intent="execute")Создать подвкладку
mcp_write(mode="tab_create", path="workspace/новый_проект")Переместить элемент
mcp_write(mode="move", tab="info", index=0, to_tab="workspace/архив")Принципы дизайна
Минимум инструментов — 3 вместо 10+
Stateless — каждый вызов независим
Компактные ответы — pipe-separated, без лишних полей
Пагинация — skip/max_items для больших данных
Явные параметры —
include_textвместоfields: "minimal"Preview mode — intent="preview" для опасных операций
Чёткие ошибки — коды + описания
Структура проекта
mcp-copyq/
├── README.md
├── pyproject.toml
├── src/
│ └── mcp_copyq/
│ ├── __init__.py
│ ├── server.py # MCP server
│ ├── copyq_client.py # CopyQ CLI wrapper
│ ├── tools/
│ │ ├── __init__.py
│ │ ├── read.py # mcp_read
│ │ ├── write.py # mcp_write
│ │ └── validate.py # mcp_validate
│ ├── models.py # Pydantic models
│ └── errors.py # Error codes
└── tests/
├── __init__.py
├── test_read.py
├── test_write.py
├── test_validate.py
└── test_integration.pyЛицензия
MIT
Available Tools
3 toolsmcp_readA
Read from CopyQ clipboard manager.
MCP tabs (full read/write access):
mcp/info - general information storage
mcp/заметки - notes storage
mcp/workspace - projects (supports subtabs like workspace/myproject)
External tabs (READ-ONLY access with scope="all" or scope="external"):
All other CopyQ tabs like "&clipboard", personal tabs, etc.
Use scope="all" to see all tabs, scope="external" for non-mcp only
Modes:
tree: Get tab structure with previews. Use FIRST to see available tabs.
list: Get items from tab with pagination
item: Get single item with full content (text, tags, note)
search: Search by regex across tabs
Parameters:
mode (required): "tree" | "list" | "item" | "search"
tab: For mcp tabs use relative path "info", "workspace/proj1". For external use full name "&clipboard"
scope: "mcp" (default) | "all" | "external" - controls which tabs are accessible
index: Item index (for mode=item)
query: Search regex (for mode=search)
Examples:
tree of mcp tabs: mode="tree"
tree of ALL tabs: mode="tree", scope="all"
read external tab: mode="list", tab="&clipboard", scope="external"
search everywhere: mode="search", query="pattern", scope="all"
Errors: TAB_NOT_FOUND, INDEX_OUT_OF_BOUNDS, INVALID_MODE
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Operation mode | |
| tab | No | Tab path: 'info', 'workspace/proj1' or full external name '&clipboard' | |
| scope | No | Tab scope: mcp (default, read/write), all (read external), external (only non-mcp, read-only) | mcp |
| index | No | Item index (for mode=item) | |
| query | No | Search regex (for mode=search) | |
| search_in | No | all | |
| max_depth | No | ||
| max_items | No | ||
| skip | No | ||
| include_text | No | ||
| include_tags | No | ||
| include_note | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes access permissions (read/write for MCP tabs, read-only for external tabs), error conditions (TAB_NOT_FOUND, INDEX_OUT_OF_BOUNDS, INVALID_MODE), and operational modes. However, it doesn't mention rate limits, performance characteristics, or authentication requirements, leaving some behavioral aspects uncovered.
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 well-structured with clear sections (MCP tabs, External tabs, Modes, Parameters, Examples, Errors) and front-loaded essential information. While comprehensive, it could be slightly more concise by integrating some parameter details more tightly, but overall it's efficient with minimal wasted text.
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 complexity (12 parameters, multiple modes, access rules) and lack of annotations/output schema, the description is largely complete, covering purpose, usage, parameters, and errors. However, it doesn't detail the return format or pagination behavior for list mode, and some parameters lack semantic explanation, leaving minor gaps for a tool of this complexity.
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 only 42% schema description coverage, the description compensates well by explaining the semantics of key parameters like mode, tab, scope, index, and query, including examples and usage context. It adds significant value beyond the schema, though it doesn't cover all 12 parameters (e.g., search_in, max_depth, include_text are mentioned only in 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 tool reads from the CopyQ clipboard manager, specifying the verb 'read' and resource 'CopyQ clipboard manager'. It distinguishes from siblings by focusing on read operations (vs. mcp_write for writing and mcp_validate for validation), making the purpose specific and differentiated.
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 explicit guidance on when to use this tool, including detailed access rules for MCP vs. external tabs, scope options, and mode-specific use cases. It distinguishes from alternatives by specifying read-only access for external tabs and directing users to use specific modes for different tasks, with clear examples for each scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp_validateA
Validate parameters for mcp_read or mcp_write without executing.
Use to check if a call will succeed before making it.
Parameters:
tool (required): "read" | "write"
params (required): Parameters object to validate
Returns:
valid: true/false
errors: List of error codes and messages
warnings: List of warnings
estimated_tokens: Estimated response token count
| Name | Required | Description | Default |
|---|---|---|---|
| tool | Yes | Tool to validate | |
| params | Yes | Parameters to validate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral traits: it validates parameters without executing, checks for success, and returns validation results (valid/errors/warnings/estimated_tokens). This covers the core behavior well, though it could mention performance or rate limits for completeness.
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 front-loaded with the core purpose, followed by clear sections for parameters and returns. Every sentence earns its place by providing essential information without redundancy, making it 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?
Given the tool's complexity (validation without execution), no annotations, and no output schema, the description does a good job by explaining the purpose, usage, parameters, and return values. It could be more complete by detailing error handling or validation rules, but it covers the essentials adequately.
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 documents both parameters thoroughly. The description adds minimal value beyond the schema by listing parameters and their types, but doesn't provide additional syntax or format details. This meets the baseline for high schema coverage.
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 specific purpose: 'Validate parameters for mcp_read or mcp_write without executing.' It distinguishes this tool from its siblings (mcp_read and mcp_write) by emphasizing validation without execution, which is a clear differentiation.
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 provides usage guidance: 'Use to check if a call will succeed before making it.' This tells the agent when to use this tool (before executing mcp_read or mcp_write) and implies an alternative (using the actual tools directly), making it clear in context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp_writeA
Write to CopyQ clipboard manager.
IMPORTANT: All data stored under "mcp/" prefix. When you use tab="info", actual CopyQ path is "mcp/info".
Available tabs:
info - general storage (use tab="info")
заметки - notes (use tab="заметки")
workspace - projects, supports subtabs (use tab="workspace" or "workspace/myproject")
Modes:
add: Add item to tab. Params: tab, text, tags (optional), note (optional)
update: Update item. Params: tab, index, field, text/tags/note
delete: Delete item. Params: tab, index
move: Move item. Params: tab, index, to_tab
tab_create: Create subtab in workspace only. Params: path (e.g. "workspace/newproject")
tab_delete: Delete subtab. Params: path
Response shows full_path (e.g. "mcp/info") confirming where data was written.
Errors: TAB_NOT_FOUND, INDEX_OUT_OF_BOUNDS, PERMISSION_DENIED, MISSING_PARAM
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Operation mode | |
| tab | No | Tab path | |
| index | No | Item index | |
| text | No | Text content | |
| tags | No | Tags list | |
| note | No | Note content | |
| field | No | Field to update | |
| edit_mode | No | replace | |
| match | No | String to match (for substitute) | |
| to_tab | No | Destination tab (for move) | |
| path | No | Tab path (for tab_create/tab_delete) | |
| intent | No | execute |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: data storage location ('mcp/' prefix), available tabs with usage examples, operation modes with parameter requirements, response format ('full_path'), and specific error conditions. It provides comprehensive operational context beyond basic functionality.
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 well-structured with clear sections (IMPORTANT note, Available tabs, Modes, Response, Errors) and front-loads critical information. Most sentences earn their place by providing essential operational details, though some redundancy exists (e.g., repeating 'use tab=' in tab descriptions).
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 complex tool with 12 parameters, no annotations, and no output schema, the description provides substantial context: operation modes, tab system, parameter requirements, response format, and error conditions. It covers most aspects needed for effective use, though additional details about authentication or rate limits could further enhance 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?
With 83% schema description coverage, the baseline is 3, but the description adds significant value by explaining parameter usage in context: it maps modes to their required parameters (e.g., 'add: Params: tab, text, tags (optional), note (optional)'), clarifies tab usage with examples, and explains path parameter usage for workspace operations. This provides practical guidance beyond schema definitions.
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 starts with a clear verb ('Write to') and resource ('CopyQ clipboard manager'), specifying it's for writing operations. It distinguishes from sibling tools mcp_read (reading) and mcp_validate (validation) by focusing on write operations, making the purpose specific and differentiated.
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 clear context for when to use this tool (writing to CopyQ with data under 'mcp/' prefix) and explains tab usage scenarios. However, it doesn't explicitly state when NOT to use it or directly compare to alternatives like mcp_read, though the focus on writing implies usage for write operations rather than reading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The three tools have clearly distinct purposes: mcp_read is for reading data from the clipboard manager, mcp_write is for writing data to it, and mcp_validate is for validating parameters before operations. There is no overlap in functionality, making it easy for an agent to select the correct tool.
All tool names follow a consistent 'mcp_' prefix with a descriptive verb (read, write, validate), using snake_case uniformly. This predictable pattern enhances readability and reduces confusion.
With three tools, the count is appropriate for the server's purpose of clipboard management, covering read, write, and validation operations. It is well-scoped, though a slightly larger set might offer more granularity, but this is reasonable.
The tool set provides complete CRUD and lifecycle coverage for clipboard data management: mcp_read handles retrieval (including search and listing), mcp_write supports creation, updates, deletion, and movement, and mcp_validate ensures parameter integrity. No obvious gaps exist for the domain.
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
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.
Connect AI to your flomo notes. Search, create, edit notes and manage tags via MCP.
Persistent docs and memory for AI agents — read, write, organize & search a shared workspace.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants access to the macOS clipboard content, supporting text, images, and binary data via OSAScript.8MIT
- FlicenseNot gradedqualityDmaintenanceProvides clipboard access tools (get and set) for AI assistants via the Model Context Protocol, enabling seamless clipboard operations across platforms.1
- AlicenseAqualityAmaintenanceEnables AI agents to search and read screen recordings from Clipy, including transcripts, AI summaries, and key moments with frames.211203MIT
- AlicenseNot gradedqualityCmaintenanceEnables Claude to browse, search, and restore clipboard history with type classification, secret detection, and Touch ID-gated decryption.19MIT
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/list91/mcp-copyq'
If you have feedback or need assistance with the MCP directory API, please join our Discord server