CitySignal

CitySignal for assistants

A live city layer for ChatGPT, Claude, Meta Muse and any agent that speaks MCP or HTTP: official road, transit, weather, power and water signals, fused, deduplicated and kept current, with stable ids and a week of memory. With a person's consent, their own spots, routes, errands, list and brief.

Endpoints

MCP server (Streamable HTTP)
https://citysignalatl.com/mcp
REST, no auth
https://citysignalatl.com/api/v1
OpenAPI 3.1
https://citysignalatl.com/api/v1/openapi.json
OAuth discovery
https://citysignalatl.com/.well-known/oauth-authorization-server

Add it to your assistant

Claude: Customize, Connectors, Add custom connector, paste the MCP URL. ChatGPT: Settings, Apps, Developer mode, add the MCP URL. Muse: ask it to connect to the MCP URL or the OpenAPI document above. Claude Code: claude mcp add --transport http citysignal https://citysignalatl.com/mcp.

City tools work immediately, with no account. The first personal tool you use opens a sign-in and a consent screen; that is the whole setup.

City tools, no sign-in

  • list_cities Cities covered, with slugs and sources.
  • city_now Live alerts, bucketed into now, ongoing, ahead and recap.
  • city_near Live alerts within a radius of a point, nearest first.
  • city_week This week against last week: counts, concentration, drivers, coverage.
  • city_events Upcoming events and games.
  • get_signal One signal in full by its id.

Every city tool takes a city slug (atlanta, nashville, charlotte, dallas, austin, seattle, chicago, san-francisco). Live: Atlanta, GA. In preview (watched and still being checked, not yet open to signups): Nashville, TN; Charlotte, NC; Dallas, TX; Austin, TX; Seattle, WA; Chicago, IL; San Francisco, CA.

Personal tools, with consent

  • get_profile Which account is connected.
  • my_day What is live near the person's saved spots and routes, in the app's own buckets.
  • my_brief Today's written brief, with why it matters and what to do.
  • my_routes_now Each saved route's state and what is on its corridor.
  • my_along_the_way Errands that fit a trip the person already makes today.
  • my_list The shopping list as priced at their home Kroger.
  • my_spots_and_routes Saved spots (part of town, not addresses) and routes.

All read-only. Nothing can be added, changed or deleted through an assistant. A person disconnects an assistant in Settings; signing out everywhere disconnects them all.

Circle tools, with their consent too

  • circle_needs What people in your Circle still need, and whether it was already asked of you.
  • circle_along_the_way Who in your Circle already has a trip today that one of your errands could ride along on.

A person in your Circle appears only after they turn on "Let you ask through their assistant" for you on their Circle page. Off by default, and they can turn it off any time. The assistant then sees what they already share with you in the app, their trips and list, never their location. Circle tools use a separate circle:read scope, so connecting for your own data does not open your Circle view.

Authentication

OAuth 2.1 with PKCE (S256), on this origin. Clients identify with a Client ID Metadata Document or register dynamically at /oauth/register; public clients only. Scopes: me:read, circle:read and offline_access. Access tokens last an hour; refresh tokens rotate and last 90 days. An unauthenticated call to a personal tool answers 401 with a WWW-Authenticate challenge that names the protected-resource document, so assistants can connect lazily.

Try a prompt

  • Anything happening in Atlanta I should know about before I drive downtown?
  • What's live within two miles of Ponce City Market right now?
  • How has this week been for power outages compared to last week?
  • Any Braves home games or concerts this weekend?
  • Connect my CitySignal and tell me what's near my spots today.
  • How is my commute looking right now?
  • What's on my list and how much will it come to?

Limits and freshness

Public routes: 120 requests a minute per address, responses cacheable for a minute. MCP: 300 requests a minute per address. Sources are read every ten minutes and expired on rules (a closure the feed stops listing is resolved within thirty minutes; a news story ages out after a day). The week view is rebuilt hourly.

Data and privacy

City data comes from public and official feeds and is republished with its source named on every item. Personal data leaves only through a token the person granted, only for the scopes they saw, and never includes street addresses or other people. See the privacy policy and terms. Questions: hello@citysignalatl.com.