外观
接入你的 AI 客户端
《夜如何》采用 BYOC(Bring Your Own Client,自带客户端)—— 服务器只提供 MCP 工具,你带你的 AI。任何支持远程 MCP(Streamable HTTP)的客户端都能玩。
前置
- 拿到邀请码:目前内测,邮件 [email protected] 私发。一枚邀请码对应一名玩家;服务器只留 sha256 摘要,找不回,只能重发。
- 早先收到的是一枚 Bearer token(不是邀请码)?它照常有效,接法见文末「用静态 token 接入」。
- 确定 endpoint:
- URL:
https://1001.ye.games/mcp - 鉴权:OAuth 2.1(授权码 + PKCE)。客户端里只填 URL,不用填任何密钥
- Protocol:MCP 2026-07-28(modern envelope);2025 年代的客户端走 stateless fallback
- URL:
授权是怎么回事
第一次连接时,客户端会打开浏览器,来到 1001.ye.games 下的一张授权页:
- 页面上写着是哪个客户端在请求(名号是客户端自报的)、授权完成后浏览器会跳去哪里、以及它能做什么 —— 只有一件事:以你的身份使用这 11 个游戏工具
- 输入邀请码,点「应允」;不是你自己发起的就点「回绝」
- 浏览器跳回客户端,连接完成
之后客户端自己续期,不用再管。一个月没玩,或者换了一个客户端 / 一台电脑,会再让你输一次邀请码 —— 邀请码要留着,它就是你的身份:同一枚码不管从哪个客户端进来,都是同一个玩家、同一份存档与遗物。
只在地址栏是 1001.ye.games 的页面上输入邀请码。 要停掉某个客户端的访问、或怀疑邀请码泄露,邮件告诉我们,服务器端可以即时作废。
Claude Code
命令行一条加好(--scope user 全局生效;省略则只在当前项目):
bash
claude mcp add --transport http --scope user spareme https://1001.ye.games/mcp然后在 Claude Code 里输入 /mcp,选中 spareme,按提示 Authenticate —— 浏览器弹出授权页,输入邀请码即可。回到 /mcp 列表应能看到 spareme + 11 个工具。
项目级的写法是在项目根目录建 .mcp.json(里面没有任何密钥,可以放心提交):
json
{
"mcpServers": {
"spareme": {
"type": "http",
"url": "https://1001.ye.games/mcp"
}
}
}推荐:装 Skill 让 AI 更懂游戏(走 agentskills.io 标准,Cursor / Codex CLI / 其他支持 Agent Skills 的运行时也适用)。
Cursor
项目 .cursor/mcp.json(或全局 ~/.cursor/mcp.json):
json
{
"mcpServers": {
"spareme": {
"url": "https://1001.ye.games/mcp"
}
}
}也可以在 Cursor Settings → MCP → Add new MCP server 里用 UI 填同样内容。保存后这一项会提示需要登录,点它完成浏览器授权。
Claude(桌面版 / 网页版)
设置 → Connectors → Add custom connector,URL 填 https://1001.ye.games/mcp,其余留空。添加后点 Connect,在弹出的授权页输入邀请码。
其它客户端(ChatGPT / Codex CLI / …)
凡是支持「远程 MCP + OAuth」的客户端都是同一个做法:添加 MCP server 时只填 URL。客户端会自己从服务器发现授权地址、登记自己、再打开浏览器让你授权 —— 不需要你提供 client id / client secret 之类的东西;客户端若问起,留空即可。
MCP inspector(调试用)
bash
npx @modelcontextprotocol/inspector浏览器打开 → 连接 https://1001.ye.games/mcp,认证方式选 OAuth 并走一遍授权。用来手工调工具、看返回结构。
验证接入
调 get_state(不传参数)应返回:
json
{
"welcome": "你是舒冉。天亮之前,要向王讲一段故事——若够动人...",
"how_to_play": "一局=一夜或数夜。每夜分白日与讲述两段...",
"tools_flow": ["start_run —— ...", "..."],
"next_step": "调 start_run 开启第一局。"
}看到这份 welcome 就通了。
用静态 token 接入
OAuth 上线之前发出去的每玩家 Bearer token 照常有效,接法不变:在客户端的 MCP 配置里加一个请求头 Authorization: Bearer <你的 token>。
Claude Code:
bash
claude mcp add --transport http --scope user spareme https://1001.ye.games/mcp \
--header "Authorization: Bearer YOUR_TOKEN_HERE".mcp.json / .cursor/mcp.json:在上面的配置里加一段 headers。这类文件常随项目提交进 git,token 不要写死在里面 —— Claude Code 支持 ${SPAREME_TOKEN} 环境变量展开,token 放 shell 环境里:
json
{
"mcpServers": {
"spareme": {
"type": "http",
"url": "https://1001.ye.games/mcp",
"headers": {
"Authorization": "Bearer ${SPAREME_TOKEN}"
}
}
}
}不支持自定义请求头、也不支持 OAuth 的旧客户端,可以用 mcp-remote 代理:
json
{
"mcpServers": {
"spareme": {
"command": "npx",
"args": ["mcp-remote", "https://1001.ye.games/mcp", "--header", "Authorization: Bearer YOUR_TOKEN_HERE"]
}
}
}想从 token 换成邀请码(换了之后存档与遗物都在),邮件说一声即可。
常见问题
Q: 授权页说「邀请码不对,或已失效」? A: 邀请码区分大小写,连字符也算数,建议整段复制粘贴。确认无误仍不行,多半是这枚码已被停用或过期,邮件 [email protected] 重发。
Q: 授权页说「试得太勤了」? A: 同一个网络出口短时间内提交的次数有上限,等一两分钟再试。
Q: 授权页说「这个客户端没有在本服务登记过」? A: 客户端缓存了一份已经被清理的登记信息。在客户端里把这个 MCP 连接删掉重新添加一次。
Q: 客户端提示 401? A: 用 OAuth 的:重新走一遍授权(Claude Code 里是 /mcp → Authenticate)。用静态 token 的:token 错、或没带 Authorization header,或 header 里少写了 Bearer 前缀(含末尾空格)。
Q: 429(请求太频繁)? A: 每个连接每秒 1 req,突发 60。慢一点即可。
Q: Invalid Host 403? A: 正常玩不该看到这个错——出现了多半是客户端配置异常(如走了奇怪的代理改写 Host)。检查 URL 是不是 https://1001.ye.games/mcp 原样;还在就邮件反馈。
Q: 5xx? A: 服务器问题,过几分钟再试;持续挂请邮件,附上大致时间和报错内容。