Skip to main content
Glama
datavilleorg

dataville-mcp

by datavilleorg

Query Dataville with SQL

query_dataville
Read-onlyIdempotent

Run read-only SQL SELECT queries against Dataville's stored tables to list, filter, sort, count, aggregate, or join data across sources like wiki, arxiv, edgar, and more.

Instructions

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sqlYesA single SELECT statement, e.g. "SELECT company_name, form_type, filing_date FROM edgar WHERE company_name ILIKE '%apple%' ORDER BY filing_date DESC LIMIT 10"

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.1.8

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly/idempotent/no-destructive, and the description goes well beyond them: 1,000-row hard cap, implicit LIMIT 1000 when omitted, 30-second timeout, per-row billing, and the crucial staleness caveat that the tables are a stored copy with uneven upstream coverage. These are exactly the traits an agent needs to avoid surprise cost or missing data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and table list, then progressively deeper operational constraints. Despite being a long single paragraph, every sentence carries a distinct constraint (cap, timeout, billing, staleness) with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by specifying the result envelope (max 1,000 rows, default LIMIT) and failure modes (timeout, stale/missing rows). Nothing an agent needs to call this correctly is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With a single parameter at 100% schema coverage, the baseline is 3, but the description adds real meaning: DuckDB dialect, the ILIKE '%term%' filtering idiom, LIMIT/OFFSET paging, and the SELECT-only constraint. That is genuine value beyond the schema's example string.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource (read-only SQL SELECT over Dataville's stored tables) and enumerates the exact table set, so an agent instantly knows the scope. It also implicitly distinguishes itself from list_dataville_sources, describe_dataville_source, and search_dataville by naming the latter two directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states what the tool is good for (list, filter, sort, count, aggregate, join across sources), how to get schema first (describe_dataville_source), and the fallback condition (a row missing here may still exist upstream — use search_dataville for a specific item). When-to-use, prerequisite, and alternative are all covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.