EChart Server

Un servicio en Go que genera dinámicamente páginas de gráficos ECharts a partir de configuraciones JSON.

Documentación

mcp-server-echart

License: MIT

Un servicio Go construido sobre el framework mcp-go, que proporciona una herramienta para generar dinámicamente páginas de gráficos ECharts.

✨ Características

  • Generación dinámica de gráficos: Al invocar la herramienta y pasar la configuración JSON de ECharts, se genera una página HTML independiente con el gráfico.
  • Altamente configurable: Admite personalizar el título, ancho y alto del gráfico.
  • Página moderna: Las páginas de gráficos generadas tienen una apariencia limpia y moderna.
  • Soporte Docker: Proporciona Dockerfile para construir fácilmente imágenes Docker ligeras y portátiles.
  • Configuración flexible: Se configura mediante variables de entorno o el archivo .env, adaptándose fácilmente a diferentes entornos.

🚀 Inicio rápido

1. Requisitos previos

  • Go (versión 1.24 o superior)
  • Docker (opcional, para implementación en contenedores)

2. Clonar y configurar

Clone este repositorio en su máquina local:

git clone https://github.com/cnkanwei/mcp-server-echart.git
cd mcp-server-echart

Copie la plantilla del archivo de configuración y modifíquela según sea necesario:

cp .env.example .env

El archivo .env contiene los siguientes elementos de configuración:

  • PORT: Puerto de escucha del servicio (predeterminado: 8989)
  • PUBLIC_URL: Ruta raíz de la URL expuesta externamente (por ejemplo, http://localhost:8989 o https://your.domain.com)
  • LOG_LEVEL: Nivel de registro (por ejemplo, info, debug)
  • STATIC_DIR: Directorio donde se almacenan los archivos HTML estáticos generados (predeterminado: static)

3. Instalar dependencias

go mod tidy

📦 Cómo ejecutar

Ejecutar localmente

go run main.go

Una vez que el servicio se inicia, escucha en el puerto PORT configurado en el archivo .env (predeterminado: 8989).

Ejecutar con Docker

  1. Construir la imagen Docker:

    docker build -t mcp-server-echart .
    
  2. Ejecutar el contenedor Docker:

    # 基础运行
    docker run -p 8989:8989 -d --name my-echart-server mcp-server-echart
    
    # 自定义端口和对外 URL
    docker run -p 9090:9090 \
      -e PORT=9090 \
      -e PUBLIC_URL="https://my.domain.com" \
      -d --name my-echart-server mcp-server-echart
    

🛠️ API de la herramienta

Este servicio proporciona una herramienta llamada generate_echarts_page.

Parámetros

  • title (string, obligatorio): Título de la página del gráfico.
  • inputSchema (object, obligatorio): Objeto de configuración JSON de ECharts.
  • width (number, opcional): Ancho del gráfico en píxeles, predeterminado 800.
  • height (number, opcional): Alto del gráfico en píxeles, predeterminado 600.

Valor de retorno

Tras una invocación exitosa, la herramienta devuelve una URL que apunta a la página del gráfico recién generada.


💻 Cómo usarlo

Este servicio se puede invocar desde cualquier cliente MCP que admita Server-Sent Events (SSE).

Configuración del cliente

Si su cliente MCP admite la conexión al servidor mediante un archivo de configuración, puede agregar la siguiente configuración para conectarse a este servicio.

Agregue mcp-server-echart a la configuración de su cliente y apunte la URL a la dirección de escucha de este servicio (predeterminado: http://localhost:8989/sse).

Configuración de ejemplo (client-config.json):

{
  "mcpServers": {
    "mcp-server-echart": {
      "url": "http://localhost:8989/sse"
    }
  }
}

Otro ejemplo (por ejemplo, para entornos de navegador):

{
  "mcpServers": {
    "browser-use-mcp-server": {
      "url": "http://localhost:8000/sse"
    }
  }
}

Nota:

  • La URL debe coincidir con PORT y PUBLIC_URL configurados en el archivo .env.
  • El endpoint predeterminado para las invocaciones de la herramienta mcp-go es /sse, no /.

Configuración del cliente (mediante comando Docker)

Si su cliente MCP admite iniciar servicios mediante comandos, también puede configurarlo para ejecutar directamente la imagen de Docker Hub. Esto gestiona el servicio como un subproceso, y el cliente se comunica con él a través de la entrada/salida estándar (stdin/stdout).

Esto es conveniente para el desarrollo local o para distribuir el servicio a otras personas.

Configuración de ejemplo (client-config.json):

{
  "mcpServers": {
    "mcp-server-echart-docker": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-p",
        "8989:8989",
        "-e",
        "PORT=8989",
        "-e",
        "PUBLIC_URL=http://localhost:8989",
        "cnkanwei/mcp-server-echart:latest"
      ]
    }
  }
}

Nota:

  • -p 8989:8989 mapea el puerto 8989 del contenedor al puerto 8989 del host, para que pueda ver los gráficos generados desde el navegador.
  • cnkanwei/mcp-server-echart:latest es la imagen pública publicada en Docker Hub.

📜 Licencia

Este proyecto está bajo la Licencia MIT.