Timeplus

Interactúa con la plataforma de datos en tiempo real Timeplus para consultar y gestionar flujos de datos.

Documentación

Servidor MCP de Timeplus

PyPI - Version

Un servidor MCP para Timeplus.

mcp-timeplus MCP server

Características

Prompts

  • generate_sql para dar al LLM más conocimiento sobre cómo consultar Timeplus mediante SQL

Herramientas

  • run_sql
    • Ejecuta consultas SQL en tu clúster de Timeplus.
      • Entrada: sql (cadena): La consulta SQL a ejecutar.
      • Por defecto, todas las consultas de Timeplus se ejecutan con readonly = 1 para garantizar que sean seguras. Si deseas ejecutar consultas DDL o DML, puedes establecer la variable de entorno TIMEPLUS_READ_ONLY en false.
  • list_databases
    • Lista todas las bases de datos en tu clúster de Timeplus.
  • list_tables
    • Lista todas las tablas en una base de datos.
      • Entrada: database (cadena): El nombre de la base de datos.
  • list_kafka_topics
    • Lista todos los temas en un clúster de Kafka.
  • explore_kafka_topic
    • Muestra algunos mensajes en el tema de Kafka.
      • Entrada: topic (cadena): El nombre del tema. message_count (entero): El número de mensajes a mostrar, por defecto 1.
  • create_kafka_stream
    • Configura un ETL de streaming en Timeplus para guardar los mensajes de Kafka localmente.
      • Entrada: topic (cadena): El nombre del tema.
  • connect_to_apache_iceberg
    • Conecta a una base de datos basada en Apache Iceberg. Actualmente esto solo está disponible a través de Timeplus Enterprise y está planificado que esté disponible para Timeplus Proton pronto.
      • Entrada: iceberg_db (cadena): El nombre de la base de datos Iceberg. aws_account_id (entero): El ID de la cuenta de AWS (12 dígitos). s3_bucket (cadena): El nombre del bucket de S3. aws_region (cadena): La región de AWS, por defecto "us-west-2". is_s3_table_bucket (booleano): Si el bucket de S3 es un bucket de tabla S3, por defecto False.

Configuración

Primero, asegúrate de tener el ejecutable uv instalado. Si no, puedes instalarlo siguiendo las instrucciones aquí.

  1. Abre el archivo de configuración de Claude Desktop ubicado en:
    • En macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
      • En Windows: %APPDATA%/Claude/claude_desktop_config.json
  2. Agrega lo siguiente:
{
  "mcpServers": {
    "mcp-timeplus": {
      "command": "uvx",
      "args": ["mcp-timeplus"],
      "env": {
        "TIMEPLUS_HOST": "<timeplus-host>",
        "TIMEPLUS_PORT": "<timeplus-port>",
        "TIMEPLUS_USER": "<timeplus-user>",
        "TIMEPLUS_PASSWORD": "<timeplus-password>",
        "TIMEPLUS_SECURE": "false",
        "TIMEPLUS_VERIFY": "true",
        "TIMEPLUS_CONNECT_TIMEOUT": "30",
        "TIMEPLUS_SEND_RECEIVE_TIMEOUT": "30",
        "TIMEPLUS_READ_ONLY": "false",
        "TIMEPLUS_KAFKA_CONFIG": "{\"bootstrap.servers\":\"a.aivencloud.com:28864\", \"sasl.mechanism\":\"SCRAM-SHA-256\",\"sasl.username\":\"avnadmin\", \"sasl.password\":\"thePassword\",\"security.protocol\":\"SASL_SSL\",\"enable.ssl.certificate.verification\":\"false\"}"
      }
    }
  }
}

Actualiza las variables de entorno para que apunten a tu propio servicio de Timeplus.

  1. Reinicia Claude Desktop para aplicar los cambios.

También puedes probar este servidor MCP con otros clientes MCP, como 5ire.

Desarrollo

  1. En el directorio test-services ejecuta docker compose up -d para iniciar un servidor Timeplus Proton. También puedes descargarlo mediante curl https://install.timeplus.com/oss | sh, luego iniciarlo con ./proton server.
  2. Agrega las siguientes variables a un archivo .env en la raíz del repositorio.
TIMEPLUS_HOST=localhost
TIMEPLUS_PORT=8123
TIMEPLUS_USER=default
TIMEPLUS_PASSWORD=
TIMEPLUS_SECURE=false
TIMEPLUS_VERIFY=true
TIMEPLUS_CONNECT_TIMEOUT=30
TIMEPLUS_SEND_RECEIVE_TIMEOUT=30
TIMEPLUS_READ_ONLY=false
TIMEPLUS_KAFKA_CONFIG={"bootstrap.servers":"a.aivencloud.com:28864", "sasl.mechanism":"SCRAM-SHA-256","sasl.username":"avnadmin", "sasl.password":"thePassword","security.protocol":"SASL_SSL","enable.ssl.certificate.verification":"false"}
  1. Ejecuta uv sync para instalar las dependencias. Luego haz source .venv/bin/activate.
  2. Para pruebas fáciles, puedes ejecutar mcp dev mcp_timeplus/mcp_server.py para iniciar el servidor MCP. Haz clic en el botón "Connect" para conectar la interfaz con el servidor MCP, luego cambia a la pestaña "Tools" para ejecutar las herramientas disponibles.
  3. Para construir la imagen de Docker, ejecuta docker build -t mcp_timeplus ..

Variables de Entorno

Las siguientes variables de entorno se utilizan para configurar la conexión de Timeplus:

Variables Requeridas

  • TIMEPLUS_HOST: El nombre de host de tu servidor Timeplus
  • TIMEPLUS_USER: El nombre de usuario para la autenticación
  • TIMEPLUS_PASSWORD: La contraseña para la autenticación

Variables Opcionales

  • TIMEPLUS_PORT: El número de puerto de tu servidor Timeplus
    • Predeterminado: 8443 si HTTPS está habilitado, 8123 si está deshabilitado
      • Generalmente no necesita configurarse a menos que se use un puerto no estándar
  • TIMEPLUS_SECURE: Habilitar/deshabilitar la conexión HTTPS
    • Predeterminado: "false"
      • Establecer en "true" para conexiones seguras
  • TIMEPLUS_VERIFY: Habilitar/deshabilitar la verificación del certificado SSL
    • Predeterminado: "true"
      • Establecer en "false" para deshabilitar la verificación del certificado (no recomendado para producción)
  • TIMEPLUS_CONNECT_TIMEOUT: Tiempo de espera de conexión en segundos
    • Predeterminado: "30"
      • Aumenta este valor si experimentas tiempos de espera de conexión
  • TIMEPLUS_SEND_RECEIVE_TIMEOUT: Tiempo de espera de envío/recepción en segundos
  • TIMEPLUS_DATABASE: Base de datos predeterminada a usar
    • Predeterminado: Ninguno (usa el predeterminado del servidor)
      • Establece esto para conectarte automáticamente a una base de datos específica
  • TIMEPLUS_READ_ONLY: Habilitar/deshabilitar el modo de solo lectura
  • TIMEPLUS_KAFKA_CONFIG: Una cadena JSON para la configuración de Kafka. Consulta la configuración de librdkafka o toma el ejemplo anterior como referencia.