clipboard-mcp
mcp-clipboard
MCP-сервер, который предоставляет вашему ИИ-ассистенту прямой доступ к системному буферу обмена: читайте то, что вы скопировали, или записывайте чистый текст прямо в него. Работает с любым MCP-совместимым клиентом, включая Claude Code, Claude Desktop, Cursor, Windsurf и другие.
Зачем это нужно
При вставке теряется структура
Когда вы копируете ячейки из Google Таблиц или Excel и вставляете их в поле ввода чата, табличная структура (строки и столбцы) разрушается. Данные приходят как плоская строка без разделителей. Модели приходится угадывать, где заканчивается одна ячейка и начинается другая, и она часто ошибается.
mcp-clipboard сохраняет её. Вместо вставки попросите ассистента «прочитать мой буфер обмена». Сервер считывает буфер напрямую, обнаруживает табличные данные из HTML, который приложения для работы с таблицами помещают в буфер, и возвращает их в виде правильно отформатированной таблицы Markdown, JSON или CSV. Структура не теряется, угадывать не нужно.
Бонус: также исправляет копирование из Claude Code
Терминальный рендерер Claude Code добавляет 2-символьный отступ, жесткие разрывы строк примерно на 80 столбцах и завершающие пробелы ко всему выводу. Когда вы выделяете и копируете текст из терминала, эти артефакты копируются вместе с ним:
echo "this is a long command that wraps and
breaks when you paste it because of the hard
newlines and leading spaces"Об этом неоднократно сообщалось в репозитории claude-code (проблемы #4686, #6827, #7670, #13378, #15199, #25040, #25427, #26016) с десятками голосов «за», но исправление так и не было выпущено.
mcp-clipboard полностью обходит эту проблему. Вместо копирования текста из терминала попросите Claude Code поместить его в ваш буфер обмена:
"Скопируй эту команду в мой буфер обмена"
Claude Code вызывает clipboard_copy, записывает чистый текст прямо в системный буфер обмена, и вы вставляете его туда, куда нужно. Никаких отступов, никаких жестких переносов, никакой очистки.
Совет: Чтобы сделать это автоматическим, добавьте строку в ваш проект или глобальный файл CLAUDE.md:
When you produce a shell command for the user to run, also copy it to the clipboard using clipboard_copy.После этого Claude Code будет копировать каждую предложенную им команду без необходимости просить об этом.
Инструменты
Инструмент | Описание |
| Основной инструмент. Чтение любого содержимого буфера обмена: таблиц, текста, кода, JSON, URL-адресов, изображений. Таблицы форматируются как Markdown/JSON/CSV; передайте |
| Запись содержимого в системный буфер обмена. Принимает необязательный параметр |
| Список MIME-типов, находящихся в данный момент в буфере обмена. |
| Возврат необработанного содержимого буфера обмена для заданного MIME-типа — поддерживает текстовые форматы плюс |
Настройка
Предварительные требования
Python 3.11+ и одно из следующего: uv (рекомендуется), pipx или pip.
Вам также понадобится инструмент для работы с буфером обмена, специфичный для платформы:
Платформа | Инструмент | Установка |
Fedora / RHEL (Wayland) |
|
|
Ubuntu / Debian (Wayland) |
|
|
Linux (X11) |
|
|
macOS | Встроенный | Установка не требуется ( |
Windows | Встроенный | Установка не требуется (PowerShell) |
Статус платформы: Linux с Wayland протестирован и активно используется. Реализации для X11, macOS и Windows завершены, но не протестированы на реальном оборудовании. Отчеты об ошибках и PR приветствуются.
Claude Code
claude mcp add clipboard --scope user -- uvx mcp-clipboardClaude Desktop
Добавьте в конфигурацию Claude Desktop:
Linux:
~/.config/Claude/claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"clipboard": {
"command": "uvx",
"args": ["mcp-clipboard"]
}
}
}Другие MCP-клиенты
Любой клиент, поддерживающий MCP-серверы stdio, может использовать mcp-clipboard. Самый простой подход — uvx mcp-clipboard. Обратитесь к документации вашего клиента, чтобы узнать, как регистрировать MCP-серверы.
Установка из исходного кода
Если вы предпочитаете локальный клон вместо установки из PyPI:
git clone https://github.com/cmeans/mcp-clipboard.git
cd mcp-clipboard
uv syncЗатем укажите клиенту путь к локальной установке:
{
"mcpServers": {
"clipboard": {
"command": "uv",
"args": [
"run",
"--directory", "/path/to/mcp-clipboard",
"mcp-clipboard"
]
}
}
}Переменные окружения
Переменные окружения можно передать через ключ "env" в конфигурации.
Переменная | Платформа | Назначение | По умолчанию |
| Все | Включить отладочное логирование ( | Выкл |
| Linux (Wayland) | Имя сокета композитора или абсолютный путь | Автоопределение |
| Linux (Wayland) | Директория, содержащая сокет Wayland |
|
| Linux | Подсказка о типе сессии ( | Автоопределение через сканирование сокетов |
Большинству пользователей Linux не нужно устанавливать ничего из этого. Переопределите, если автоопределение не срабатывает (несколько композиторов, нестандартный путь к сокету или контейнеризированные среды).
Использование
Чтение буфера обмена
Скопируйте что угодно (ячейки таблицы, код, текст, URL, JSON, изображение), затем:
«Вставь мой буфер обмена»
«Прочитай мой буфер обмена»
«Что у меня в буфере обмена?»
«Я скопировал данные, посмотри»
Ваш ассистент вызывает clipboard_paste и возвращает содержимое с сохраненной структурой.
Запись в буфер обмена
Когда ваш агент генерирует команду, блок кода или любой текст, который вам нужно использовать в другом месте:
«Скопируй это в мой буфер обмена»
«Помести эту команду в мой буфер обмена»
«Скопируй это как HTML» (записывает
text/html, чтобы приложения с поддержкой форматированного текста вставляли его с форматированием)
Агент вызывает clipboard_copy, и чистый текст отправляется прямо в ваш системный буфер обмена. Никаких артефактов терминального рендеринга, только чистый текст. Это особенно полезно при работе с Claude Code (см. выше).
Совет: поведение автокопирования. По умолчанию агент копирует в буфер обмена только тогда, когда вы просите. Если вы хотите, чтобы команды и блоки кода копировались автоматически, добавьте это в свой системный промпт (например, в проект Claude Desktop или файл CLAUDE.md в Claude Code):
Когда вы выводите команду или блок кода, который пользователь, вероятно, вставит в другое место, проактивно копируйте его в буфер обмена с помощью clipboard_copy.
Форматы вывода таблиц
Когда буфер обмена содержит табличные данные, output_format управляет форматом:
Формат | Назначение | Что вы получаете | ||||||
| Claude, GitHub, большинство инструментов | Таблица GFM с разделителями (по умолчанию) | ||||||
| Notion | Таблица GFM с разделителями (Notion отображает их нативно) | ||||||
| Slack |
| ||||||
| Jira | ` | Заголовок |
| Ячейка | ` вики-разметка | ||
| Confluence | то же, что | ||||||
| Email, веб, редакторы форматированного текста |
| ||||||
| API, код | Массив объектов, ключами которых являются строки заголовков | ||||||
| Excel, инструменты обработки данных | Значения, разделенные запятыми |
Примеры:
«Прочитай мой буфер обмена как Slack» →
output_format=slack«Преобразуй мой буфер обмена в таблицу Jira» →
output_format=jira«Дай мне это как HTML» →
output_format=html
Вывод схемы таблицы
Добавьте include_schema=true, чтобы получить сводку типов столбцов вместе с таблицей:
«Прочитай мой буфер обмена со схемой»
Выведенные типы: integer, float, currency, percentage, date, boolean, text. Используется принцип большинства для каждого столбца — если ни один тип не составляет более половины непустых ячеек, столбцу присваивается тип text. Пустые ячейки пропускаются; строка заголовка исключается из вывода.
Это полезно при передаче табличных данных в Claude для SQL-инструкций CREATE TABLE, сопоставлений dtype в Pandas или правил валидации — Claude получает типы заранее, вместо того чтобы угадывать их по данным.
Советы для надежного срабатывания
Сервер включает инструкции MCP, которые сообщают клиенту, когда использовать инструменты буфера обмена, но результаты зависят от модели и клиента. Если агент не понимает ваше намерение, будьте конкретны: «скопируй это в мой буфер обмена» или «прочитай то, что я скопировал» работают наиболее надежно.
Если у вас есть доступ к пользовательскому системному промпту (например, в проекте Claude Desktop или пользовательском агенте), вы можете усилить это поведение:
Когда пользователь просит скопировать вывод, используйте clipboard_copy для записи в системный буфер обмена. Когда пользователь ссылается на данные, которых нет в разговоре, проверьте буфер обмена с помощью clipboard_paste.
Обработка контента
Тип контента | Что происходит |
Таблица электронной таблицы | Парсится из HTML/TSV, возвращается в выбранном вами формате (Markdown, JSON, CSV, Slack, Jira, HTML, Notion) |
JSON | Красиво отформатирован в блоке кода JSON |
Код | Возвращается в блоке кода с обрамлением |
URL | Возвращается в чистом виде как URL |
Форматированный HTML (без таблицы) | HTML-теги удаляются, возвращается читаемый текст |
RTF | Возвращается в блоке кода с обрамлением (macOS, Windows и Wayland/X11 через сквозную передачу) |
Обычный текст | Возвращается как есть |
Изображения (PNG и т.д.) | Возвращается как блок контента изображения MCP, который модель может видеть и анализировать |
SVG | Читается как текст через |
Аудио / видео | Не поддерживается; возвращается сообщение с указанием формата |
Как это работает
Определение платформы: При запуске сервер определяет ваш бэкенд буфера обмена (Wayland, X11, macOS или Windows) и выбирает соответствующие системные команды.
Чтение (
clipboard_paste): Вызывает команду чтения буфера обмена платформы. Сначала пробуетtext/html(Google Таблицы и Excel помещают разметку<table>в буфер обмена), парсит с помощью встроенного в Pythonhtml.parser. Если не удается, переходит кtext/plain(значения, разделенные табуляцией), затемtext/rtf, затем проверяет наличие изображений.Запись (
clipboard_copy): Передает текст в команду записи буфера обмена платформы (wl-copy,xclip -selection clipboard,pbcopyили PowerShellSet-Clipboard). Поддерживает параметр `mime
Latest Blog Posts
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/cmeans/clipboard-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server