Skip to main content
Glama

GLO Law

Keyword full-text search

fts
Read-onlyIdempotent

Keyword full-text search (BM25) over opinion body text in the local mirror. Keyword, not concept: matches the exact words given (case-insensitive) with no stemming ("petition" does not match "petitions"); all words must appear; "double quotes" mark an exact phrase. A case that states the concept in other words does not appear; semantic_search covers that gap. Coverage (exact scan 2026-07-18): the best extracted text per record is searched; 8,751,062 records carry 500+ characters, 1,993,069 carry 1-499, and 1,798 have no text and cannot match. Returns opinion_id, cluster_id, rank (BM25), case metadata and a matched-text snippet with [hl]...[/hl] around hits. Case law in this mirror ends 2026-09-30 (exact scan of all 10,174,547 case records): a thin or empty result for recent authority means the collection ends there, not that no such case exists. Responses carry body_as_of, body_pending (state, exact count, read_at) and body_note, which say when the stored opinion text is older than the case records while a refresh is written; a count that could not be read makes an empty result inconclusive. A cold index may answer 503 briefly; the server retries once. Every response carries a "note" stating that response’s source and coverage limits.

Input Schema

NameRequiredDescriptionDefault
qYeskeywords; all must appear, no stemming; "quotes" = exact phrase
courtNofilter to CourtListener court ids (e.g. ["scotus","ca10"]); OR within the list
limitNomax results, 1-20 (default 20)
date_filed_afterNoonly cases filed on/after this date (YYYY-MM-DD)
date_filed_beforeNoonly cases filed on/before this date (YYYY-MM-DD)
min_citation_countNominimum citation_count
precedential_statusNofilter by precedential status; OR within the list

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only cover the read-only/idempotent profile, yet the description adds real behavioral context: exact-match/no-stemming semantics, coverage counts including 1,798 unsearchable records, the 2026-09-30 corpus cutoff and how to interpret empty results, freshness metadata fields (body_as_of, body_pending), and a transient 503 with one retry. That is substantially more than structured fields provide.

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-loaded: the first sentence pins down mechanism, scope, and the keyword-vs-concept distinction before any caveats. It is dense but not padded, though the long coverage-statistics and freshness-metadata passage makes it heavier than a selector strictly needs.

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?

With no output schema, the description takes on the burden of explaining returns and does so (opinion_id, cluster_id, BM25 rank, case metadata, highlighted snippet, plus the per-response 'note' and body freshness fields). For a 7-parameter search tool on a finite mirror, an agent has everything needed to call and interpret it.

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 100%, so baseline is 3. The description restates the 'q' semantics already present in the schema (all words must appear, no stemming, quotes for phrase) and says nothing about court, limit, date bounds, min_citation_count, or precedential_status, so it adds little beyond 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 ("Keyword full-text search (BM25) over opinion body text") and immediately contrasts itself with the conceptual sibling semantic_search. An agent can distinguish it from semantic_search without opening either schema.

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

Usage Guidelines4/5

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

Explicitly says when to use the alternative ("A case that states the concept in other words does not appear; semantic_search covers that gap") and warns about misreading thin results near the collection cutoff. It does not, however, differentiate from the plainer sibling 'search', which an agent must still infer about.

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