Skip to main content
Glama
rush-db

RushDB MCP Server

Official
by rush-db

findLabels

Read-only

Retrieve available record types (labels) and their counts, using record-scoped filters to count only matching records.

Instructions

List or filter available record types (labels) and their counts. IMPORTANT: getSchemaMarkdown already returns ALL label names in STEP 0 — do NOT call findLabels as a substitute for it. Only call findLabels when you need label counts after applying record-scoped predicates, or getSchemaMarkdown was not called yet. Call with no arguments to list all labels. where is applied to Records, not label metadata; use getSchemaMarkdown to search label names. Returns objects with name (case-sensitive — use exact casing in all subsequent calls) and count (number of matching records). Pick the best matching label by: exact match > starts-with > substring > semantic similarity, preferring higher count on ties. State your label assumption briefly ("using DEAL for 'deals'") and proceed without asking.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of labels to skip
limitNoMaximum number of labels to return
whereNoRecord-scoped filter conditions applied before label counts are returned.
orderByNoSorting configuration: key = field, value = asc|desc

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
labelsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv3.0.1

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, non-destructive, closed-world), so the bar is lower. The description adds real behavioral context: `where` filters Records rather than label metadata, names are case-sensitive and must be reused verbatim, and the returned name+count shape. The return-shape note is partly redundant given the output schema, keeping it at a 4.

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 most important warning (the getSchemaMarkdown conflict) before the mechanics. It is dense but long, and the trailing label-matching heuristic ('exact match > starts-with > substring...') is procedural advice that slightly exceeds what's needed to invoke the tool.

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 read-only listing tool with full schema coverage and an output schema, nothing an agent needs to call it correctly is missing: routing, no-arg behavior, `where` scope, and case-sensitive name handling are all present.

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 3 baseline is met by the schema alone. The description goes further by clarifying the critical scoping semantics of `where` (record-scoped, not label metadata) and confirming the no-arg case, which the schema's 'Record-scoped filter' line only partly conveys.

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 (list/filter) and resource (record types / labels), and explicitly names the sibling getSchemaMarkdown as the tool NOT to substitute for. An agent can tell it apart from getSchemaMarkdown and findProperties without opening the 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 an explicit when-not ('do NOT call findLabels as a substitute for getSchemaMarkdown'), two concrete when-to-call conditions (label counts after record-scoped predicates, or when getSchemaMarkdown wasn't called), and the no-arg behavior. Routing is unambiguous.

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