Skip to main content
Glama

mcp-clipboard

PyPI version Python versions License Tests Coverage Downloads mcp-clipboard MCP server

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 будет копировать каждую предложенную им команду без необходимости просить об этом.

Инструменты

Инструмент

Описание

clipboard_paste

Основной инструмент. Чтение любого содержимого буфера обмена: таблиц, текста, кода, JSON, URL-адресов, изображений. Таблицы форматируются как Markdown/JSON/CSV; передайте include_schema=true, чтобы добавить выведенные типы столбцов. Изображения возвращаются как контент изображения, который модель может видеть.

clipboard_copy

Запись содержимого в системный буфер обмена. Принимает необязательный параметр mime_type (text/plain по умолчанию; также text/html, text/rtf или любой text/* в Wayland/X11).

clipboard_list_formats

Список MIME-типов, находящихся в данный момент в буфере обмена.

clipboard_read_raw

Возврат необработанного содержимого буфера обмена для заданного MIME-типа — поддерживает текстовые форматы плюс image/svg+xml, application/json, application/xml (диагностика).

Настройка

Предварительные требования

Python 3.11+ и одно из следующего: uv (рекомендуется), pipx или pip.

Вам также понадобится инструмент для работы с буфером обмена, специфичный для платформы:

Платформа

Инструмент

Установка

Fedora / RHEL (Wayland)

wl-copy / wl-paste

sudo dnf install wl-clipboard

Ubuntu / Debian (Wayland)

wl-copy / wl-paste

sudo apt install wl-clipboard

Linux (X11)

xclip

sudo dnf install xclip или sudo apt install xclip

macOS

Встроенный

Установка не требуется (pbcopy / pbpaste)

Windows

Встроенный

Установка не требуется (PowerShell)

Статус платформы: Linux с Wayland протестирован и активно используется. Реализации для X11, macOS и Windows завершены, но не протестированы на реальном оборудовании. Отчеты об ошибках и PR приветствуются.

Claude Code

claude mcp add clipboard --scope user -- uvx mcp-clipboard

Claude Desktop

Добавьте в конфигурацию Claude Desktop:

  • Linux: ~/.config/Claude/claude_desktop_config.json

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %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" в конфигурации.

Переменная

Платформа

Назначение

По умолчанию

MCP_CLIPBOARD_DEBUG

Все

Включить отладочное логирование (1 для включения)

Выкл

WAYLAND_DISPLAY

Linux (Wayland)

Имя сокета композитора или абсолютный путь

Автоопределение

XDG_RUNTIME_DIR

Linux (Wayland)

Директория, содержащая сокет Wayland

/run/user/<uid>

XDG_SESSION_TYPE

Linux

Подсказка о типе сессии (wayland или x11)

Автоопределение через сканирование сокетов

Большинству пользователей Linux не нужно устанавливать ничего из этого. Переопределите, если автоопределение не срабатывает (несколько композиторов, нестандартный путь к сокету или контейнеризированные среды).

Использование

Чтение буфера обмена

Скопируйте что угодно (ячейки таблицы, код, текст, URL, JSON, изображение), затем:

  • «Вставь мой буфер обмена»

  • «Прочитай мой буфер обмена»

  • «Что у меня в буфере обмена?»

  • «Я скопировал данные, посмотри»

Ваш ассистент вызывает clipboard_paste и возвращает содержимое с сохраненной структурой.

Запись в буфер обмена

Когда ваш агент генерирует команду, блок кода или любой текст, который вам нужно использовать в другом месте:

  • «Скопируй это в мой буфер обмена»

  • «Помести эту команду в мой буфер обмена»

  • «Скопируй это как HTML» (записывает text/html, чтобы приложения с поддержкой форматированного текста вставляли его с форматированием)

Агент вызывает clipboard_copy, и чистый текст отправляется прямо в ваш системный буфер обмена. Никаких артефактов терминального рендеринга, только чистый текст. Это особенно полезно при работе с Claude Code (см. выше).

Совет: поведение автокопирования. По умолчанию агент копирует в буфер обмена только тогда, когда вы просите. Если вы хотите, чтобы команды и блоки кода копировались автоматически, добавьте это в свой системный промпт (например, в проект Claude Desktop или файл CLAUDE.md в Claude Code):

Когда вы выводите команду или блок кода, который пользователь, вероятно, вставит в другое место, проактивно копируйте его в буфер обмена с помощью clipboard_copy.

Форматы вывода таблиц

Когда буфер обмена содержит табличные данные, output_format управляет форматом:

Формат

Назначение

Что вы получаете

markdown

Claude, GitHub, большинство инструментов

Таблица GFM с разделителями (по умолчанию)

notion

Notion

Таблица GFM с разделителями (Notion отображает их нативно)

slack

Slack

*жирный* заголовок + данные с выравниванием пробелами в моноширинном блоке кода

jira

Jira

`

Заголовок

/

Ячейка

` вики-разметка

confluence

Confluence

то же, что jira (общий синтаксис вики)

html

Email, веб, редакторы форматированного текста

<table> с <thead>/<th>/<tbody>/<td>

json

API, код

Массив объектов, ключами которых являются строки заголовков

csv

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

Читается как текст через clipboard_read_raw с image/svg+xml или возвращается как изображение через clipboard_paste

Аудио / видео

Не поддерживается; возвращается сообщение с указанием формата

Как это работает

  1. Определение платформы: При запуске сервер определяет ваш бэкенд буфера обмена (Wayland, X11, macOS или Windows) и выбирает соответствующие системные команды.

  2. Чтение (clipboard_paste): Вызывает команду чтения буфера обмена платформы. Сначала пробует text/html (Google Таблицы и Excel помещают разметку <table> в буфер обмена), парсит с помощью встроенного в Python html.parser. Если не удается, переходит к text/plain (значения, разделенные табуляцией), затем text/rtf, затем проверяет наличие изображений.

  3. Запись (clipboard_copy): Передает текст в команду записи буфера обмена платформы (wl-copy, xclip -selection clipboard, pbcopy или PowerShell Set-Clipboard). Поддерживает параметр `mime

Install Server
A
security – no known vulnerabilities
A
license - permissive license
-
quality - not tested

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