Skip to main content
Glama

Search forms

search_forms
Read-onlyIdempotent

Find official PDF forms PaperPorter can fill, such as city building, reroof, sign or tree permits, business licenses and food truck permits. Start every fill here. Returns short summaries (template id, title, issuer, jurisdiction, category, document_id, review status), not question lists; pass a returned id to get_form_requirements or create_application. The query is matched as one phrase against title, description, issuer, jurisdiction, form number and aliases, so use one or two keywords ("reroof", "business license") and put the city in filters.jurisdiction rather than writing a sentence. An empty result means no reviewed form matches yet.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results per page (1 to 20, default 10).
queryNoShort keyword or form number matched as a phrase, for example "building permit", "reroof" or "DBPR HR-7031". Empty lists every form you can use.
cursorNoNumber of results to skip, for paging. Pass next_cursor from the previous response; it is null on the last page.
filtersNoOptional filters that narrow the search.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changed
    • addedInput schema / properties / cursor / description
      Added value: +"Number of results to skip, for paging. Pass next_cursor from the previous response; it is null on the last page."
    • addedInput schema / properties / filters / description
      Added value: +"Optional filters that narrow the search."
    • removedInput schema / properties / filters / properties / aliases
      Removed value: -{
      -  "type": "string"
      -}
    • addedInput schema / properties / filters / properties / category / description
      Added value: +"Exact category, for example \"Permit\", \"Business\" or \"Health\"."
    • removedInput schema / properties / filters / properties / document_id
      Removed value: -{
      -  "type": "string"
      -}
    • addedInput schema / properties / filters / properties / jurisdiction / description
      Added value: +"City, county or state the form belongs to, matched as part of the name, for example \"Danville\", \"Oakland\" or \"Phoenix\"."
    • addedInput schema / properties / filters / properties / verified / description
      Added value: +"true returns only forms whose mapping passed human review and are ready to fill."
    • addedInput schema / properties / limit / description
      Added value: +"Maximum results per page (1 to 20, default 10)."
    • addedInput schema / properties / query / description
      Added value: +"Short keyword or form number matched as a phrase, for example \"building permit\", \"reroof\" or \"DBPR HR-7031\". Empty lists every form you can use."
  2. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuinely non-structured behavior: results are short summaries rather than question lists, the query is phrase-matched across title/description/issuer/jurisdiction/form number/aliases, and an empty result has a specific meaning. Pagination semantics are left to the schema.

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?

Dense but front-loaded: the purpose comes first, then return shape, then routing, then query syntax. Four sentences each carry distinct information. Slightly long, but no sentence is filler.

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?

There is no output schema, and the description compensates by enumerating the returned summary fields (template id, title, issuer, jurisdiction, category, document_id, review status) and by explaining routing, query semantics and empty-result behavior. An agent has everything needed to call it and act on the result.

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 description coverage is 100%, so the baseline is 3. The description goes beyond it by explaining the matching model for 'query' (one phrase, one or two keywords) and by steering the city out of the query and into filters.jurisdiction — non-obvious usage guidance the schema does not provide.

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 official PDF forms PaperPorter can fill') and immediately grounds it with concrete examples of the domain (building, reroof, sign, tree permits, licenses). It also distinguishes itself from siblings by naming get_form_requirements and create_application as the downstream consumers of a returned id.

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 entry-point guidance ('Start every fill here') plus a clear handoff rule ('pass a returned id to get_form_requirements or create_application'). It also tells the agent how to phrase the query and what an empty result means, which are exactly the when/how conditions an agent needs.

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.