rendering
Vega-Lite MCP Integration for CrewAI
Connect Vega-Lite to CrewAI through the local KosmoKrator MCP gateway with scoped tools, credentials, and write policy.
Connect Vega-Lite to CrewAI
Expose KosmoKrator integrations to CrewAI workers as scoped local tools.
Wrap kosmo integrations:call for specific tasks or connect workers to a local MCP gateway. The gateway is local, scoped to this integration, and starts with
--write=deny so CrewAI can inspect read-capable tools without receiving write access by default.
Vega-Lite MCP Config for CrewAI
Use per-worker integration scopes to avoid giving every worker every tool.
{
"mcpServers": {
"kosmokrator-vegalite": {
"type": "stdio",
"command": "kosmo",
"args": [
"mcp:serve",
"--integration=vegalite",
"--write=deny"
]
}
}
} Run the Gateway Manually
kosmokrator mcp:serve --integration=vegalite --write=deny Why Use KosmoKrator Here
Expose only Vega-Lite instead of a broad multi-service tool list.
Reuse credentials already configured for the KosmoKrator CLI and Lua runtime.
Start read-only, then opt into ask or allow for trusted workspaces.
Vega-Lite Tools Visible to CrewAI
CrewAI sees stable MCP tool names generated from the Vega-Lite integration catalog.
| MCP tool | Source function | Type | Description |
|---|---|---|---|
integration__vegalite__render_vegalite | vegalite.render_vegalite | Write | Render a Vega-Lite visualization to a PNG image. Pass a complete Vega-Lite JSON specification and get back a markdown image embed. IMPORTANT: Always use inline data with "data": {"values": [...]}. Never use "data": {"url": "..."}. Example spec: { "$schema": "https://vega.github.io/schema/vega-lite/v5.json", "data": {"values": [ {"category": "A", "value": 28}, {"category": "B", "value": 55}, {"category": "C", "value": 43} ]}, "mark": "bar", "encoding": { "x": {"field": "category", "type": "nominal"}, "y": {"field": "value", "type": "quantitative"} } } Supported mark types: bar, line, point, area, rect, circle, square, arc, text, tick, rule, trail, boxplot. Always include "type" in encoding channels: "quantitative", "nominal", "ordinal", or "temporal". |