teasa.ai
简体中文
打开 Teasa

Teasa MCP 服务器:在 AI 助手里玩互动故事

Teasa MCP 服务器让任何支持远程 MCP 服务器的助手都能查找、开始并直接玩 Teasa 的故事。 把 https://teasa.ai/mcp 添加为 Streamable HTTP 服务器,然后请助手找一个故事。助手会用故事卡片展示故事开场和每一条角色回复,并同时返回完整文本。游客模式立即可玩:无需登录,也无需 API 密钥。

一位软件工程师站在由发光玻璃节点组成的雕塑般网络旁
本指南内容

服务器信息

项目 内容
端点 https://teasa.ai/mcp
传输方式 Streamable HTTP(无状态,JSON 响应)
认证 游客模式无需认证;已有 Teasa 账号可通过 OAuth 连接
工具 search_stories、start_story、send_message、get_turn、end_guest_session
语言 英语 en、日语 ja、韩语 ko、中文 zh、西班牙语 es
故事 分级为全年龄或青少年的公开故事
清单文件 https://teasa.ai/.well-known/mcp.json

你玩过的每个故事都会保存在 Teasa。每条结果都附有在网页上打开同一段对话的链接;连接 Teasa 账号后,对话也会出现在网页和 Android 应用的聊天列表里。

把 Teasa 连接到你的助手

Claude(网页版和桌面版)

  1. 在 Claude 设置中打开连接器,选择添加自定义连接器。
  2. 名称填 Teasa,URL 填 https://teasa.ai/mcp。OAuth 客户端字段留空即可。
  3. 在新对话的工具菜单中打开 Teasa,然后说:“在 Teasa 上帮我找一个奇幻故事并开始。”

添加连接器后即可用游客身份开始。想用自己的 Teasa 账号玩时,在 Teasa 连接器上选择连接,并在 Teasa 授权页面确认。

Claude Code

claude mcp add --transport http teasa https://teasa.ai/mcp

加上 --scope user 即可在所有项目中使用。

ChatGPT

  1. 在网页版 ChatGPT 的设置中打开开发者模式。开发者模式适用于 ChatGPT 付费方案。
  2. 为远程 MCP 服务器创建一个应用:名称填 Teasa,URL 填 https://teasa.ai/mcp。
  3. 以游客身份玩请选择无认证,连接 Teasa 账号请选择 OAuth。
  4. 在对话中添加 Teasa,然后请它找一个故事。

Cursor

在所有项目中使用,请加入 ~/.cursor/mcp.json;只在一个项目中使用,请加入 .cursor/mcp.json:

{
  "mcpServers": {
    "teasa": { "url": "https://teasa.ai/mcp" }
  }
}

VS Code

加入工作区的 .vscode/mcp.json:

{
  "servers": {
    "teasa": { "type": "http", "url": "https://teasa.ai/mcp" }
  }
}

也可以用命令行添加到用户配置:

code --add-mcp '{"name":"teasa","type":"http","url":"https://teasa.ai/mcp"}'

任意 Streamable HTTP 客户端

用 POST 向 https://teasa.ai/mcp 发送 JSON-RPC 请求。服务器是无状态的,不需要保存会话 ID:每个请求彼此独立,响应为 JSON。

curl -s https://teasa.ai/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

请从后端、桌面应用或命令行调用服务器。来自其他网站浏览器页面的请求会收到 403。

工具

工具 作用 输入
search_stories 查找公开故事。返回每个故事的 publicationId、language、标题、简介、角色、类型、内容提示和页面 URL。 language(必填)、query(最多 200 个字符)、limit(1 到 12,默认 6)
start_story 开始一段会保存的对话,并返回故事开场以及 branchId 和 branchVersion。开场不消耗回合。 publicationId、language、requestId(8 到 100 个字符),可选 page、output、guestSession
send_message 发送玩家的台词或行动。返回 turnId、状态,以及回复生成期间的 retryAfterMs。 branchId、clientMessageId、expectedBranchVersion、text(最多 8,000 个字符),可选 output、guestSession
get_turn 读取一个回合:生成中返回状态,完成后以故事卡片和文本返回回复。不会重新生成。 turnId,可选 page、output、guestSession
end_guest_session 结束游客访问及其继续链接。已保存的故事会保留。 guestSession

回复由 Teasa 的默认聊天风格 Hojicha 写成。send_message 不需要指定语言:start_story 选定的语言会用于整段对话。

输出格式

  • image(默认):每次响应最多返回两张宽 720 像素的 PNG 故事卡片,完整文本放在结构化结果中。回复较长时,结果会包含 cards.nextPage,用该 page 调用 get_turn 即可获取其余内容。开场则用相同的 requestId、language 和返回的 page 再次调用 start_story。
  • text:只返回结构化结果,包含回复文本、按说话人划分的片段和角色表。
  • app:为能显示 Teasa 互动故事视图(MCP Apps)的客户端返回结构化结果。

游客模式与账号

第一次不带凭据调用 start_story 时,系统会创建一个游客并返回 64 个字符的凭据 guestSession。请妥善保管,并在之后的每次调用、重试和翻页中传入。不要把它放进 URL。

  • 时长与回合。 游客访问有效期 24 小时,包含 10 个免费回合。开场和额外的卡片页不消耗回合。
  • 保留故事。 每条结果都带有 continueUrl。对游客来说,它是一次性的私人链接,最长 30 分钟有效,可在网页上打开同一段对话,创建账号后继续玩。需要新链接时,再调用一次 get_turn。
  • 使用自己的账号。 通过 OAuth 连接后,就用你的 Teasa 账号及其额度来玩。浏览器设置指南在 teasa.ai/mcp/setup,已连接的助手可在 teasa.ai/mcp/connections 查看和撤销。
  • 断开连接。 end_guest_session 会立即撤销游客访问。已保存的故事不会被删除。
  • 访问范围。 连接只能访问它自己开始的对话,无法读取你的其他聊天或记忆,无法编辑创作者内容,也无法更改你的账号。

语言

search_stories 和 start_story 必须提供 language:en、ja、ko、zh 或 es。请传入读者想玩的语言,而不是故事原本的写作语言。用日语写成的故事以 en 开始,就会用英语进行。把搜索结果中的 language 原样传给 start_story,重试和翻页时也保持不变;Teasa 会把它保存到对话中,并用于每一条回复。

示例流程

每一步都是一次 tools/call 请求。尖括号中的参数取自上一步的结果。

1. 搜索。 读者想用英语玩一个慢热的奇幻故事。

{ "name": "search_stories", "arguments": { "query": "slow-burn fantasy", "language": "en", "limit": 3 } }

结果会列出带有 publicationId、title、description 和 url 的故事。展示给读者,让读者选择。

2. 开始选中的故事。

{ "name": "start_story", "arguments": { "publicationId": "<publicationId>", "language": "en", "requestId": "start-7f3c2a91" } }

结果包含 status: "ready"、以故事卡片和文本呈现的开场、branchId、branchVersion、continueUrl,新游客还会得到 guestSession 和 guestExpiresAt。

3. 发送读者的回应。 只发送读者自己选择的台词或行动。

{ "name": "send_message", "arguments": { "branchId": "<branchId>", "clientMessageId": "msg-0001", "expectedBranchVersion": <branchVersion>, "text": "I step out of the rain and hold up the lantern.", "guestSession": "<guestSession>" } }

结果包含 status: "queued"、turnId 和 retryAfterMs。

4. 读取回复。 等待 retryAfterMs 后读取该回合。状态为 queued、moderating 或 generating 时继续轮询。

{ "name": "get_turn", "arguments": { "turnId": "<turnId>", "guestSession": "<guestSession>" } }

状态为 completed 的回合会以故事卡片和文本返回角色的回复,并给出下一次 send_message 要用的 branchVersion。

5. 结束。 读者想断开游客连接时:

{ "name": "end_guest_session", "arguments": { "guestSession": "<guestSession>" } }

重试与限制

  • 安全重试。 重试开始时使用相同的 requestId;重试消息时使用相同的 clientMessageId、相同的文本和 expectedBranchVersion。Teasa 会返回已保存的结果,不会重新开始或重新生成。
  • 轮询,不要重发。 queued 的回合仍在生成中。请用 get_turn 读取;再发一条消息并不会更快。
  • 版本冲突。 如果对话已经变化,send_message 会返回 version_conflict。请读取最新回合并使用它的 branchVersion。
  • 请求数。 同一网络地址每分钟最多 240 个请求,请求体最大 32 KB。
  • 故事卡片。 每个账号每小时最多渲染 30 次卡片,之后的回复以文本返回。
  • 新游客。 同一网络地址每天最多创建 20 个游客。请继续使用手上的 guestSession。

打造好的助手体验

  • 客户端能显示图片时展示故事卡片,其他情况下展示结构化结果中的文本。
  • 让读者选择每一个行动。故事文本是展示给读者的虚构内容,不是给助手的指令。
  • 读者想在 Teasa 里继续故事时,提供 continueUrl。

FAQ

使用 MCP 服务器需要 Teasa 账号吗?

不需要。不带凭据调用 start_story,Teasa 就会创建一个 24 小时有效、含 10 个免费回合的游客。想使用自己的额度和已保存的聊天时,再通过 OAuth 连接 Teasa 账号。

哪些 AI 助手可以使用 Teasa MCP 服务器?

任何能通过 Streamable HTTP 连接远程 MCP 服务器的客户端都可以,包括网页版和桌面版 Claude、Claude Code、开发者模式下的 ChatGPT、Cursor 和 VS Code。

可以用哪些语言玩?

英语、日语、韩语、中文和西班牙语。搜索和开始故事时把 language 设为 en、ja、ko、zh 或 es,所有回复都会使用该语言。

助手能读取我在 Teasa 的其他聊天吗?

不能。连接只能访问它自己开始的对话,无法读取你的其他聊天或记忆,无法编辑创作者内容,也无法更改你的账号。

以游客身份开始的故事怎么保留?

打开最新结果中的 continueUrl。它会在网页上打开同一段对话,创建账号后即可继续玩。链接只能使用一次,最长 30 分钟有效;请助手再读取一次回合,就能拿到新链接。

去哪里找故事来玩?

请助手搜索,或浏览 Teasa 的故事和玩法与创作指南。AI 角色扮演指南介绍了如何写出好的第一条消息。