Skip to main content
Glama
benthic-io

benthic-mcp

Official
by benthic-io

benthic_discover

Read-onlyIdempotent

Find the smallest signed source, columns, and join paths for a question to enable correct queries without inventing joins.

Instructions

Find the smallest relevant signed source, columns, and join paths for a question.

Use the returned source field verbatim in benthic_query. If join_paths is empty, make separate
benthic_query calls; never invent a join.

One call is normally enough: it returns the best relations together with their columns, and
columns_truncated says when that list is partial. Ask again for more columns only when
columns_truncated is true, by passing detail='full'. A wrong column guess is recoverable rather
than fatal, because benthic_query reports the near-miss signed name.

Core access rules:

  • Call benthic_discover before benthic_query, and pass its source value verbatim.

  • Use benthic_join only for a signed path returned by discovery; never invent a join.

  • Partial joins require context_conditions and must be reported as provisional.

  • Heuristic matches are not exact; keep the returned reliability warning in the answer.

  • Never derive totals from truncated or incomplete source data.

  • Call benthic_playbook(dataset) when a question needs domain conventions for that dataset.

  • Dates in this catalog are ISO-8601; filter with gte/lte rather than string comparison.

  • Never use a current-only view to answer a historical question.

  • You have a limited number of turns, so once you have the rows you need you must stop calling tools and write the final answer, because a question left unanswered scores zero even when every call succeeded.

  • usaspending: Federal award transactions and the recipient entity index.

  • irs_ng: IRS exempt organization records, including Form 990 details.

  • samer: SAM entity registrations, the bridge between USAspending and IRS identifiers.

  • up_cdmaps: Congressional district boundaries, queried through spatial RPCs.

  • usp_cl: Congressional legislators and executive terms, including historical terms.

Input Schema

NameRequiredDescriptionDefault
limitNo
queryNo
detailNosummary
datasetNo
relationNo

Output Schema

NameRequiredDescriptionDefault
queryYes
warningsNo
relationsYes
join_pathsYes
total_matchesYes
more_availableYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already cover the read-only/idempotent safety profile, yet the description adds substantial behavior: what an empty join_paths means, that columns_truncated signals a partial list, how to escalate with detail='full', and that a wrong column guess is recoverable because benthic_query reports the near-miss name. It also discloses that partial joins are provisional and must be reported as such.

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

Conciseness3/5

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

The workflow guidance is front-loaded and each access rule is actionable, but the text carries noticeable redundancy ('never invent a join' and the 'source verbatim' instruction each appear twice) and mixes family-wide rules into a single tool's definition. Adequately sized but not tight.

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

Completeness4/5

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

An output schema exists, so return values need not be documented, and the description still explains the key return signals (join_paths, columns_truncated). For a multi-step discovery tool it is largely complete, with only the limit/relation parameters left unaddressed.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It does explain the detail parameter ('Ask again for more columns... by passing detail=full') and enumerates the dataset vocabulary (usaspending, irs_ng, samer, up_cdmaps, usp_cl), but limit, relation, and query are left without semantic explanation, so compensation is only partial.

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: 'Find the smallest relevant signed source, columns, and join paths for a question.' It also differentiates itself from siblings by naming when its output feeds benthic_query and benthic_join, so an agent can place it in the workflow without opening other schemas.

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 and when-not rules: 'Call benthic_discover before benthic_query', 'If join_paths is empty, make separate benthic_query calls; never invent a join', and routing to benthic_playbook for domain conventions. It also gives a stopping condition for the whole workflow ('once you have the rows you need you must stop calling tools').

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