clipboard-mcp
mcp-clipboard
Un servidor MCP que le da a tu asistente de IA acceso directo al portapapeles de tu sistema: lee lo que copiaste o escribe texto limpio directamente en él. Funciona con cualquier cliente compatible con MCP, incluyendo Claude Code, Claude Desktop, Cursor, Windsurf y otros.
Por qué existe esto
Pegar pierde la estructura
Cuando copias celdas de Google Sheets o Excel y las pegas en la entrada de un chat, la estructura tabular (filas y columnas) se destruye. Llega como una cadena plana sin delimitadores. El modelo tiene que adivinar dónde termina una celda y dónde empieza la siguiente, y a menudo adivina mal.
mcp-clipboard la conserva. En lugar de pegar, dile a tu asistente que "lea mi portapapeles". El servidor lee el portapapeles directamente, detecta datos tabulares del HTML que las aplicaciones de hoja de cálculo ponen en el portapapeles y los devuelve como una tabla Markdown, JSON o CSV correctamente formateada. Sin pérdida de estructura, sin adivinanzas.
Bonus: también soluciona el copiado desde Claude Code
El renderizador de terminal de Claude Code añade un relleno de 2 caracteres, saltos de línea forzados a ~80 columnas y espacios en blanco al final de toda la salida. Cuando seleccionas y copias texto de la terminal, esos artefactos se incluyen en el proceso:
echo "this is a long command that wraps and
breaks when you paste it because of the hard
newlines and leading spaces"Esto ha sido reportado repetidamente en el repositorio de claude-code (issues #4686, #6827, #7670, #13378, #15199, #25040, #25427, #26016) con docenas de votos a favor y sin solución publicada.
mcp-clipboard evita el problema por completo. En lugar de copiar texto de la terminal, pídele a Claude Code que lo ponga en tu portapapeles:
"Copia ese comando a mi portapapeles"
Claude Code llama a clipboard_copy, escribe el texto limpio directamente en el portapapeles de tu sistema y tú lo pegas donde lo necesites. Sin relleno, sin saltos forzados, sin limpieza.
Consejo: Para hacer esto automático, añade una línea a tu proyecto o a tu CLAUDE.md global:
When you produce a shell command for the user to run, also copy it to the clipboard using clipboard_copy.Claude Code copiará entonces cada comando que sugiera sin que tengas que pedírselo.
Herramientas
Herramienta | Descripción |
| Herramienta principal. Lee cualquier contenido del portapapeles: tablas, texto, código, JSON, URLs, imágenes. Las tablas se formatean como Markdown/JSON/CSV; pasa |
| Escribe contenido en el portapapeles del sistema. Acepta un parámetro opcional |
| Lista qué tipos MIME hay actualmente en el portapapeles. |
| Devuelve el contenido crudo del portapapeles para un tipo MIME dado — soporta formatos de texto más |
Configuración
Requisitos previos
Python 3.11+ y uno de los siguientes: uv (recomendado), pipx o pip.
También necesitas una herramienta de portapapeles específica para tu plataforma:
Plataforma | Herramienta | Instalación |
Fedora / RHEL (Wayland) |
|
|
Ubuntu / Debian (Wayland) |
|
|
Linux (X11) |
|
|
macOS | Integrada | No requiere instalación ( |
Windows | Integrada | No requiere instalación (PowerShell) |
Estado de la plataforma: Linux con Wayland está probado y se usa activamente. Las implementaciones de X11, macOS y Windows están completas pero no probadas en hardware real. Los informes de errores y las PRs son bienvenidos.
Claude Code
claude mcp add clipboard --scope user -- uvx mcp-clipboardClaude Desktop
Añade esto a tu configuración de 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"]
}
}
}Otros clientes MCP
Cualquier cliente que soporte servidores stdio de MCP puede usar mcp-clipboard. El enfoque más sencillo es uvx mcp-clipboard. Consulta la documentación de tu cliente para saber cómo registrar servidores MCP.
Instalación desde el código fuente
Si prefieres un clon local en lugar de instalar desde PyPI:
git clone https://github.com/cmeans/mcp-clipboard.git
cd mcp-clipboard
uv syncLuego apunta tu cliente a la instalación local:
{
"mcpServers": {
"clipboard": {
"command": "uv",
"args": [
"run",
"--directory", "/path/to/mcp-clipboard",
"mcp-clipboard"
]
}
}
}Variables de entorno
Las variables de entorno se pueden pasar a través de la clave "env" en la configuración.
Variable | Plataforma | Propósito | Por defecto |
| Todas | Habilitar registro de depuración ( | Desactivado |
| Linux (Wayland) | Nombre del socket del compositor o ruta absoluta | Autodetectado |
| Linux (Wayland) | Directorio que contiene el socket de Wayland |
|
| Linux | Pista del tipo de sesión ( | Autodetectado vía escaneo de socket |
La mayoría de los usuarios de Linux no necesitarán configurar ninguna de estas. Sobrescríbelas si la autodetección falla (múltiples compositores, ruta de socket no estándar o entornos en contenedores).
Uso
Leer tu portapapeles
Copia cualquier cosa (celdas de hoja de cálculo, código, texto, una URL, JSON, una imagen), luego:
"Pega mi portapapeles"
"Lee mi portapapeles"
"¿Qué hay en mi portapapeles?"
"He copiado algunos datos, échales un vistazo"
Tu asistente llama a clipboard_paste y devuelve el contenido con la estructura conservada.
Escribir en tu portapapeles
Cuando tu agente genera un comando, bloque de código o cualquier texto que necesites usar en otro lugar:
"Copia eso a mi portapapeles"
"Pon ese comando en mi portapapeles"
"Copia eso como HTML" (escribe
text/htmlpara que las aplicaciones de texto enriquecido peguen con formato)
El agente llama a clipboard_copy y el texto limpio va directamente al portapapeles de tu sistema. Sin artefactos de renderizado de terminal, solo texto limpio. Esto es especialmente útil con Claude Code (ver arriba).
Consejo: comportamiento de autocopiado. Por defecto, el agente solo copia al portapapeles cuando se lo pides. Si quieres que los comandos y bloques de código se copien automáticamente, añade esto a tu prompt del sistema (por ejemplo, en un proyecto de Claude Desktop o en el
CLAUDE.mdde Claude Code):Cuando generes un comando o bloque de código que el usuario probablemente pegue en otro lugar, cópialo proactivamente al portapapeles usando clipboard_copy.
Formatos de salida de tabla
Cuando el portapapeles contiene datos tabulares, output_format controla el formato:
Formato | Destino | Qué obtienes | ||||||
| Claude, GitHub, la mayoría de herramientas | Tabla de tuberías GFM (por defecto) | ||||||
| Notion | Tabla de tuberías GFM (Notion las renderiza nativamente) | ||||||
| Slack | Encabezado | ||||||
| Jira | Marcado wiki ` | Encabezado |
| Celda | ` | ||
| Confluence | igual que | ||||||
| Correo, web, editores de texto enriquecido |
| ||||||
| APIs, código | Matriz de objetos indexados por la fila de encabezado | ||||||
| Excel, herramientas de datos | Valores separados por comas |
Ejemplos:
"Lee mi portapapeles como Slack" →
output_format=slack"Convierte mi portapapeles a tabla Jira" →
output_format=jira"Dame eso como HTML" →
output_format=html
Inferencia de esquema de tabla
Añade include_schema=true para obtener un resumen de tipos de columna junto a la tabla:
"Lee mi portapapeles con esquema"
Tipos inferidos: integer, float, currency, percentage, date, boolean, text. Utiliza la mayoría gana por columna: si ningún tipo representa más de la mitad de las celdas no vacías, la columna se tipifica como text. Las celdas vacías se omiten; la fila de encabezado se excluye de la inferencia.
Esto es útil al entregar datos tabulares a Claude para sentencias SQL CREATE TABLE, mapeos de dtype de Pandas o reglas de validación: Claude obtiene los tipos por adelantado en lugar de adivinarlos a partir de los datos.
Consejos para un disparo fiable
El servidor incluye instrucciones MCP que le dicen al cliente cuándo usar las herramientas del portapapeles, pero los resultados varían según el modelo y el cliente. Si el agente no capta tu intención, sé explícito: "copia eso a mi portapapeles" o "lee lo que copié" funcionan de forma más fiable.
Si tienes acceso a un prompt del sistema personalizado (por ejemplo, en un proyecto de Claude Desktop o un agente personalizado), puedes reforzar el comportamiento:
Cuando el usuario pida copiar la salida, usa clipboard_copy para escribirla en el portapapeles del sistema. Cuando el usuario haga referencia a datos que no están en la conversación, comprueba el portapapeles usando clipboard_paste.
Manejo de contenido
Tipo de contenido | Qué sucede |
Tabla de hoja de cálculo | Analizada desde HTML/TSV, devuelta en el formato que elijas (Markdown, JSON, CSV, Slack, Jira, HTML, Notion) |
JSON | Impreso de forma bonita en un bloque de código JSON |
Código | Devuelto en un bloque de código delimitado |
URL | Devuelta limpiamente como una URL |
HTML enriquecido (sin tabla) | Etiquetas HTML eliminadas, se devuelve texto legible |
RTF | Devuelto en un bloque de código delimitado (macOS, Windows y Wayland/X11 mediante paso a través) |
Texto plano | Devuelto tal cual |
Imágenes (PNG, etc.) | Devueltas como un bloque de contenido de imagen MCP que el modelo puede ver y analizar |
SVG | Legible como texto mediante |
Audio / video | No soportado; devuelve un mensaje identificando el formato |
Cómo funciona
Detección de plataforma: Al inicio, el servidor detecta tu backend de portapapeles (Wayland, X11, macOS o Windows) y selecciona los comandos del sistema apropiados.
Lectura (
clipboard_paste): Llama al comando de lectura del portapapeles de la plataforma. Intenta primerotext/html(Google Sheets y Excel ponen marcado<table>en el portapapeles), analiza con elhtml.parserintegrado de Python. Recurre a valores separados por tabulacionestext/plain, luegotext/rtf, luego comprueba si hay imágenes.Escritura (
clipboard_copy): Envía texto al comando de escritura del portapapeles de la plataforma (wl-copy,xclip -selection clipboard,pbcopyo PowerShellSet-Clipboard). Soporta un parámetromime_typepara escribir contenido tipado (por ejemplo,text/html,text/rtf).Paso a través de imágenes: Si el portapapeles contiene una imagen (PNG, etc.), se devuelve como un bloque de contenido de imagen MCP codificado en base64 que el modelo puede ver y analizar.
Clasificación de contenido: El contenido de texto no tabular se clasifica como JSON, URL, código o texto plano y se devuelve con el formato apropiado (JSON impreso de forma bonita, bloques de código delimitados, etc.).
Limitaciones
El audio y el video no son compatibles. Si el portapapeles contiene audio o video, el servidor informa del formato pero no puede devolver el contenido.
La escritura en el portapapeles solo admite tipos MIME de texto.
clipboard_copypuede escribirtext/plain,text/htmlytext/rtf. No se admite la
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