基于 mcp-go 框架构建的 Go 服务提供了一个工具,可以动态生成 ECharts 图表页面。
Dockerfile,便于构建轻量级且可移植的 Docker 镜像。.env 配置文件轻松适应不同的环境。克隆此仓库到本地:
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:8989 或 https://your.domain.com)LOG_LEVEL 日志级别(例如 info,debug)STATIC_DIR 存储生成的静态 HTML 文件的目录(默认:static)go mod tidy
go run main.go
服务启动后,将在 .env 文件中的 PORT 端口上监听(默认是 8989)。
构建 Docker 镜像:
docker build -t mcp-server-echart .
运行 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
此服务提供了一个名为 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文件中的PORT和PUBLIC_URL配置相对应。mcp-go工具调用的默认端点是/sse而不是/。
如果您的 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 许可证 开源。