ava-mcp-server
Provides an MCP server for AVA/AntV, enabling dataset loading, schema and profile inspection, read-only SQL querying, natural-language analysis, SQL translation, question suggestions, and chart recommendations.
Integrates with OpenAI-compatible chat endpoints to power model-backed tools for natural-language analysis, SQL generation, question suggestions, and chart recommendation.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
mcp-server-ava
Model Context Protocol server for AVA. Load a dataset, inspect it, run SQL, ask questions in natural language, and get charts — from Claude Desktop, Cursor, ChatGPT, or any other MCP client.
AVA does the data access, SQL execution, and chart specs; your MCP client's own agent does the reasoning. No AVA CLI or extra API key is needed for deterministic work.
Install
npm install -g mcp-server-ava @antv/ava@beta@antv/ava v4 is a peer dependency and is still published under the beta tag — install it alongside. Without installing globally: npx -y -p mcp-server-ava -p @antv/ava@beta mcp-server-ava.
Requires Node.js ≥ 22.13.
Related MCP server: duckdb-analytics-mcp
Client configuration
Add the server to your MCP client config. The env block is only needed for the model-backed tools (ava_analyze, ava_translate, ava_suggest, ava_visualize).
Claude Desktop (claude_desktop_config.json) / Cursor (~/.cursor/mcp.json) / most clients:
{
"mcpServers": {
"ava": {
"command": "npx",
"args": ["-y", "mcp-server-ava"],
"env": {
"OPENAI_API_KEY": "sk-...",
"OPENAI_MODEL": "gpt-4o-mini",
"OPENAI_BASE_URL": "https://api.openai.com/v1",
"AVA_MCP_MAX_ROWS": "200"
}
}
}
}Any OpenAI-compatible endpoint works — set OPENAI_BASE_URL for Azure, OpenRouter, a local vLLM, or an internal gateway.
Tools
Tool | What it does | Needs a model |
| Load inline CSV/JSON/text or a file path ( | only for |
| Table names, columns, and types. | no |
| Row count, nulls, distinct, min/max/mean/median per column. | no |
| One read-only SQL statement with DuckDB semantics; results capped at | no |
| Natural-language question → AVA writes SQL, executes it, and summarizes the answer. | yes |
| Natural-language question → SQL, without executing it, so a human can review it. | yes |
| Suggest questions worth asking about the loaded dataset. | yes |
| Recommend a chart for rows from a previous call; returns GPT-Vis JSON. | yes |
Every tool returns JSON text. Failures (no dataset loaded, invalid SQL, engine errors) come back as MCP error results, so the agent sees the message instead of a dead connection.
Example conversation
You: Load
examples/sales.csvand tell me which region sells the most, then chart it.Agent: calls
ava_load_data→ava_query(SELECT region, SUM(sales)…) →ava_visualize, replies "West sells the most at 13 units" and returns chart JSON.
Rendering a returned chart
ava_visualize returns a spec, not HTML. Save the spec and render it with the AVA CLI:
npm install -g @antv/ava # provides the `ava` binary
npx ava viz --spec @chart.json -o chart.htmlConfiguration
Env var | Default | Notes |
| — | Enables the model-backed tools. Without it they return a clear error. |
|
| Any chat model your endpoint exposes. |
| OpenAI | Point at an OpenAI-compatible gateway. |
|
| Hard cap per |
Safety notes
One dataset per server process; loading again replaces it. Run separate servers for separate datasets.
SQL is read-only: writes, DDL, and multi-statement scripts are rejected by the engine.
Results are truncated to the row cap and flagged with
truncated: true.Diagnostics go to stderr — stdout is reserved for the MCP protocol.
Development
npm install
npm run build
npm test # vitest: in-memory MCP client over the real server
node scripts/smoke.mjs # end-to-end over stdio against the built binary
OPENAI_API_KEY=... node scripts/smoke.mjs # also exercises analyze + visualizeLicense
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Query, join, profile, clean and convert CSV/JSON/Parquet with server-side DuckDB over MCP.
Query your warehouse or a CSV with Claude/ChatGPT over MCP, governed by table-level ACL + audit.
Query your org's data in natural language — read-only MCP access to SQL, NoSQL, files & warehouses.
Text-to-SQL MCP server: read-only queries on PostgreSQL, MySQL and SQL Server with your real schema
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for SQL analytics on DuckDB and MotherDuck databases, enabling AI assistants and IDEs to query data via natural language.1MIT
- AlicenseAqualityDmaintenanceA read-only DuckDB MCP server offering context-efficient analytics tools (list_datasets, describe_table, profile_column, explain, query) with a semantic layer for business rules, security guards, and disclosed truncation to help LLMs produce correct answers while minimizing token usage.5MIT
- AlicenseNot gradedqualityBmaintenanceMCP server that turns coding agents into data analysts: attach CSV/Parquet/JSON/XLSX or databases, profile data, run read-only SQL, and render Vega-Lite charts as SVG files.1MIT
- AlicenseAqualityCmaintenanceEnables AI agents to discover and execute analytical queries on a DuckDB dataset through typed MCP tools, with guarded read-only SQL support for complex calculations without direct database access.6MIT