Skip to main content
Glama
joshavenue

Reservoir MCP

by joshavenue

Run SQL on Reservoir

reservoir_query
Read-onlyIdempotent

Run read-only DuckDB SQL over Reservoir Parquet archives, estimating downloads and enforcing a max_download_mb limit to control query cost.

Instructions

Run DuckDB SQL directly on the Reservoir bucket, exactly like the exploring-reservoir blog. Before running, estimates the download from the columns the query reads and refuses above max_download_mb. Only the Reservoir bucket and local Reservoir copies can be read. Prefer the dedicated tools for fills, candles, books and positions.

Input Schema

NameRequiredDescriptionDefault
sqlYesOne read-only DuckDB SELECT over s3://hydromancer-reservoir/... paths, written as in the blog, e.g. SELECT ... FROM read_parquet('s3://hydromancer-reservoir/by_dex/xyz/fills/perp/all/date=2026-10-26/fills.parquet') WHERE coin = 'xyz:MSFT'.
dry_runNoOnly estimate the download; do not run.
max_rowsNoRows to return (default 200).
max_download_mbNoStop if the estimated download is larger than this many MB (default 1024). Raise it only if the user accepts the AWS cost.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnlyHint, idempotentHint, openWorldHint), and the description adds non-obvious behavior the annotations cannot express: an automatic download-size estimate derived from the columns read, a hard refusal above max_download_mb, and a read restriction to the Reservoir bucket and local copies. These are the failure modes an agent needs to anticipate before calling.

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

Conciseness4/5

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

Three tight sentences with the core action, guardrail and alternative routing front-loaded in that order. The reference to "exactly like the exploring-reservoir blog" is a mild external pointer that costs a clause without full standalone value, but nothing else is wasted.

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?

Given an output schema exists and annotations declare the safety profile, the description supplies everything else an agent needs: access scope, cost guardrail, alternatives, and the read-only SELECT constraint (reinforced in the schema). Nothing material is missing for correct invocation.

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?

Schema coverage is 100%, so baseline is 3, but the description meaningfully explains max_download_mb's mechanism (estimate based on columns read, refusal above threshold) rather than just restating it. The sql parameter's syntax and path conventions are left entirely to the schema, so it does not fully supersede the structured data.

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?

States a specific verb and resource ("Run DuckDB SQL directly on the Reservoir bucket") plus the exact access scope, and explicitly bounds itself against sibling tools for fills, candles, books and positions. An agent can classify this as the escape-hatch SQL tool without opening a schema.

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?

Explicit when-to-use (ad-hoc DuckDB SELECTs over the bucket), explicit when-not (“Prefer the dedicated tools for fills, candles, books and positions”), and the named domains map cleanly onto reservoir_fills, reservoir_candles, reservoir_orderbook and reservoir_positions. It also flags the cost precondition for raising the download ceiling.

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