EChart Server

Um serviço Go que gera dinamicamente páginas de gráficos ECharts a partir de configurações JSON.

Documentação

mcp-server-echart

License: MIT

Um serviço Go construído com o framework mcp-go, que fornece uma ferramenta para gerar dinamicamente páginas de gráficos ECharts.

✨ Recursos

  • Geração dinâmica de gráficos: Ao chamar a ferramenta e passar a configuração JSON do ECharts, uma página HTML independente de gráfico é gerada.
  • Altamente configurável: Suporta personalização do título, largura e altura do gráfico.
  • Página moderna: A página de gráfico gerada possui uma aparência limpa e moderna.
  • Suporte a Docker: Fornece Dockerfile, permitindo criar facilmente imagens Docker leves e portáteis.
  • Configuração flexível: Configure por meio de variáveis de ambiente ou do arquivo .env, adaptando-se facilmente a diferentes ambientes.

🚀 Início Rápido

1. Pré-requisitos

  • Go (versão 1.24 ou superior)
  • Docker (opcional, para implantação em contêiner)

2. Clonar e Configurar

Clone este repositório para o seu ambiente local:

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

Copie o modelo de arquivo de configuração e modifique conforme necessário:

cp .env.example .env

O arquivo .env contém os seguintes itens de configuração:

  • PORT: Porta de escuta do serviço (padrão: 8989)
  • PUBLIC_URL: Caminho raiz da URL exposta externamente (por exemplo, http://localhost:8989 ou https://your.domain.com)
  • LOG_LEVEL: Nível de log (por exemplo, info, debug)
  • STATIC_DIR: Diretório onde os arquivos HTML estáticos gerados são armazenados (padrão: static)

3. Instalar Dependências

go mod tidy

📦 Como Executar

Executar Localmente

go run main.go

Após a inicialização do serviço, ele escutará na porta PORT configurada no arquivo .env (padrão: 8989).

Executar com Docker

  1. Construir a imagem Docker:

    docker build -t mcp-server-echart .
    
  2. Executar o contêiner 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 da Ferramenta

Este serviço fornece uma ferramenta chamada generate_echarts_page.

Parâmetros

  • title (string, obrigatório): Título da página do gráfico.
  • inputSchema (objeto, obrigatório): Objeto de configuração JSON do ECharts.
  • width (número, opcional): Largura do gráfico em pixels, padrão 800.
  • height (número, opcional): Altura do gráfico em pixels, padrão 600.

Valor de Retorno

Após uma chamada bem-sucedida, a ferramenta retorna uma URL apontando para a página do gráfico recém-gerada.


💻 Como Usar

Este serviço pode ser chamado por qualquer cliente MCP que suporte Server-Sent Events (SSE).

Configuração do Cliente

Se o seu cliente MCP suportar conexão ao servidor por meio de arquivos de configuração, você pode adicionar a seguinte configuração para se conectar a este serviço.

Adicione mcp-server-echart à configuração do seu cliente e aponte a URL para o endereço de escuta deste serviço (padrão: http://localhost:8989/sse).

Exemplo de configuração (client-config.json):

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

Outro exemplo (por exemplo, para ambiente de navegador):

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

Observação:

  • A URL deve ser consistente com o PORT e o PUBLIC_URL configurados no arquivo .env.
  • O endpoint padrão para chamadas da ferramenta mcp-go é /sse, não /.

Configuração do Cliente (via comando Docker)

Se o seu cliente MCP suportar iniciar o serviço por meio de comandos, você também pode configurá-lo para executar diretamente a imagem no Docker Hub. Isso gerencia o serviço como um subprocesso, e o cliente se comunica com ele por meio de entrada/saída padrão (stdin/stdout).

Isso é conveniente para desenvolvimento local ou para distribuir o serviço a outras pessoas.

Exemplo de configuração (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"
      ]
    }
  }
}

Observação:

  • -p 8989:8989 mapeia a porta 8989 do contêiner para a porta 8989 do host, permitindo que você acesse os gráficos gerados pelo navegador.
  • cnkanwei/mcp-server-echart:latest é uma imagem pública publicada no Docker Hub.

📜 Licença

Este projeto é licenciado sob a Licença MIT.