Vega-Lite MCP Server
The Vega-Lite MCP Server provides AI assistants with comprehensive access to Vega-Lite documentation, examples, validation tools, and schema information.
Search documentation: Search through Vega-Lite documentation for information about charts, encodings, marks, and more
Retrieve examples: Get Vega-Lite example specifications by category or type (bar, line, scatter, area, histogram, heatmap, interactive, etc.) with optional search terms
Validate specifications: Validate Vega-Lite JSON specifications to check for errors and ensure correctness
Access schema information: Get detailed information about Vega-Lite schema properties and overall structure (mark, encoding, data, transform, etc.)
Provides access to Vega-Lite documentation, examples, and validation tools, enabling AI assistants to search documentation, retrieve visualization examples by category, validate specifications, and access schema information for creating data visualizations.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Vega-Lite MCP Servershow me a bar chart example with tooltips"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Vega-Lite & Deneb MCP Server
A Model Context Protocol (MCP) server that provides AI assistants with access to Vega-Lite and Deneb documentation, examples, and validation tools.
What it does
This server enables AI assistants like Claude to:
π Search Vega-Lite and Deneb documentation
π Get visualization examples by category
β Validate Vega-Lite specifications
π Access schema information
πΌ Power BI integration via Deneb documentation
Related MCP server: V Language MCP Server
Quick Start
1. Install
# Clone the repository
git clone https://github.com/inteligencianegociosmmx/vegaLite_mcp_server.git
cd vegaLite_mcp_server
# Install dependencies and build
npm install
npm run build2. Configure
Claude Code (VS Code) - Recommended β
# One command installation
claude mcp add vegalite node /path/to/vegaLite_mcp_server/dist/index.jsThen completely close and reopen VS Code (important - don't just reload).
Claude Desktop
Edit your config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Add:
{
"mcpServers": {
"vegalite": {
"command": "node",
"args": ["/absolute/path/to/vegaLite_mcp_server/dist/index.js"]
}
}
}Restart Claude Desktop.
3. Verify
Claude Code: Type /mcp - you should see "vegalite" listed
Claude Desktop: Look for the π¨ tools indicator
4. Try it
Search for "bar chart" in Vega-LiteShow me a scatter plot exampleValidate this spec: {"$schema": "https://vega.github.io/schema/vega-lite/v5.json", "mark": "bar", ...}Available Tools
Tool | What it does | Example |
| Search Vega-Lite and Deneb docs | "How do filter transforms work?" or "How does Deneb work with Power BI?" |
| Get examples by category | "Show me a line chart example" |
| Validate JSON specs | "Validate this Vega-Lite spec: {...}" |
| Get schema details | "What encoding channels are available?" |
π Deneb Support
Deneb is a certified custom visual for Microsoft Power BI that uses Vega-Lite. This server now includes Deneb documentation to help Power BI users:
Understand how to use Vega-Lite in Power BI
Learn about Power BI-specific features (cross-filtering, tooltips, etc.)
Get examples specific to the Power BI context
Try: "How do I use cross-filtering in Deneb?" or "What's the difference between Vega-Lite and Deneb?"
Troubleshooting
Server not showing up?
Check the path is absolute and correct
Test manually:
node /path/to/dist/index.js(should say "running on stdio")For Claude Code: Completely close and reopen VS Code (not just reload)
Verify with
/mcp(Claude Code) or look for tools indicator (Claude Desktop)
Tools not working?
npm run build # Rebuild the projectRemove the server:
claude mcp remove vegalite # Claude Code
# Or manually delete from config fileDevelopment
npm run watch # Auto-rebuild on changes
npm run scrape # Fetch latest Vega-Lite docsProject Structure
src/
βββ index.ts # Main MCP server
βββ tools/
β βββ search.ts # Documentation search
β βββ examples.ts # Example retrieval
β βββ validate.ts # Spec validation
βββ utils/
βββ scraper.ts # Documentation scraperManual Configuration
Claude Code (Manual)
Press
Ctrl+Shift+P(orCmd+Shift+Pon Mac)Type:
Claude Code: Edit MCP SettingsAdd:
{
"mcpServers": {
"vegalite": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"]
}
}
}Save and completely close/reopen VS Code
Other MCP Clients
Add the same configuration to your client's MCP settings file. Check your client's documentation for the config file location.
Contributing
Contributions welcome! Please submit a Pull Request.
See CONTRIBUTING.md for development guidelines.
Future Features
For information about deploying as a remote server, see docs/DEPLOYMENT.md.
License
MIT License - See LICENSE
Links
Issues: https://github.com/inteligencianegociosmmx/vegaLite_mcp_server/issues
Vega-Lite Docs: https://vega.github.io/vega-lite/
MCP Docs: https://modelcontextprotocol.io
Built with Model Context Protocol β’ Powered by Vega-Lite
Available Tools
4 toolsget_exampleB
Retrieve Vega-Lite example specifications by category or type
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | Example category (e.g., 'bar', 'line', 'scatter', 'area', 'histogram', 'heatmap', 'interactive') | |
| search | No | Optional search term to filter examples within the category |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic operation. It doesn't disclose important behavioral traits like whether this is a read-only operation, if it requires authentication, rate limits, what format the examples are returned in, or how many examples might be retrieved. The description is minimal and lacks operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a simple retrieval tool and front-loads the core purpose immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter retrieval tool with no output schema, the description is minimally complete but lacks important context. It doesn't explain what format the examples are returned in, whether this is a filtered list or single example, or how results are structured. The absence of annotations means more behavioral disclosure would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions parameters ('by category or type') but doesn't add meaningful semantics beyond what the 100% schema coverage already provides. The schema fully documents both parameters with clear descriptions and examples, so the description's minimal parameter mention doesn't add value, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Retrieve') and resource ('Vega-Lite example specifications'), making the purpose unambiguous. However, it doesn't differentiate this tool from its siblings (get_schema_info, search_docs, validate_spec) which handle different types of Vega-Lite-related operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus its siblings. It doesn't mention alternatives like search_docs for documentation or validate_spec for validation, nor does it specify when this retrieval tool is appropriate versus other options.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_schema_infoC
Get information about Vega-Lite schema properties and structure
| Name | Required | Description | Default |
|---|---|---|---|
| property | No | Schema property to get information about (e.g., 'mark', 'encoding', 'data', 'transform') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the tool's purpose without detailing behavioral traits such as whether it's read-only, if it requires authentication, rate limits, error handling, or what the output format might be. For a tool with no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently conveys the tool's purpose without unnecessary words. It is front-loaded with the core action and resource, making it easy to understand at a glance. Every part of the sentence earns its place by specifying the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a tool that retrieves schema information, the description is incomplete. There are no annotations to clarify behavior, no output schema to explain return values, and the description lacks details on what 'information' includes (e.g., property types, constraints, examples). This makes it inadequate for an agent to fully understand how to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'property' documented as 'Schema property to get information about (e.g., 'mark', 'encoding', 'data', 'transform').' The description does not add any additional meaning beyond this, such as syntax details or usage examples. Given the high schema coverage, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Get information about Vega-Lite schema properties and structure,' specifying both the action ('Get information') and the resource ('Vega-Lite schema properties and structure'). However, it does not explicitly differentiate from sibling tools like 'get_example' or 'search_docs,' which might also relate to Vega-Lite documentation or validation, so it lacks sibling differentiation for a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention sibling tools like 'get_example' or 'search_docs,' nor does it specify contexts, prerequisites, or exclusions for usage. This leaves the agent without clear direction on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_docsC
Search through Vega-Lite documentation for information about charts, encodings, marks, and more
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (e.g., 'bar chart', 'color encoding', 'scale domain') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool searches documentation but doesn't describe how results are returned (e.g., format, pagination), potential limitations (e.g., search scope, rate limits), or error handling. For a search tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is appropriately sized for a simple tool, though it could be slightly more structured by front-loading key details like the resource name earlier.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a search function with one parameter) and lack of annotations and output schema, the description is incomplete. It doesn't explain what the search returns (e.g., links, snippets, full text), how results are formatted, or any behavioral traits like search limitations. For a tool with no structured output information, more context is needed to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'query' parameter documented as 'Search query (e.g., 'bar chart', 'color encoding', 'scale domain')'. The description adds minimal value beyond this, only implying the query is for Vega-Lite topics. Since schema coverage is high, the baseline score of 3 is appropriate, as the description doesn't significantly enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search through Vega-Lite documentation for information about charts, encodings, marks, and more.' It specifies the verb ('Search') and resource ('Vega-Lite documentation'), and mentions the types of content covered. However, it doesn't explicitly differentiate from sibling tools like 'get_example' or 'get_schema_info', which might also retrieve documentation-related information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose 'search_docs' over sibling tools such as 'get_example' (which might fetch specific examples) or 'get_schema_info' (which could provide schema details), nor does it specify any prerequisites or exclusions for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_specC
Validate a Vega-Lite specification and check for errors
| Name | Required | Description | Default |
|---|---|---|---|
| spec | Yes | Vega-Lite JSON specification to validate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool validates and checks for errors, but doesn't disclose behavioral traits like what types of errors are detected, whether validation is strict or lenient, if it returns detailed error messages, or any performance considerations. This leaves significant gaps for a validation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's front-loaded with the core purpose, making it easy to understand quickly. Every part of the sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (validation of nested JSON specs) and lack of annotations and output schema, the description is insufficient. It doesn't explain what the validation entails, what outputs to expect (e.g., success/failure, error details), or how errors are reported. For a validation tool with no structured output, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'spec' parameter documented as 'Vega-Lite JSON specification to validate'. The description adds no additional meaning beyond this, such as format examples or validation scope. With high schema coverage, a baseline score of 3 is appropriate as the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('validate') and resource ('Vega-Lite specification'), and mentions checking for errors. It doesn't explicitly differentiate from sibling tools like 'get_example' or 'search_docs', but the validation focus is distinct enough to avoid confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing a valid spec, or compare it to siblings like 'get_schema_info' for schema-related tasks. Usage is implied by the name but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose: get_example retrieves examples, get_schema_info provides schema details, search_docs searches documentation, and validate_spec validates specifications. There is no overlap in functionality, making tool selection straightforward for an agent.
All tool names follow a consistent verb_noun pattern (get_example, get_schema_info, search_docs, validate_spec) with clear, descriptive verbs. This uniformity enhances readability and predictability across the tool set.
With 4 tools, the server is well-scoped for its purpose of supporting Vega-Lite chart development. Each tool serves a distinct, essential function (examples, schema, docs, validation), and there are no extraneous tools, making the count appropriate.
The tool set covers key aspects of Vega-Lite usage: examples, schema info, documentation search, and spec validation. A minor gap exists in lacking tools for generating or modifying specifications, but agents can work around this using the provided tools effectively.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
The documentation, as a tool your agent can call: 950+ AI-dev guides. Search + fetch tools.
Search VeChain documentation, query on-chain data, and fetch fee suggestions with direct links toβ¦
Versioned documentation registry and semantic search for AI tools and coding assistants.
Exactly 50 data transformation and live web verification tools for AI agents.
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides AI assistants with tools to grade, generate, and validate UI components against the components.build specification. Supports searching documentation, checking compliance, and generating framework-agnostic accessible components.1119Apache 2.0
- FlicenseNot gradedqualityDmaintenanceProvides LLMs with comprehensive knowledge about the V programming language, including documentation access, code examples, standard library reference, and syntax explanations to help users learn and work with V.
- AlicenseNot gradedqualityDmaintenanceProvides tools for AI assistants to access the Agent Web Protocol (AWP) specification, validate agent.json files, and generate protocol-compliant configurations. It enables developers to integrate the AWP standard into their websites through natural language prompts and automated validation.14MIT
- AlicenseNot gradedqualityDmaintenanceEnables business intelligence chart creation and visualization using Vega-Lite, with data loading and processing capabilities.13Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/inteligencianegociosmmx/vegaLite_mcp_server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server