dataville-mcp
Server exposes Dataville's public datasets to MCP clients through four read-only tools.
List all Dataville sources and their queryable SQL tables.
Describe a source's expected keywords, example search, and table columns.
Search a source by keywords and return the single best-matching record, optionally truncating its body.
Run read-only DuckDB SQL SELECT queries over stored tables to filter, sort, aggregate, join, and page results, with a 1,000-row cap and 30s timeout.
Use either Dataville's hosted HTTP MCP endpoint or run the local stdio server via npx with an API key; all tools only read data.
Allows searching arXiv preprints and papers by keyword through Dataville.
Allows searching Project Gutenberg's public-domain texts through Dataville.
Allows searching Papers With Code papers, datasets, and code through Dataville.
Allows searching PyPI package metadata and version information through Dataville.
Allows searching Stack Exchange communities' questions and answers through Dataville.
Allows searching Wikipedia articles and content through Dataville's data source API.
Click on "Deploy 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., "@dataville-mcp Search for recent sales data in the sales source."
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.
dataville-mcp
MCP server exposing Dataville's data source API as tools for MCP clients (Claude Desktop, Claude Code, etc.).
Dataville is a unified REST API over ten public datasets — Wikipedia, arXiv, Project Gutenberg, US Census, USDA FoodData, Papers with Code, SEC EDGAR, OpenAlex, PyPI, and Stack Exchange — behind one interface and one API key, with CSV/Parquet export and SQL query support. This package lets an MCP client search any of those sources as a tool call.
Requires a Dataville API key — get one from the Dataville dashboard.
Docs: docs.dataville.com · Connect an AI tool · Data sources. Examples: dataville-wikimedia, dataville-sec-edgar, company-intelligence-agent. Live demos: app.dataville.com/demos.
Tools
Tool | What it does |
| Every source, with the SQL tables (if any) you can query for it. |
| One source's keyword format, a working example, and its tables' columns: |
| Look one thing up by keywords and get the best match: |
| Read-only SQL |
All four only read data. query_dataville covers every stored source except
census and news, which are fetched live per search. It returns at most
1,000 rows per call and is billed per row returned. It reads Dataville's stored
copy: some sources are loaded in bulk, others only hold records fetched before,
so for one specific item search_dataville is the reliable route.
Related MCP server: Sentinel Core Agent
What you can ask
Once connected, ask in plain language and the client picks the source:
"Find an arXiv paper on retrieval-augmented generation and summarize it."
"What did Apple report in its latest SEC filing?"
"What's the median household income in Travis County, Texas, per the US Census?"
"How much protein is in 100 g of cooked lentils, according to USDA FoodData?"
"Look up the
requestspackage on PyPI — what's the latest version and license?""List ten Project Gutenberg books by Jane Austen, with their subjects."
"List five USDA FoodData entries with 'lentils' in the name, with their categories."
Setup
This package is a local (stdio) MCP server: the client launches it on your
machine via npx. If you don't need it running locally, connecting to
Dataville's hosted endpoint instead takes one line and no install.
Hosted, in one line (no install)
Dataville also serves MCP directly over HTTP, so a client can connect without running anything locally — no Node, no config file, no restart:
claude mcp add --transport http dataville https://api.dataville.com/mcpThat works with no credentials at all (anonymous limits). Add
--header "Authorization: Bearer dataville_your_key_here" for the full quota.
Cursor and VS Code users can use the install buttons at the top of this page.
Other clients take the same URL; the app's Integrations page has the exact
snippet for each. Use the hosted endpoint unless you specifically want to pin a
version or work offline — the rest of this section covers that local setup.
Prerequisites
Node.js (LTS) installed — this is what runs
npx. Without it the server fails to start. Check withnode --version.A Dataville API key — get one from https://app.dataville.com/api-keys.
The config block is the same everywhere; only where you put it differs:
{
"mcpServers": {
"dataville": {
"command": "npx",
"args": ["-y", "@dataville/dataville-mcp"],
"env": {
"DATAVILLE_API_KEY": "dataville_your_key_here"
}
}
}
}No install step needed — npx fetches and runs the package on demand.
Claude Desktop
Open Settings → Developer → Edit Config. This opens
claude_desktop_config.json:macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Add the block above (merge into
mcpServersif the file already has one), with your real key.Fully quit and reopen Claude Desktop — quit from the menu bar / system tray, not just closing the window.
The dataville tools now appear under the tools icon in the chat box, and Settings → Developer shows
datavillerunning.
Note: the server appears as tools, not in the Connectors directory — that directory only lists remote (hosted) connectors and will not find a local server. Ask naturally ("get Apple's latest revenue from dataville") and the client calls the tool.
Claude Code
claude mcp add dataville -e DATAVILLE_API_KEY=dataville_your_key_here -- npx -y @dataville/dataville-mcpRestart the session so the tools load. Add -s user to make it available in
every project instead of just the current one.
Configuration
DATAVILLE_API_BASE_URL is optional and defaults to https://api.dataville.com;
set it to http://localhost:5000 to point at a local backend during development.
Where your API key goes
The server reads DATAVILLE_API_KEY from its environment and sends it only as
an Authorization: Bearer header to DATAVILLE_API_BASE_URL, which is
https://api.dataville.com unless you change it. It never logs the key or sends
it anywhere else. The base URL must use https. Plain http is accepted only
for localhost, 127.0.0.1 and [::1], so the key never crosses the network
unencrypted.
All four tools are read-only: they search and query Dataville and never create, change or delete anything.
Running from source
git clone https://github.com/datavilleorg/dataville-mcp.git
cd dataville-mcp
npm install
npm run buildCheck that it works
Ask your client one of these. Each answer is checkable on purpose — a model that skipped the tool and answered from memory sounds just as confident, so a reply on its own proves nothing.
Ask | What proves it |
| Calls |
| A version you can confirm on pypi.org — and it moves, so it can't come from memory. |
| A form type, filing date, revenue figure, and a sec.gov link to open. |
| The exact USDA figure, 14.1 g per 100 g. |
| Calls |
Clients show when a tool ran. If you don't see that, say "use dataville" in the prompt to make it explicit, and check the answer against the source.
Development
npm run dev # tsx watch
npm test # node test runner
npm run build # tscReleasing
Publishes run from CI. npm uses trusted publishing (OIDC), so no npm token is
stored; the MCP Registry step signs in with the MCP_PRIVATE_KEY repo secret.
To cut a release: bump the version, update CHANGELOG.md, then publish a GitHub
Release for the new tag. The Publish workflow builds, tests, and publishes to npm,
then publishes server.json to the MCP Registry
(its version is set from package.json, so don't bump it by hand).
The registry name com.dataville/dataville-mcp is authorized by a DNS TXT record
on the dataville.com apex (v=MCPv1; k=ed25519; p=<public key>), checked
against the Ed25519 private key in the MCP_PRIVATE_KEY repo secret (hex). If the
mcp-registry job fails at login, check that record and secret, then re-run just
that job.
Available Tools
4 toolsdescribe_dataville_sourceDescribe a Dataville data sourceARead-onlyIdempotentInspect
Show how to use one data source: what search_dataville expects as keywords (with an example that returns a result), and the SQL tables and columns query_dataville can read for it. Sources with no tables can only be searched.
Inputs: source (required).
list_dataville_sourcesList Dataville data sourcesARead-onlyIdempotentInspect
List every Dataville data source with a one-line description and the SQL tables (if any) that query_dataville can read for it. Call describe_dataville_source for a source's keyword format and table columns.
Inputs: no named parameters.
query_datavilleQuery Dataville with SQLARead-onlyIdempotentInspect
Run a read-only SQL SELECT (DuckDB dialect) over Dataville's stored tables: wiki, arxiv, gutenberg, fooddata, pwc_methods, pwc_datasets, edgar, openalex, pypi, stackexchange. Use it to list, filter (WHERE … ILIKE '%term%'), sort, count, aggregate, or join across sources, and page through results with LIMIT/OFFSET. Get each table's columns from describe_dataville_source. Only SELECT is allowed; at most 1,000 rows are returned (a missing LIMIT becomes LIMIT 1000); queries time out after 30 s. Billed per row returned, so keep LIMIT as small as the task allows. The tables hold Dataville's stored copy: some sources are loaded in bulk, others only hold records fetched before, so a row missing here may still exist upstream — fall back to search_dataville for a specific item.
Inputs: sql (required).
search_datavilleSearch a Dataville data sourceARead-onlyIdempotentInspect
Look up one thing in a Dataville data source by keywords and get back the single best-matching record (full text in body, structured fields in metadata). Use describe_dataville_source to see what keywords a source expects. To get many records, filter, or page through results, use query_dataville instead.
Inputs: source (required), keywords (required), params, summary.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool targets a distinct phase of the workflow: list sources, describe a source, keyword search for one record, and SQL query for many records. The descriptions explicitly contrast search_dataville vs query_dataville, leaving no overlap.
All names are snake_case with a clear verb prefix (list_, describe_, search_, query_), but the position of 'dataville' varies slightly (list_dataville_sources vs search_dataville). Still predictable and readable.
Four tools is a lean but well-scoped set for a read-only data access server; each tool earns its place. It is slightly on the thin side (no dedicated fetch-by-id or schema tool), but nothing feels redundant.
Discovery (list/describe), retrieval (search), and flexible querying (SQL) cover the read-only domain well. Minor gap: no direct fetch-by-record identifier, though query_dataville can serve as a workaround.
Maintenance
Related MCP Connectors
Governed data discovery, exact queries, decisions, simulations, and runtime utilities over MCP.
Read-only MCP tools for AI agent discovery, structured resources, and NIULAI information.
Search and inspect source-pinned agent skills, plugins and tools through a free public MCP.
Public tools to understand Dynamik, discover datasets, and connect account-scoped capabilities.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables SQL query execution and database structure browsing via MCP tools and resources.MIT
- FlicenseNot gradedqualityDmaintenanceEnables file system operations, web scraping, and AI-powered search through MCP tools for use by LLM agents.1-
- AlicenseBqualityBmaintenanceEnables MCP hosts like ChatGPT and Claude to query data platform metadata, explore schemas and tables, inspect SQL explain plans, and monitor DAG and ETL status through standardized tools.21MIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to ask bilingual data questions, inspect database tables and schemas, and execute validated read-only SQL through exposed tools.MIT