Skip to main content
Glama

Search

search
Read-onlyIdempotent

Cross-domain search over Dapper's full document corpus (bills, regulations, consultations, news, transcripts), or a document's full metadata by id — one tool, two modes.

With q (default mode; required unless document_id is given): tries hybrid search (semantic + lexical RRF + cross-encoder rerank) first; falls back automatically to a plain title/number substring match if unavailable, timed out, or no semantic hit — check meta.mode ('semantic' or 'keyword_fallback'). It indexes attached source documents (PDFs and the like), not the records themselves, and coverage is uneven by country: treat an empty result as inconclusive. Returns top-K document stubs: document_id, title, url, domain, similarity and rerank_score (cite the rerank: negative means the reranker rejected it). dapper_content_id is the id of the RECORD the document belongs to — pass it as id to that domain's tool or to get_document_text. Pass document_id back into this tool for the full snippet. Use domain= to scope to one of bills/regulations/consultations/news/transcripts. If you already know the domain and want full structured rows directly (not just a stub), prefer that domain's own q param instead — e.g. list_bills(q=...) — it hits the same search but skips the extra document_id round-trip. Accepts Spanish, Portuguese, or English. Results are constrained to country_code (comma-separated; omit for every accessible/your default country).

With document_id (from a previous search result): ignores q and every other filter, and returns that document's full metadata — title, url, domain, country, published_date, a text snippet, and issuing_entity (regulations only).

Input Schema

NameRequiredDescriptionDefault
qNoNatural-language query, in Spanish, Portuguese or English. Required unless `document_id` is set. Prefer a domain tool's own `q` when you already know the domain — it returns full structured rows instead of a stub you then have to look up.
sinceNoOnly documents published on or after this date (YYYY-MM-DD).
top_kNoHow many document stubs to return (1-50; at most 20 come back, larger values are clamped).
untilNoOnly documents published on or before this date (YYYY-MM-DD).
domainNoScope results to one domain. Omit to search across all five.
min_rerankNoCross-encoder floor for the semantic branch of `q`. Rows the reranker scores below this are dropped; if that empties the result, what was rejected comes back under `empty_result.near_misses` so you can see what the index does hold. Pass null to disable the filter entirely.
document_idNoA `document_id` from a previous search result. Set it to fetch that document's full metadata; `q` and every filter are ignored.
country_codeNoISO alpha-2 country codes, comma-separated or as a list: 'BR,CO' or ['BR','CO']. Pass 'all' for every country you can access. Omitting it is NOT the same as 'all': logged in via OAuth it falls back to your own default country, and the response says so in `meta.country_scope`.
min_similarityNoCosine-similarity floor (0-1). Coarse: most rows that clear it are then rejected by the cross-encoder. `min_rerank` is the one that discriminates.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover the safety profile (read-only, idempotent), and the description adds substantial behavior beyond them: hybrid→keyword fallback trigger conditions, `meta.mode` signalling, the distinction between indexing attached source documents rather than the records, `rerank_score` sign meaning, and `empty_result.near_misses` on over-filtering. This is exactly the kind of context annotations cannot express.

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?

Front-loads the two-mode split in bold labels and each sentence carries operational information. It is long and a few clauses (rerank score sign, near_misses) restate schema descriptions, but nothing is padding for its own sake.

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?

For a 9-parameter hybrid search tool with an output schema, the description covers modes, fallback semantics, coverage caveats, downstream id handoff, and scoping defaults — the remaining gaps (return format details) are handled by the output schema.

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 the baseline is 3; the description nonetheless adds discriminating meaning — that `min_rerank` is the meaningful filter while `min_similarity` is coarse, that `dapper_content_id` is the record id to pass downstream, and that `country_code` omission differs from 'all'. It slightly duplicates the schema's own `min_rerank` text, keeping it from a 5.

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+resource+scope: cross-domain search over the full document corpus, with two explicitly named modes (`q` search vs `document_id` metadata fetch). It also names the sibling tools it overlaps with (domain list_* tools, get_document_text), so an agent can distinguish it without opening any 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?

Gives explicit when-to-use rules: use `q` unless `document_id` is given; prefer a domain tool's own `q` when the domain is already known; use `domain=` to scope; omit `country_code` only when you accept the default country. It also flags that empty results are inconclusive due to uneven coverage — a real usage caveat, not boilerplate.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources