图表生成服务

基于Apache ECharts的MCP服务器,通过LLM接收图表类型和数据参数,生成并返回云存储的图表图像URL。

  • by apache
  • JavaScript
  • 本地部署
  • 87 星标
  • 更新于
在 GitHub 查看 apache/echarts-mcp

使用说明

ECharts MCP

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

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

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

设置

npm install

创建一个 .env 文件。看 .env.example 以供参考。您需要有权访问 baiducce/bce-sdk-js 帐户将图像存储在云端。

跑

# Run the MCP server
npm run dev

# Run the inspector in another terminal
npm run inspect

常见问题解答

如何更改图像云存储?

默认情况下,它使用 baiducce/bce-sdk-js 将生成的图像存储在云端并返回图像的URL。如果要使用其他云存储,请更改中的实现 src/storage.js.

如何更改ECharts主题?

看 registerTheme 和 registerFont 评论在 src/chart.js.

如何支持更多系列类型?

  1. 改变 inputSchema 在……里面 src/index.js
  2. 规范化 data 在……里面 src/chart.js

欢迎您提出pull请求。

实施讨论

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

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

方法1的优点是它有可能制作ECharts支持的各种图表。但它可能不稳定,特别是对于不太常用的图表类型。

方法2提供了从提示更改图表主题的自由。例如,您可以要求法学硕士 generate a chart with red bars of data ...但这种方法需要很多参数来支持如此多的ECharts选项。随着参数数量的增加,它会退化到接近1。

方法3要求LLM提供最小的参数,如序列类型、数据、序列名、标题和axisName。图表主题在应用程序中定义,因此只有此应用程序的开发人员,而不是用户可以更改主题。我们认为这是提供稳定结果的最佳方式,因此这是我们在这个项目中采取的方法。