返回市场
图表服务

图表服务

作者:apache50 星标更新:2025-09-27

项目介绍

ECharts MCP

该项目展示了如何实现Apache ECharts的MCP(模型上下文协议)服务器。

基本工作流程是从LLM获取图表类型、数据和其他参数,并返回生成的ECharts图表的云图像URL。

支持的ECharts系列类型:'bar', 'line', 'pie', 'scatter', 'funnel', 'tree', 'treemap', 'sunburst'

配置

npm install

创建一个.env文件。参考.env.example。您需要拥有baidubce/bce-sdk-js账户的访问权限,以便将图像存储在云端。

运行

# 运行MCP服务器
npm run dev

# 在另一个终端运行检查器
npm run inspect

常见问题

如何更改图像云存储?

默认情况下,它使用baidubce/bce-sdk-js来存储生成的图像并返回云上的图像URL。如果您希望使用其他云存储,请更改src/storage.js中的实现。

如何更改ECharts主题?

查看src/chart.js中的registerThemeregisterFont注释。

如何支持更多系列类型?

  1. 更改src/index.js中的inputSchema
  2. src/chart.js中规范化data

欢迎提交拉取请求。

实现讨论

为了制作Apache ECharts的MCP服务器,有三种常见的方法:

  1. 要求LLM提供完整的ECharts选项
  2. 要求LLM提供预定义的参数,包括图表主题
  3. 要求LLM提供预定义的最小参数

方法1的优势在于它有可能生成ECharts支持的所有类型的图表。但这种方法可能不够稳定,特别是对于不常用的图表类型。

方法2允许从提示中自由改变图表主题。例如,您可以要求LLM“生成具有红色条形的数据...的图表”。但是,此方法需要大量参数以支持如此多的ECharts选项,并且随着参数数量的增长,它会退化为方法1。

方法3要求LLM提供最小参数,如系列类型、数据、系列名称、标题和轴名称。图表主题在应用程序中定义,因此只有该应用程序的开发者而不是用户可以更改主题。我们相信这是提供稳定结果的最佳方式,因此我们在本项目中采用了这种方法。