OpenPyXL MCP Server

by jonemo
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Enables analyzing Excel spreadsheets stored in Google Sheets, including accessing financial data, forms, and tabular datasets.

  • Provides a Python-based interface to the OpenPyXl library for Excel file manipulation and data extraction.

servidor openpyxl_mcp

¿Qué es esto?

Una envoltura ligera de la biblioteca de Python OpenPyXl que expone algunas de sus características como servidor del Protocolo de Contexto de Modelo (MCP). Esto permite a Claude y a otros clientes MCP obtener datos de archivos de Excel.

Enlaces relacionados:

Instalación

Pasos generales

  1. Descargue la última versión del ejecutable desde https://github.com/jonemo/openpyxl-mcp-server/releases . openpyxl_mcp_server es para MacOS, openpyxl_mcp_server.exe es para Windows.
  2. Configure su cliente MCP. Normalmente, será Claude Desktop; consulte las instrucciones en la siguiente sección.

Windows intentará disuadirte de ejecutar un archivo ejecutable aleatorio descargado de internet. Tendrás que hacer clic en "Conservar" o "Conservar de todos modos" en varios lugares para convencerlo de que no lo elimine. Los detalles dependen del navegador que uses y de la configuración de Windows Defender.

Si no confías en mis ejecutables, también puedes instalar la versión fuente del código directamente desde este repositorio. Consulta la sección "Desde el código fuente" a continuación.

Configuración de Claude Desktop

Tenga en cuenta que esto solo funciona con la aplicación Claude Desktop , no con Claude ejecutándose en el navegador web.

  1. Tengo instalado Claude Desktop.
  2. Descargue el ejecutable del servidor MCP (consulte la sección anterior). Esto supone que lo ha descargado en la carpeta "Descargas". Puede usar cualquier otra carpeta; ajuste las rutas en la configuración a continuación.
  3. En Claude Desktop, abra el menú "Configuración...":
  4. Vaya a la sección “Desarrollador” de la configuración.
  5. Haga clic en "Editar configuración". Esto creará un archivo de configuración para los servidores MCP si aún no tenía uno. La ubicación predeterminada de este archivo es:
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Ventanas: %APPDATA%\Claude\claude_desktop_config.json
  6. En macOS, añade lo siguiente a tu claude_desktop_config.json . Reemplaza <YOUR-USERNAME> con tu nombre de usuario de macOS. Si ya usas otros servidores MCP, tendrás que fusionar el JSON con el contenido existente.
    { "mcpServers": { "inspect_excel_xlsx_file": { "command": "/Users/<YOUR-USERNAME>/Downloads/openpyxl_mcp_server", "args": [] } } }
  7. En Windows, agregue lo siguiente a su claude_desktop_config.json . Reemplace <YOUR-USERNAME> con su nombre de usuario de macOS. Si ya usa otros servidores MCP, deberá fusionar el JSON con el contenido existente.
    { "mcpServers": { "inspect_excel_xlsx_file": { "command": "C:\\Users\\<YOUR-USERNAME>\\Downloads\\openpyxl_mcp_server.exe", "args": [] } } }
  8. Después de actualizar el archivo de configuración, debe reiniciar la aplicación Claude para que los cambios surtan efecto. No basta con cerrar la ventana de la aplicación Claude. En Windows, debe hacer clic derecho en el icono de Claude en la bandeja del sistema y seleccionar "Salir". En macOS, puede usar Comando+Q.

Si tiene problemas, consulte estos recursos:

Configuración de otros clientes MCP

Instrucciones para configurar servidores MCP en otras herramientas que los admiten:

Desde la fuente (para desarrollo)

Esta sección solo se aplica si desea modificar el código fuente o si no confía en los ejecutables proporcionados y prefiere ejecutar desde el código fuente.

git clone git@github.com:jonemo/openpyxl-mcp-server.git cd openpyxl-mcp-server python -m venv venv source venv/bin/activate pip install -r requirements.txt

Suponiendo que haya clonado su repositorio en /Users/jonas/repos/openpyxl_mcp_server , el contenido del archivo de configuración ahora debería cambiar a:

{ "mcpServers": { "inspect_excel_xlsx_file": { "command": "/Users/jonas/repos/openpyxl_mcp_server/venv/bin/python", "args": ["/Users/jonas/repos/openpyxl_mcp_server/openpyxl_mcp_server.py"] } } }

Ejemplos de indicaciones

Ejemplo 1

Utiliza el archivo KimbroughEvelyn_A-5qg0_Dataset_20160624.xlsx del conjunto de datos "Evaluación de la calidad del aire en zonas cercanas al puerto utilizando un enfoque de monitoreo móvil" de https://catalog.data.gov/dataset/near-port-air-quality-assessment-utilizing-a-mobile-monitoring-approach

Tras un vistazo rápido a la descripción y el contenido del archivo, no me quedó claro a qué puertos se refiere este conjunto de datos. Preguntemos a Claude:

Tengo un archivo de Excel en ~/Downloads/KimbroughEvelyn_A-5qg0_Dataset_20160624.xlsx que contiene datos asociados a un estudio sobre la contaminación del aire cerca de uno o más puertos de Estados Unidos. ¿Puedes deducir del contenido del archivo qué puertos abarca este estudio?

https://claude.ai/share/d87f67a9-dbc0-4223-86ff-3b4c1f9fa2e7

Después de 11 llamadas al servidor MCP, la respuesta es:

Al observar las coordenadas de latitud y longitud de la hoja de la Figura 2 y combinarlas con la información de ubicación, puedo inferir que este estudio se centra en el Puerto de Charleston, Carolina del Sur.

Las coordenadas del conjunto de datos (aproximadamente latitud 32,83 y longitud -79,87) corresponden al área de Charleston, y las referencias al centro de la ciudad, al patio ferroviario y a las estaciones de monitoreo del aeropuerto son consistentes con el monitoreo de la calidad del aire alrededor de una ciudad portuaria.

Este conjunto de datos parece contener mediciones de contaminación del aire (PM2.5 y PM10) recopiladas cerca del puerto de Charleston, con comparaciones entre las ubicaciones del puerto y los sitios de referencia/antecedentes.

Ejemplo 2:

Soy el tesorero de una pequeña asociación de propietarios de 10 unidades. Llevo la contabilidad en un archivo de Excel en Hojas de Cálculo de Google. El archivo tiene nueve hojas, nueve de ellas para información como la lista de transacciones, las cuentas de cuotas de los miembros y los informes trimestrales.

El archivo contiene información no pública, por lo tanto, este ejemplo solo muestra el mensaje, algunas ideas clave y la respuesta final:

~/Descargas/FLUJO DE CAJA 2024.xlsx son las finanzas de mi comunidad de propietarios. ¿Cuánto nos facturaron por el mantenimiento del sistema de riego en 2024? ¿Cuántas transacciones contribuyeron a este total? ¿Cuándo se realizó cada transacción?

[...]

Veo una hoja de "Transacciones" que probablemente contiene los registros detallados de gastos. Permítanme buscar "aspersor" en esta hoja para encontrar las transacciones relevantes:

[...]

Permítame examinar la hoja de resumen del AÑO 2024 para ver si el mantenimiento de rociadores figura como una categoría:

[...]

¡Genial! Encontré "Mantenimiento de rociadores" como categoría en la fila 24 de la hoja del año 2024. Ahora, veamos las transacciones relacionadas con el mantenimiento de rociadores:

[...]

Permítame verificar más entradas buscando específicamente "Mantenimiento de rociadores" en toda la hoja de Transacciones:

[...]

Según mi análisis de los registros financieros de su asociación de propietarios en el archivo "FLUJO DE EFECTIVO 2024.xlsx", esto es lo que encontré sobre los gastos de mantenimiento del sistema de riego en 2024:

Monto total facturado por mantenimiento del sistema de rociadores en 2024: $565.00 Número de transacciones: 1 transacción Fecha de transacción: 9 de septiembre de 2024

El gasto aparece como una sola transacción en la hoja de Transacciones. La hoja de cálculo también contiene un presupuesto de $750.00 para el mantenimiento de rociadores para el año > en la hoja "Año 2024: Valores reales vs. planificados", con una nota que indica "Aún no se han recibido facturas" (esta podría estar desactualizada, ya que ahora hay una sola factura registrada). ¿Desea que analice otros aspectos de los gastos de mantenimiento de rociadores de su asociación de propietarios u otra información financiera de la hoja de cálculo?

Historia real. Nuestro técnico de riego solo nos facturó una visita en primavera y olvidó enviarnos la factura del trabajo más tarde ese año. No se preocupen, le pagaron, pero está programado para 2025.

Ejemplo 3: Rellenar un formulario

Mis búsquedas en Google de libros de Excel interesantes dieron como resultado el formulario DPR 973 de la Agencia de Recursos Naturales de California: https://www.parks.ca.gov/pages/22374/files/Annual Report DPR973.xls . Parece ser un formulario que rellenan las "asociaciones" que apoyan a los Parques Estatales de California. Para que quede claro, no estoy afiliado a ninguna de esas asociaciones. Pero convertí el formulario de formato .xls a .xlsx y le pedí a Claude que me ayudara a rellenarlo.

Necesito presentar el formulario DPR973 porque trabajo para una asociación cooperativa de Parques Estatales de California. El formulario que debo completar es esta hoja de Excel: /Users/jonas/Downloads/Annual Report DPR973.xlsx. Apoyamos a los Parques Estatales publicando libros y generamos ingresos con la venta de leña. ¿En qué celdas del libro debo completar las celdas?

Después de 11 llamadas a la herramienta, la respuesta parece correcta, aunque no entiendo por qué Claude no miró las hojas restantes en absoluto:

Con base en mi análisis del formulario DPR973, ahora le brindaré orientación sobre dónde debe completar las celdas para su asociación cooperante que publica libros y vende leña:

  1. Página 1 :
    • Necesitará completar la Información de la Asociación (Parte I) con los detalles de su organización (nombre, dirección, información de contacto).
    • Actualice el año en la celda C4 al año del informe actual
  1. Página 2 (A) - Aquí es donde registrará su información de ventas:
  • Para las ventas de sus libros (que se considerarían interpretativas/educativas):
* Línea 1 (Celda F22): Ventas brutas - Materiales (para sus libros publicados) * Línea 2 (celda F23): Cualquier devolución o reembolso * Línea 3 (celda F24): costo de los bienes vendidos para los libros
  • Para sus ventas de leña:
* Línea 23 (Celda F51): Ventas brutas - Leña * Línea 24 (Celda F52): Cualquier reembolso/leña devuelta/dañada * Línea 25 (Celda F53): Costo de los bienes vendidos para leña
  • El formulario calculará automáticamente los totales en las celdas F25 (ganancias contables), F54 (ganancias de leña) y F58 (ganancias netas totales).
  1. Página 3 - Resumen financiero:
  • Las cifras de ventas se completarán automáticamente desde la página 2 (A) en:
* Línea 6 (Celda F11): Ventas brutas totales * Línea 7 (Celda F12): Costo total de bienes/servicios + devoluciones/reembolsos * Línea 8 (Celda H13): Utilidades netas de todos los materiales y servicios
  • Necesitarás ingresar manualmente:
* Cualquier donación/contribución (Línea 1, Celda F6) * Cuota de membresía si corresponde (Línea 4, Celda H9) * Ingresos por intereses/inversiones, si los hubiera (Línea 5, Celda H10) * Información de recaudación de fondos si corresponde (líneas 9 a 11) * Otros ingresos si corresponde (Línea 12, Celda H17)
  • Para gastos:
* Línea 15 (Celda F21): Cualquier subvención directa a los parques estatales de California * Línea 16 (Celda F22): Gastos de apoyo al programa interpretativo * Línea 17 (Celda F23): Soporte para otros programas CSP * Línea 19 (Celda H25): Gastos de gestión y generales
  • Para activos/pasivos:
* Línea 22 (Celda F30): Activos totales * Línea 23 (Celda H31): Pasivos totales * Líneas 24-26 (celdas F32-F34): Activos netos por tipo de restricción
  1. Página 4 (no examinada en su totalidad pero probablemente contiene):
  • Notas adicionales, explicaciones y firmas

Para sus actividades específicas (edición de libros y venta de leña), concéntrese en completar con precisión:

  1. La sección de Ventas Interpretativas y Educativas en la Página 2(A) para las ventas de sus libros
  2. La sección de Ventas de Leña en la Página 2(A) para sus ingresos por leña
  3. El resumen financiero completo en la página 3

¿Te gustaría que te explique alguna sección específica con más detalle?

Ejemplo 4

Esto utiliza el archivo 2025-3-7-iolp-buildings.xlsx del conjunto de datos Inventario de propiedades propias y arrendadas (IOLP) disponible en https://catalog.data.gov/dataset/inventory-of-owned-and-leased-properties-iolp . Si ha seguido las noticias en las últimas semanas, sabrá por qué este es actualmente el conjunto de datos más popular en data.gov.

Inmediato:

Usando el archivo Excel en "/Users/jonas/Downloads/2025-3-7-iolp-buildings.xlsx": ¿Cuál es el edificio federal más grande por metros cuadrados en el estado de Utah?

Utilicé este archivo y el mensaje repetidamente como caso de prueba y obtuve resultados mixtos:

  • Chats que terminaron sin respuesta por haber alcanzado el límite de contexto. Esto ocurrió cuando Claude se quedó atascado consultando varias filas a la vez.
  • Respuestas incorrectas porque Claude hizo suposiciones erróneas durante el proceso. Por ejemplo, en este chat, decide que el edificio más grande debe estar en Salt Lake City y empieza a buscar términos arbitrarios en la hoja de cálculo.
  • Respuestas correctas, por ejemplo este chat : El Centro de Servicio del IRS en Ogden es el edificio de propiedad federal más grande de Utah en la lista.

Nota al pie: El Centro de Servicios del IRS tiene razón al ser el edificio más grande de la lista. El "Bumblehive", también conocido como " Centro de Datos de Utah " o "Centro de Datos de la Iniciativa Nacional Integral de Ciberseguridad de la Comunidad de Inteligencia", es casi con toda seguridad más grande, pero no está incluido en el archivo.

Contribución y desarrollo

Construyendo ejecutables independientes

Para crear ejecutables independientes que no requieren la instalación de Python:

  1. Asegúrese de tener todas las dependencias instaladas:
    pip install -r requirements.txt pip install -r requirements-dev.txt
  2. Construya el ejecutable:
    pyinstaller openpyxl_mcp_server.spec

El ejecutable se creará en el directorio dist . En Windows, se llamará openpyxl_mcp_server.exe . En macOS, se llamará openpyxl_mcp_server .

Nota: Al compilar en macOS, es posible que deba firmar el ejecutable para que funcione correctamente. Puede hacerlo con:

codesign --force --deep --sign - dist/openpyxl_mcp_server

Directorios del servidor MCP

openpyxl-mcp-server se encuentra actualmente en estos directorios de servidores MCP:

-
security - not tested
A
license - permissive license
-
quality - not tested

Una envoltura delgada alrededor de la biblioteca Python OpenPyXl que expone las operaciones de archivos de Excel como un servidor de Protocolo de Contexto de Modelo (MCP), lo que permite a Claude y otros clientes MCP obtener y analizar datos de archivos de Excel.

  1. What is this?
    1. Installation
      1. General Steps
      2. Configuring Claude Desktop
    2. Configuring other MCP clients
      1. From Source (for development)
    3. Example prompts
      1. Example 1
      2. Example 2:
      3. Example 3: Filling out a form
      4. Example 4
    4. Contributing and Development
      1. Building standalone executables
      2. MCP Server Directories
    ID: 1412zczh90