Smartsheet MCP Server

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Integrates with Azure OpenAI API for batch analysis capabilities, enabling summarization, sentiment analysis, custom scoring, and research impact assessment on Smartsheet data.

  • Provides integration with Smartsheet platform, enabling intelligent operations for document management, data manipulation, column customization, batch analysis, and conditional updates of Smartsheet documents. Supports healthcare-specific analytics including clinical research, hospital operations, and healthcare innovation.

Servidor MCP de Smartsheet

Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona una integración fluida con Smartsheet, lo que permite operaciones automatizadas en documentos de Smartsheet mediante una interfaz estandarizada. Este servidor conecta las herramientas de automatización basadas en IA con la potente plataforma de colaboración de Smartsheet.

Descripción general

El servidor MCP de Smartsheet está diseñado para facilitar interacciones inteligentes con Smartsheet, proporcionando un conjunto robusto de herramientas para la gestión de documentos, las operaciones con datos y la personalización de columnas. Es un componente fundamental en los flujos de trabajo automatizados, permitiendo que los sistemas de IA interactúen programáticamente con los datos de Smartsheet, manteniendo la integridad de los datos y aplicando las reglas de negocio.

Beneficios clave

  • Integración inteligente : conecta sin problemas los sistemas de IA con la plataforma de colaboración de Smartsheet
  • Integridad de los datos : aplica reglas de validación y mantiene la integridad referencial en todas las operaciones.
  • Gestión de fórmulas : conserva y actualiza automáticamente las referencias de fórmulas
  • Configuración flexible : admite varios tipos de columnas y estructuras de datos complejas
  • Resiliencia de errores : implementa un manejo y validación de errores integral en múltiples capas
  • Análisis de atención médica : capacidades de análisis especializadas para datos clínicos y de investigación
  • Procesamiento por lotes : gestión eficiente de grandes conjuntos de datos sanitarios
  • Puntuación personalizada : sistemas de puntuación flexibles para iniciativas e investigaciones sanitarias

Casos de uso

  1. Análisis de investigación clínica
    • Puntuación de cumplimiento del protocolo
    • Análisis de datos de pacientes
    • Evaluación del impacto de la investigación
    • Procesamiento de datos de ensayos clínicos
    • Resumen automatizado de notas de investigación
  2. Operaciones del hospital
    • Análisis de utilización de recursos
    • Puntuación de la satisfacción del paciente
    • Métricas de eficiencia del departamento
    • Análisis del rendimiento del personal
    • Seguimiento de métricas de calidad
  3. Innovación en la atención sanitaria
    • Puntuación de alineación pediátrica
    • Evaluación del impacto de la innovación
    • Priorización de la investigación
    • Análisis de viabilidad de implementación
    • Evaluación del valor clínico
  4. Gestión automatizada de documentos
    • Modificaciones programáticas de la estructura de la hoja
    • Creación y gestión dinámica de columnas
    • Validación y formato de datos automatizados
  5. Operaciones de datos
    • Actualizaciones masivas de datos con comprobaciones de integridad
    • Detección inteligente de duplicados
    • Modificaciones que tienen en cuenta la fórmula
  6. Integración de sistemas
    • Personalización de hojas impulsada por IA
    • Flujos de trabajo de informes automatizados
    • Sincronización de datos entre sistemas

Puntos de integración

El servidor se integra con:

  • API de Smartsheet para operaciones de datos
  • Protocolo MCP para comunicación estandarizada
  • Herramientas de desarrollo local a través de la interfaz stdio
  • Sistemas de monitoreo mediante registro estructurado

Arquitectura

El servidor implementa una arquitectura de puente entre MCP y Smartsheet:

  1. Capa MCP de TypeScript ( src/index.ts )
    • Maneja la comunicación del protocolo MCP
    • Registra y gestiona las herramientas disponibles
    • Envía solicitudes a la implementación de Python
    • Gestiona la configuración y el manejo de errores.
  2. Capa CLI de Python ( smartsheet_ops/cli.py )
    • Proporciona una interfaz de línea de comandos para operaciones.
    • Maneja el análisis y validación de argumentos
    • Implementa detección de duplicados
    • Administra el formato de datos JSON
  3. Capa de operaciones centrales ( smartsheet_ops/__init__.py )
    • Implementa interacciones de la API de Smartsheet
    • Maneja la gestión de tipos de columnas complejas
    • Proporciona normalización y validación de datos.
    • Administra las columnas del sistema y el análisis de fórmulas.

Flujo de gestión de columnas

Flujo de manejo de errores

Características

Herramientas

  1. get_column_map (Leer)
    • Recupera la asignación de columnas y datos de muestra de una hoja de cálculo Smartsheet
    • Proporciona metadatos de columna detallados que incluyen:
      • Tipos de columnas (columnas del sistema, fórmulas, listas de selección)
      • Reglas de validación
      • Especificaciones de formato
      • Configuraciones de numeración automática
    • Devuelve datos de muestra para el contexto
    • Incluye ejemplos de uso para escribir datos.
  2. smartsheet_write (Crear)
    • Escribe nuevas filas en Smartsheet con manejo inteligente de:
      • Columnas administradas por el sistema
      • Valores de lista de selección múltiple
      • Columnas basadas en fórmulas
    • Implementa la detección automática de duplicados
    • Devuelve resultados detallados de la operación, incluidos los identificadores de fila
  3. smartsheet_update (Actualizar)
    • Actualiza filas existentes en una Smartsheet
    • Admite actualizaciones parciales (modificar campos específicos)
    • Mantiene la integridad de los datos con validación.
    • Maneja campos de selección múltiple de manera consistente
    • Devuelve detalles de éxito/fracaso por fila
  4. smartsheet_delete (Eliminar)
    • Elimina filas de una Smartsheet
    • Admite la eliminación por lotes de varias filas
    • Valida la existencia de filas y permisos
    • Devuelve resultados detallados de la operación
  5. smartsheet_add_column (Administración de columnas)
    • Agrega nuevas columnas a una Smartsheet
    • Admite todos los tipos de columnas:
      • NÚMERO DE TEXTO
      • FECHA
      • CAJA
      • LISTA DE SELECCIÓN
      • LISTA DE CONTACTOS
    • Opciones configurables:
      • Índice de posición
      • Reglas de validación
      • Definiciones de fórmulas
      • Opciones de lista de selección
    • Aplica el límite de columna (400) con validación
    • Devuelve información detallada de la columna
  6. smartsheet_delete_column (Administración de columnas)
    • Elimina columnas de forma segura con comprobación de dependencia
    • Valida las referencias de fórmulas antes de eliminarlas
    • Evita la eliminación de columnas utilizadas en fórmulas
    • Devuelve información detallada de dependencia
    • Admite la opción de eliminación forzada
  7. smartsheet_rename_column (Administración de columnas)
    • Cambia el nombre de las columnas conservando las relaciones
    • Actualiza las referencias de fórmulas automáticamente
    • Mantiene la integridad de los datos
    • Valida la unicidad del nombre
    • Devuelve información de actualización detallada
  8. smartsheet_bulk_update (Actualizaciones condicionales)
    • Realiza actualizaciones masivas condicionales basadas en reglas
    • Admite la evaluación de condiciones complejas:
      • Operadores múltiples (igual, contiene, mayor que, etc.)
      • Comparaciones específicas de tipo (texto, fechas, números)
      • Cheques vacíos/no vacíos
    • Procesamiento por lotes con tamaño configurable
    • Manejo integral de errores y reversión
    • Seguimiento detallado de los resultados de las operaciones
  9. start_batch_analysis (Análisis de salud)
    • Procesa hojas enteras o filas seleccionadas con análisis de IA
    • Admite múltiples tipos de análisis:
      • Resumen de notas clínicas
      • Análisis de sentimientos de los comentarios de los pacientes
      • Puntuación personalizada para iniciativas de atención sanitaria
      • Evaluación del impacto de la investigación
    • Características:
      • Procesamiento automático por lotes (50 filas por lote)
      • Seguimiento del progreso y control del estado
      • Manejo de errores con informes detallados
      • Objetivos de análisis personalizables
      • Compatibilidad con múltiples columnas de origen
  10. get_job_status (Monitoreo de análisis)
  • Realiza un seguimiento del progreso del análisis de lotes
  • Proporciona estadísticas laborales detalladas:
    • Total de filas a procesar
    • Recuento de filas procesadas
    • Conteo de filas fallido
    • Marcas de tiempo de procesamiento
  • Actualizaciones de estado en tiempo real
  • Informes de errores completos
  1. cancel_batch_analysis (Control de trabajos)
  • Cancela la ejecución de trabajos de análisis por lotes
  • Terminación elegante del proceso
  • Mantiene la consistencia de los datos
  • Devuelve el estado final del trabajo

Capacidades clave

  • Gestión de tipos de columnas
    • Maneja los tipos de columnas del sistema (AUTO_NUMBER, CREATED_DATE, etc.)
    • Admite análisis de fórmulas y seguimiento de dependencias.
    • Administra las opciones de lista de selección y los valores de selección múltiple
    • Operaciones de columna completas (agregar, eliminar, renombrar)
    • Conservación y actualizaciones de referencias de fórmulas
  • Validación de datos
    • Detección automática de duplicados
    • Validación del tipo de columna
    • Verificación del formato de datos
    • Análisis de dependencia de columnas
    • Validación de unicidad de nombre
  • Manejo de metadatos
    • Extrae y procesa metadatos de columnas
    • Maneja reglas de validación
    • Gestiona especificaciones de formato
    • Realiza un seguimiento de las dependencias de las fórmulas
    • Mantiene las relaciones entre columnas
  • Análisis de la atención médica
    • Resumen de la nota clínica
    • Análisis del sentimiento de los comentarios de los pacientes
    • Puntuación de cumplimiento del protocolo
    • Evaluación del impacto de la investigación
    • Análisis de utilización de recursos
  • Procesamiento por lotes
    • Agrupación automática de filas (50 filas por lote)
    • Seguimiento y monitorización del progreso
    • Manejo y recuperación de errores
    • Objetivos de procesamiento personalizables
    • Soporte de análisis de múltiples columnas
  • Gestión de trabajos
    • Monitoreo del estado en tiempo real
    • Seguimiento detallado del progreso
    • Informes y registros de errores
    • Apoyo para la cancelación de empleo
    • Controles de operaciones por lotes

Configuración

Prerrequisitos

  • Node.js y npm
  • Conda (para la gestión del medio ambiente)
  • Token de acceso a la API de Smartsheet

Configuración del entorno

  1. Cree un entorno conda dedicado:
conda create -n cline_mcp_env python=3.12 nodejs -y conda activate cline_mcp_env
  1. Instalar las dependencias de Node.js:
npm install
  1. Instalar el paquete Python:
cd smartsheet_ops pip install -e . cd ..
  1. Construya el servidor TypeScript:
npm run build

Configuración

El servidor requiere una configuración adecuada en la configuración de MCP. Puede usarlo tanto con Claude Desktop como con Cline.

1. Obtenga su clave API de Smartsheet

  1. Iniciar sesión en Smartsheet
  2. Vaya a Cuenta → Configuración personal → Acceso a la API
  3. Generar un nuevo token de acceso

2. Configurar para Cline

La ruta de configuración depende de su sistema operativo:

macOS :

~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

Ventanas :

%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json

Linux :

~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
{ "mcpServers": { "smartsheet": { "command": "/Users/[username]/anaconda3/envs/cline_mcp_env/bin/node", "args": ["/path/to/smartsheet-server/build/index.js"], "env": { "PYTHON_PATH": "/Users/[username]/anaconda3/envs/cline_mcp_env/bin/python3", "SMARTSHEET_API_KEY": "your-api-key", "AZURE_OPENAI_API_KEY": "your-azure-openai-key", "AZURE_OPENAI_API_BASE": "your-azure-openai-endpoint", "AZURE_OPENAI_API_VERSION": "your-api-version", "AZURE_OPENAI_DEPLOYMENT": "your-deployment-name" }, "disabled": false, "autoApprove": [ "get_column_map", "smartsheet_write", "smartsheet_update", "smartsheet_delete", "smartsheet_search", "smartsheet_add_column", "smartsheet_delete_column", "smartsheet_rename_column", "smartsheet_bulk_update", "start_batch_analysis", "get_job_status", "cancel_batch_analysis" ] } } }

3. Configurar para Claude Desktop (opcional)

La ruta de configuración depende de su sistema operativo:

macOS :

~/Library/Application Support/Claude/claude_desktop_config.json

Ventanas :

%APPDATA%\Claude\claude_desktop_config.json

Linux :

~/.config/Claude/claude_desktop_config.json
{ "mcpServers": { "smartsheet": { "command": "/Users/[username]/anaconda3/envs/cline_mcp_env/bin/node", "args": ["/path/to/smartsheet-server/build/index.js"], "env": { "PYTHON_PATH": "/Users/[username]/anaconda3/envs/cline_mcp_env/bin/python3", "SMARTSHEET_API_KEY": "your-api-key", "AZURE_OPENAI_API_KEY": "your-azure-openai-key", "AZURE_OPENAI_API_BASE": "your-azure-openai-endpoint", "AZURE_OPENAI_API_VERSION": "your-api-version", "AZURE_OPENAI_DEPLOYMENT": "your-deployment-name" }, "disabled": false, "autoApprove": [ "get_column_map", "smartsheet_write", "smartsheet_update", "smartsheet_delete", "smartsheet_search", "smartsheet_add_column", "smartsheet_delete_column", "smartsheet_rename_column", "smartsheet_bulk_update", "start_batch_analysis", "get_job_status", "cancel_batch_analysis" ] } } }

Iniciando el servidor

El servidor se iniciará automáticamente cuando Cline o Claude Desktop lo necesiten. Sin embargo, también puede iniciarlo manualmente para realizar pruebas.

macOS/Linux :

# Activate the environment conda activate cline_mcp_env # Start the server PYTHON_PATH=/Users/[username]/anaconda3/envs/cline_mcp_env/bin/python3 SMARTSHEET_API_KEY=your-api-key node build/index.js

Ventanas :

:: Activate the environment conda activate cline_mcp_env :: Start the server set PYTHON_PATH=C:\Users\[username]\anaconda3\envs\cline_mcp_env\python.exe set SMARTSHEET_API_KEY=your-api-key node build\index.js

Verificación de la instalación

  1. El servidor debería mostrar "Servidor Smartsheet MCP ejecutándose en stdio" cuando se inicia
  2. Pruebe la conexión utilizando cualquier herramienta MCP (por ejemplo, get_column_map)
  3. Compruebe que el entorno de Python tenga instalado el paquete smartsheet:
    conda activate cline_mcp_env pip show smartsheet-python-sdk

Ejemplos de uso

Obtener información de la columna (Leer)

// Get column mapping and sample data const result = await use_mcp_tool({ server_name: "smartsheet", tool_name: "get_column_map", arguments: { sheet_id: "your-sheet-id", }, });

Escritura de datos (Crear)

// Write new rows to Smartsheet const result = await use_mcp_tool({ server_name: "smartsheet", tool_name: "smartsheet_write", arguments: { sheet_id: "your-sheet-id", column_map: { "Column 1": "1234567890", "Column 2": "0987654321", }, row_data: [ { "Column 1": "Value 1", "Column 2": "Value 2", }, ], }, });

Actualización de datos (Actualizar)

// Update existing rows const result = await use_mcp_tool({ server_name: "smartsheet", tool_name: "smartsheet_update", arguments: { sheet_id: "your-sheet-id", column_map: { Status: "850892021780356", Notes: "6861293012340612", }, updates: [ { row_id: "7670198317295492", data: { Status: "In Progress", Notes: "Updated via MCP server", }, }, ], }, });

Eliminar datos (Eliminar)

// Delete rows from Smartsheet const result = await use_mcp_tool({ server_name: "smartsheet", tool_name: "smartsheet_delete", arguments: { sheet_id: "your-sheet-id", row_ids: ["7670198317295492", "7670198317295493"], }, });

Ejemplos de análisis de atención médica

// Example 1: Pediatric Innovation Scoring const result = await use_mcp_tool({ server_name: "smartsheet", tool_name: "start_batch_analysis", arguments: { sheet_id: "your-sheet-id", type: "custom", sourceColumns: ["Ideas", "Implementation_Details"], targetColumn: "Pediatric_Score", customGoal: "Score each innovation 1-100 based on pediatric healthcare impact. Consider: 1) Direct benefit to child patients, 2) Integration with pediatric workflows, 3) Implementation feasibility in children's hospital, 4) Safety considerations for pediatric use. Return only a number.", }, }); // Example 2: Clinical Note Summarization const result = await use_mcp_tool({ server_name: "smartsheet", tool_name: "start_batch_analysis", arguments: { sheet_id: "your-sheet-id", type: "summarize", sourceColumns: ["Clinical_Notes"], targetColumn: "Note_Summary", }, }); // Example 3: Patient Satisfaction Analysis const result = await use_mcp_tool({ server_name: "smartsheet", tool_name: "start_batch_analysis", arguments: { sheet_id: "your-sheet-id", type: "sentiment", sourceColumns: ["Patient_Feedback"], targetColumn: "Satisfaction_Score", }, }); // Example 4: Protocol Compliance Scoring const result = await use_mcp_tool({ server_name: "smartsheet", tool_name: "start_batch_analysis", arguments: { sheet_id: "your-sheet-id", type: "custom", sourceColumns: ["Protocol_Steps", "Documentation", "Outcomes"], targetColumn: "Compliance_Score", customGoal: "Score protocol compliance 1-100. Consider: 1) Adherence to required steps, 2) Documentation completeness, 3) Safety measures followed, 4) Outcome reporting. Return only a number.", }, }); // Example 5: Research Impact Assessment const result = await use_mcp_tool({ server_name: "smartsheet", tool_name: "start_batch_analysis", arguments: { sheet_id: "your-sheet-id", type: "custom", sourceColumns: ["Research_Findings", "Clinical_Applications"], targetColumn: "Impact_Score", customGoal: "Score research impact 1-100 based on potential benefit to pediatric healthcare. Consider: 1) Clinical relevance, 2) Implementation potential, 3) Patient outcome improvement, 4) Cost-effectiveness. Return only a number.", }, }); // Monitor Analysis Progress const status = await use_mcp_tool({ server_name: "smartsheet", tool_name: "get_job_status", arguments: { sheet_id: "your-sheet-id", jobId: "job-id-from-start-analysis", }, }); // Cancel Analysis if Needed const cancel = await use_mcp_tool({ server_name: "smartsheet", tool_name: "cancel_batch_analysis", arguments: { sheet_id: "your-sheet-id", jobId: "job-id-to-cancel", }, });

Administrar columnas

// Add a new column const result = await use_mcp_tool({ server_name: "smartsheet", tool_name: "smartsheet_add_column", arguments: { sheet_id: "your-sheet-id", title: "New Column", type: "TEXT_NUMBER", index: 2, // Optional position validation: true, // Optional formula: "=[Column1]+ [Column2]", // Optional }, }); // Delete a column const result = await use_mcp_tool({ server_name: "smartsheet", tool_name: "smartsheet_delete_column", arguments: { sheet_id: "your-sheet-id", column_id: "1234567890", validate_dependencies: true, // Optional, default true }, }); // Rename a column const result = await use_mcp_tool({ server_name: "smartsheet", tool_name: "smartsheet_rename_column", arguments: { sheet_id: "your-sheet-id", column_id: "1234567890", new_title: "Updated Column Name", update_references: true, // Optional, default true }, }); ### Conditional Bulk Updates The `smartsheet_bulk_update` tool provides powerful conditional update capabilities. Here are examples ranging from simple to complex: #### Simple Condition Examples ```typescript // Example 1: Basic equals comparison const result = await use_mcp_tool({ server_name: "smartsheet", tool_name: "smartsheet_bulk_update", arguments: { sheet_id: "your-sheet-id", rules: [{ conditions: [{ columnId: "status-column-id", operator: "equals", value: "Pending" }], updates: [{ columnId: "status-column-id", value: "In Progress" }] }] } }); // Example 2: Contains text search const result = await use_mcp_tool({ server_name: "smartsheet", tool_name: "smartsheet_bulk_update", arguments: { sheet_id: "your-sheet-id", rules: [{ conditions: [{ columnId: "description-column-id", operator: "contains", value: "urgent" }], updates: [{ columnId: "priority-column-id", value: "High" }] }] } }); // Example 3: Empty value check const result = await use_mcp_tool({ server_name: "smartsheet", tool_name: "smartsheet_bulk_update", arguments: { sheet_id: "your-sheet-id", rules: [{ conditions: [{ columnId: "assignee-column-id", operator: "isEmpty" }], updates: [{ columnId: "status-column-id", value: "Unassigned" }] }] } });

Comparaciones específicas de tipo

// Example 1: Date comparison const result = await use_mcp_tool({ server_name: "smartsheet", tool_name: "smartsheet_bulk_update", arguments: { sheet_id: "your-sheet-id", rules: [ { conditions: [ { columnId: "due-date-column-id", operator: "lessThan", value: "2025-02-01T00:00:00Z", // ISO date format }, ], updates: [ { columnId: "status-column-id", value: "Due Soon", }, ], }, ], }, }); // Example 2: Numeric comparison const result = await use_mcp_tool({ server_name: "smartsheet", tool_name: "smartsheet_bulk_update", arguments: { sheet_id: "your-sheet-id", rules: [ { conditions: [ { columnId: "progress-column-id", operator: "greaterThan", value: 80, // Numeric value }, ], updates: [ { columnId: "status-column-id", value: "Nearly Complete", }, ], }, ], }, }); // Example 3: Picklist validation const result = await use_mcp_tool({ server_name: "smartsheet", tool_name: "smartsheet_bulk_update", arguments: { sheet_id: "your-sheet-id", rules: [ { conditions: [ { columnId: "category-column-id", operator: "equals", value: "Bug", // Must match picklist option exactly }, ], updates: [ { columnId: "priority-column-id", value: "High", }, ], }, ], }, });

Ejemplos complejos de múltiples condiciones

// Example 1: Multiple conditions with different operators const result = await use_mcp_tool({ server_name: "smartsheet", tool_name: "smartsheet_bulk_update", arguments: { sheet_id: "your-sheet-id", rules: [ { conditions: [ { columnId: "priority-column-id", operator: "equals", value: "High", }, { columnId: "due-date-column-id", operator: "lessThan", value: "2025-02-01T00:00:00Z", }, { columnId: "progress-column-id", operator: "lessThan", value: 50, }, ], updates: [ { columnId: "status-column-id", value: "At Risk", }, { columnId: "flag-column-id", value: true, }, ], }, ], }, }); // Example 2: Multiple rules with batch processing const result = await use_mcp_tool({ server_name: "smartsheet", tool_name: "smartsheet_bulk_update", arguments: { sheet_id: "your-sheet-id", rules: [ { conditions: [ { columnId: "status-column-id", operator: "equals", value: "Complete", }, { columnId: "qa-status-column-id", operator: "isEmpty", }, ], updates: [ { columnId: "qa-status-column-id", value: "Ready for QA", }, ], }, { conditions: [ { columnId: "status-column-id", operator: "equals", value: "In Progress", }, { columnId: "progress-column-id", operator: "equals", value: 100, }, ], updates: [ { columnId: "status-column-id", value: "Complete", }, ], }, ], options: { lenientMode: true, // Continue on errors batchSize: 100, // Process in smaller batches }, }, });

La operación de actualización masiva proporciona:

  1. Soporte del operador:
    • equals : Coincidencia de valor exacto
    • contains : Coincidencia de subcadenas
    • greaterThan : Comparación numérica/de fecha
    • lessThan : Comparación numérica/de fecha
    • isEmpty : Comprobación de nulo/vacío
    • isNotEmpty : Comprobación del valor actual
  2. Características específicas del tipo:
    • TEXT_NUMBER: Comparaciones de cadenas/números
    • FECHA: Análisis y comparación de fechas ISO
    • LISTA DE SELECCIÓN: Validación de opciones
    • CHECKBOX: Manejo de booleanos
  3. Opciones de procesamiento:
    • batchSize : Controla el tamaño del lote de actualización (predeterminado 500)
    • lenientMode : Continuar con los errores
    • Varias reglas por solicitud
    • Varias actualizaciones por regla
  4. Seguimiento de resultados:
    • Total de filas intentadas
    • El éxito y el fracaso cuentan
    • Información detallada del error
    • Detalles de fallas por fila
## Development For development with auto-rebuild: ```bash npm run watch

Depuración

Dado que los servidores MCP se comunican mediante stdio, la depuración puede ser un desafío. El servidor implementa un registro de errores completo y proporciona mensajes de error detallados mediante el protocolo MCP.

Características clave de depuración:

  • Error al registrar en stderr
  • Mensajes de error detallados en las respuestas de MCP
  • Validación de tipos en múltiples niveles
  • Informes completos de resultados de operaciones
  • Análisis de dependencia para operaciones de columnas
  • Seguimiento de referencias de fórmulas

Manejo de errores

El servidor implementa un enfoque de manejo de errores de múltiples capas:

  1. Capa MCP
    • Valida los parámetros de la herramienta
    • Maneja errores a nivel de protocolo
    • Proporciona respuestas de error formateadas
    • Gestiona tiempos de espera y reintentos
  2. Capa CLI
    • Valida los argumentos del comando
    • Maneja errores de ejecución
    • Formatea los mensajes de error como JSON
    • Valida las operaciones de columna
  3. Capa de operaciones
    • Maneja errores de la API de Smartsheet
    • Valida tipos y formatos de datos
    • Proporciona un contexto de error detallado
    • Administra las dependencias de las columnas
    • Valida referencias de fórmulas
    • Garantiza la integridad de los datos

Contribuyendo

¡Agradecemos sus contribuciones! Por favor, asegúrese de:

  1. El código TypeScript/Python sigue el estilo existente
  2. Las nuevas características incluyen un manejo adecuado de errores
  3. Los cambios mantienen la compatibilidad con versiones anteriores
  4. Las actualizaciones incluyen la documentación adecuada
  5. Las operaciones de columna mantienen la integridad de los datos
  6. Las referencias de fórmulas se gestionan adecuadamente

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Proporciona una integración perfecta con Smartsheet, lo que permite operaciones automatizadas en documentos de Smartsheet a través de una interfaz estandarizada que une las herramientas de automatización impulsadas por IA con la plataforma de colaboración de Smartsheet.

  1. Overview
    1. Key Benefits
    2. Use Cases
    3. Integration Points
  2. Architecture
    1. Column Management Flow
    2. Error Handling Flow
  3. Features
    1. Tools
    2. Key Capabilities
  4. Setup
    1. Prerequisites
    2. Environment Setup
    3. Configuration
    4. Starting the Server
    5. Verifying Installation
  5. Usage Examples
    1. Getting Column Information (Read)
    2. Writing Data (Create)
    3. Updating Data (Update)
    4. Deleting Data (Delete)
    5. Healthcare Analytics Examples
    6. Managing Columns
    7. Debugging
  6. Error Handling
    1. Contributing
      ID: k6qv4zylx2