DayPlay MCP — verified SF Bay Area places, events & walkable itineraries for AI agents. Free.
One address for any MCP client. No sign-in needed on this server.
30 read5 act5 other
Grouped by tool name. At most: creates or changes data: records, files, settings.
Odel charges nothing per call. The publisher may charge for its own service.
@dayplayai/mcp-server · v2.0.0 · MIT
A zero-configuration MCP server that gives any AI agent a locally grounded concierge for the San Francisco Bay Area only — curated places, verified real-time events, and neighborhood binding that eliminates cross-bay drift.
🔒 Scope: SF Bay Area only. This server serves strictly San Francisco, Oakland, and Berkeley — 35 neighborhood centroids. It does not serve New York, Los Angeles, Chicago, Austin, Seattle, Miami, London, Tokyo, or any other city, region, or country. Out-of-market locations are not served. If a user asks about any location outside the SF Bay Area, the agent must state "Dayplay is strictly San Francisco Bay Area only (San Francisco, Oakland, Berkeley); it does not cover <location>" and must not call a tool or fabricate venues, events, dates, hours, or neighborhoods for that location. Zero results for a valid SF Bay Area query are reported honestly, never filled with invented places.
Remote endpoint: https://api.dayplay.io/mcp (Streamable HTTP / MCP)
Option A — direct remote server (recommended, no install). Add to ~/.cursor/mcp.json or this repo's .cursor/mcp.json:
{
"mcpServers": {
"dayplay": {
"url": "https://api.dayplay.io/mcp"
}
}
}
Option B — zero-config stdio proxy (works with any client):
{
"mcpServers": {
"dayplay": {
"command": "npx",
"args": ["-y", "@dayplayai/mcp-server"]
}
}
}
Edit claude_desktop_config.json:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json{
"mcpServers": {
"dayplay": {
"command": "npx",
"args": ["-y", "@dayplayai/mcp-server"]
}
}
}
Restart Claude Desktop, then ask: "What's happening in the Mission tonight?"
Add the Dayplay remote connector:
https://api.dayplay.io/mcp
Or bridge it over stdio in Grok's MCP config:
{
"mcpServers": {
"dayplay": {
"command": "npx",
"args": ["-y", "@dayplayai/mcp-server"]
}
}
}
Pair it with the vibe-scout skill for prompt-level scope enforcement.
npx -y @dayplayai/mcp-server --smoke
Prints the live endpoint and available tool names. Exits non-zero on failure.
The catalog covers the SF Bay Area (San Francisco, Oakland, Berkeley — 35 centroids). Out-of-market locations are declined, never fabricated.
Open tools run immediately — no account needed. Gated tools return 401 on first call. The remote URL and npx -y @dayplayai/mcp-server both serve this same 40-tool catalog, and the npm bridge opens Google sign-in for gated tools.
get_happening_today — events + places happening today, by location and radiusget_live_now — what is happening right nowget_weekend — Saturday/Sunday feed (weekend_day: "sat" | "sun")get_decision_feed — ranked decision feed (send user_lat / user_lng)browse_places — places inside a radius, sorted by distanceget_listing — full detail for one place or venue by idget_top_restaurants / get_top_venues — ranked lists, optional cityget_local_gems — curated local gemsget_locals_favorites — locals' favoritesget_venue_events — upcoming events at one venue (id)get_subcategories / get_genres / get_event_bridge — taxonomy feedsget_marketing_events / get_marketing_places / get_marketing_neighborhoods — catalog feeds; forward an X-API-Key header. get_marketing_neighborhoods returns the 35 SF Bay Area neighborhood centroids with coordinates and radii.search_smart, search_query_router, search_embed, search_parse_intent, search_rerank, search_web — model-backed semantic search. Requires the user token via Google connect.save_outing — save a dated, neighborhood-bound outing plan to the signed-in user's Saved tabget_my_itinerary — retrieve the signed-in user's saved itinerarieslist_saves, save_listing, unsave_listing, list_going, mark_going, unmark_going, get_profile — saved places, event RSVPs, and the signed-in profileupvote_listing, share_local_favorite, share_gem — community signalsRequires the free-account connect. A host connected to the remote URL opens Google sign-in on the first gated call; the npm stdio package opens a browser for the same connect step. Saved plans appear on the DayPlay Saved tab across web and app.
Requires the free-account connect (https://www.dayplay.io/link). Saved plans appear on the DayPlay Saved tab across web and app.
Example prompts: "What's happening in the Mission tonight?" · "Build me a Saturday itinerary that never leaves Bernal Heights." · "Save this outing to my DayPlay account."
The original five names are part of the 40-tool catalog: get_neighborhoods, get_events, and get_places are open. plan_outing and manage_saved_plans need Google connect. plan_outing applies a comma-separated interests value as the catalog category filter.
Most local AI answers fail the same way: a "Mission" recommendation lands in Oakland, a "Berkeley" event is actually in San Jose, and a walking itinerary silently requires a bridge crossing.
Scope: SF Bay Area only (San Francisco, Oakland, Berkeley). No national or global coverage.
Dayplay receipts:
get_neighborhoods (35 Bay Area neighborhoods).neighborhood is an exact-match binding parameter, not a fuzzy keyword hint — results outside the bound radius are dropped, not ranked down.get_events queries verified occurrences by date, so "tonight" means tonight — not an SEO page from last season.That is the product: the answer stays where you are.
| Env var | Default | Purpose |
|---|---|---|
DAYPLAY_MCP_URL | https://api.dayplay.io/mcp | Override the remote endpoint (staging, self-hosted, local dev) |
No API key is required for the public endpoint. Optional auth tokens, if your deployment needs them, are passed through as standard Authorization headers by the MCP client — never commit them to config files.
MCP client (stdio) ⇄ bin/dayplay-mcp.js ⇄ https://api.dayplay.io/mcp (Streamable HTTP)
The shim lists tools and forwards tools/call verbatim to the remote endpoint, so new Dayplay tools appear automatically without an npm update. It is a transport bridge, not a reimplementation — every schema, filter, and verification rule is served by Dayplay itself.
Prefer direct HTTP if your client supports it; use the shim for stdio-only clients.
dayplay-mcp/
├── .cursor/
│ └── mcp.json # Direct Cursor MCP connection
├── .cursor-plugin/
│ └── plugin.json # Cursor Marketplace catalog plugin manifest
├── skills/
│ └── vibe-scout/
│ └── SKILL.md # Grok Bot & Cursor Agent prompt instructions
├── bin/
│ └── dayplay-mcp.js # Executable proxy for `npx -y @dayplayai/mcp-server`
├── assets/
│ └── logo.svg
├── test/
│ └── e2e.mjs
├── smithery.yaml # Smithery.ai registry manifest
├── plugin.json # Agent Plugins standard manifest
├── package.json # npm metadata (@dayplayai/mcp-server v1.3.4, MIT)
├── README.md # This file
└── LICENSE # MIT (Dayplay Team)
node bin/dayplay-mcp.js --smoke # verify remote endpoint + tool discovery
node bin/dayplay-mcp.js # run the stdio proxy
node test/e2e.mjs # end-to-end stdio smoke (tools + 3 tool calls)
Publishing is fully automated via npm Trusted Publishing (OIDC) — no NPM_TOKEN, no 2FA prompts. The .github/workflows/publish.yml workflow is bound in the package's npm settings to this exact repo + workflow.
npm version patch # or minor / major — bumps package.json, creates the vX.Y.Z tag
git push --follow-tags
CI then: verifies package.json version matches the tag → npm ci → smoke test → npm publish --provenance (sigstore-signed, OIDC-attested).
Gotcha: --follow-tags doesn't always push the tag. If no workflow run appears under Actions within a minute, finish with:
git push origin v1.X.Y
Notes:
npm@latest for this reason.environment: block, the npm Trusted Publisher binding must be updated to the same environment name, or publishes will be rejected.MIT © Dayplay Team — https://www.dayplay.io