{"id":29663525,"url":"https://github.com/apache/echarts-mcp","last_synced_at":"2025-07-27T17:02:57.295Z","repository":{"id":305670276,"uuid":"1023557623","full_name":"apache/echarts-mcp","owner":"apache","description":"Apache ECharts MCP Server","archived":false,"fork":false,"pushed_at":"2025-07-21T10:55:41.000Z","size":49,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-21T12:33:55.652Z","etag":null,"topics":["data-visualization","echarts","mcp"],"latest_commit_sha":null,"homepage":"https://github.com/apache/echarts-mcp","language":"JavaScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apache.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-21T10:42:29.000Z","updated_at":"2025-07-21T12:08:28.000Z","dependencies_parsed_at":"2025-07-21T12:34:02.158Z","dependency_job_id":"70597ea7-c92a-4b59-96c9-bbcfbc771885","html_url":"https://github.com/apache/echarts-mcp","commit_stats":null,"previous_names":["apache/echarts-mcp"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/apache/echarts-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fecharts-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fecharts-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fecharts-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fecharts-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apache","download_url":"https://codeload.github.com/apache/echarts-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fecharts-mcp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266489318,"owners_count":23937361,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-visualization","echarts","mcp"],"created_at":"2025-07-22T12:01:38.308Z","updated_at":"2025-07-22T12:02:01.495Z","avatar_url":"https://github.com/apache.png","language":"JavaScript","readme":"# ECharts MCP\n\nThis project shows how to implement an MCP (Model Context Protocol) server of Apache ECharts.\n\nThe basic workflow is that it gets chart type, data and other parameters from an LLM, and returns the cloud image URL of the generated ECharts chart.\n\nSupported ECharts series types: `'bar', 'line', 'pie', 'scatter', 'funnel', 'tree', 'treemap', 'sunburst'`.\n\n## Setup\n\n```sh\nnpm install\n```\n\nCreate an `.env` file. See `.env.example` for reference. You need to have the access to a [baidubce/bce-sdk-js](https://github.com/baidubce/bce-sdk-js) account to store the images on the cloud.\n\n## Run\n\n```sh\n# Run the MCP server\nnpm run dev\n\n# Run the inspector in another terminal\nnpm run inspect\n```\n\n## FAQ\n\n### How to change image cloud storage?\n\nBy default, it uses [baidubce/bce-sdk-js](https://github.com/baidubce/bce-sdk-js) to store the generated image and return the URL of the image on the cloud. If you wish to use other Cloud storage, change the implemenation in `src/storage.js`.\n\n### How to change ECharts theme?\n\nSee `registerTheme` and `registerFont` comments in `src/chart.js`.\n\n### How to support more series types?\n\n1. Change `inputSchema` in `src/index.js`\n2. Normalize `data` in `src/chart.js`\n\nYou are welcomed to make a pull request.\n\n## Discussion of Implementation\n\nTo make an MCP server of Apache ECharts, there are 3 common ways to do:\n\n1. Ask LLM to provide a full ECharts option\n2. Ask LLM to provide pre-fined parameters including chart themes\n3. Ask LLM to provide pre-fined minimal parameters\n\nThe advantage of Approach 1 is that is has the potential of making all kinds of charts that ECharts supports. But it may not be stable, especially for less frequently used chart types.\n\nApproach 2 gives the freedom to change chart themes from prompt. For example, you may ask the LLM to `generate a chart with red bars of data ...`. But this approach requires a lot of parameters in order to support so many ECharts options. And it degenerates to approach 1 as the number of parameters grows.\n\nApproach 3 asks LLM to provide minimal parameters like series type, data, seriesName, title, and axisName. The chart theme is defined in the app so that only the developer of this app, rather than users can change the theme. We believe this is the best way to provide stable results and so this is the approach we take in this project.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fecharts-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapache%2Fecharts-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fecharts-mcp/lists"}