返回市场
MCP服务器-图表

MCP服务器-图表

作者:cnkanwei57 星标更新:2025-07-14

项目介绍

mcp-server-echart

License: MIT

基于 mcp-go 框架构建的 Go 服务提供了一个工具,可以动态生成 ECharts 图表页面。

✨ 特性

  • 动态图表生成通过调用该工具并传入 ECharts 的 JSON 配置,可以生成一个独立的 HTML 图表页面。
  • 高度可配置支持自定义图表标题、宽度和高度。
  • 现代页面生成的图表页面具有简洁现代的外观。
  • Docker 支持:提供了 Dockerfile,便于构建轻量级且可移植的 Docker 镜像。
  • 灵活配置:通过环境变量或 .env 配置文件轻松适应不同的环境。

🚀 快速开始

1. 准备工作

  • Go (版本 1.24 或更高)
  • Docker (可选,用于容器化部署)

2. 克隆和配置

克隆此仓库到本地:

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

复制配置文件模板并根据需要进行修改:

cp .env.example .env

.env 文件包含以下配置项:

  • PORT 服务监听的端口(默认:8989
  • PUBLIC_URL 对外暴露的 URL 根路径(例如 http://localhost:8989https://your.domain.com
  • LOG_LEVEL 日志级别(例如 infodebug
  • STATIC_DIR 存储生成的静态 HTML 文件的目录(默认:static

3. 安装依赖

go mod tidy

📦 运行方式

在本地运行

go run main.go

服务启动后,将在 .env 文件中的 PORT 端口上监听(默认是 8989)。

使用 Docker 运行

  1. 构建 Docker 镜像:

    docker build -t mcp-server-echart .
    
  2. 运行 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

此服务提供了一个名为 generate_echarts_page 的工具。

参数

  • title (字符串,必需)图表页面的标题。
  • inputSchema (对象,必需)ECharts 的 JSON 配置对象。
  • width (数字,可选)图表的宽度(以像素为单位),默认值为 800。
  • height (数字,可选)图表的高度(以像素为单位),默认值为 600。

返回值

成功调用后,工具将返回一个指向新生成的图表页面的 URL。


💻 如何使用

此服务可以通过支持 Server Sent Events (SSE) 的任何 MCP 客户端来调用。

客户端配置

如果你使用的 MCP 客户端支持通过配置文件连接到服务器,你可以添加以下配置来连接到此服务。

请在你的客户端配置中添加 mcp-server-echart 并将其 URL 指向此服务的监听地址(默认是)http://localhost:8989/sse

示例配置(client-config.json):

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

另一个示例(例如浏览器环境):

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

注意

  • URL 应与 .env 文件中的 PORTPUBLIC_URL 配置相对应。
  • mcp-go 工具调用的默认端点是 /sse 而不是 /

客户端配置(通过 Docker 命令)

如果您的 MCP 客户端支持通过命令启动服务,您也可以配置它直接运行 Docker Hub 上的镜像。这将把服务作为子进程管理,并通过标准输入/输出(stdin/stdout)与客户端通信。

这对于本地开发或分发服务给其他人使用非常方便。

示例配置(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"
      ]
    }
  }
}

注意

  • -p 8989:8989 将容器的 8989 端口映射到主机的 8989 端口,以便你可以从浏览器访问生成的图表。
  • cnkanwei/mcp-server-echart:latest 是在 Docker Hub 上发布的公共镜像。

📜 许可证

本项目基于 MIT 许可证 开源。