DayPlay — SF Bay Area Local Intelligence for AI Agents

DayPlay é a camada de inteligência local para a região da Baía de São Francisco — lugares verificados em tempo real, eventos ao vivo e roteiros a pé para São Francisco, Oakland e Berkeley (35 centros de bairros). Feito para agentes de IA: um endpoint MCP remoto (https://www.dayplay.io/api/mcp) responde a "o que fazer em SF", "o que está acontecendo neste fim de semana" e pedidos completos de passeios com múltiplas paradas, incluindo trechos a pé e horários. Quando nada verificado existe, o servidor diz isso — nunca inventa locais, eventos, datas ou horários (Garantia Anti-Drift). 3 ferramentas de descoberta gratuitas (get_neighborhoods, get_events, get_places); uma conta gratuita no DayPlay desbloqueia plan_outing + manage_saved_plans — planos salvos na conta do usuário no DayPlay. Sem chave de API. NÃO DISPONÍVEL fora da região da Baía de SF — solicitações fora do mercado são recusadas por protocolo, nunca inventadas.

Documentação

DayPlay MCP — Eventos, Lugares e Roteiros da Região da Baía de São Francisco para Agentes de IA

@dayplayai/mcp-server · v1.3.2 · MIT

Run on Apify

smithery badge

dayplayTeam/dayplay-mcp MCP server

Um servidor MCP de configuração zero que dá a qualquer agente de IA um concierge localmente fundamentado exclusivamente para a Região da Baía de São Francisco — lugares selecionados, eventos em tempo real verificados e vínculo de bairro que elimina o desvio entre as margens da baía.

🔒 Escopo: somente Região da Baía de São Francisco. Este servidor atende estritamente São Francisco, Oakland e Berkeley — 35 centros de bairros. Ele não atende Nova York, Los Angeles, Chicago, Austin, Seattle, Miami, Londres, Tóquio ou qualquer outra cidade, região ou país. Locais fora do mercado não são atendidos. Se um usuário perguntar sobre qualquer local fora da Região da Baía de São Francisco, o agente deve declarar "Dayplay é estritamente exclusivo da Região da Baía de São Francisco (São Francisco, Oakland, Berkeley); não cobre <location>" e não deve chamar uma ferramenta nem inventar locais, eventos, datas, horários ou bairros para esse local. Resultados zero para uma consulta válida da Região da Baía de São Francisco são relatados honestamente, nunca preenchidos com lugares inventados.

Endpoint remoto: https://www.dayplay.io/api/mcp (HTTP Streamable / MCP)


Início rápido

Cursor

Opção A — servidor remoto direto (recomendado, sem instalação). Adicione ao ~/.cursor/mcp.json ou ao .cursor/mcp.json deste repositório:

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

Opção B — proxy stdio de configuração zero (funciona com qualquer cliente):

{
  "mcpServers": {
    "dayplay": {
      "command": "npx",
      "args": ["-y", "@dayplayai/mcp-server"]
    }
  }
}

Claude Desktop

Edite o claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "dayplay": {
      "command": "npx",
      "args": ["-y", "@dayplayai/mcp-server"]
    }
  }
}

Reinicie o Claude Desktop e pergunte: "O que está acontecendo no Mission hoje à noite?"

Grok Bot

Adicione o conector remoto do Dayplay:

https://www.dayplay.io/api/mcp

Ou faça a ponte via stdio na configuração MCP do Grok:

{
  "mcpServers": {
    "dayplay": {
      "command": "npx",
      "args": ["-y", "@dayplayai/mcp-server"]
    }
  }
}

Combine com a habilidade vibe-scout para aplicação de escopo no nível do prompt.

Teste rápido no terminal

npx -y @dayplayai/mcp-server --smoke

Exibe o endpoint ativo e os nomes das ferramentas disponíveis. Sai com código diferente de zero em caso de falha.


Ferramentas

Toda ferramenta está vinculada à Região da Baía de São Francisco (São Francisco, Oakland, Berkeley — 35 centros). Locais fora do mercado são recusados, nunca inventados.

get_places

Consulte lugares selecionados filtrados por bairro, status de aberto agora, avaliações ou janela de recém-inaugurado.

ESCOPO: somente Região da Baía de São Francisco (São Francisco, Oakland, Berkeley). Locais fora do mercado (ex.: Austin, Nova York, Tóquio) são recusados — nunca invente locais. Verificado espacialmente para eliminar desvios entre as margens da baía e geográficos.

ParâmetroTipoDescrição
neighborhoodstringNome do bairro da Região da Baía de São Francisco (somente SF, Oakland, Berkeley)
open_nowbooleanFiltrar estritamente por lugares abertos agora
sort"rating" | "distance"Ordem de classificação
newly_opened_daysinteiroFiltrar por lugares inaugurados nos últimos N dias
limitinteiroMáximo de lugares a retornar (padrão 20)

Exemplo de prompt: "Encontre um lugar aberto agora em North Beach com avaliação 4.5+."

plan_outing 🔒 conta gratuita

Cria um roteiro completo de passeio com várias paradas (jantar, bebidas, eventos) com trechos a pé e horários, combinado com o clima, interesses e orçamento. A primeira chamada retorna uma prévia gratuita de 2 paradas mais um código de conexão único (DP-XXXXXX) e https://www.dayplay.io/link; uma conta gratuita do DayPlay desbloqueia o plano completo, salvo na sua conta e visível no aplicativo DayPlay.

manage_saved_plans 🔒 conta gratuita

Salve roteiros, liste planos salvos e defina alertas (esgotados, fechamentos, clima) via action: "save" | "list" | "set_alert" | "cancel_alert". Requer a mesma conexão de conta gratuita. Planos salvos aparecem na sua conta DayPlay na web e no aplicativo.

get_events

Consulte ocorrências de eventos verificadas e em tempo real, estritamente filtradas por data, bairro e categoria.

ESCOPO: somente Região da Baía de São Francisco (São Francisco, Oakland, Berkeley). Locais fora do mercado são recusados — nunca invente eventos. Verificado espacialmente para eliminar desvios entre as margens da baía e geográficos.

ParâmetroTipoDescrição
datestring (YYYY-MM-DD)Data alvo
neighborhoodstringNome do bairro da Região da Baía de São Francisco (ex.: Mission, North Beach, Oakland, Berkeley)
categorystringFiltro de categoria (ex.: música, arte, comida)
sourcestringFiltro de fonte de dados
limitinteiroMáximo de eventos a retornar (padrão 20)

Exemplo de prompt: "Quais eventos de música em Berkeley acontecem neste sábado?"

get_neighborhoods

Retorna a lista completa e exclusiva dos 35 centros de bairros da Região da Baía de São Francisco com coordenadas e raios (somente São Francisco, Oakland, Berkeley). Nenhum outro mercado é coberto. Use para vincular estritamente roteiros a um bairro específico e para detectar consultas fora do mercado.

Exemplo de prompt: "Me dê a lista de bairros e depois monte um roteiro de sábado que nunca saia de Bernal Heights."


A Garantia Anti-Desvio

A maioria das respostas locais de IA falha da mesma forma: uma recomendação de "Mission" cai em Oakland, um evento de "Berkeley" na verdade é em San Jose, e um roteiro a pé exige silenciosamente uma travessia de ponte.

Escopo: somente Região da Baía de São Francisco (São Francisco, Oakland, Berkeley). Sem cobertura nacional ou global.

Comprovantes do Dayplay:

  • Verificado espacialmente. Todo lugar e resultado de evento é validado contra coordenadas e raios de centros de bairros obtidos ao vivo de get_neighborhoods (35 bairros da Baía).
  • Consultas vinculadas a bairro. neighborhood é um parâmetro de vínculo de correspondência exata, não uma dica difusa de palavra-chave — resultados fora do raio vinculado são descartados, não rebaixados.
  • Zero desvio entre margens da baía. Nenhum resultado de Oakland em uma consulta de São Francisco. Nenhum resultado de Marin em uma consulta do East Bay. Nenhum roteiro com travessia de ponte que se diga a pé.
  • Tempo real, não desatualizado. get_events consulta ocorrências verificadas por date, então "hoje à noite" significa hoje à noite — não uma página de SEO da temporada passada.
  • Recusa fora do mercado. Nomes de mercados fora da Baía são recusados antes de qualquer chamada upstream, e o texto exibido declara o limite exclusivo da Região da Baía de São Francisco em vez de retornar geografia plausível, mas errada.
  • Vazio honesto. Se uma consulta vinculada não tem correspondências verificadas, retorna nada em vez de preencher com lugares inventados.

Esse é o produto: a resposta permanece onde você está.


Configuração

Variável de ambientePadrãoFinalidade
DAYPLAY_MCP_URLhttps://www.dayplay.io/api/mcpSubstituir o endpoint remoto (staging, auto-hospedado, dev local)

Nenhuma chave de API é necessária para o endpoint público. Tokens de autenticação opcionais, se sua implantação precisar, são passados como cabeçalhos padrão Authorization pelo cliente MCP — nunca os coloque em arquivos de configuração.


Como o proxy funciona

MCP client (stdio)  ⇄  bin/dayplay-mcp.js  ⇄  https://www.dayplay.io/api/mcp (Streamable HTTP)

O shim lista ferramentas e encaminha tools/call literalmente para o endpoint remoto, então novas ferramentas do Dayplay aparecem automaticamente sem atualização do npm. É uma ponte de transporte, não uma reimplementação — todo esquema, filtro e regra de verificação é servido pelo próprio Dayplay.

Prefira HTTP direto se seu cliente suportar; use o shim para clientes somente stdio.


Estrutura do repositório

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.2, MIT)
├── README.md                 # This file
└── LICENSE                   # MIT (Dayplay Team)

Desenvolvimento

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)

Publicação (mantenedores)

A publicação é totalmente automatizada via npm Trusted Publishing (OIDC) — sem NPM_TOKEN, sem prompts de 2FA. O fluxo de trabalho .github/workflows/publish.yml está vinculado nas configurações npm do pacote a exatamente este repositório + fluxo de trabalho.

npm version patch        # or minor / major — bumps package.json, creates the vX.Y.Z tag
git push --follow-tags

O CI então: verifica se a versão package.json corresponde à tag → npm ci → teste rápido → npm publish --provenance (assinado com sigstore, atestado com OIDC).

Pegadinha: --follow-tags nem sempre envia a tag. Se nenhuma execução de fluxo de trabalho aparecer em Actions dentro de um minuto, finalize com:

git push origin v1.X.Y

Notas:

  • O registro mostra "pacote está sendo processado" por ~3 minutos após a publicação antes que a nova versão seja resolvida — não entre em pânico verificando cedo demais.
  • O fluxo OIDC do npm requer npm ≥ 11.5.1 no CI; o fluxo de trabalho instala npm@latest por esse motivo.
  • Se o fluxo de trabalho ganhar um bloco environment: no futuro, o vínculo do npm Trusted Publisher deve ser atualizado para o mesmo nome de ambiente, ou as publicações serão rejeitadas.

Licença

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