{
  "markdown": "# nyc-restroom-mcp\n\nAsk Claude \"where's the nearest public bathroom?\" and get a real answer.\n\nThis is an [MCP](https://modelcontextprotocol.io) server, a small plugin that\ngives an AI assistant (like Claude Desktop or Claude Code) new abilities. This\none lets it search New York City's official public restroom data, live from\n[NYC Open Data](https://opendata.cityofnewyork.us/). Once installed, you can\nask things like:\n\n- \"Find a public restroom near Union Square that's open right now.\"\n- \"Which restrooms near me are wheelchair accessible?\"\n- \"Is the bathroom at Jaime Campiz Playground actually clean?\" (it looks up\n  the latest NYC Parks inspection report)\n\nIt adds two tools:\n\n| Tool                  | What it does                                                                                                           |\n| --------------------- | ---------------------------------------------------------------------------------------------------------------------- |\n| `find_restrooms`      | Lists open public restrooms near a location, closest first, with hours, accessibility, and changing-station info.      |\n| `get_restroom_status` | Looks up one restroom by name or coordinates, including its most recent NYC Parks inspection rating, where one exists. |\n\nIf you don't give it a location, it can detect yours automatically (details\nbelow). Everything is read-only: it only ever fetches public city data.\n\n## Install\n\nYou need [Node.js](https://nodejs.org) 20 or newer. No download or setup\nbeyond the snippet for your app.\n\n**Claude Code** (one command):\n\n```bash\nclaude mcp add nyc-restroom -- npx -y nyc-restroom-mcp\n```\n\n**Claude Desktop**: go to Settings -> Developer -> Edit Config and add this to\n`claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"nyc-restroom\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"nyc-restroom-mcp\"]\n    }\n  }\n}\n```\n\nAny other MCP client works the same way: have it launch\n`npx -y nyc-restroom-mcp` as a local (stdio) server.\n\n## Good to know\n\n- **Automatic location.** If you ask for nearby restrooms without saying\n  where you are, the server tries to figure it out: first from your device\n  (macOS only, if you `brew install corelocationcli` and grant it Location\n  Services access), otherwise a rough guess from your IP address. If neither\n  works, or you're outside NYC, it simply asks for explicit coordinates\n  instead of guessing wrong.\n- **Privacy.** Location detection only happens when you omit coordinates,\n  and your location is never written to logs. Pass explicit coordinates and\n  no location lookup happens at all.\n- **Live data.** Every answer comes straight from NYC Open Data (with a\n  short-lived in-memory cache), so results are as current as the city's own\n  records. Inspection reports only exist for restrooms run by NYC Parks;\n  library and other restrooms will honestly say no inspection data exists.\n- **More detail.** The [docs/](docs/) directory covers the full\n  [tool reference](docs/tools.md), [location detection](docs/location.md),\n  [data sources](docs/data-sources.md), [configuration](docs/configuration.md),\n  and [security model](docs/security.md). The reasoning behind every design\n  decision lives in [DECISIONS.md](DECISIONS.md).\n\n### Optional settings\n\nSet these as environment variables if you need them (most people don't):\n\n| Variable            | Purpose                                                              |\n| ------------------- | -------------------------------------------------------------------- |\n| `SOCRATA_APP_TOKEN` | A free NYC Open Data app token, for higher rate limits.              |\n| `LOG_LEVEL`         | `error`, `warn`, or `info` (default `info`). Logs go to stderr only. |\n\nA few more exist for testing and advanced setups; see\n[docs/configuration.md](docs/configuration.md).\n\n## Contributing\n\nIssues and pull requests are welcome at\n[DanielOrtiz0220/nyc-restroom-mcp](https://github.com/DanielOrtiz0220/nyc-restroom-mcp).\n\nDevelopment uses [Bun](https://bun.sh) (1.1+):\n\n```bash\ngit clone https://github.com/DanielOrtiz0220/nyc-restroom-mcp.git\ncd nyc-restroom-mcp\nbun install\nbun test            # full unit + end-to-end suite, runs completely offline\nbun run typecheck   # tsc --noEmit\nbun run lint        # eslint, zero warnings allowed\nbun run build       # compile src/ to dist/ (what the npm package ships)\n```\n\nTo run your local copy inside an MCP client instead of the published package:\n\n```bash\nclaude mcp add nyc-restroom -- bun \"$(pwd)/src/index.ts\"\n```\n\nUseful extras: `bun run test:live` runs one smoke test against the real NYC\nOpen Data API (needs network), and `bun test --coverage` reports coverage\n(85%+ lines required on `src/lib/`). Before opening a PR, please make sure\n`bun test`, `bun run typecheck`, and `bun run lint` all pass. The full\ndevelopment guide (test architecture, project structure, invariants to\npreserve) is in [docs/development.md](docs/development.md), and\n[DECISIONS.md](DECISIONS.md) explains why things work the way they do.\n\n## License\n\n[MIT](LICENSE)\n",
  "bytes": 5042,
  "sha": "ebf062004780334af9109985fe804467632305a11c47fd362a1f5d0bc1316c6d",
  "repo_slug": "danielortiz0220/nyc-restroom-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_danielortiz0220_nyc_restroom_m_c999c361/readme"
}