Sheet-Cello
Un servidor de integración especializado de Google Sheets que permite al LLM leer, escribir y gestionar datos de hojas de cálculo en tiempo real. Este servidor admite manipulación a nivel de celda, actualizaciones masivas de rangos y recuperación completa de hojas de trabajo, lo que permite al modelo realizar análisis de datos, registro y generación de informes automatizados directamente en Google Worksheets. Si tienes funciones que toman un valor de rango, primero lee la hoja y decide dónde el usuario solicita agregar datos, y define el rango por tu cuenta. Proporciona 46 herramientas para Gsheet.
Documentación
Servidor MCP de Google Sheets 🚀
Un servidor potente y completo del Protocolo de Contexto de Modelos (MCP) que permite a los agentes de IA interactuar directamente con Google Sheets. Realiza desde actualizaciones simples de celdas hasta análisis de datos complejos y visualizaciones usando lenguaje natural.
📂 Estructura del Proyecto
El proyecto está organizado en capas de servicios modulares para facilitar el mantenimiento y la extensibilidad:
constants/: Configuración centralizada y descripciones de herramientas optimizadas para LLM.constants.py: Definiciones de nombres de herramientas, descripciones y claves de GSheet.
services/: Lógica central para interactuar con APIs y servicios externos.tools/: Implementación de varias funcionalidades de hojas de cálculo:data_analysis/: Ordenamiento, filtrado, tablas dinámicas y extracción de valores únicos.data_operations/: Lectura de rangos, actualizaciones por lotes y entrada de datos en filas/columnas.formattings/: Estilos de texto, colores, alineación, bordes y formatos de números.formulas/: Inserción y evaluación de fórmulas.rows_and_coloumns_operations/: Cambios estructurales (insertar/eliminar/ocultar/mostrar).sheet_operations/: Gestión de hojas (crear, eliminar, renombrar, listar).visualizations/: Creación y actualización dinámica de gráficos.
utils/: Utilidades auxiliares para normalización de colores y recuperación de hojas de trabajo.main.pyyserver.py: Puntos de entrada e inicialización del servidor MCP.
⚙️ Primeros Pasos
1. Requisitos Previos
- Proyecto de Google Cloud con las APIs de Google Sheets y Drive habilitadas.
- Archivo de credenciales JSON de cuenta de servicio colocado en
assets/. - Python 3.10+ instalado.
Paso 2: Crear Proyecto en Google Cloud
- Ve a Consola de Google Cloud
- Crea un nuevo proyecto
Paso 3: Habilitar APIs
Habilita:
- API de Google Sheets
- API de Google Drive
Paso 4: Crear Cuenta de Servicio
- Ve a APIs y Servicios → Credenciales
- Crea una Cuenta de Servicio
Paso 5: Crear Clave de Cuenta de Servicio
- Abre la Cuenta de Servicio
- Crea una clave JSON
- Descarga el archivo (por ejemplo,
credentials.json) - Abre la hoja de Google
- Compártela con el correo de la cuenta de servicio
- Otorga acceso de Editor
Paso 7: Autorizar en Python
mount your credential to assets/ if you running through docker
set SERVICE_FILE_PATH=path to your credential if running locally
2. Verificar la Conexión
- Verificar que el Servidor Esté Ejecutándose:
python main.py - Configuración de Cursor:
- Abre Configuración de Cursor → Desarrollador → Editar Configuración.
- Asegúrate de que el servidor esté listado (nombre predeterminado:
sheets-cello).
- Asegúrate de que el servidor esté listado (nombre predeterminado:
- Abre Configuración de Cursor → Desarrollador → Editar Configuración.
- Credenciales:
- Asegúrate de que
SERVICE_FILE_PATHenconstants/constants.pyo como variable de entorno apunte a tu archivo JSON de cuenta de servicio.
- Asegúrate de que
🛠️ Referencia Exhaustiva de Herramientas
El agente proporciona 46 herramientas especializadas organizadas en las siguientes categorías. Cada herramienta está optimizada para uso con LLM, con descripciones detalladas y ejemplos de uso.
🔌 Conexión y Alcance (1 herramienta)
select_sheet: Selecciona o activa un libro de Google Sheets diferente por nombre.
📊 Operaciones de Datos (8 herramientas)
read_range: Recupera valores de un rango rectangular específico (por ejemplo, A1:C10).read_batch_ranges: Recupera valores de múltiples rangos no contiguos en una sola llamada.read_sheet: Obtiene cada fila y columna poblada de la hoja de trabajo.get_cell_value: Recupera el valor de una sola celda específica.set_cell_value: Actualiza el valor de una sola celda específica.update_row_by_index: Actualiza una fila completa con nuevos datos según el número de fila.update_or_insert_column: Actualiza o inserta valores en una columna específica.append_data_batch_in_rows: Agrega múltiples filas de datos, encontrando automáticamente el final si es necesario.clear_range: Elimina todo el contenido dentro de un rango específico de celdas.
📑 Gestión de Hojas (4 herramientas)
list_sheets: Recupera una lista de todos los títulos de hojas de trabajo en la hoja de cálculo actual.create_sheet: Crea una nueva hoja de trabajo con tamaño opcional de filas/columnas.delete_sheet: Elimina una hoja de trabajo existente por su nombre.rename_sheet: Actualiza el título de una hoja de trabajo existente.
🎨 Formato y Estilos (12 herramientas)
set_text_style: Establece negrita, cursiva y tamaño de fuente para un rango.set_text_color: Establece el color de primer plano de las celdas usando valores RGB.set_background_color: Establece el color de fondo (relleno) de las celdas usando valores RGB.set_alignment: Establece la alineación horizontal y/o vertical del texto.set_wrap: Controla cómo se ajusta el texto (WRAP, CLIP, OVERFLOW).set_borders: Aplica bordes (superior, inferior, izquierdo, derecho) alrededor de un rango.set_rotation: Rota el texto dentro de las celdas según un ángulo dado.set_number_format: Establece patrones de formato de número, fecha, moneda o porcentaje.merge_cells: Fusiona todas las celdas de un rango en una sola celda.set_column_width: Establece el ancho de una columna específica en píxeles.set_row_height: Establece la altura de una fila específica en píxeles.auto_fit_columns: Ajusta automáticamente los anchos de columna según el contenido.
📐 Operaciones de Filas y Columnas (8 herramientas)
insert_rows: Inserta nuevas filas vacías en un índice específico.delete_rows: Elimina un número especificado de filas desde un índice.insert_columns: Inserta nuevas columnas vacías en un índice específico.delete_columns: Elimina un número especificado de columnas desde un índice.hide_rows: Oculta filas específicas de la vista.show_rows: Muestra filas previamente ocultas.hide_columns: Oculta columnas específicas de la vista.show_columns: Muestra columnas previamente ocultas.
🔢 Fórmulas (3 herramientas)
set_formula_in_cell: Inserta una fórmula de Google Sheets (por ejemplo,=SUM(A1:A10)).get_formula_from_cell: Recupera la cadena de fórmula sin procesar de una celda.evaluate_formula: Devuelve el resultado numérico o de texto calculado de una fórmula.
📈 Análisis de Datos (6 herramientas)
sort_range: Ordena un rango por una columna en orden ascendente o descendente.filter_data: Aplica criterios de filtrado complejos a un rango.remove_duplicates: Elimina filas duplicadas según columnas específicas.find_value: Busca un valor específico en un rango o en toda la hoja.get_unique_values: Devuelve todos los valores únicos de una columna específica.create_gsheet_pivot: Crea un resumen de tabla dinámica en una hoja de destino.
📊 Visualizaciones (3 herramientas)
create_chart: Crea gráficos de líneas, barras, circulares o de columnas.update_chart: Actualiza el título, tipo o posición de un gráfico existente.delete_chart: Elimina un gráfico de la hoja de trabajo por su título.
🔧 Solución de Problemas
- ¿Las Herramientas MCP No Aparecen?
- Asegúrate de que
python main.pyesté ejecutándose. 2. Reinicia Cursor por completo para actualizar el descubrimiento de herramientas.
- Asegúrate de que
- ¿Permiso Denegado?
- Asegúrate de haber compartido tu hoja de Google con el Correo de la Cuenta de Servicio que se encuentra en tu archivo de credenciales JSON.
#VARIABLES DE ENTORNO
SERVICE_FILE_PATH= path to your credentials.json
transport= (sse,stdio,http)
mcp_host= ip to host mcp
mcp_port= port to run mcp server