Taiwan Garbage Truck Map
Server Details
Garbage truck stops and arrival times for Taipei, New Taipei, Taichung and Kaohsiung.
- Status
- Healthy
- Uptime
- 100.0% over 18 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- Yukaii/garbage
- GitHub Stars
- 6
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
find_nearby_points and search_points both return stops but split cleanly along spatial vs textual lookup, and the descriptions clarify the difference. get_schedule is clearly id/route-oriented and list_cities is distinct, though the similar find/search naming could still cause occasional hesitation.
All tools use a consistent snake_case verb_noun pattern: find_nearby_points, get_schedule, list_cities, search_points. The convention is predictable and easy to scan.
Four tools is well-scoped for a read-only map/schedule server. Each tool covers a distinct access path—proximity, text search, city enumeration, and route schedule—without redundancy.
The surface covers the core workflows: discovering stops by coordinate or text, listing supported cities, and retrieving full route schedules. Minor gaps exist around route-level listing or live vehicle positions, but agents can work around them with the current tools.
Available Tools
4 toolsfind_nearby_pointsFind nearby collection pointsARead-onlyIdempotentInspect
Find garbage-truck stops near a coordinate in Taipei, New Taipei, Taichung or Kaohsiung, nearest first, with arrival times. Searches every city whose area overlaps the radius unless city is given.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude (WGS84) | |
| lng | Yes | Longitude (WGS84) | |
| city | No | City id: taipei, new-taipei, taichung, kaohsiung | |
| limit | No | ||
| radiusMeters | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| points | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds real behavior beyond that: nearest-first ordering, arrival times in the result, and the multi-city fan-out that happens when `city` is omitted — a non-obvious cost/scope trait worth disclosing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, and the core behavior (what is found, where, in what order, with what data) is front-loaded ahead of the conditional qualifier. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description does not need to explain return values, and the annotations carry the safety contract. It covers the city scope rule and basic constraints; only the undocumented `limit` and `radiusMeters` semantics leave a small gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, and the description meaningfully clarifies `city` by explaining that omitting it broadens the search across all overlapping cities rather than erroring. It adds nothing, however, for `limit` or `radiusMeters`, which carry no schema description, so those two remain undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Find garbage-truck stops'), plus scope (four named cities, near a coordinate), ordering ('nearest first') and payload ('with arrival times'). It never names the closest-sounding sibling, search_points, so an agent still has to infer the boundary between the two.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The conditional 'Searches every city whose area overlaps the radius unless `city` is given' tells the agent how the call behaves in each case, which is useful pre-call context. It stops short of saying when to pick this over search_points or get_schedule, so usage is implied rather than prescribed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scheduleGet a stop and its route scheduleARead-onlyIdempotentInspect
Get one collection point by id (from find_nearby_points or search_points) plus every stop on the same route in arrival order.
| Name | Required | Description | Default |
|---|---|---|---|
| pointId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| point | Yes | |
| routeStops | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered by structured data. The description adds a useful behavioral detail beyond that — results are ordered by arrival and scoped to a single route — but says nothing about failure modes, unknown ids, or result size, which is the expected baseline when annotations carry the safety burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the primary retrieval and appending the route/order payload without filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return structure need not be explained, and the annotations cover safety. The description is sufficient for a single-parameter read lookup; the only minor gap is that it does not mention what happens for an invalid or unknown pointId.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the load, and it partially does: it establishes that pointId is a collection-point id and that valid values originate from find_nearby_points or search_points. It does not restate the string format or length constraint, but the origin hint is meaningful added value over the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get one collection point by id') and goes further to define the payload: every stop on the same route in arrival order. It also names the sibling tools that produce valid ids, so an agent can distinguish it from find_nearby_points/search_points without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly routes the agent: the id must come 'from find_nearby_points or search_points', which tells the caller when this tool is the right next step. It stops short of any exclusion or when-not-to-use condition, so it is clear context rather than full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_citiesList supported citiesARead-onlyIdempotentInspect
List the cities with garbage-truck collection data, with their ids and bounding boxes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| cities | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description notes the result shape (ids and bounding boxes) but adds nothing about coverage limits, result size, or whether any city might be missing, so it is only mildly additive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with no filler; the result fields are mentioned at the end where they belong. Nothing could be cut without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and annotations cover the safety profile, so return values need no explanation here. The description is adequate for a zero-parameter list tool; only the relationship to sibling tools is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline is 4 by rule; there is nothing for the description to disambiguate and it correctly adds no parameter prose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('List') plus resource ('cities') plus a scoping qualifier ('with garbage-truck collection data'), so the agent knows exactly what comes back. It does not name or contrast itself with any sibling (find_nearby_points, get_schedule, search_points), so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use statement or exclusions. The natural role of a city-enumeration tool as the discovery step before search_points/find_nearby_points is only implied by the content, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_pointsSearch collection points by nameARead-onlyIdempotentInspect
Search one city's stops by district, village, location or route text (Traditional Chinese). All space-separated terms must match, e.g. "大安區 安和路".
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | City id: taipei, new-taipei, taichung, kaohsiung | |
| limit | No | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| points | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent, read-only, open-world operation, so the bar is lower. The description adds real behavioral context beyond them: matching semantics (all space-separated terms must match, i.e. AND) and the Traditional Chinese input requirement. It does not disclose result ordering, result-count behavior, or how limit truncates matches.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. The scope and language constraint come first, and the matching rule plus example follow immediately, making the most failure-prone aspect (query formatting) front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. For a text-search tool the description covers the language, the match semantics, and the scope; the only gap is what limit does to the result set, which is minor given the schema's explicit max of 20.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (city documented via enum/description; query and limit undocumented). The description compensates for the most important gap by explaining query's tokenization and AND-matching rules and giving a concrete Chinese example, which the schema does not state. Only limit remains unexplained anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (one city's stops) plus the scoping dimension (district/village/location/route text). It implicitly separates itself from find_nearby_points by being text-based rather than proximity-based, though it never names the sibling outright.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the phrase 'Search one city's stops by ... text' suggests this is for textual lookup versus find_nearby_points' geographic lookup, but there is no explicit when-to-use statement, no exclusion, and no mention of list_cities as a prerequisite for valid city ids.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
find_nearby_points - First observed
get_schedule - First observed
list_cities - First observed
search_points
Related MCP Connectors
Taiwan data for AI agents: THSR/TRA timetables, TWSE/TPEx stocks, invoice lottery, garbage, outages
Waste collection dates for German addresses from municipal authority calendars.
Greater Hsinchu, Taiwan open data on a 125 m grid: crashes, buses, schools, flood. Read-only.
Taiwan community road barriers. Read-only, coordinates only; address/landmark search unavailable.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceTaiwan data for AI agents: THSR/TRA timetables & live delays, TWSE/TPEx stocks, e-invoice lottery, garbage trucks, planned water/power outages.7285 npm1MIT
- AlicenseAqualityCmaintenanceProvides access to Taiwan's Central Weather Administration data for weather forecasts, earthquake reports, warnings, and typhoon alerts, and generates evacuation recommendations.4MIT
- FlicenseNot gradedqualityDmaintenanceEnables searching for adoptable animals in Taiwan's public shelters and listing shelters.-
- FlicenseNot gradedqualityDmaintenanceProvides daily Taiwanese almanac (黃曆) information including auspicious/inauspicious activities, solar terms, zodiac clashes, and searches for auspicious dates for events like weddings.-
Glama MCP Gateway
Add one secure layer between your agents and this server.