Skip to main content
Glama
dayplayTeam

Dayplay

Official
by dayplayTeam

Dayplay MCP — Verified Real-Time Physical Intelligence for Major Metros Nationwide

Dayplay MCP · v2.2.2 · MIT

Dayplay gives AI agents verified real-time physical intelligence — places, events, and walkable itineraries — across major metros nationwide. The SF Bay Area is our flagship live market, with additional major metros rolling out next.

Run on Apify

dayplayTeam/dayplay-mcp MCP server

Listed on mcpservers.org

A zero-configuration MCP server that gives any AI agent a locally grounded concierge across major metros nationwide — curated places, verified real-time events, and neighborhood binding that eliminates cross-metro and cross-bay drift. The SF Bay Area is the flagship live market, with additional major metros rolling out next.

🔒 Coverage: nationwide posture, verified per request. Dayplay covers major metros nationwide, with the SF Bay Area as the flagship live market (San Francisco, Oakland, and Berkeley — 35 neighborhood centroids) and additional major metros rolling out next. Live inventory is not uniform across every metro yet, so the rule is simple: call the coverage tools first and trust what they return. If a location comes back as not-yet-live or out of market, the agent must say so plainly — "Dayplay doesn't have live coverage for <location> yet" — and must not fabricate venues, events, dates, hours, or neighborhoods for it. Zero results for a covered query are reported honestly, never filled with invented places. This per-request check is what keeps the nationwide posture truthful.

Remote endpoint: https://api.dayplay.io/mcp (Streamable HTTP / MCP)


Quickstart

Cursor

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 — run from source (local stdio bridge for stdio-only clients):

git clone https://github.com/dayplayTeam/dayplay-mcp.git
cd dayplay-mcp
npm install
node bin/dayplay-mcp.js

Then point your client at the local stdio process:

{
  "mcpServers": {
    "dayplay": {
      "command": "node",
      "args": ["/path/to/dayplay-mcp/bin/dayplay-mcp.js"]
    }
  }
}

Claude Desktop

Edit claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Option A — direct remote server (recommended):

{
  "mcpServers": {
    "dayplay": {
      "url": "https://api.dayplay.io/mcp"
    }
  }
}

Option B — run from source (stdio-only clients): follow the run-from-source setup under Cursor, then register the local stdio process:

{
  "mcpServers": {
    "dayplay": {
      "command": "node",
      "args": ["/path/to/dayplay-mcp/bin/dayplay-mcp.js"]
    }
  }
}

Restart Claude Desktop, then ask: "What's happening in the Mission tonight?"

Grok Bot

Add the Dayplay remote connector:

https://api.dayplay.io/mcp

Prefer the direct remote connector above. For a stdio-only setup, run from source and bridge the local process in Grok's MCP config:

{
  "mcpServers": {
    "dayplay": {
      "command": "node",
      "args": ["/path/to/dayplay-mcp/bin/dayplay-mcp.js"]
    }
  }
}

Pair it with the vibe-scout skill for prompt-level scope enforcement.

Terminal smoke test

node bin/dayplay-mcp.js --smoke

Run it from a run-from-source checkout. Prints the live endpoint and available tool names. Exits non-zero on failure.


Related MCP server: DataSF MCP

Tools

The catalog spans major metros nationwide, with the SF Bay Area as the flagship live market (San Francisco, Oakland, Berkeley — 35 centroids) and additional major metros rolling out next. Coverage is verified per request: a metro that isn't live yet is declined honestly, never fabricated.

Open tools run immediately — no account needed. Gated tools return 401 on first call. Every connection path — the remote URL and the local stdio bridge — serves this same 40-tool catalog, and a host connected through either path opens Google sign-in for gated tools.

Discovery (open)

  • get_happening_today — events + places happening today, by location and radius

  • get_live_now — what is happening right now

  • get_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 distance

  • get_listing — full detail for one place or venue by id

  • get_top_restaurants / get_top_venues — ranked lists, optional city

  • get_local_gems — curated local gems

  • get_locals_favorites — locals' favorites

  • get_venue_events — upcoming events at one venue (id)

  • get_subcategories / get_genres / get_event_bridge — taxonomy feeds

Marketing feeds (open, X-API-Key)

  • get_marketing_events / get_marketing_places / get_marketing_neighborhoods — catalog feeds; forward an X-API-Key header. get_marketing_neighborhoods returns the live-market neighborhood centroids with coordinates and radii (currently the 35 SF Bay Area hubs; new metros appear here as they go live).

  • 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.

Saves & Outings 🔒 free account

  • save_outing — save a dated, neighborhood-bound outing plan to the signed-in user's Saved tab

  • get_my_itinerary — retrieve the signed-in user's saved itineraries

  • list_saves, save_listing, unsave_listing, list_going, mark_going, unmark_going, get_profile — saved places, event RSVPs, and the signed-in profile

  • upvote_listing, share_local_favorite, share_gem — community signals

Requires the free-account connect. A host connected to the remote URL opens Google sign-in on the first gated call; the stdio bridge opened from a run-from-source checkout 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."

Legacy compatibility

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.

The Anti-Drift Guarantee

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: major metros nationwide, with the SF Bay Area as the flagship live market and additional major metros rolling out next. Live coverage is verified per request — the guarantee is that Dayplay never answers for a place it hasn't verified, not that every metro is live on day one.

Dayplay receipts:

  • Spatially verified. Every place and event result is validated against neighborhood centroid coordinates and radii pulled live from get_neighborhoods (currently 35 SF Bay Area hubs; the same check applies to each metro as it comes online).

  • Neighborhood-bound queries. neighborhood is an exact-match binding parameter, not a fuzzy keyword hint — results outside the bound radius are dropped, not ranked down.

  • Zero cross-metro drift. No Oakland result in a San Francisco query. No Brooklyn result in a Manhattan query. No bridge, tunnel, or cross-river hop presented as a walkable leg.

  • Real-time, not stale. get_events queries verified occurrences by date, so "tonight" means tonight — not an SEO page from last season.

  • Out-of-market refusal. A market that isn't live yet is refused before any upstream call, and the surfaced copy states the coverage boundary rather than returning plausible-but-wrong geography. As new metros go live, the same guard extends to them automatically.

  • Honest emptiness. If a bounded query has no verified matches, it returns nothing rather than padding with invented places.

That is the product: the answer stays where you are.


Configuration

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.


How the proxy works

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 waiting on a local 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.


Repository layout

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        # Run-from-source stdio proxy
├── assets/
│   └── logo.svg
├── test/
│   └── e2e.mjs
├── smithery.yaml             # Smithery.ai registry manifest
├── plugin.json               # Agent Plugins standard manifest
├── package.json              # Node metadata (v2.2.2, MIT)
├── README.md                 # This file
└── LICENSE                   # MIT (Dayplay Team)

Development

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)

Run from a run-from-source checkout (git clone + npm install).


License

MIT © Dayplay Team — https://www.dayplay.io

Available Tools

3 tools
get_eventsAInspect

Query verified, real-time event occurrences filtered strictly by date, neighborhood, and category. GEOGRAPHIC SCOPE (HARD CONSTRAINT): results are limited to the San Francisco Bay Area - San Francisco, Oakland, and Berkeley only. This tool cannot return events in any other city, region, or country. OUT-OF-MARKET PROTOCOL: if the user's requested location is outside the SF Bay Area (e.g. Austin, New York, Tokyo), DO NOT call this tool. Immediately state 'Dayplay is strictly SF Bay Area only (San Francisco, Oakland, Berkeley); it does not cover .' and never fabricate, infer, or substitute events, dates, hours, or venues for that location. A zero-item result for a valid SF Bay Area query is an honest answer - report it; never fill the gap with invented events.

NameRequiredDescriptionDefault
dateNoTarget date formatted as YYYY-MM-DD. Narrows results within the SF Bay Area only; never expands geographic scope.
limitNoMax events to return (default 20)
sourceNoData source filter. Filter only; never expands geographic scope beyond the SF Bay Area.
categoryNoCategory filter (e.g. music, art, food). Filter only; never expands geographic scope beyond the SF Bay Area.
neighborhoodNoExact SF Bay Area neighborhood name from get_neighborhoods (e.g. Mission, North Beach, Oakland, Berkeley). Only San Francisco, Oakland, and Berkeley neighborhoods are valid. Do NOT pass a location outside the SF Bay Area (e.g. Brooklyn, Silver Lake, Shoreditch, Shibuya) - that is OUT OF MARKET and must be declined with the Dayplay SF-Bay-Area-only message. Never fabricate a neighborhood name.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does it thoroughly: hard geographic cap, refusal protocol, prohibition on fabricating events, and instruction to report honest zero-item results. It also states events are verified and real-time, giving an agent a clear behavioral model.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well structured and front-loaded, but there is mild redundancy: the hard geographic scope is stated twice and the no-fabrication rule is repeated near the end. Still, the length is justified by the safety-critical protocol.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for selecting and calling the tool: it provides the SF-only scope, out-of-market refusal, neighborhood-source dependency, and honest-empty-result behavior. It does not describe the return shape, and since no output schema exists, a brief statement of what an event result contains would have made it fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The main description reinforces the date, neighborhood, and category filters but adds no per-parameter detail beyond the schema; limit and source are left to the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence states the tool queries verified, real-time event occurrences and names the exact filters: date, neighborhood, and category. Combined with the sibling names, the resource is unambiguous: events, not neighborhoods or places.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The OUT-OF-MARKET PROTOCOL gives a hard when-not-to-call rule and the exact refusal message for locations outside the SF Bay Area. It does not explicitly contrast this tool against get_neighborhoods and get_places beyond referencing get_neighborhoods in the schema, leaving a small gap in positive routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_neighborhoodsAInspect

Returns the complete and EXCLUSIVE list of 35 San Francisco Bay Area neighborhood centroids (San Francisco, Oakland, and Berkeley ONLY) with coordinates and radii. This is the whole serviceable market - no other city, region, or country is covered. Use it to (a) map a user query to an exact SF Bay Area neighborhood and (b) verify whether a requested location is in-market at all. If the requested location is not in this list and is not San Francisco, Oakland, or Berkeley, it is OUT OF MARKET: do not call get_events or get_places for it; instead reply 'Dayplay is strictly San Francisco Bay Area only (San Francisco, Oakland, Berkeley); it does not cover .' Never invent a neighborhood outside this list.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, and it delivers. It discloses the exhaustive/fixed nature of the data ('complete and EXCLUSIVE', 'whole serviceable market'), the three-city geographic limitation, and the guardrail 'Never invent a neighborhood outside this list.' For a zero-parameter read-only catalog, this is complete behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

All five sentences are functional and front-loaded in a logical progression: returns → market scope → use cases → out-of-market handling → guardrail. The exact user-facing rejection message earns its place because it removes agent improvisation. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of explaining return values, and it does: '35... neighborhood centroids... with coordinates and radii.' It also covers usage purposes, market-boundary verification, and the exact failure behavior. Nothing an agent needs to invoke this simple tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero properties, so there are no argument semantics to document; the 0-parameter baseline of 4 applies. The description sensibly spends its words on output and routing semantics instead of parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Returns the complete and EXCLUSIVE list of 35 San Francisco Bay Area neighborhood centroids... with coordinates and radii.' The scope is precisely delimited ('San Francisco, Oakland, and Berkeley ONLY') and the clause 'no other city, region, or country is covered' distinguishes it from siblings get_events and get_places.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use purposes: '(a) map a user query to an exact SF Bay Area neighborhood and (b) verify whether a requested location is in-market at all.' It also gives explicit when-not-to-use with named alternatives: 'do not call get_events or get_places' for out-of-market locations, plus the exact rejection script to emit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_placesAInspect

Query curated places filtered by neighborhood, open-now status, ratings, or newly opened window. GEOGRAPHIC SCOPE (HARD CONSTRAINT): results are limited to the San Francisco Bay Area - San Francisco, Oakland, and Berkeley only. This tool cannot return places in any other city, region, or country. OUT-OF-MARKET PROTOCOL: if the user's requested location is outside the SF Bay Area (e.g. Austin, New York, Tokyo), DO NOT call this tool. Immediately state 'Dayplay is strictly SF Bay Area only (San Francisco, Oakland, Berkeley); it does not cover .' and never fabricate, infer, or substitute venues, addresses, hours, or ratings for that location. A zero-item result for a valid SF Bay Area query is an honest answer - report it; never fill the gap with invented venues.

NameRequiredDescriptionDefault
sortNo
limitNoMax places to return (default 20)
open_nowNoFilter strictly for SF Bay Area places open right now. Filter only; never expands geographic scope.
neighborhoodNoExact SF Bay Area neighborhood name from get_neighborhoods (e.g. Mission, North Beach, Oakland, Berkeley). Only San Francisco, Oakland, and Berkeley neighborhoods are valid. Do NOT pass a location outside the SF Bay Area (e.g. Williamsburg, Santa Monica, Camden, Shibuya) - that is OUT OF MARKET and must be declined with the Dayplay SF-Bay-Area-only message. Never fabricate a neighborhood name.
newly_opened_daysNoFilter for places opened in the last N days

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It openly discloses the tool's hard geographic limit, the exact behavior when the location is out of market (refuse and do not call), and the policy when a legitimate query returns zero results. It also notes that the open_now filter is purely a filter and never expands scope. These are behavioral traits beyond what any schema would encode.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than typical but every sentence earns its place. It leads with the primary purpose, then states the hard geographic scope in bold caps, then gives an explicit out-of-market protocol with a quoted message, and finally addresses the zero-result honesty rule. The structure uses clear sections and capitalization for emphasis, ensuring the critical constraints stand out. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only query tool with no annotations and no output schema, the description covers all essential context: what it does, its geographic limit, how to handle out-of-market requests, and how to report empty results. It also implicitly signals that the tool is non-destructive (query only). Nothing an agent needs to safely and correctly invoke this tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 80%, and the schema itself already gives detailed parameter descriptions (e.g., neighborhood only accepts SF Bay Area names, open_now is a filter). The tool description adds value by grouping the filters and reinforcing the global geographic constraint across all parameters. It clarifies that 'ratings' maps to the sort parameter and that 'newly opened' maps to newly_opened_days. This is a meaningful supplement to the schema, though much of the detail is already in the parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Query curated places filtered by neighborhood, open-now status, ratings, or newly opened window' – a specific verb, resource, and filter list. It immediately distinguishes 'places' from the sibling tools 'get_neighborhoods' and 'get_events', and goes on to state the hard geographic scope. No ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description contains an explicit OUT-OF-MARKET PROTOCOL: if the requested location is outside the SF Bay Area, the agent must not call the tool, must instead state the exact refusal message, and must never fabricate data. It also tells the agent to report zero results honestly rather than inventing venues. This gives clear when-to/ when-not-to usage rules and even prescribes the fallback script.

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.

  1. 3 tool updatesv1.0.0
    • First observedget_events
    • First observedget_neighborhoods
    • First observedget_places

TDQS

A4.6/5.0

Scored across 3 tools

Disambiguation5/5

Each tool targets a distinct resource type: neighborhoods, events, and places. Though get_events and get_places share geographic constraints and filtering by neighborhood, their domain nouns are unambiguous and the descriptions clearly separate them.

Naming Consistency5/5

All three tools follow the same get_<plural-noun> naming convention. This is a consistent, predictable pattern with no mixed styles or vague verbs.

Tool Count5/5

Three tools is well-scoped for a read-only local discovery service, with each tool covering one core data type. No tool is redundant, and additional tools would likely be unnecessary.

Completeness4/5

The server provides neighborhood lookup plus event and place discovery, which covers the core read-only domain. Minor gaps exist, such as no explicit category enumeration or individual detail-fetch tool, but filtered queries should handle most typical requests.

Maintenance

ActivityActive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    The owner-verified local business data + service & menu-price layer for AI agents. Owner-authored business profiles where every response carries provenance — verification level, completeness score, freshness timestamps, and upstream sources. * Search & profiles — find businesses by name, category, city, or geo-radius; full profiles with contacts, hours, media, ratings. * Price layer
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to query and retrieve San Francisco open data from data.sfgov.org via the Socrata SODA API.
    427 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to retrieve live transit departures, vehicle positions, and service alerts for San Francisco Bay Area transit operators via the regional 511.org open-data API.
    268 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to browse curated city event feeds, retrieve full details for individual events, and list an organizer's public calendar without authentication. It returns only public event metadata, stripping attendee, guest, host, and manager data before responding.
    369 npm
    MIT