Skip to main content
Glama

vegavisuals

vegavisuals は、再利用可能な Vega-Lite および生の Vega ビジュアライゼーションファクトリです。中央のテーマレジストリ、プロジェクトマニフェスト/ロック契約、stdio FastMCP アダプタ、および vl-convert-python==1.9.0.post1 に基づく 1 つの Docker レンダラーを同梱しています。利用側プロジェクトには Node、Chromium、またはホストへの Vega インストールは不要です。

ホスト CLI には Python 3.10 以降と Linux が必要です。公開処理がディスクリプタ相対 I/O、flock、およびフェイルクローズの renameat2 操作を使用するためです。レンダリングには Docker も必要です。Linux x86_64 がリリーステスト済みホストです。他の Linux アーキテクチャへのソースインストールでは、ピン留めされたすべての依存関係に対して互換性のある wheel が必要です。

デフォルトの互換性プロファイルは vl-convert-1.9.0 です。Vega 6.2.0、デフォルトで Vega-Lite 6.4、SVG/PNG/PDF 出力、qpdf による決定論的 PDF 正規化、そして明示的にインストールされた DejaVu フォントファミリを備えています。ベースイメージはレジストリダイジェストでピン留めされています。サポートされる Vega-Lite バージョンの完全なセットと実行時ポリシーは vegavisuals compatibility-status で確認できます。ソースデータは src/vegavisuals/assets/compat/vl-convert-1.9.0.json にあります。

クイックスタート

git clone https://github.com/dosquartsdedocs/vegavisuals.git
cd vegavisuals
python3 -m pip install '.[mcp]'
vegavisuals build-renderer

vegavisuals --project /path/to/consumer validate charts/summary.vl.json
vegavisuals --project /path/to/consumer render \
  charts/summary.vl.json public/summary.svg
vegavisuals --project /path/to/consumer render-all
vegavisuals --project /path/to/consumer check

最初のレンダラービルドには Debian および PyPI リポジトリへのアクセスが必要です。レンダーコンテナ自体はネットワークアクセスなしで実行され、イメージをプルすることはありません。ビルド済みレンダラーイメージは公開されていません。各インストールは、ライセンスされたソースパッケージとピン留めされた互換性プロファイルからローカルイメージをビルドします。

2 つのリポジトリ例は、プロジェクトローカル CSV を使用した Vega-Lite 棒グラフと、生の Vega チャートをカバーしています:

vegavisuals render examples/vega-lite/bar.vl.json dist/examples/bar.svg
vegavisuals render examples/vega/raw.vg.json dist/examples/raw-vega.svg

Related MCP server: infographic-mcp

レンダリング境界

すべてのレンダーは、イメージ内の固定ワーカーエントリポイントを使用します。ホストレジストリは:

  • JSON 自体を解析し、重複キーと非有限数を拒否します。

  • ソース、データ、入力、マニフェスト、キャッシュ、ロック、および出力パスをコンシューマルート内に制限します。

  • キャッシュ、ロック、および出力ファイルを、ディスクリプタ相対のノーフォロー Linux 操作で公開します。

  • プロジェクトファイルロックで最終コミットを直列化し、renameat2 で正確なファイルスナップショットを条件付きで交換し、ロック公開が失敗した場合は出力をロールバックします。

  • 退避された各公開 inode をモード 0700 の .cache/vegavisuals/replaced/ ディレクトリの下にアトミックに移動するため、すでに開いているディスクリプタを通した遅延書き込みは、明示的なキャッシュクリーンアップまで回復可能です。

  • HTTP/HTTPS データ、画像、ハイパーリンク、動的 URL 依存を拒否します。

  • ローカルデータをソースファイルからの相対で解決し、すべての依存をフィンガープリントします。

  • コンシューマプロジェクトをレンダラーにマウントすることはありません。

  • 準備されたスペックとステージングされた出力のみを、分離されたホスト一時ディレクトリの /output:rw にマウントします。

  • Docker を --network none、--read-only、すべてのケーパビリティをドロップ、no-new-privileges、非 root UID/GID、CPU/メモリ/PID/ファイル制限、および制限付き tmpfs で実行します。ルート呼び出し元は 65534:65534 を使用します。

  • PNG チャンクと CRC、正規化された PDF 構造、再帰的 SVG 安全性、出力サイズを検証します。

  • 検証されたアーティファクトを一時的な兄弟ファイルにコピーし、ホストからアトミックに宛先を置き換えます。

コンテナはコンシューマプロジェクトに直接公開できません。レンダー失敗時は既存の宛先は変更されません。

リカバリアーカイブは生成されたキャッシュデータであり、自動的に削除されることはありません。報告された公開競合の後にそれらを検査してください。make clean または手動キャッシュ削除が、それらが破棄される明示的なポイントです。 プロジェクトロック、管理対象出力、および .cache/vegavisuals/replaced/ は、公開とリカバリがアトミックに保たれるように、同じファイルシステム上に存在する必要があります。

ソースとデータポリシー

自動エンジン選択は、まず正確な .vl.json および .vg.json サフィックスを使用し、次に認識された $schema、最後に Vega-Lite mark または生の Vega marks 構造を使用します。JSON ソースには明示的な --engine vega-lite または --engine vega も機能します。認識されたサフィックスは明示的なエンジンと矛盾してはなりません。

ファイルソースは、静的プロジェクト相対の data.url を使用できます。これはソースディレクトリから解決され、プロジェクト内の UTF-8 通常ファイルに解決されなければならず、宣言されたまたは推測された CSV、TSV、または JSON 形式で生のインライン values としてステージングされます。これにより file: ローダーの曖昧さを回避しながら、Vega 自身の形式パーサーを保持します。シンボリックリンクと .. エスケープは拒否されます。HTTP、HTTPS、プロトコル相対、file:、data:、動的データ URL は拒否されます。画像とハイパーリンク URL チャネルも拒否されるため、公開された SVG はオフラインのままです。

render-text は同じ依存ポリシーを適用します。すべての依存 url または href キーが拒否されるため、インライン値のみが受け入れられます。入力テキストは 1 MiB に制限されています。そのキャッシュキーには、ソース、エンジン、フォーマット、プロファイル、テーマが含まれます。

プロジェクトマニフェスト

.vegavisuals.yml は、バージョン管理された明示的なプロジェクト契約です:

version: 1
profile: vl-convert-1.9.0
family: benizar
visualizations:
  - name: quarterly-bars
    source: charts/quarterly.vl.json
    output: public/quarterly.svg
    engine: vega-lite
    format: svg
    inputs:
      - charts/data/quarterly.csv
  - name: raw-overview
    source: charts/overview.vg.json
    output: public/overview.pdf

engine、format、inputs はオプションです。inputs はスペックから検出されたデータファイルを補完し、フィンガープリントに参加します。

.vegavisuals.lock.json はロックバージョン 2 を使用します。各エントリは、ソース、出力、エンジン、選択された Vega-Lite バージョン、フォーマット、プロファイル、ファミリ、完全なレンダーフィンガープリント、出力 SHA-256、入力、不変のレンダラーイメージ来歴を厳密に記録します。status はこれらの状態を報告します:

ポータブルフィンガープリントは、ローカル Docker イメージ ID ではなくレンダラー契約を使用します。クリーンビルドは、同一のピン留めされた入力を使用しながら、異なるイメージメタデータ ID を持つことができます。観測されたイメージ ID は来歴として記録されたままですが、イメージはレンダリング前に一致するレンダラー契約ラベルを保持している必要があります。

状態

意味

fresh

フィンガープリントと管理された出力ハッシュの両方が一致します。

stale

入力またはレンダー契約が変更されました。未変更の管理された出力は置き換えられる可能性があります。

missing

出力が存在しません。最初のレンダーが作成する可能性があります。

unmanaged

一致するロックエントリなしで出力が存在します。

modified

管理された出力がレンダリング後に変更されました。

invalid

ビジュアライゼーションごとのソース、依存、またはポリシー検証が失敗しました。

--force が渡されない限り、フレッシュな出力はスキップされます。既存の unmanaged および modified 出力は、--replace も渡されない限り置き換えられません。同じ公開ルールが直接ファイルレンダーと render-text からの明示的な出力に適用されます。

無効なマニフェストまたはロックは、ビジュアライゼーションごとの invalid 状態を生成する代わりに、status と check を中止します。

CLI

JSON を生成する運用コマンドは構造化 JSON を返します。そのエラーも JSON と非ゼロステータスを返します。ヘルプと --version は通常の CLI テキストを使用し、mcp serve は JSON コマンド出力ではなく MCP stdio トランスポートを話します。

vegavisuals [--project ROOT] version
vegavisuals [--project ROOT] profile-inventory
vegavisuals [--project ROOT] theme-inventory [--family FAMILY]
vegavisuals [--project ROOT] compatibility-status [--profile PROFILE]
vegavisuals [--project ROOT] factory-check
vegavisuals [--project ROOT] validate SOURCE [--engine auto|vega-lite|vega] [--input PATH]
vegavisuals [--project ROOT] render SOURCE OUTPUT [--format svg|png|pdf] [--name NAME]
vegavisuals [--project ROOT] render-text [--text JSON] [--output PATH]
vegavisuals [--project ROOT] status [--manifest .vegavisuals.yml]
vegavisuals [--project ROOT] check [--manifest .vegavisuals.yml]
vegavisuals [--project ROOT] render-all [--manifest .vegavisuals.yml]
vegavisuals [--project ROOT] factory-manifest
vegavisuals [--project ROOT] build-renderer [--profile PROFILE]
vegavisuals [--project ROOT] ensure-renderer [--profile PROFILE]
vegavisuals [--project ROOT] mcp serve
vegavisuals [--project ROOT] mcp client-config
vegavisuals [--project ROOT] mcp list-tools

契約認識コマンドは、文書化された --profile、--family、入力、マニフェスト、公開ポリシーオプションも受け入れます。完全な構文については vegavisuals COMMAND --help を実行してください。

render、render-text、render-all は --include-data、--replace、--force、--dry-run を受け入れます。インラインアーティファクトデータはデフォルトで省略されます。要求された場合、SVG は artifact.svg として返され、PNG と PDF は artifact.data_base64 として返されます。互換性プロファイルはアーティファクトと応答サイズを制限します。

validate は厳密な JSON、深さ、数値、スキーマバージョン、URL ポリシー、および基本的な Vega/Vega-Lite 構造チェックを実行します。完全な JSON Schema またはコンパイラ検証を主張するものではありません。ピン留めされたワーカーが完全なレンダラーセマンティクスの権威であり続けます。

Python API

公開パッケージは Registry、__version__、および型付き例外階層をエクスポートします。1 つの Registry インスタンスがコンシューマルートを固定します:

from vegavisuals import Registry

registry = Registry("/path/to/consumer")
registry.validate_visualization("charts/chart.vl.json")
registry.render_visualization("charts/chart.vl.json", "public/chart.svg")
registry.render_visualization_text(spec_json, output_format="png")
registry.visualization_status()
registry.visualization_check()
registry.render_visualizations()
registry.theme_inventory()
registry.compatibility_status()
registry.factory_manifest()

レンダラーライフサイクルメソッドは build_renderer() と ensure_renderer() です。インベントリヘルパーは profile_inventory()、factory_check()、version_status() です。

MCP

コンシューマルートは FastMCP サーバーが起動する前に一度解決され、MCP ツール引数ではありません:

vegavisuals --project /path/to/consumer mcp serve

ツール:

validate_visualization
render_visualization
render_visualization_text
visualization_status
visualization_check
render_visualizations
theme_inventory
compatibility_status
factory_manifest

リソース:

vegavisuals://agent-guide
vegavisuals://themes
vegavisuals://compatibility
vegavisuals://project/status
vegavisuals://project/check
vegavisuals://factory-manifest

MCP ツールは文書化された辞書結果契約を保持します。期待されるポリシー、検証、レンダー失敗は、MCP トランスポートエラーではなく ok: false を持つ型付きアプリケーション結果です。クライアントは ok を検査する必要があります。

クライアント設定テンプレートを生成するには:

vegavisuals mcp client-config --workspace-placeholder '${workspaceFolder}'

デフォルトのプレースホルダーは、${workspaceFolder} を展開するクライアントのためのリテラルです。クライアントがその展開を実行しない場合は、絶対コンシューマパスに置き換えてください。実行可能ファイルがクライアント PATH にない場合は --command /absolute/path/to/vegavisuals を使用し、VS Code のワークスペース形状には --format vscode-workspace を使用します。

検証

python3 -m pip install -e '.[mcp,dev]'
make check
make tests
make tests-install
make docker-smoke
make mcp-smoke

make tests は Docker をモックしたままにします。make docker-smoke は両エンジンのすべてのフォーマットをレンダリングし、遅延 PDF バイト再現性をチェックします。make mcp-smoke は stdio を介して両方のレンダーエンジンを呼び出します。Wheel 検証は非編集可能にインストールし、site-packages からアセットを解決し、インストールされた wheel MCP 実行可能ファイルを介して両方の実際のレンダーエンジンを呼び出します。

コントリビューションのチェックについては CONTRIBUTING.md を、サポートされているバージョンと非公開の脆弱性報告については SECURITY.md を参照してください。

ライセンス

vegavisuals は GNU General Public License v3.0 のみ (GPL-3.0-only) の下でライセンスされています。Vega、Vega-Lite、vl-convert、およびその他のランタイム依存は元のライセンスを保持します。THIRD_PARTY_NOTICES.md を参照してください。Copyright (C) 2026 dosquartsdedocs.

スタンドアロン CLI、Docker レンダラー、または MCP サーバーを呼び出すことは、それ自体ではコンシューマプロジェクトまたは生成された SVG、PNG、PDF アーティファクトのライセンスを変更しません。Python パッケージをコピー、変更、リンク、または直接配布するアプリケーションは、GPLv3 の条件に準拠する必要があります。# vegavisuals

vegavisuals は、再利用可能な Vega-Lite および生の Vega ビジュアライゼーションファクトリです。中央のテーマレジストリ、プロジェクトマニフェスト/ロック契約、stdio FastMCP アダプタ、および vl-convert-python==1.9.0.post1 に基づく 1 つの Docker レンダラーを同梱しています。利用側プロジェクトには Node、Chromium、またはホストへの Vega インストールは不要です。

ホスト CLI には Python 3.10 以降と Linux が必要です。公開処理がディスクリプタ相対 I/O、flock、フェイルクローズの renameat2 操作を使用するためです。レンダリングには Docker も必要です。Linux x86_64 がリリーステスト済みホストです。他の Linux アーキテクチャへのソースインストールでは、ピン留めされたすべての依存関係に対して互換性のある wheel が必要です。

デフォルトの互換性プロファイルは vl-convert-1.9.0 です。Vega 6.2.0、デフォルトで Vega-Lite 6.4、SVG/PNG/PDF 出力、qpdf による決定論的な PDF 正規化、そして明示的にインストールされた DejaVu フォントファミリを提供します。ベースイメージはレジストリダイジェストでピン留めされています。サポートされる Vega-Lite バージョンの完全なセットと実行時ポリシーは vegavisuals compatibility-status で確認できます。ソースデータは src/vegavisuals/assets/compat/vl-convert-1.9.0.json にあります。

クイックスタート

git clone https://github.com/dosquartsdedocs/vegavisuals.git
cd vegavisuals
python3 -m pip install '.[mcp]'
vegavisuals build-renderer

vegavisuals --project /path/to/consumer validate charts/summary.vl.json
vegavisuals --project /path/to/consumer render \
  charts/summary.vl.json public/summary.svg
vegavisuals --project /path/to/consumer render-all
vegavisuals --project /path/to/consumer check

最初のレンダラービルドには Debian および PyPI リポジトリへのアクセスが必要です。レンダーコンテナ自体はネットワークアクセスなしで実行され、イメージをプルすることはありません。ビルド済みレンダラーイメージは公開されていません。各インストールは、ライセンスされたソースパッケージとピン留めされた互換性プロファイルからローカルイメージをビルドします。

2 つのリポジトリ例は、プロジェクトローカル CSV を使用した Vega-Lite 棒グラフと、生の Vega チャートをカバーしています:

vegavisuals render examples/vega-lite/bar.vl.json dist/examples/bar.svg
vegavisuals render examples/vega/raw.vg.json dist/examples/raw-vega.svg

レンダリング境界

すべてのレンダーは、イメージ内の固定ワーカーエントリポイントを使用します。ホストレジストリは:

  • JSON 自体を解析し、重複キーと非有限数を拒否します。

  • ソース、データ、入力、マニフェスト、キャッシュ、ロック、出力パスをコンシューマルート内に制限します。

  • キャッシュ、ロック、出力ファイルをディスクリプタ相対のノーフォロー Linux 操作で公開します。

  • プロジェクトファイルロックで最終コミットを直列化し、renameat2 で正確なファイルスナップショットを条件付きで交換し、ロック公開が失敗した場合は出力をロールバックします。

  • 退避された各公開 inode をモード 0700 の .cache/vegavisuals/replaced/ ディレクトリの下にアトミックに移動するため、すでに開いているディスクリプタを介した遅延書き込みは、明示的なキャッシュクリーンアップまで回復可能です。

  • HTTP/HTTPS データ、画像、ハイパーリンク、動的 URL 依存関係を拒否します。

  • ローカルデータをソースファイルからの相対パスで解決し、すべての依存関係をフィンガープリントします。

  • コンシューマプロジェクトをレンダラーにマウントすることはありません。

  • 準備されたスペックとステージングされた出力のみを、分離されたホスト一時ディレクトリの /output:rw にマウントします。

  • Docker を --network none、--read-only、すべてのケーパビリティをドロップ、no-new-privileges、非ルート UID/GID、CPU/メモリ/PID/ファイル制限、および制限付き tmpfs で実行します。ルート呼び出し元は 65534:65534 を使用します。

  • PNG チャンクと CRC、正規化された PDF 構造、再帰的な SVG 安全性、出力サイズを検証します。

  • 検証されたアーティファクトを一時的な兄弟ファイルにコピーし、ホストからアトミックに宛先を置き換えます。

コンテナはコンシューマプロジェクトに直接公開できません。レンダー失敗時は、既存の宛先は変更されません。

リカバリアーカイブは生成されたキャッシュデータであり、自動的に削除されることはありません。報告された公開競合の後にそれらを検査してください。make clean または手動キャッシュ削除が、それらが破棄される明示的なポイントです。 プロジェクトロック、管理された出力、および .cache/vegavisuals/replaced/ は、公開とリカバリがアトミックに保たれるように、同じファイルシステム上に存在する必要があります。

ソースとデータポリシー

自動エンジン選択は、まず正確な .vl.json および .vg.json サフィックスを使用し、次に認識された $schema、最後に Vega-Lite の mark または生の Vega の marks 構造を使用します。JSON ソースには明示的な --engine vega-lite または --engine vega も機能します。認識されたサフィックスは明示的なエンジンと矛盾してはなりません。

ファイルソースは、静的プロジェクト相対の data.url を使用できます。これはソースディレクトリから解決され、プロジェクト内の UTF-8 通常ファイルに解決されなければならず、宣言されたまたは推測された CSV、TSV、または JSON 形式で生のインライン values としてステージングされます。これにより file: ローダーの曖昧さを回避しながら、Vega 自身のフォーマットパーサーを保持します。シンボリックリンクと .. エスケープは拒否されます。HTTP、HTTPS、プロトコル相対、file:、data:、動的データ URL は拒否されます。画像とハイパーリンク URL チャネルも拒否されるため、公開された SVG はオフラインのままです。

render-text は同じ依存関係ポリシーを適用します。すべての依存関係 url または href キーが拒否されるため、インラインの values のみが受け入れられます。入力テキストは 1 MiB に制限されています。そのキャッシュキーには、ソース、エンジン、フォーマット、プロファイル、テーマが含まれます。

プロジェクトマニフェスト

.vegavisuals.yml は、バージョン管理された明示的なプロジェクト契約です:

version: 1
profile: vl-convert-1.9.0
family: benizar
visualizations:
  - name: quarterly-bars
    source: charts/quarterly.vl.json
    output: public/quarterly.svg
    engine: vega-lite
    format: svg
    inputs:
      - charts/data/quarterly.csv
  - name: raw-overview
    source: charts/overview.vg.json
    output: public/overview.pdf

engine、format、inputs はオプションです。inputs はスペックから発見されたデータファイルを補完し、フィンガープリントに参加します。

.vegavisuals.lock.json はロックバージョン 2 を使用します。各エントリは、ソース、出力、エンジン、選択された Vega-Lite バージョン、フォーマット、プロファイル、ファミリ、完全なレンダーフィンガープリント、出力 SHA-256、入力、不変のレンダラーイメージ来歴を厳密に記録します。status はこれらの状態を報告します:

ポータブルフィンガープリントは、ローカル Docker イメージ ID ではなくレンダラー契約を使用します。クリーンビルドは、同一のピン留めされた入力を使用しながら、異なるイメージメタデータ ID を持つことができます。観測されたイメージ ID は来歴として記録されたままですが、イメージはレンダリング前に一致するレンダラー契約ラベルを保持している必要があります。

状態

意味

fresh

フィンガープリントと管理された出力ハッシュの両方が一致します。

stale

入力またはレンダー契約が変更されました。未変更の管理された出力は置き換えられる可能性があります。

missing

出力が存在しません。最初のレンダーが作成する可能性があります。

unmanaged

一致するロックエントリなしで出力が存在します。

modified

管理された出力がレンダリング後に変更されました。

invalid

ビジュアライゼーションごとのソース、依存関係、またはポリシー検証が失敗しました。

--force が渡されない限り、フレッシュな出力はスキップされます。既存の unmanaged および modified 出力は、--replace も渡されない限り置き換えられません。同じ公開ルールが、直接ファイルレンダーと render-text からの明示的な出力に適用されます。

無効なマニフェストまたはロックは、ビジュアライゼーションごとの invalid 状態を生成する代わりに、status と check を中止します。

CLI

JSON を生成する運用コマンドは構造化 JSON を返します。そのエラーも JSON と非ゼロステータスを返します。ヘルプと --version は通常の CLI テキストを使用し、mcp serve は JSON コマンド出力ではなく MCP stdio トランスポートを話します。

vegavisuals [--project ROOT] version
vegavisuals [--project ROOT] profile-inventory
vegavisuals [--project ROOT] theme-inventory [--family FAMILY]
vegavisuals [--project ROOT] compatibility-status [--profile PROFILE]
vegavisuals [--project ROOT] factory-check
vegavisuals [--project ROOT] validate SOURCE [--engine auto|vega-lite|vega] [--input PATH]
vegavisuals [--project ROOT] render SOURCE OUTPUT [--format svg|png|pdf] [--name NAME]
vegavisuals [--project ROOT] render-text [--text JSON] [--output PATH]
vegavisuals [--project ROOT] status [--manifest .vegavisuals.yml]
vegavisuals [--project ROOT] check [--manifest .vegavisuals.yml]
vegavisuals [--project ROOT] render-all [--manifest .vegavisuals.yml]
vegavisuals [--project ROOT] factory-manifest
vegavisuals [--project ROOT] build-renderer [--profile PROFILE]
vegavisuals [--project ROOT] ensure-renderer [--profile PROFILE]
vegavisuals [--project ROOT] mcp serve
vegavisuals [--project ROOT] mcp client-config
vegavisuals [--project ROOT] mcp list-tools

契約認識コマンドは、文書化された --profile、--family、入力、マニフェスト、公開ポリシーオプションも受け入れます。完全な構文については vegavisuals COMMAND --help を実行してください。

render、render-text、render-all は --include-data、--replace、--force、--dry-run を受け入れます。インラインアーティファクトデータはデフォルトで省略されます。要求された場合、SVG は artifact.svg として返され、PNG と PDF は artifact.data_base64 として返されます。互換性プロファイルはアーティファクトと応答サイズを制限します。

validate は、厳密な JSON、深さ、数値、スキーマバージョン、URL ポリシー、および基本的な Vega/Vega-Lite 構造チェックを実行します。完全な JSON Schema またはコンパイラ検証を主張するものではありません。ピン留めされたワーカーが完全なレンダラーセマンティクスの権威であり続けます。

Python API

公開パッケージは Registry、__version__、および型付き例外階層をエクスポートします。1 つの Registry インスタンスがコンシューマルートを固定します:

from vegavisuals import Registry

registry = Registry("/path/to/consumer")
registry.validate_visualization("charts/chart.vl.json")
registry.render_visualization("charts/chart.vl.json", "public/chart.svg")
registry.render_visualization_text(spec_json, output_format="png")
registry.visualization_status()
registry.visualization_check()
registry.render_visualizations()
registry.theme_inventory()
registry.compatibility_status()
registry.factory_manifest()

レンダラーライフサイクルメソッドは build_renderer() と ensure_renderer() です。インベントリヘルパーは profile_inventory()、factory_check()、version_status() です。

MCP

コンシューマルートは FastMCP サーバーが起動する前に一度だけ解決され、MCP ツール引数ではありません:

vegavisuals --project /path/to/consumer mcp serve

ツール:

validate_visualization
render_visualization
render_visualization_text
visualization_status
visualization_check
render_visualizations
theme_inventory
compatibility_status
factory_manifest

リソース:

vegavisuals://agent-guide
vegavisuals://themes
vegavisuals://compatibility
vegavisuals://project/status
vegavisuals://project/check
vegavisuals://factory-manifest

MCP ツールは文書化された辞書結果契約を保持します。期待されるポリシー、検証、レンダー失敗は、MCP トランスポートエラーではなく ok: false を持つ型付きアプリケーション結果です。クライアントは ok を検査する必要があります。

クライアント設定テンプレートを生成するには:

vegavisuals mcp client-config --workspace-placeholder '${workspaceFolder}'

デフォルトのプレースホルダは、${workspaceFolder} を展開するクライアントのためのリテラルです。クライアントがその展開を実行しない場合は、絶対コンシューマパスに置き換えてください。実行可能ファイルがクライアント PATH にない場合は --command /absolute/path/to/vegavisuals を使用し、VS Code のワークスペース形状には --format vscode-workspace を使用します。

検証

python3 -m pip install -e '.[mcp,dev]'
make check
make tests
make tests-install
make docker-smoke
make mcp-smoke

make tests は Docker をモックしたままにします。make docker-smoke は両エンジンのすべてのフォーマットをレンダリングし、遅延 PDF バイト再現性をチェックします。make mcp-smoke は stdio を介して両方のレンダーエンジンを呼び出します。Wheel 検証は非編集可能にインストールし、site-packages からアセットを解決し、インストールされた wheel の MCP 実行ファイルを通じて両方の実際のレンダーエンジンを呼び出します。

コントリビューションのチェックについては CONTRIBUTING.md を、サポートされているバージョンと非公開の脆弱性報告については SECURITY.md を参照してください。

ライセンス

vegavisuals は GNU General Public License v3.0 のみ (GPL-3.0-only) の下でライセンスされています。Vega、Vega-Lite、vl-convert、およびその他のランタイム依存関係は元のライセンスを保持します。THIRD_PARTY_NOTICES.md を参照してください。Copyright (C) 2026 dosquartsdedocs.

スタンドアロン CLI、Docker レンダラー、または MCP サーバーを呼び出すことは、それ自体ではコンシューマプロジェクトまたは生成された SVG、PNG、PDF アーティファクトのライセンスを変更しません。Python パッケージをコピー、変更、リンク、または直接配布するアプリケーションは、GPLv3 の条件に準拠する必要があります。

Related MCP Connectors

Related MCP Servers