Excel
Manipulación de Excel que incluye lectura/escritura de datos, gestión de hojas de cálculo, formato, gráficos y tablas dinámicas.
Documentación
Un servidor de Model Context Protocol que permite a los asistentes de IA crear, leer y editar libros de Excel. No requiere instalación de Microsoft Excel.
- Leer y escribir celdas, fórmulas y fechas, con paginación para hojas grandes y búsqueda
- Formato de fuentes, rellenos, bordes, formatos de número, anchos de columna y paneles congelados
- Estructura de hojas, filas y columnas, celdas combinadas, tablas, gráficos y tablas resumen
- Reglas: formato condicional y validación de datos (listas desplegables, límites numéricos)
- Macros: leer el código VBA en archivos
.xlsm, módulo por módulo (solo lectura, nunca se ejecutan) - Seguro por diseño: confinamiento opcional de carpetas, verificación de seguridad de fórmulas, modo de solo lectura, HTTP solo en localhost por defecto y guardados atómicos que nunca dejan un archivo a medias
Funciona con archivos .xlsx, .xlsm (las macros se conservan), .xltx y .xltm.
Inicio rápido
Necesitas uv. Cada cliente ejecuta el
servidor con uvx excel-mcp-server stdio; reemplaza /path/to/workbooks con la carpeta que el
servidor puede usar.
Claude Desktop (Chat): descarga excel-mcp-server-<version>.mcpb desde la
última versión y ábrelo.
Claude pregunta qué carpeta puede usar el servidor.
Claude Code (la CLI y la pestaña Code en Claude Desktop):
claude mcp add excel --scope user -- uvx excel-mcp-server stdio --allow-dir /path/to/workbooks
Cursor (~/.cursor/mcp.json) y la mayoría de los clientes que usan una configuración mcpServers:
{
"mcpServers": {
"excel": {
"command": "uvx",
"args": ["excel-mcp-server", "stdio", "--allow-dir", "/path/to/workbooks"]
}
}
}
VS Code con GitHub Copilot (.vscode/mcp.json, nota la clave servers):
{
"servers": {
"excel": {
"type": "stdio",
"command": "uvx",
"args": ["excel-mcp-server", "stdio", "--allow-dir", "${workspaceFolder}"]
}
}
}
OpenAI Codex, Gemini CLI, Devin Desktop y Claude Desktop sin el paquete
OpenAI Codex (CLI, extensión de IDE y aplicación):
codex mcp add excel -- uvx excel-mcp-server stdio --allow-dir /path/to/workbooks
Gemini CLI:
gemini mcp add -s user excel uvx excel-mcp-server stdio --allow-dir /path/to/workbooks
Devin Desktop:
devin mcp add -s user excel -- uvx excel-mcp-server stdio --allow-dir /path/to/workbooks
Claude Desktop, configuración manual: abre Configuración, Desarrollador, Editar configuración, añade el JSON mcpServers
anterior a claude_desktop_config.json y reinicia Claude.
Las aplicaciones de escritorio a menudo no pueden encontrar uvx, porque no ven el PATH de tu shell (común
en macOS). Usa su ruta completa en su lugar, que which uvx imprime.
Elegir qué archivos puede usar
Con --allow-dir DIR, el servidor solo abre libros dentro de DIR (incluidas las subcarpetas)
y las rutas relativas como reports/q1.xlsx comienzan allí. Repite la bandera para permitir varias
carpetas, o establece EXCEL_FILES_PATH (separa las carpetas con : en macOS/Linux y ; en
Windows).
Sin --allow-dir, cualquier ruta absoluta a un archivo de Excel funciona. En todos los modos, el servidor
solo toca archivos de Excel y nunca sobrescribe silenciosamente un libro existente.
Uso remoto (Streamable HTTP)
uvx excel-mcp-server streamable-http --allow-dir /srv/workbooks
Los clientes se conectan a http://127.0.0.1:8017/mcp. Los libros viven en la carpeta --allow-dir
(por defecto ./excel_files), y export_workbook / import_workbook mueven archivos entre el
servidor y el cliente.
El servidor escucha solo en localhost. Para aceptar otras máquinas, establece un token y un host:
EXCEL_MCP_AUTH_TOKEN=change-me uvx excel-mcp-server streamable-http --host 0.0.0.0
Los clientes envían entonces Authorization: Bearer change-me. Coloca un proxy inverso de terminación TLS
delante para usarlo a través de redes.
Docker
docker build -t excel-mcp-server .
docker run -p 8017:8017 -v "$PWD/workbooks:/data" -e EXCEL_MCP_AUTH_TOKEN=change-me excel-mcp-server
Configuración
| Bandera | Variable de entorno | Predeterminado | Significado |
|---|---|---|---|
--allow-dir DIR | EXCEL_FILES_PATH | ninguno (stdio), ./excel_files (HTTP) | Carpetas en las que deben estar los libros |
--read-only | EXCEL_MCP_READ_ONLY=1 | desactivado | Solo ofrece herramientas que no cambian archivos |
--max-file-mb N | 100 | Libro más grande que abre el servidor | |
--log-level LEVEL | WARNING | Registro en stderr | |
--host HOST | EXCEL_MCP_HOST | 127.0.0.1 | Dirección de escucha HTTP |
--port PORT | EXCEL_MCP_PORT | 8017 | Puerto HTTP |
EXCEL_MCP_AUTH_TOKEN | ninguno | Token Bearer requerido en solicitudes HTTP | |
--allow-unauthenticated | desactivado | Permitir un --host no local sin token |
Herramientas
| Área | Herramientas |
|---|---|
| Libros | create_workbook, describe_workbook, list_workbooks, export_workbook, import_workbook |
| Hojas | describe_sheet, create_sheet, rename_sheet, copy_sheet, delete_sheet, insert_rows_or_columns, delete_rows_or_columns |
| Celdas | read_range, write_range, clear_range, copy_range, find_cells |
| Formato | format_range, merge_cells, set_sheet_layout, add_conditional_format, add_data_validation |
| Objetos | create_table, create_chart, create_summary_table |
| Macros | read_vba |
Cada parámetro está documentado en TOOLS.md.
Seguridad
- Las fórmulas se analizan antes de escribirse. Las funciones que acceden a la red, otros
programas o información del host (
WEBSERVICE,HYPERLINK,IMAGE,RTD,CALL,INFO,INDIRECT, Google SheetsIMPORTXMLy otras), enlaces DDE y referencias a otros libros se rechazan. - Las rutas se resuelven, incluidos los enlaces simbólicos, antes de verificarse contra las carpetas permitidas.
- Una sola llamada procesa como máximo 100,000 celdas, y las lecturas grandes se devuelven en páginas.
- El contenido de las celdas son datos de archivos. El servidor le dice al modelo que no siga instrucciones encontradas en ellos, pero revisa lo que un asistente hace con libros de fuentes no confiables.
Por favor, reporta vulnerabilidades de forma privada; consulta SECURITY.md.
Limitaciones
- Las fórmulas se almacenan, no se calculan.
read_rangeen modovaluesdevuelve los resultados que Excel guardó por última vez, por lo que las fórmulas escritas por este servidor se leen como vacías hasta que el archivo se abre y guarda en Excel o LibreOffice. - Los archivos heredados
.xlsy.csvno son compatibles. create_summary_tableescribe un resumen estático; openpyxl no puede crear tablas dinámicas reales.- Insertar o eliminar filas y columnas no actualiza fórmulas, gráficos o tablas que se refieren a las celdas movidas.
- Las características de libros que openpyxl no entiende, como formas, segmentadores y algunos
objetos incrustados, pueden perderse cuando se edita un libro. Imágenes, gráficos, tablas y
macros en archivos
.xlsmse conservan.
Actualización desde 0.x
La versión 1.0 renombra y rediseña las herramientas, elimina el transporte SSE y requiere Python 3.11 o más reciente. El registro de cambios mapea cada herramienta antigua a su reemplazo.
Contribuciones
Las contribuciones son bienvenidas. Consulta CONTRIBUTING.md.
Historial de estrellas
Licencia
MIT. Consulta LICENSE.