Skip to main content
Glama

search

Read-onlyIdempotent

Searches everything Little Milwaukee knows in one call: listed places, the City of Milwaukee business license records (every licensed business, unreviewed), neighborhoods, categories, collections and Neighborhood Mayor roles. Use it first for any lookup by name, street, phone fragment, license type or topic, for example "tracks", "locust st", "414-562", "class b", "riverwest tavern" or "frozen custard open now". Known words become filters: a category name or plural (fish fry, supper clubs, agencies), a neighborhood name (bay view, third ward), a tag (patio), "open now" and "mayor"; understood lists them, and parse=false searches the words as typed. Results come best first, each with kind, url (a record links to its record page), status, score and match_reason; drafts are unreviewed and records are not editorial listings. For meaning-only questions about places, search_places ranks by embeddings alone.

Input Schema

NameRequiredDescriptionDefault
tagsNoOnly places that carry every one of these tag slugs, as a list or one comma-separated string, for example patio,live-music. list_tags returns the vocabulary.
kindsNoOnly these kinds: place, record, neighborhood, category, collection, mayor.
limitNoMost results of each kind, default 10; values above 50 return 50.
parseNoDefault true: known words in the query become filters. false searches the words as typed.
queryYesWhat to find, in plain words. May be empty when a filter is given.
categoryNoOnly this category slug, for example fish-fry; list_categories returns the slugs.
open_nowNoOnly places open at this minute in Milwaukee, from their listed hours.
neighborhoodNoOnly this neighborhood slug, for example bay-view; records count within 1500 m of its point.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Goes well past the readOnly/idempotent annotations by disclosing result ordering ("best first"), the per-result fields (kind, url, status, score, match_reason), and the meaningful caveat that drafts are unreviewed and records are not editorial listings. It does not restate the schema's result-cap behavior (limit > 50 returns 50) or any rate limits, so it stops short of fully self-contained.

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 with purpose and the routing instruction, and almost every clause carries information. It is a dense, somewhat run-on paragraph with several example strings that could be trimmed, which keeps it from a 5.

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 and 8 parameters, the description compensates by describing the shape of returned results and their ordering, plus the review status of drafts versus records. Combined with 100% schema coverage, nothing an agent needs to call it correctly is missing.

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, but the description adds genuine semantic value: it explains that known words are implicitly converted into filters (category names and plurals, neighborhood names, tags, "open now", "mayor") and that parse=false disables that. This tells the agent how to phrase a query rather than how to fill a field, which the schema does not.

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?

Opens with a specific verb and an explicit enumeration of the corpora searched: listed places, City of Milwaukee business license records, neighborhoods, categories, collections and Mayor roles. That enumeration also distinguishes it from search_places and search_records, so an agent can tell which tool covers which corpus without opening schemas.

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?

Explicitly says "use it first for any lookup by name, street, phone fragment, license type or topic" and backs that with worked example queries. It also names the alternative and the condition that selects it: meaning-only questions about places should go to search_places, which ranks by embeddings alone.

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