楚科奇MCP图
通过MCP实现交互式数据可视化 --粘贴CSV,描述您的数据,要求提供图表。立即渲染条形图、饼图、折线图、甜甜圈图、雷达图、极坐标图和面积图。
这是一个为学习和测试目的而提供的演示项目。

特性
三种将原始数据转化为精美图表的工具:
1.显示图表(show_chart)
从显式数据创建图表。提供标签、一个或多个数据集和可选配置:
- 图表类型:条、线、饼、甜甜圈、雷达、极地、区域
- 轴标签、图例位置、堆叠模式
- 每个数据集的自定义颜色
- 自动分配的色盲友好调色板
2.CSV格式的图表(chart_from_csv)
粘贴原始CSV文本并获取图表——无需配置:
- 第一个非数字列成为类别标签
- 每个数字列都变成一个数据集(系列)
- 如果所有列都是数字,则行号用作标签
- 非常适合电子表格数据
3.JSON格式的图表(chart_from_json)
传递一个JSON对象数组并自动获取图表:
- 第一个字符串字段成为类别标签
- 每个数字字段都变成一个数据集
- 适用于API响应或结构化数据
安装
使用uvx(推荐-无需安装!)
uvx chuk-mcp-chart这将自动下载并运行最新版本。非常适合克劳德桌面!
使用紫外线(建议用于开发)
# Install from PyPI
uv pip install chuk-mcp-chart
# Or clone and install from source
git clone https://github.com/IBM/chuk-mcp-chart.git
cd chuk-mcp-chart
uv sync --dev使用pip(传统)
pip install chuk-mcp-chart用法
使用克劳德桌面
选项1:使用uvx在本地运行
{
"mcpServers": {
"chart": {
"command": "uvx",
"args": ["chuk-mcp-chart"]
}
}
}选项2:使用pip在本地运行
{
"mcpServers": {
"chart": {
"command": "chuk-mcp-chart"
}
}
}独立
# With uvx (recommended - always latest version)
uvx chuk-mcp-chart
# With uvx in HTTP mode
uvx chuk-mcp-chart http
# Or if installed locally
chuk-mcp-chart
chuk-mcp-chart http或者使用uv/Python:
# STDIO mode (default, for MCP clients)
uv run chuk-mcp-chart
# or: python -m chuk_mcp_chart.server
# HTTP mode (for web access)
uv run chuk-mcp-chart http
# or: python -m chuk_mcp_chart.server httpSTDIO模式 适用于Claude Desktop和MCP-cli等MCP客户端。 HTTP模式 在上运行web服务器http://localhost:8000用于基于HTTP的MCP客户端。
示例提示
配置后,尝试询问:
- “绘制我的每月开支图”(然后粘贴您的数据)
- “用饼图显示Python与JavaScript的流行程度”
- “将此CSV转换为显示随时间变化趋势的折线图”
- “创建第一季度至第四季度收入柱状图:42000、51000、48000、55000”
- 显示一个雷达图,比较三种产品的速度、质量和价格
- “制作浏览器市场份额的甜甜圈图”
工具参考
show_chart
从显式标签和数据集创建图表。
参数:
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
chart_type | 字符串 | "bar" | 其中之一:酒吧、排队、馅饼、甜甜圈、雷达、极地、区域 |
title | 字符串 | "Chart" | 图表标题 |
labels | string | -- | 逗号分隔的类别标签(例如。 "Jan,Feb,Mar") |
datasets | string | -- | 数据集对象的JSON数组(见下文) |
x_axis_label | string | -- | X轴标签 |
y_axis_label | string | -- | Y轴标签 |
legend_position | string | -- | 图例位置:上、下、左、右、无 |
stacked bool的。 false | 堆叠栏/区域数据集 |
数据集格式 (JSON字符串):
[
{"label": "Revenue", "values": [12, 19, 3, 5, 2, 3]},
{"label": "Expenses", "values": [8, 14, 2, 4, 1, 2], "color": "#ef4444"}
]chart_from_csv
自动将CSV文本解析为图表。
参数:
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
csv_data | string | -- | 带标题行的原始CSV文本 |
chart_type | 字符串 | "bar" | 图表类型 |
title | 字符串 | "Chart" | 图表标题 |
示例输入:
Month,Revenue,Expenses
Jan,4200,3800
Feb,5100,4200
Mar,4800,4100chart_from_json
自动将JSON数组解析为图表。
参数:
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
json_data | string | -- | JSON对象数组 |
chart_type | 字符串 | "bar" | 图表类型 |
title | 字符串 | "Chart" | 图表标题 |
示例输入:
[
{"language": "Python", "popularity": 28.1},
{"language": "JavaScript", "popularity": 21.3},
{"language": "TypeScript", "popularity": 12.7}
]发展
设置
# Clone the repository
git clone https://github.com/IBM/chuk-mcp-chart.git
cd chuk-mcp-chart
# Install with uv (recommended)
uv sync --dev
# Or with pip
pip install -e ".[dev]"运行测试
make test # Run tests
make test-cov # Run tests with coverage
make coverage-report # Show coverage report代码质量
make lint # Run linters
make format # Auto-format code
make typecheck # Run type checking
make security # Run security checks
make check # Run all checks建筑
make build # Build package
make docker-build # Build Docker image部署
Fly.io
只需一个命令即可部署到Fly.io:
# First time setup
fly launch
# Deploy updates
fly deploy服务器将通过HTTP在您的Fly.io URL上可用。
码头工人
# Build the image
docker build -t chuk-mcp-chart .
# Run the container
docker run -p 8000:8000 chuk-mcp-chart建筑
基于chuk mcp服务器构建,通过chuk视图模式进行图表渲染:
- 装饰驱动:工具定义如下
@chart_tool--自动处理视图元数据、结构化内容和文本回退 - 类型安全:所有图表数据都使用Pydantic v2模型(
ChartContent,ChartDataset,AxisConfig,LegendConfig) - 智能解析:CSV和JSON工具自动检测标签与数据列
- 异步本机:所有工具都是异步的,以获得最佳性能
- 双重运输:用于MCP客户端的STDIO,用于web访问的HTTP
贡献
欢迎投稿!请随时提交拉取请求。
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
Apache许可证2.0-请参阅 许可证 文件以获取详细信息。
致谢
- Chart.js 用于图表渲染引擎
- chuk mcp服务器 对于MCP框架
- 模型上下文协议 对于MCP规范
- Anthropic 为Claude和MCP提供支持
