Taiwan Garbage Truck Map

dev.yukaiPublished by yukai.devOfficial publisherv0.1.0Updated Oct 25, 2026

Garbage truck stops and arrival times for Taipei, New Taipei, Taichung and Kaohsiung.

VerifiedStreamable HTTPWeb executable

Overview

Taiwan Garbage Truck Map's hosted MCP server (mcp.garbage.yukai.dev), published by yukai.dev; no sign-in required; Streamable HTTP; 4 tools.

No AI overview yet: these facts come from the registry entry and the server itself.

Publisher
yukai.dev
Endpoint
mcp.garbage.yukai.dev
Last checked

Installation

In SourceWeft

  1. Open Taiwan Garbage Truck Map in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/dev.yukai%2Ftaipei-trash/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "taiwan-garbage-truck-map": {
      "type": "http",
      "url": "https://mcp.garbage.yukai.dev/mcp"
    }
  }
}

README

Taiwan Garbage Truck Map — MCP Server

Read-only Model Context Protocol server for the garbage-truck dataset powering garbage.yukai.dev. Built on mcp-handler 2.x and @modelcontextprotocol/server 2.x, exposing a single stateless Streamable HTTP endpoint supporting MCP protocol versions 2025-11-25, 2025-06-18, and 2025-03-26.

The server reuses the web app's city adapters (../src/cities), keeping field mappings identical across the site and MCP responses. Data is fetched from the published JSON files (DATA_BASE_URL, defaulting to https://garbage.yukai.dev) and cached in memory for one hour per warm instance. Cities load lazily on demand (note: Taichung's dataset is ~50 MB, taking ~1 s on cold load and ~400 MB RSS in memory).

Tools

ToolPurpose
list_citiesList supported cities, their IDs, and geographic bounding boxes
find_nearby_pointsFind stops within 50–2,000 m of a coordinate, sorted nearest first
search_pointsSearch stops in a city by district, village, road, or route keyword
get_scheduleRetrieve a stop along with every stop on its route in arrival order

All tools are annotated read-only and return structuredContent alongside a plain-text summary. All times are in Asia/Taipei.

For New Taipei and Taichung (whose open data includes weekday schedules), each stop includes a weekly schedule (collectionType → ISO weekdays, 1=Mon … 7=Sun) and a servesToday boolean computed in Taiwan time. Taipei and Kaohsiung do not publish weekday schedules, so those fields are omitted. Unlike the web app's default "today only" view for Taichung, the MCP server loads adapters in allDays mode so agents can answer questions about any day of the week.

Development

bash
cd mcpbun installbun test            # query logic + adapter schedule testsbun run typecheckbun dev.ts          # http://localhost:3939/api/mcp

Test interactively with MCP Inspector:

bash
npx @modelcontextprotocol/inspector

Then connect to http://localhost:3939/api/mcp.

Deployment (Vercel)

This directory is deployed as a standalone Vercel project (taipei-trash-mcp), separate from the GitHub Pages web app. The serverless function is bundled with esbuild at build time (bun run build → api/mcp.js) so that extensionless TypeScript imports in ../src/cities resolve cleanly in Node ESM.

To deploy from the repository root (.vercelignore keeps the upload minimal):

  1. Import the repository in Vercel and set Root Directory to mcp.
  2. Leave Include source files outside of the Root Directory enabled (default) so the build can import ../src/cities.
  3. Add the custom domain (vercel api /v10/projects/<id>/domains -X POST -F name=mcp.garbage.yukai.dev) and configure the CNAME and _vercel TXT records at your DNS provider.
  4. Optional environment variables: DATA_BASE_URL, MCP_ALLOWED_ORIGINS (comma-separated allowlist for browser clients).
  5. Rate limiting is enforced via a Vercel Firewall rule (mcp-rate-limit: 60 requests/min per IP on /api/mcp and /mcp).

Production endpoint: https://mcp.garbage.yukai.dev/mcp (also accessible at /api/mcp; fallback https://taipei-trash-mcp.vercel.app). For stdio-only clients, use npx mcp-remote https://mcp.garbage.yukai.dev/mcp.

Discovery Endpoints

  • /mcp/server-card — MCP Server Card (SEP-2127), served as application/mcp-server-card+json from public/server-card.json.
  • /.well-known/ai-catalog.json — AI Catalog entry pointing to the Server Card (also hosted on https://garbage.yukai.dev).
  • /llms.txt — plain-text guide for LLMs.

Directory Listings

  • server.json — the official MCP Registry manifest for this remote-only server. It mirrors public/server-card.json (same name, version, title, description, repository and remote URL) so the two never disagree.

  • Publish it with the official CLI (namespace dev.yukai/* requires DNS or HTTP verification of yukai.dev — GitHub OAuth only grants io.github.*/*):

    bash
    mcp-publisher validate server.jsonmcp-publisher login dns --domain yukai.dev --private-key "$PRIVATE_KEY"mcp-publisher publish server.json
  • Step-by-step submission notes for the official registry, Smithery, Glama, PulseMCP, mcp.so and awesome-remote-mcp-servers (including the copy to paste and the manual account/DNS steps) live in docs/mcp-directory-submission.md.

Security Notes

  • No authentication: all underlying data is public government open data and every tool is strictly read-only.
  • Origin check: requests carrying an Origin header are rejected with 403 unless the origin is listed in MCP_ALLOWED_ORIGINS, per the MCP transport specification. Native and server-side clients do not send an Origin header.

Source: mcp/README.md at commit d11d646

Tools

4

list_cities

List supported cities

List the cities with garbage-truck collection data, with their ids and bounding boxes.

Takes no parameters.

find_nearby_points

Find nearby collection points

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.

ParameterslatrequiredlngrequiredcitylimitradiusMeters

search_points

Search collection points by name

Search one city's stops by district, village, location or route text (Traditional Chinese). All space-separated terms must match, e.g. "大安區 安和路".

Parameterscityrequiredlimitqueryrequired

get_schedule

Get a stop and its route schedule

Get one collection point by id (from find_nearby_points or search_points) plus every stop on the same route in arrival order.

ParameterspointIdrequired

Version history

1
  1. v0.1.0LatestOct 20, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts