Skip to main content
Glama
rush-db

RushDB MCP Server

Official
by rush-db

findProperties

Read-only

Discover available field names, types, and IDs for a record label before querying, so you can build filters or sorts without guessing fields.

Instructions

Discover the field names, types, and IDs available on a record label. Always call this before using field names in any query — never guess or invent field names. Filter by label using labels: ["LABEL_NAME"]. where is applied to Records, not property metadata. Each returned property object has: id (string), name (string), type (string | number | boolean | datetime), recordsCount (number of records that carry this property). Use the name field as the field name in where/orderBy/groupBy clauses. Use the id field as the propertyId argument to propertyValues. After calling this tool, decide the next step based on the field type: number or datetime → call propertyValues(propertyId) to get { min, max } for range questions, OR use findRecords with select: { min: ..., max: ... }; string or boolean → call propertyValues(propertyId) to get distinct values before filtering.

Input Schema

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

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
propertiesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv3.0.1

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safe-read profile is covered. Beyond that, the description discloses the exact shape of returned property objects (id, name, type, recordsCount), clarifies that `where` applies to Records rather than property metadata, and maps post-call branches. This adds substantial behavioral context beyond the annotations.

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

Conciseness5/5

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

The description is front-loaded with purpose, then imperative usage, then return structure, then a next-step decision tree. Every sentence earns its place and directly helps an agent act, despite the length.

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?

The output schema exists, so return-value details are redundant but harmless. The description is mostly complete for a discovery tool, but the mention of a `labels` parameter absent from the schema is a gap that could confuse invocation. Otherwise it covers usage, return shape, and next steps thoroughly.

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 the baseline is 3. The description adds some meaning (e.g., how the `name` field should be used in where/orderBy/groupBy), but it also references a `labels: ["LABEL_NAME"]` filter that does not exist in the input schema, which could mislead an agent. It does not add enough beyond the schema to justify a higher score.

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: 'Discover the field names, types, and IDs available on a record label.' It explicitly distinguishes itself from query tools (findRecords) and value tools (propertyValues) by directing the agent to use it first before any query. An agent can identify the tool's role 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?

Provides an explicit imperative ('Always call this before using field names in any query — never guess or invent field names'), names the alternative next steps (propertyValues, findRecords), and gives a conditional decision tree based on field type. Nothing about when/when-not is left to inference.

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