Token导航 LogoToken导航TokenDH.com
Nightlife MCP logo
搜索检索未说明官方级别未说明来源级核验

Nightlife MCP

MCP Server

基于Supabase的夜生活事件发现MCP服务器,提供事件搜索、场地信息查询和VIP预订功能。

工具数

13

提示词数

0

GitHub Stars

1

资源数

0
TypeScriptClaude搜索Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

alcylu

提供方

alcylu

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

夜生活mcp

由Supabase支持的用于夜生活活动发现的MCP服务器。

快速开始

生产终点: https://api.nightlife.dev/mcp

  1. 在获取免费API密钥 夜生活.dev
  2. 添加到Claude桌面配置(claude_desktop_config.json):
{
  "mcpServers": {
    "nightlife": {
      "url": "https://api.nightlife.dev/mcp",
      "headers": {
        "x-api-key": "YOUR_API_KEY"
      }
    }
  }
}

有关curl、TypeScript SDK和其他客户端,请参阅 CLIENT_SETUP.md.

已实施(v0.3)

  • search_events
  • get_tonight
  • get_event_details
  • search_venues
  • get_venue_info
  • search_performers
  • get_performer_info
  • log_unmet_request
  • create_vip_booking_request
  • get_vip_booking_status
  • get_vip_table_availability
  • get_vip_table_chart
  • get_recommendations (v0.2,后面 MCP_ENABLE_RECOMMENDATIONS=true)
  • 具有API-key中间件的可流式HTTP端点
  • 结构化工具输出模式(outputSchema)
  • 具有稳定错误代码的确定性工具错误有效载荷
  • 运行时请求/工具指标在 /health

先决条件

  • Node.js 18+
  • Supabase项目URL+服务角色键

设置

cp .env.example .env
npm install

在中设置环境变量 .env:

  • SUPABASE_URL
  • SUPABASE_SERVICE_ROLE_KEY

可选:

  • DEFAULT_CITY (默认值: tokyo)
  • MCP_TOP_LEVEL_CITIES (默认示例: tokyo,san-francisco;控制 available_cities 在不受支持的城市回复中)
  • DEFAULT_COUNTRY_CODE (默认值: JP)
  • NIGHTLIFE_BASE_URL (默认值: https://nightlifetokyo.com)
  • MCP_HTTP_REQUIRE_API_KEY (默认值: true)
  • MCP_HTTP_USE_DB_KEYS (默认值: true)
  • MCP_HTTP_ALLOW_ENV_KEY_FALLBACK (默认值: true)
  • MCP_HTTP_API_KEYS (逗号分隔的旧回退键)
  • MCP_ENABLE_RECOMMENDATIONS (默认值: false;使 get_recommendations)

DB API密钥模式(推荐)

HTTP身份验证可以使用Subabase的持久API密钥加上配额跟踪。

  1. 在Supabase SQL编辑器中运行SQL迁移:
-- copy file contents from:
-- supabase/migrations/20260219094000_mcp_api_keys.sql
  1. 确保在中启用了DB身份验证标志 .env:
MCP_HTTP_REQUIRE_API_KEY=true
MCP_HTTP_USE_DB_KEYS=true
MCP_HTTP_ALLOW_ENV_KEY_FALLBACK=true
  1. 创建API密钥记录:
npm run key:create -- --name claude-desktop --tier starter --daily-quota 1000 --minute-quota 60

这将打印原始图像 api_key 一次。安全地保存它并在MCP HTTP调用中使用它。

如果DB RPC不可用,请回退到 MCP_HTTP_API_KEYS 仅在以下情况下有效 MCP_HTTP_ALLOW_ENV_KEY_FALLBACK=true.

礼宾部未满足请求积压

公共礼宾流程可以将不受支持的用户意图记录到Supabase。

运行迁移:

-- copy file contents from:
-- supabase/migrations/20260226_concierge_unmet_requests.sql

然后调用MCP工具 log_unmet_request 当现有的夜生活数据中没有好的答案时。

VIP预订第一阶段

贵宾桌预订提交和状态跟踪由Supabase支持。

运行迁移:

-- copy file contents from:
-- supabase/migrations/20260227143000_vip_phase1_requests_and_queue.sql
-- supabase/migrations/20260228124500_add_vip_booking_enabled_to_venues.sql
-- and if already deployed before 2026-02-28:
-- supabase/migrations/20260228111000_vip_outward_language_defaults.sql
-- supabase/migrations/20260301010000_vip_table_availability_chart.sql
-- supabase/migrations/20260301114000_vip_table_chart_storage_bucket.sql
-- supabase/migrations/20260303093000_vip_dashboard_admin_edits.sql

然后调用MCP工具:

  • create_vip_booking_request
  • get_vip_booking_status
  • get_vip_table_availability (按地点/日期范围阅读每日表可用性)
  • get_vip_table_chart (阅读结构化表格图表,可选按日期状态叠加和可选 layout_image_url)

对话策略 create_vip_booking_request:

  • 提交前,请在会场当地时间确认预订日期/时间。
  • 使用双重日期确认措辞,特别是对于深夜抵达(00:00-05:59).
  • 所需的确认模板:

- Just to confirm: you want a table for [Night Day] night ([Night Date]), arriving around [Time] on [Arrival Day], [Arrival Date] ([Timezone]). I'll submit that as [Night Day] night with [Time] arrival. Is that correct?

  • 如果用户给出类似的时间 2am 没有一天,问:

- Do you mean 2:00 AM after Thursday night (Friday morning), or after Friday night (Saturday morning)?

  • 如果用户更改了日期,请在提交前重新生成确认。

Ops层会话还具有内部队列工具:

  • list_vip_reservations (所有未完成的预订;默认状态: submitted, in_review, confirmed)
  • list_vip_requests_for_alerting (仅限到期警报)
  • mark_vip_request_alert_sent
  • claim_vip_request_after_ack
  • update_vip_booking_status (套 confirmed/rejected/cancelled 审计事件)
  • upsert_vip_venue_tables (填写场地表定义+图表坐标+可选表注释+可选 layout_image_url)
  • upsert_vip_table_availability (按日期写入表格状态)
  • upload_vip_table_chart_image (将图表图像上传到存储并附加 layout_image_url 到会场表元数据)

要先发现可预订的场地,请使用:

  • search_venuesvip_booking_supported_only=true
  • get_venue_info 并检查 vip_booking_supported

对于内部场馆预订工作人员,通过DB功能申请队列任务:

  • public.claim_next_vip_agent_task(p_agent_id text)

VIP运营仪表板

内部仪表板路线:

  • GET /ops/login
  • POST /ops/login
  • POST /ops/logout
  • GET /ops/vip-dashboard

内部管理员API路由(cookie-session受保护):

  • GET /api/v1/admin/vip-bookings
  • GET /api/v1/admin/vip-bookings/:id
  • PATCH /api/v1/admin/vip-bookings/:id

必需的环境变量:

  • VIP_DASHBOARD_ADMINS (逗号分隔 username:password 成对)

可选环境变量:

  • VIP_DASHBOARD_SESSION_TTL_MINUTES (默认值: 720)
  • VIP_DASHBOARD_SESSION_COOKIE_NAME (默认值: vip_dashboard_session)

Stdio(本地桌面客户端):

npm run dev

流式HTTP:

npm run dev:http

对于生产构建:

npm run build
npm start

对于生产环境中的HTTP:

npm run start:http

经过认证的生产烟雾检查:

NLT_API_KEY=... npm run smoke:prod:auth

可选的环境覆盖:

  • NLT_MCP_URL (默认值: https://api.nightlife.dev/mcp)
  • NLT_REST_BASE_URL (默认值: https://api.nightlife.dev/api/v1)
  • NLT_SMOKE_CITY (默认值: tokyo)

调试web UI以获取建议:

MCP_ENABLE_RECOMMENDATIONS=true npm run dev:http
# open http://127.0.0.1:3000/debug/recommendations

备注

  • 日期处理支持 tonight, this_weekend, YYYY-MM-DD,以及 YYYY-MM-DD/YYYY-MM-DD.
  • get_recommendations 返回多达10个不同的模式插槽,具有动态城市感知回退功能。
  • 场地和表演者工具包括即将举行的活动快照。
  • log_unmet_request 将未解决的用户请求写入 public.concierge_unmet_requests.
  • VIP阶段1将预订提交写入 public.vip_booking_requests 工作人员将任务排队到 public.vip_agent_tasks.
  • VIP库存将表定义写入 public.vip_venue_tables 以及日期特定状态 public.vip_table_availability.
  • search_venuesget_venue_info 包含 vip_booking_supported 因此,客户可以准确地显示哪些场地接受VIP预订提交。
  • vip_booking_supported 来源于 public.venues.vip_booking_enabled (与 guest_list_enabled).
  • create_vip_booking_request 仅接受以下场所 vip_booking_supported=true.
  • 城市管理由以下支持 public.cities (slug、时区和服务日截止)。
  • 支持的顶级城市是环境可配置的(例如 tokyosan-francisco)而东京可以继续违约。
  • Stdio传输:无API密钥检查。
  • HTTP传输(/mcp):默认情况下需要API密钥(MCP_HTTP_REQUIRE_API_KEY=true).
  • API密钥头:

- Authorization: Bearer - x-api-key:

  • 当DB支持的身份验证处于活动状态时,HTTP响应包括密钥层/源和速率限制标头:

- X-API-Key-Tier - X-API-Key-Source - X-RateLimit-Daily-Limit - X-RateLimit-Daily-Remaining - X-RateLimit-Minute-Limit - X-RateLimit-Minute-Remaining

  • 健康终点: /health.
  • 手动工具测试的调试页面: /debug/recommendations.
  • 工具错误作为JSON文本有效载荷返回 result.content[0].text:

- INVALID_DATE_FILTER - INVALID_EVENT_ID - UNSUPPORTED_EVENT_ID - EVENT_NOT_FOUND - INVALID_VENUE_ID - VENUE_NOT_FOUND - INVALID_PERFORMER_ID - PERFORMER_NOT_FOUND - INVALID_BOOKING_REQUEST - BOOKING_REQUEST_NOT_FOUND - BOOKING_STATUS_UPDATE_FAILED - VIP_TASK_NOT_AVAILABLE - VIP_ALERT_UPDATE_FAILED - VIP_CLAIM_FAILED - INVALID_REQUEST - REQUEST_WRITE_FAILED - DB_QUERY_FAILED - INTERNAL_ERROR

贡献与CI

CONTRIBUTING.md 对于工作流程和规则。AI代理读取 AGENTS.md. CLAUDE.md 是建筑真理的源泉。

目录标签

目录标签

TypeScriptClaude搜索事件搜索本地部署场地信息VIP预订夜生活服务Supabase集成

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

api-key

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

13

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明api-keyremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP