Excel操作服务器

一个基于Gradio的MCP服务器,提供通过LLM代理操作Excel文件的完整CRUD功能,包括创建、查询、更新、删除和合并表格。

  • by DeCeliMagico
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 pablodecelis/mcp-excel-1stBirthday

使用说明


title: Excel MCP Server emoji: 📊 colorFrom: green colorTo: blue sdk: gradio sdk_version: 6.0.1 app_file: app.py pinned: false tags:

  • mcp-server-track
  • building-mcp-track-consumer

Excel MCP Server (Gradio)

🎉 Submission for MCP 1st Birthday Hackathon

📹 Demo Video 📣 Social Post
Ver demo (3:16 min) LinkedIn Post

Autor: Pablo De Celis

Servidor MCP construido con Gradio que expone herramientas para manipular archivos Excel mediante agentes (LLMs). Permite crear tablas, consultar, insertar, actualizar por índice y por condición, eliminar, añadir múltiples filas y fusionar dos tablas si las columnas coinciden.

🚀 Características

  • MCP server: demo.launch(mcp_server=True)
  • 12 tools (CRUD completo + batch insert + fusión)
  • Comparaciones case-insensitive en filtros
  • Protección de cabecera (fila 0)
  • Interfaz en pestañas para pruebas manuales

🧰 Tools disponibles

  • cargar_tabla(file_path, n_rows=5)
  • crear_tabla_excel(file_path, columnas)
  • añadir_fila_excel(file_path, valores)
  • añadir_filas_excel(file_path, filas)
  • fusionar_tablas_excel(file_path_base, file_path_secundario)
  • actualizar_fila_excel(file_path, indice, valores)
  • actualizar_por_condicion(file_path, condiciones, nuevos_valores)
  • eliminar_fila_excel(file_path, indice)
  • eliminar_filas_por_condicion(file_path, condiciones)
  • consultar_filas(file_path, condiciones=None)
  • obtener_columnas(file_path)
  • actualizar_excel(df, file_path)

📦 Requisitos

Ver requirements.txt:

  • gradio>=6.0.0
  • pandas>=2.0.0
  • openpyxl>=3.1.0

▶️ Uso local

python main.py

Abrirá la interfaz Gradio y expondrá el servidor MCP. El esquema MCP suele estar disponible en http://localhost:7860/gradio_api/mcp/schema.

🔗 Ejemplos de inputs

  • Añadir una fila (columnas: Nombre, Edad, Ciudad):
["Carlos", 28, "Madrid"]
  • Añadir múltiples filas:
[["Carlos", 28, "Madrid"], ["Ana", 32, "Barcelona"], ["Luis", 25, "Valencia"]]
  • UPDATE WHERE (AND lógico):
condiciones = {"Ciudad": "Madrid", "Edad": "30"}
nuevos_valores = {"Departamento": "IT", "Salario": "50000"}
  • Fusionar tablas (mismas columnas): usar la pestaña "🔗 Fusionar" con dos archivos.

🧪 Flujo de prueba sugerido

  1. "🆕 Crear" una tabla con columnas ["Nombre", "Edad", "Ciudad"].
  2. "➕ Añadir" o "➕ Añadir Múltiples" filas.
  3. "🔍 SELECT" para verificar.
  4. "✏️ UPDATE" por índice y "✏️ UPDATE WHERE" por condiciones.
  5. "🗑️ DELETE" (por índice o condición).
  6. "🔗 Fusionar" dos tablas con mismas columnas.

🧭 Integración con Cursor (MCP Client)

Arranca el servidor (python main.py), habilita MCP en Cursor y añade el endpoint del esquema:

http://localhost:7860/gradio_api/mcp/schema

Invoca tools desde el chat, por ejemplo: "Añade múltiples filas a mi Excel con [[\"Carlos\",28,\"Madrid\"],[\"Ana\",32,\"Barcelona\"]]".

Ejemplo de payloads

  • SELECT WHERE: { "tool": "consultar_filas", "args": { "file_path": "tabla1.xlsx", "condiciones": { "Ciudad": "Madrid" } } }
  • UPDATE WHERE: { "tool": "actualizar_por_condicion", "args": { "file_path": "tabla1.xlsx", "condiciones": { "Ciudad": "Madrid" }, "nuevos_valores": { "Departamento": "IT" } } }

📣 Hackathon Submission

  • Track: Building MCP - Consumer
  • Social Post: LinkedIn
  • Demo Video: Incluido en el post de LinkedIn (3:16 min)
  • Autor: Pablo De Celis

Proyecto creado para el MCP 1st Birthday Hackathon (Gradio + Anthropic + Hugging Face). Trabajo original desarrollado Nov 14–30, 2025.