🚀 vchart-mcp-server
@visactor/vchart のためのモデルコンテキストプロトコル (MCP) サーバーです。このサーバーを使用することで、AIアシスタントがインタラクティブなチャートやビジュアライゼーションを生成できます。

English | 简体中文
🚀 クイックスタート
デスクトップアプリケーション(Trae、Claude、VSCode、Cline、Cherry Studio、Cursorなど)で使用するには、以下のMCPサーバー設定を追加します。
MacOS
{
"mcpServers": {
"vchart-mcp-server": {
"command": "npx",
"args": ["-y", "@visactor/vchart-mcp-server"]
}
}
}
Windows
{
"mcpServers": {
"vchart-mcp-server": {
"command": "cmd",
"args": ["/c", "npx", "-y", "@visactor/vchart-mcp-server"]
}
}
}
Smitheryを通じたインストール
Smithery を通じてClaude Desktop用にvchart-mcp-serverを自動的にインストールするには、以下のコマンドを実行します。
npx -y @smithery/cli install @VisActor/vchart-mcp-server --client claude
✨ 主な機能
チャート出力形式
各チャートは複数の形式で生成できます。
- 画像 - 埋め込み用のPNG/JPG画像形式(デフォルト)
- 仕様 - プログラムで使用するためのVChart仕様オブジェクト
- HTML - Web表示用のインタラクティブなHTMLチャート
すべてのチャートでサポートされる共通パラメータ
| パラメータ |
説明 |
タイプ/オプション |
デフォルト |
output |
出力形式 |
"spec" | "image" | "html" |
"image" |
width |
チャートの幅 |
数値 |
500 |
height |
チャートの高さ |
数値 |
500 |
title |
チャートのタイトル |
文字列 |
オプション |
subTitle |
チャートのサブタイトル |
文字列 |
オプション |
titleOrient |
タイトルの位置 |
文字列 |
オプション |
chartTheme |
チャートのテーマ |
文字列 |
オプション |
background |
背景色 |
文字列 |
オプション |
colors |
カラーパレット |
配列/文字列 |
オプション |
サポートされるチャートタイプとツール
generate_cartesian_chart
直交座標系のチャートを生成します。エリアチャート、棒グラフ、折れ線グラフ、瀑布グラフ、ファネルグラフ、アニメーション付きランキング棒グラフが含まれます。
| パラメータ |
説明 |
タイプ |
必須 |
dataTable |
データオブジェクトの配列 |
配列 |
はい |
chartType |
チャートのタイプ |
"line" | "area" | "bar" | "waterfall" | "funnel" | "ranking_bar" |
はい |
xField |
X軸のフィールド名 |
string |
はい |
yField |
Y軸のフィールド名 |
string |
はい |
colorField |
色のマッピングフィールド |
string |
オプション |
timeField |
アニメーション付きランキング棒グラフの時間フィールド |
string |
オプション |
stackOrPercent |
積み上げまたはパーセントモード |
"stack" | "percent" |
オプション |
transpose |
棒グラフを水平方向に表示する(棒グラフとして) |
boolean |
オプション |
xAxisType |
X軸のタイプ |
"band" | "linear" |
オプション |
xAxisOrient |
X軸の位置 |
"top" | "bottom" |
オプション |
xAxisTitle |
X軸のタイトル |
string |
オプション |
xAxisHasGrid |
X軸のグリッド線を表示する |
boolean |
オプション |
xAxisHasLabel |
X軸のラベルを表示する |
boolean |
オプション |
xAxisHasTick |
X軸の目盛りを表示する |
boolean |
オプション |
yAxisType |
Y軸のタイプ |
"band" | "linear" |
オプション |
yAxisOrient |
Y軸の位置 |
"left" | "right" |
オプション |
yAxisTitle |
Y軸のタイトル |
string |
オプション |
yAxisHasGrid |
Y軸のグリッド線を表示する |
boolean |
オプション |
yAxisHasLabel |
Y軸のラベルを表示する |
boolean |
オプション |
yAxisHasTick |
Y軸の目盛りを表示する |
boolean |
オプション |
generate_polar_chart
極座標系のチャートを生成します。レーダーチャート、ローズチャート、パイチャートが含まれます。
| パラメータ |
説明 |
タイプ/オプション |
必須 |
dataTable |
データオブジェクトの配列 |
配列 |
はい |
chartType |
チャートのタイプ |
"radar" | "rose" | "pie" |
はい |
categoryField |
カテゴリフィールド名 |
string |
はい |
valueField |
値のフィールド名 |
string |
はい |
colorField |
色のマッピングフィールド |
string |
オプション |
angleAxisTitle |
角度軸のタイトル |
string |
オプション |
angleAxisHasGrid |
角度軸のグリッド線を表示する |
boolean |
オプション |
angleAxisHasLabel |
角度軸のラベルを表示する |
boolean |
オプション |
angleAxisHasTick |
角度軸の目盛りを表示する |
boolean |
オプション |
angleAxisType |
角度軸のタイプ |
"band" | "linear" |
オプション |
radiusAxisTitle |
半径軸のタイトル |
string |
オプション |
radiusAxisHasGrid |
半径軸のグリッド線を表示する |
boolean |
オプション |
radiusAxisHasLabel |
半径軸のラベルを表示する |
boolean |
オプション |
radiusAxisHasTick |
半径軸の目盛りを表示する |
boolean |
オプション |
radiusAxisType |
半径軸のタイプ |
"band" | "linear" |
オプション |
generate_hierarchical_chart
階層チャートを生成します。ツリーマップ、円パッキングチャート、サンバーストチャートが含まれます。
| パラメータ |
説明 |
タイプ/オプション |
必須 |
dataTable |
データオブジェクトの配列 |
配列 |
はい |
chartType |
チャートのタイプ |
"sunburst" | "treemap" | "circle_packing" |
はい |
colorField |
色のマッピングフィールド |
string |
はい |
valueField |
値のマッピングフィールド |
string |
はい |
generate_progress_chart
進捗チャートを生成します。円形、線形、ゲージ、液体チャートが含まれます。
| パラメータ |
説明 |
タイプ/オプション |
必須 |
dataTable |
データオブジェクトの配列 |
配列 |
はい |
chartType |
チャートのタイプ |
"linear_progress" | "circular_progress" | "gauge" | "liquid" |
はい |
valueField |
進捗値のフィールド名 |
string |
はい |
colorField |
色のマッピングフィールド(液体チャートではオプション、それ以外は必須) |
string |
オプション |
generate_wordcloud_venn
ワードクラウドまたはベン図を生成します。テキストデータのキーワードと頻度を表示するのに適しています。
パラメータ:
| パラメータ |
説明 |
タイプ/オプション |
必須 |
dataTable |
データオブジェクトの配列 |
配列 |
はい |
chartType |
チャートのタイプ |
"wordcloud" | "venn" |
はい |
colorField |
テキストフィールドまたはベン図の集合フィールド名 |
string |
はい |
valueField |
値のフィールド名(ベン図で必須) |
string |
オプション |
generate_range_column_chart
水平範囲棒グラフを生成します。データ範囲と比較を表示するのに適しています。
| パラメータ |
説明 |
タイプ/オプション |
必須 |
dataTable |
データオブジェクトの配列 |
any[] |
はい |
xField |
カテゴリフィールド名 |
string |
はい |
yField |
値のフィールド名 |
[string, string] |
はい |
colorField |
色のマッピングフィールド |
string |
オプション |
xAxisType |
X軸のタイプ |
"band" | "linear" |
オプション |
xAxisOrient |
X軸の位置 |
"top" | "bottom" |
オプション |
xAxisTitle |
X軸のタイトル |
string |
オプション |
xAxisHasGrid |
X軸のグリッド線を表示する |
boolean |
オプション |
xAxisHasLabel |
X軸のラベルを表示する |
boolean |
オプション |
xAxisHasTick |
X軸の目盛りを表示する |
boolean |
オプション |
yAxisType |
Y軸のタイプ |
"band" | "linear" |
オプション |
yAxisOrient |
Y軸の位置 |
"left" | "right" |
オプション |
yAxisTitle |
Y軸のタイトル |
string |
オプション |
yAxisHasGrid |
Y軸のグリッド線を表示する |
boolean |
オプション |
yAxisHasLabel |
Y軸のラベルを表示する |
boolean |
オプション |
yAxisHasTick |
Y軸の目盛りを表示する |
boolean |
オプション |
generate_dual_axis_chart
2つのY軸を持つ複合チャートで、異なる単位の2つの指標を比較するのに適しています。
| パラメータ |
説明 |
タイプ/オプション |
必須 |
dataTable |
データオブジェクトの配列 |
any[] |
はい |
xField |
X軸のフィールド名 |
string |
はい |
yField |
2つのY軸のフィールド名 |
[string, string] |
はい |
colorField |
色のマッピングフィールド |
string |
オプション |
stackOrPercent |
積み上げまたはパーセントモード |
"stack" | "percent" |
オプション |
xAxisOrient |
X軸の位置 |
"top" | "bottom" |
オプション |
xAxisTitle |
X軸のタイトル |
string |
オプション |
xAxisHasGrid |
X軸のグリッド線を表示する |
boolean |
オプション |
xAxisHasLabel |
X軸のラベルを表示する |
boolean |
オプション |
xAxisHasTick |
X軸の目盛りを表示する |
boolean |
オプション |
leftYAxisTitle |
左Y軸のタイトル |
string |
オプション |
leftYAxisHasGrid |
左Y軸のグリッド線 |
boolean |
オプション |
leftYAxisHasLabel |
左Y軸のラベル |
boolean |
オプション |
leftYAxisHasTick |
左Y軸の目盛り |
boolean |
オプション |
rightYAxisTitle |
右Y軸のタイトル |
string |
オプション |
rightYAxisHasGrid |
右Y軸のグリッド線 |
boolean |
オプション |
rightYAxisHasLabel |
右Y軸のラベル |
boolean |
オプション |
rightYAxisHasTick |
右Y軸の目盛り |
boolean |
オプション |
generate_scatter_chart
2つの変数間の関係を表示します。パターンや外れ値を発見するのに適しています。
| パラメータ |
説明 |
タイプ/オプション |
必須 |
dataTable |
データオブジェクトの配列 |
any[] |
はい |
xField |
X軸のフィールド名 |
string |
はい |
yField |
Y軸のフィールド名 |
string |
はい |
colorField |
色のマッピングフィールド |
string |
オプション |
sizeField |
サイズのマッピングフィールド |
string |
オプション |
xAxisType |
X軸のタイプ |
"band" | "linear" |
オプション |
xAxisOrient |
X軸の位置 |
"top" | "bottom" |
オプション |
xAxisTitle |
X軸のタイトル |
string |
オプション |
xAxisHasGrid |
X軸のグリッド線を表示する |
boolean |
オプション |
xAxisHasLabel |
X軸のラベルを表示する |
boolean |
オプション |
xAxisHasTick |
X軸の目盛りを表示する |
boolean |
オプション |
yAxisType |
Y軸のタイプ |
"band" | "linear" |
オプション |
yAxisOrient |
Y軸の位置 |
"left" | "right" |
オプション |
yAxisTitle |
Y軸のタイトル |
string |
オプション |
yAxisHasGrid |
Y軸のグリッド線を表示する |
boolean |
オプション |
yAxisHasLabel |
Y軸のラベルを表示する |
boolean |
オプション |
yAxisHasTick |
Y軸の目盛りを表示する |
boolean |
オプション |
generate_sankey_chart
サンキー図を生成します。
| パラメータ |
説明 |
タイプ |
必須 |
dataTable |
データオブジェクトの配列 |
any[] |
はい |
sourceField |
ソースノードのフィールド |
string |
はい |
targetField |
ターゲットノードのフィールド |
string |
はい |
valueField |
値のフィールド |
string |
はい |
generate_heatmap_chart
ヒートマップを生成します。データの密度と分布を表示するのに適しています。
| パラメータ |
説明 |
タイプ/オプション |
必須 |
dataTable |
データオブジェクトの配列 |
any[] |
はい |
xField |
X軸のフィールド名 |
string |
はい |
yField |
Y軸のフィールド名 |
string |
はい |
sizeField |
値のフィールド名 |
string |
はい |
xAxisType |
X軸のタイプ |
"band" | "linear" |
オプション |
xAxisOrient |
X軸の位置 |
"top" | "bottom" |
オプション |
xAxisTitle |
X軸のタイトル |
string |
オプション |
xAxisHasGrid |
X軸のグリッド線を表示する |
boolean |
オプション |
xAxisHasLabel |
X軸のラベルを表示する |
boolean |
オプション |
xAxisHasTick |
X軸の目盛りを表示する |
boolean |
オプション |
yAxisType |
Y軸のタイプ |
"band" | "linear" |
オプション |
yAxisOrient |
Y軸の位置 |
"left" | "right" |
オプション |
yAxisTitle |
Y軸のタイトル |
string |
オプション |
yAxisHasGrid |
Y軸のグリッド線を表示する |
boolean |
オプション |
yAxisHasLabel |
Y軸のラベルを表示する |
boolean |
オプション |
yAxisHasTick |
Y軸の目盛りを表示する |
boolean |
オプション |
💻 使用例
設定が完了したら、AIアシスタントにチャートを作成するように依頼できます。
基本的な使用法
「月別の売上データを示すエリアチャートを作成して」
アシスタントは以下のパラメータで generate_cartesian_chart ツールを使用します。
- chartType: "area"
- dataTable: あなたの売上データ
- xField: "month"
- yField: "sales"
「収益とユーザー成長を比較する2軸チャートを生成して」
アシスタントは以下のパラメータで generate_dual_axis_chart ツールを使用します。
- dataTable: あなたのビジネスデータ
- xField: "time"
- yField: ["revenue", "userGrowth"]
「四半期ごとのパフォーマンスのインタラクティブなHTML棒グラフを表示して」
アシスタントは以下のパラメータで generate_cartesian_chart ツールを使用します。
- chartType: "bar"
- dataTable: あなたの四半期データ
- xField: "quarter"
- yField: "performance"
- output: "html"
「製品の売上シェアのパイチャートを作成して」
アシスタントは以下のパラメータで generate_polar_chart ツールを使用します。
- chartType: "pie"
- dataTable: あなたの売上データ
- categoryField: "product"
- valueField: "sales"
「身長と体重の散布図を描いて」
アシスタントは以下のパラメータで generate_scatter_chart ツールを使用します。
- dataTable: あなたの身体データ
- xField: "height"
- yField: "weight"
- colorField: "gender" (オプション)
「チームのスキル評価のレーダーチャートを作成して」
アシスタントは以下のパラメータで generate_polar_chart ツールを使用します。
- chartType: "radar"
- dataTable: あなたの評価データ
- categoryField: "skill"
- valueField: "score"
「データの流れを示すサンキー図を生成して」
アシスタントは以下のパラメータで generate_sankey_chart ツールを使用します。
- dataTable: あなたのフローデータ
- sourceField: "from"
- targetField: "to"
- valueField: "amount"
「データの分布を示すヒートマップを作成して」
アシスタントは以下のパラメータで generate_heatmap_chart ツールを使用します。
- dataTable: あなたの分布データ
- xField: "x_category"
- yField: "y_category"
- sizeField: "value"
🔧 技術詳細
SSEまたはストリーミング可能なトランスポートでの実行
インストールと起動
@visactor/vchart-mcp-server をグローバルにインストールします。
npm install -g @visactor/vchart-mcp-server
サーバーを起動します。
mcp-server-chart --transport sse
mcp-server-chart --transport streamable
その後、以下のURLでサーバーにアクセスできます。
- SSEトランスポート:
http://localhost:3001/sse
- ストリーミング可能なトランスポート:
http://localhost:3001/streamable
その他のCLIオプション
オプション:
-t, --transport <type> トランスポートタイプ (stdio, sse, streamable) [デフォルト: stdio]
-p, --port <port> HTTPベースのトランスポートのポート番号 [デフォルト: 3000]
-e, --endpoint <path> HTTPベースのトランスポートのエンドポイントパス [デフォルト: /message]
-h, --help このヘルプメッセージを表示
例:
node index.js # stdioトランスポートで起動
node index.js -t sse -p 3000 # ポート3000でSSEトランスポートで起動
node index.js -t sse -p 3000 -e /api/sse # カスタムエンドポイントでSSEトランスポートで起動
node index.js -t streamable -p 3001 -e /stream # カスタムエンドポイントでストリーミング可能なトランスポートで起動
開発
前提条件
ビルド
npm run build
開発モード(自動再構築)
npm run watch
テスト
npm run test-tool
npm run inspector
デバッグ
MCPサーバーはstdioを介して通信するため、デバッグは困難な場合があります。開発にはMCPインスペクターを使用します。
npm run inspector
AIエディタでのテスト
AIエディタでMCPサーバーをテストするには、以下の設定を使用します。
{
"mcpServers": {
"vchart-mcp-server": {
"command": "node",
"args": ["/Users/path/to/your/project/vchart-mcp-server/build/index.js"]
}
}
}
環境変数
VIMD_IMAGE_SERVER - カスタム画像生成サーバーのURL(デフォルト: https://vmind.visactor.com/export)
プライベートデプロイ
現在、vchart-mcp-serverによって生成される画像とHTMLは https://vmind.visactor.com/export を介して生成されています。プライベートデプロイの場合は、VIMD_IMAGE_SERVER 環境変数を設定して独自の画像生成サーバーを指定します。
{
"mcpServers": {
"mcp-server-chart": {
"command": "npx",
"args": [
"-y",
"@visactor/vchart-mcp-server"
],
"env": {
"VIMD_IMAGE_SERVER": "<YOUR_VIS_REQUEST_SERVER>"
}
}
}
}
画像生成サービスは https://github.com/VisActor/vchart-mcp-server-export を参照してプライベートでデプロイできます。
📄 ライセンス
MITライセンス
貢献
貢献は大歓迎です!問題やプルリクエストを自由に提出してください。
関連プロジェクト