mcpField
B
BoxTier Basketball Receipt

BoxTier Basketball Receipt

远程服务
boxtier.kr游戏娱乐03 周前更新

关于 BoxTier Basketball Receipt

RankBall 是一款基于 React 和 Vite 的应用,用于登记朋友间的篮球比赛,并在双方球队确认后记录赛果和等级。支持 localStorage 演示模式,也可通过 Supabase 持久化数据。

主要功能

  1. 01登记篮球比赛
  2. 02经双方确认后记录赛果
  3. 03追踪战绩和等级
  4. 04localStorage 演示模式
  5. 05可选 Supabase 持久化

适用场景

  1. 01组织朋友间的篮球比赛
  2. 02保存双方确认的比赛结果
  3. 03无需环境配置即可运行本地演示

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://boxtier.kr/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

5
参数类型必填说明
querystring是用户搜索篮球匹配房间时使用的关键词及地区、日期和比赛形式条件。

详细介绍

RankBall

一款 React + Vite MVP,可将朋友间的篮球比赛登记为今日对局,并在赛后经双方球队确认,记录战绩和段位。

运行

npm install
npm run dev

即使没有 .env,也会以 localStorage 演示模式运行。

Supabase

已配置 Vite 读取 Vercel/Next 风格的 NEXT_PUBLIC_* 环境变量。

NEXT_PUBLIC_SUPABASE_URL=...
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=...

要使用 Supabase 持久化存储,请按顺序应用 supabase/migrations。Supabase 环境配置完成后,如果远程加载失败,应用不会回退到 localStorage 演示状态,而是保留远程 shell/error 状态。

Supabase CLI migration

Production DB migration 尽可能通过 Supabase CLI 应用。

supabase --version
$env:SUPABASE_ACCESS_TOKEN="..."
$env:SUPABASE_DB_PASSWORD="..."
supabase link --project-ref olzxextphxpniwiiwwda --password $env:SUPABASE_DB_PASSWORD
supabase db push --linked --dry-run
supabase db push --linked

如果设置了 DATABASE_URL,无需 link 即可应用。

supabase db push --db-url "$env:DATABASE_URL" --dry-run
supabase db push --db-url "$env:DATABASE_URL"

应用到 Production 后,检查 schema health。

Invoke-RestMethod -Method Post -Uri "https://boxtier.kr/api/system/schema-health" -Headers @{ Authorization = "Bearer $env:CRON_SECRET" }

部署前验证可通过一条命令执行。

npm run verify:release -- --confirm-production=olzxextphxpniwiiwwda

verify:release 会在 production build 后,基于远程 Supabase/Auth 执行完整 backend simulation 和 schema health 检查。如果没有与 production ref 完全一致的 --confirm-production=<project-ref> CLI flag,则会在调用 API/Auth 前停止。需要 SUPABASE_SERVICE_ROLE_KEY、测试 Auth 环境变量和 CRON_SECRET。如果退出代码不为 0,请勿部署。

simulation 会在运行前将 environment、直接 Supabase project ref、远程 API host/ref 输出到 stderr。每个 process 的完整 flow 重复上限为 1 次;仅在 cleanup 失败时,自动重试最多 1 次。外部 runner 即使重新运行独立 process,也必须将调用次数限制为 1 次。--safety-check-only 只验证 target guard,不会调用 DB/API。

仅供测试的 Supabase 需要同时设置 test URL、publishable key 和 service-role key。使用远程 test API 时,还要通过 --remote-project-ref=<test-ref> 指定与实际部署目标相同的 ref。如果直接 ref 与远程 ref 不同,则不会运行。

远程 DB 上请勿使用 supabase db reset --linked、DROP TABLE、TRUNCATE 或批量 DELETE。

环境变量

名称位置用途
VITE_SUPABASE_URL / NEXT_PUBLIC_SUPABASE_URL浏览器/服务器Supabase project URL
VITE_SUPABASE_PUBLISHABLE_KEY / NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY / VITE_SUPABASE_ANON_KEY浏览器Supabase anon/publishable key
SUPABASE_SERVICE_ROLE_KEY仅限服务器/脚本server action、seed、simulation
VITE_ENABLE_SERVER_ACTIONS浏览器启用 server action
VITE_DEMO_LOGIN浏览器允许在 localhost 使用测试登录 UI
RANKBALL_SEED_REAL_TEST_AUTH / RANKBALL_SEED_AUTH_ONLY脚本将测试账号创建为 Supabase Auth user,并关联到现有 profile
RANKBALL_TEST_PASSWORD / VITE_TEST_AUTH_PASSWORD脚本/浏览器测试账号 password Auth 使用的密码
RANKBALL_TEST_AUTH_EMAIL_DOMAIN / VITE_TEST_AUTH_EMAIL_DOMAIN脚本/浏览器测试账号 email domain。默认值为 rankball.test
VITE_ASSET_BASE_URL / VITE_PUBLIC_ASSET_BASE_URL浏览器远程 asset base URL
VITE_NAVER_MAP_CLIENT_ID / VITE_NAVER_MAP_NCP_KEY_ID浏览器/服务器备用Naver map/geocode client id
NAVER_MAP_CLIENT_SECRET / NAVER_MAP_NCP_KEY / NAVER_MAP_NCP_CLIENT_SECRET仅限服务器Naver geocode 备用 secret
DISCORD_CLIENT_ID / DISCORD_CLIENT_SECRET / DISCORD_REDIRECT_URI仅限服务器Discord OAuth
DISCORD_BOT_TOKEN / DISCORD_GUILD_ID / DISCORD_GUILD_IDS仅限服务器Discord DM worker
DISCORD_PUBLIC_KEY仅限服务器Discord interaction signature 验证
DISCORD_CHAT_BRIDGE_SECRET / DISCORD_CHAT_BRIDGE_URLbridge worker将 Discord 房间聊天转发到 Web API
DISCORD_CHAT_BRIDGE_REQUEST_TIMEOUT_MS / DISCORD_CHAT_BRIDGE_MAX_DELIVERY_ATTEMPTSbridge worker转发 timeout 和重试次数。默认值为 10000、4
CRON_SECRET仅限服务器/脚本worker、maintenance、schema-health
SUPABASE_ACCESS_TOKEN仅限 CLISupabase Management API 身份验证
SUPABASE_DB_PASSWORD仅限 CLIsupabase link、supabase db push --linked 使用的远程 DB 密码
SUPABASE_PROJECT_ID仅限 CLI/CISupabase project ref。当前 production ref:olzxextphxpniwiiwwda
DATABASE_URL仅限 CLI/服务器supabase db push --db-url 或直接连接 Postgres
RANKBALL_SIM_BASE_URL / RANKBALL_SIM_SECRET / RANKBALL_SIM_TIMEOUT_MS / RANKBALL_SIM_CLEANUP_TIMEOUT_MS脚本backend simulation
RANKBALL_SIM_REMOTE_PROJECT_REF脚本远程 test API 使用的 Supabase project ref。优先使用 --remote-project-ref
RANKBALL_SIM_REPEAT / RANKBALL_SIM_MAX_RETRIES脚本完整 flow 重复上限 1,cleanup 重试上限 1

Discord 방 채팅 bridge

상시 실행 환경에서 아래 명령을 실행합니다. Gateway worker는 heartbeat ACK 누락 시 재연결하고, 가능한 세션은 resume하며, 웹 API의 timeout·429·5xx를 제한 횟수만큼 재시도합니다.

npm run discord:room-chat-bridge

운영에서는 DISCORD_CHAT_BRIDGE_SECRET을 별도로 설정합니다. CRON_SECRET fallback은 기존 배포 호환용입니다.

Vercel

Framework preset은 Vite, build command는 npm run build, output directory는 dist입니다.

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。