Skip to main content
Glama

Save an alert

save_alert

Save a search as an alert on the user's own Buzzedin account, so they get an email when a new matching listing appears. Pass the same filters used for search_listings. Needs the user to connect their free Buzzedin account; free accounts can keep one alert.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "save_alert"
  }
}

Input Schema

NameRequiredDescriptionDefault
bedsNoNumber of bedrooms. "1br"=1, "2bed"=2, "studio"="studio"
bathsNoMinimum number of bathrooms
hasAcNoAC/air conditioning required
noFeeNoNo broker fee required
sortByNoSort order
boroughNoBorough name if mentioned: Manhattan, Brooklyn, Queens, Bronx, Staten Island
maxSqftNoMaximum square footage. Extract from phrases like "under X sqft", "less than X sq ft", "max X square feet"
minSqftNoMinimum square footage. Extract from phrases like "at least X sqft", "X+ sqft", "over X sq ft", "minimum X square feet"
isPrewarNoPre-war building
maxPriceNoMaximum monthly rent in dollars. Extract from phrases like "under $X", "under X", "less than $X", "max $X", "$Xk", "Xk" where k=1000. Examples: "5k"=5000, "$4k"=4000, "under 3500"=3500
minPriceNoMinimum monthly rent in dollars
moveInByNoLatest acceptable move-in date as YYYYMMDD (for example, 20260701 for July 1, 2026). Only set this when the user gives a move-in deadline.
spaciousNoApartment feels above-average in size for its bedroom count. Match spacious or very spacious listings.
viewTypeNoView type. "park views"="park", "water view"="water", "city views"="city_skyline"
floorLevelNoFloor level. "high floor"="high", "penthouse"="penthouse"
hasBathtubNoHas bathtub (not just shower)
hasDoormanNoDoorman building required
hasParkingNoParking available
noiseLevelNoStreet noise level. "quiet"="quiet", "peaceful"="quiet"
roomLayoutNoRoom layout type. "open layout"="open", "flex"="flex", "railroad"="railroad"
catsAllowedNoCats allowed
dogsAllowedNoDogs allowed
hasElevatorNoElevator building required
isFurnishedNoFurnished apartment required
kitchenTypeNoKitchen type. "open kitchen"="open", "eat-in kitchen"="eat_in"
moveInAfterNoEarliest acceptable move-in date as YYYYMMDD (for example, 20260801 for August 1, 2026). Only set this when the user wants listings available on or after a specific date — for example "not until August" or "earliest move-in August 1".
petsAllowedNoPets allowed (any pets)
buildingTypeNoBuilding type. "high rise"="high_rise", "walkup"="walk_up"
flooringTypeNoFlooring type. "hardwood floors"="hardwood"
hasFireplaceNoHas fireplace (decorative or working)
naturalLightNoNatural light level. "sunny"/"bright"="abundant"
commuteFilterNoFilter by commute time to a SPECIFIC location
hasDishwasherNoHas dishwasher
hasHomeOfficeNoHas dedicated home office space
hasRoofAccessNoBuilding has roof access/deck
inUnitLaundryNoIn-unit washer/dryer required
neighborhoodsNoExtract specific NYC neighborhood names. Map abbreviations to full names: "LES"="Lower East Side", "UES"="Upper East Side", "UWS"="Upper West Side", "FiDi"="Financial District", "BedStuy"="Bedford-Stuyvesant", "LIC"="Long Island City", "DUMBO"="DUMBO". Map general areas to specific neighborhoods: "Lower Manhattan" -> ["Financial District", "Tribeca", "Battery Park City", "Chinatown", "Civic Center"]. Use exact neighborhood names.
facesQuietSideNoUnit faces quiet side (courtyard, back)
hasBikeStorageNoBuilding has bike storage
hasLiveInSuperNoBuilding has live-in super
hasNotableViewNoHas notable/great view
hasStorageUnitNoStorage unit available in building
hasExposedBrickNoHas exposed brick
hasHighCeilingsNoHas high ceilings (9ft+)
hasOutdoorSpaceNoPrivate outdoor space required (balcony, patio, backyard, terrace, roof)
hasWalkInClosetNoHas walk-in closet
isLeaseTakeoverNoLooking for lease takeover
hasGymInBuildingNoGym in building required
renovationStatusNoRenovation status. "renovated"="newly_renovated"
buildingConditionNoBuilding condition/maintenance level
exposureDirectionNoUnit exposure/facing direction. "south facing"="south"
poiCommuteFiltersNoONLY for generic POI types like "a grocery store". For specific brands (Whole Foods, Equinox), use commuteFilter instead
utilitiesIncludedNoHeat/utilities included in rent
hasLaundryInBuildingNoLaundry in building required
rentControlledClaimedNoThe listing itself says the unit is rent-stabilized. Much rarer; use only when the user wants the listing to state it.
rentControlledVerifiedNoBuilding is on the NYC (DHCR) list of buildings with rent-stabilized units. Use this when the user asks for rent-stabilized apartments.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare this as a non-read-only but non-destructive, non-open-world write. The description adds genuinely new behavior: it triggers recurring email notifications, requires the user to connect a Buzzedin account, and enforces a one-alert quota on free accounts. It still omits what happens on quota overflow (replace vs. error), which matters for a mutation.

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?

Three short sentences, front-loaded with the action and its outcome, then the parameter pointer, then the prerequisite. Nothing is padded, though the phrase "on the user's own Buzzedin account" is slightly redundant with the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 56-parameter mutation with no output schema, the definition covers purpose, filter source, auth prerequisite, and quota. It does not state the return value (e.g., an alert id) or the behavior when the free tier limit is exceeded, and it doesn't route the agent away from create_alert_link.

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?

With 56 parameters and 100% schema description coverage, the schema already carries all per-field meaning, so the baseline of 3 applies. The description adds one useful structural note — that the filter set mirrors search_listings — but no field-level semantics of its own.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ("Save a search as an alert") plus the resulting effect (email when a new matching listing appears), which is far more than restating the title. It does not explicitly differentiate itself from the sibling create_alert_link or list_my_alerts, so an agent must infer the distinction from the name alone.

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

Usage Guidelines3/5

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

"Pass the same filters used for search_listings" implies the tool is used after a search and ties it to that sibling's parameter set, and the account/one-alert prerequisite is stated. However, there is no explicit guidance on when to choose this over create_alert_link or what to do if the free-account alert slot is already taken.

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.