mcpField
A
Archivist AI

Archivist AI

远程服务
myarchivist.ai游戏娱乐45 天前更新

关于 Archivist AI

Archivist AI MCP Server 将 Archivist AI 的 TTRPG 战役资料接入 AI 客户端,面向游戏主持人和玩家。它覆盖角色、场景、地点、任务、日志等内容,并提供读取与编辑工具。

主要功能

  1. 01读取战役、场次和转录文本
  2. 02管理角色、阵营、地点与物品
  3. 03创建和更新任务与日志
  4. 04查询剧情节点、关键时刻和摘录
  5. 05管理实体之间的关联

适用场景

  1. 01查询最近一场游戏的摘要
  2. 02创建并关联 NPC、阵营与地点
  3. 03追踪任务状态和相关角色
  4. 04维护战役日志与剧情资料

MCP 相关

这是 Archivist AI 的远程 MCP 服务,提供战役资料的读取和写入工具;写入工具需要适用的授权范围。Discord 工具位于单独的 MCP 端点。

配置

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

服务地址https://mcp.myarchivist.ai/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 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

Archivist AI MCP 服务

MIT License Treeware Larabelles

GitHub PHPunit Status GitHub PHPStan Status GitHub Pint Status GitHub PHPMND Status

Discord Smithery Glama mcp.so

Archivist AI 的官方 Model Context Protocol(MCP)服务——这是一个面向游戏主持人和玩家的 TTRPG 战役记忆平台。

注册表元数据位于 server.json 中。通过 .github/workflows/publish-mcp.yml 自动根据版本标签发布到 官方 MCP 注册表(git tag v3.0.1 && git push origin v3.0.1)。

将 Claude、ChatGPT、Cursor、Notion 和 Windsurf 等 AI 助手直接连接到你的战役数据:角色、场次、地点、派系、物品、任务、日志、关键时刻、英雄奖项、引言、聚光时刻等。

快速入门

MCP 服务 URL: https://mcp.myarchivist.ai/mcp

Discord 工具位于同级主机:https://discord.myarchivist.ai/mcp。这是一个独立的 MCP 资源(OAuth + 你的录音机器人),不会取代此处的战役工具。

Claude Desktop

Claude Desktop 需要使用 mcp-remote 代理(必须安装 Node.js)。

将以下内容添加到你的 claude_desktop_config.json(macOS 上为 ~/Library/Application Support/Claude/claude_desktop_config.json,Windows 上为 %APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "archivist-ai": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.myarchivist.ai/mcp",
        "--header",
        "X-API-Key:${ARCHIVIST_API_KEY}"
      ],
      "env": {
        "ARCHIVIST_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

将 YOUR_API_KEY 替换为你从 app.myarchivist.ai 获取的 Archivist AI API 密钥。保存后重启 Claude Desktop。

API 密钥必须通过 X-API-Key 标头发送。请勿将 API 密钥放入 Authorization: Bearer 标头;Bearer 凭据专用于 OAuth 访问 令牌。

OpenCode

OAuth(推荐):

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "archivist-ai": {
      "type": "remote",
      "url": "https://mcp.myarchivist.ai/mcp"
    }
  }
}

若要改用 API 密钥,请停用 OAuth 自动检测,并通过 X-API-Key 发送密钥:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "archivist-ai": {
      "type": "remote",
      "url": "https://mcp.myarchivist.ai/mcp",
      "oauth": false,
      "headers": {
        "X-API-Key": "{env:ARCHIVIST_API_KEY}"
      }
    }
  }
}
Cursor

将以下内容添加到项目中的 .cursor/mcp.json:

{
  "mcpServers": {
    "archivist-ai": {
      "url": "https://mcp.myarchivist.ai/mcp"
    }
  }
}
Windsurf

将以下内容添加到 MCP 配置中:

{
  "mcpServers": {
    "archivist-ai": {
      "serverUrl": "https://mcp.myarchivist.ai/mcp"
    }
  }
}
ChatGPT

Archivist AI 提供 ChatGPT 插件。在 ChatGPT 插件商店中搜索“Archivist AI”。

提示词示例

  • “列出我的所有战役,然后总结我的《Strahd 的诅咒》战役最近一场游戏的内容。”
  • “创建一名名为 Mirelle Voss 船长的新 NPC,她是一名为 Silver Hand 派系效力的走私者,并将她关联到 Dusk 港地点。”
  • “在我的战役中添加名为‘找回月长石’的任务,然后列出所有尚未完成的任务及相关角色。”

可用工具

读取工具不会产生破坏性影响,且具有幂等性。写入工具遵循标准 REST 语义——删除操作具有破坏性且幂等;PATCH 非幂等;PUT 幂等。所有返回包含文本的描述(角色、派系、地点、物品、时刻、节拍、游戏场次、日志)的读取工具都接受可选的 with_links 参数——请参阅下方的 Wiki 链接,了解为何在编辑前几乎总是应传入 with_links: true。

以下内容不会开放:删除战役、删除游戏场次、仅产品视图端点(节拍重新排序/批量编辑、战役设置、演员阵容/成员管理)、分段录音上传,以及 AI 图像生成。

OAuth 作用域与写入权限

通过 https://app.myarchivist.ai 连接的 OAuth 客户端会在授权时请求作用域。每个写入工具(创建/更新/删除 + 图像上传)还要求调用方的令牌具有 agent_write 作用域。

MCP 会在 tools/list 中遵循 API 的权限控制:不具备 agent_write 的 Agent 客户端只能看到读取工具;即使尝试调用写入工具,也会收到“找不到工具”的 JSON-RPC 错误。API 密钥凭据和非 Agent OAuth 客户端不受此筛选限制——API 是它们的权威权限控制方,所有工具都会保持可见。

在 agent_write 公布之前已连接的现有 OAuth 客户端,需要重新授权以获取包含此新作用域的令牌。

战役
工具描述
list_campaigns列出你的战役。返回分页列表。
get_campaign按 ID 获取指定战役。
get_campaign_stats获取战役统计信息:角色数量、游戏场次数量等。
create_campaign创建新战役。受账户订阅级别的战役数量上限限制。
update_campaign部分更新战役元数据(标题、描述、基调、公开/成人标记)。
场次
工具描述
list_sessions列出游戏场次。可按场次类型或仅公开场次进行筛选。
get_session按 ID 获取场次。可选是否包含相关的故事节拍和关键时刻。
get_session_cast_analysis获取角色分析:发言占比明细和核心场次指标。
get_session_transcript获取游戏场次的清理后文字记录,包括发言内容、全文和汇总统计数据。
get_session_handout获取游戏场次生成的场次资料,包括摘要、纲要、焦点和重要时刻。
patch_session部分更新(标题、session_date、摘要、备注、类型、公开状态、图片)。维基链接采用显式链接约定。
故事结构
工具描述
list_beats按索引顺序列出故事节拍。故事节拍代表故事时刻(主要、次要、步骤)。
get_beat按 ID 获取指定的故事节拍。
create_beat创建故事节拍。维基链接采用显式链接约定。
update_beat部分更新故事节拍。
delete_beat删除故事节拍(子故事节拍的 parent_id 将被清空)。
list_moments列出战役或场次中的关键时刻(Moments)。可按标签、类别(通常为 key-moment)或类型筛选。包含图片和展示元数据。
get_moment按 ID 获取关键时刻,包括图片 URL、类别、类型和元数据。
create_moment创建关联到场次的关键时刻。设置 categories=["key-moment"] 可创建关键时刻卡片。维基链接采用显式链接约定。
update_moment部分更新关键时刻,包括图片和合并后的展示元数据。
delete_moment删除关键时刻。
精彩内容
工具描述
list_hero_awards列出战役或场次中的英雄奖项。
get_hero_award按 ID 获取英雄奖项。
create_hero_award创建关联到场次的英雄奖项。
update_hero_award部分更新英雄奖项。
delete_hero_award删除英雄奖项。
list_quotes列出战役或场次中令人难忘的引言。
get_quote按 ID 获取引言。
create_quote创建关联到场次的引言(如有需要,将创建回顾流水线)。
update_quote部分更新引言。
delete_quote删除引言。
list_spotlights列出回顾焦点(GEMS 卡片,不是场次资料中的焦点)。
get_spotlight按 ID 获取回顾焦点。
create_spotlight创建关联到场次的回顾焦点。
update_spotlight部分更新回顾焦点。
delete_spotlight删除回顾焦点。
世界构建
工具描述
list_characters列出战役中的角色。可按名称、类型(PC/NPC)或审批状态筛选。
get_character按 ID 获取角色,包括别名、背景故事和说话者关联。
create_character创建角色。描述和背景故事中的 wikilink 会自动解析。
update_character部分更新角色。编辑描述或背景故事前,请使用 with_links: true 读取。
delete_character删除角色。API 会自动移除所有入站 [[alias]] 引用的方括号。
list_factions列出派系。派系代表公会、组织或其他团体。
get_faction按 ID 获取指定派系。
create_faction创建派系。描述中的 wikilink 会自动解析。
update_faction部分更新派系。编辑前,请使用 with_links: true 读取。
delete_faction删除派系。
list_locations列出地点。地点可以嵌套(城市、酒馆、地牢等)。
get_location按 ID 获取指定地点。
create_location创建地点。描述中的 wikilink 会自动解析。
update_location部分更新地点。编辑前,请使用 with_links: true 读取。
delete_location删除地点(子地点的 parent_id 会被清空)。
list_items列出物品。物品包括武器、盔甲、神器和其他重要对象。
get_item按 ID 获取指定物品。
create_item创建物品。描述中的 wikilink 会自动解析。
update_item部分更新物品。编辑前,请使用 with_links: true 读取。
delete_item删除物品。
任务
工具描述
list_quests分页列出任务。可按状态或类别筛选。
get_quest获取完整展开的任务:目标、进度日志、相关实体和会话来源。
create_quest创建任务条目。任务不参与 wikilink 系统。
update_quest部分更新任务。你发送的列表会替换记录中对应的列表。
delete_quest删除任务及其目标、进度条目和相关引用。
日志
工具描述
list_journals列出日志条目。列表中不包含内容;如需完整内容,请使用 get_journal。
get_journal按 ID 获取日志条目,包括完整内容和权限级别。
create_journal创建日志条目。返回 {success, id}。
update_journal更新日志条目(PUT)。返回 {success, id}。
delete_journal删除日志条目(尽力删除嵌入数据)。
list_journal_folders按路径和位置列出日志文件夹,以便呈现树形结构。
get_journal_folder按 ID 获取指定日志文件夹。
create_journal_folder创建日志文件夹(仅限所有者/管理员;路径在每个战役中必须唯一)。
update_journal_folder更新日志文件夹(PUT)。
delete_journal_folder删除文件夹;条目会移至战役根目录。
关系
工具描述
list_links列出实体之间的链接。可按源/目标实体和关系别名筛选。
create_link在两个实体之间创建一行 Link(如果 (from_type, from_id, alias) 冲突,则执行 upsert)。
update_link更新现有链接的别名。
delete_link删除单行 Link(不会重写源文本)。
bulk_link_maintenance通过 webhook 触发战役范围的链接维护(添加/移除/更新)——需要有效的订阅等级。
图片
工具描述
get_image_usage返回当前调用账户在某个战役中的图片配额:used/limit、tier、can_access 和周期时间范围。
init_image_upload直接上传的第 1 步:预留一个 object_key,并获取预签名 S3 PUT URL。然后,客户端使用相同的 Content-Type 将原始图片字节 PUT 到 upload_url。有效期为 expires_in_seconds。
complete_image_upload直接上传的第 2 步:验证已上传的对象,执行 NSFW 审核,并在 attach: true 时将实体的 image 字段设为审核后的 URL。
delete_entity_image移除图片。提供 entity_type + entity_id(解除关联并删除对象),或提供 image_url(仅删除对象)。

Wikilinks

Archivist AI 中的描述、摘要、事件内容和日志正文可以包含 [[Target Name|Optional Alias]] 标记,这些标记会解析为实际记录。所有涉及带有 wikilinks 的文本字段的写入工具都必须遵循一个简单的协议,以免破坏现有链接。

必须遵守的一条规则

写入前始终使用 with_links: true 读取。 Character、Faction、Location、Item、Moment、Beat、Session 和 Journal 的所有 Get/List 工具都接受此参数。API 默认会剥离 wikilinks,以便读取方获取干净的文本,这意味着简单的读取/修改/写入操作会删除源记录中的所有 [[…]]。传入 with_links: true 会返回保留方括号的文本,以便你在写入时保留这些标记。

每种记录的约定
记录类型约定
Character、Faction、Location、Item、Character.backstory自动解析。 写入时,API 会从新文本中提取 [[…]],在同一战役中匹配每个标记对应的记录,并同步 Link 表(插入新记录、更新已更改的记录、删除已移除的记录)。与可匹配目标对应的新 [[Alias]] 标记会自动创建 Link。
GameSession、Beat、Moment仅显式链接。 对于没有对应源记录 Link 行的 [[Alias]] 标记,API 会将其剥离。要添加 wikilink,先使用正确的 from_type/from_id 调用 create_link,然后在写入文本时加入 [[Alias]]。
Journal仅渲染。 存储的 [[…]] 标记会在使用 with_links: true 读取时渲染为链接,但写入时不会自动填充 Link 表。如果需要持久化链接跟踪,请使用 create_link(from_type=Journal)。
Quest不支持 wikilinks。 Quest 文本字段会原样存储。关系通过 related_* 列表字段建模,而不是通过 wikilinks。
删除(任何记录)API 会自动从所有引用该记录的文本字段中移除其 [[alias]] 引用的方括号。无需手动清理。
重命名和重新指向
  • 重命名别名:编辑方括号内的内容。[[Alice|Al]] → [[Alice|Ali]]。
  • 重新指向其他目标:更改可见的目标名称。[[Alice]] → [[Alicia]]。
  • 移除链接:在文本中移除别名的方括号(自动解析),或调用 delete_link(显式)。
  • 对百科目标进行战役范围的重命名或重新指向:使用 bulk_link_maintenance,并传入 operation: "update"、new_alias 和/或 new_target_id。API 会通过后台 webhook 重写所有引用文本字段,并返回一个 task_id。

图片

可通过直接上传为 Character、Faction、Location、Item、Moment、Session 以及战役本身添加实体图片。MCP 服务不提供 AI 图片生成工具——图片生成仍是 Archivist AI 应用中的产品功能,也是 API 上的 REST 端点。

直接上传(两步)

对于用户已保存在磁盘或内存中的图像,请使用预签名 URL 流程:

  1. 调用 init_image_upload,并提供 campaign_id、entity_type、entity_id、file_name 和 content_type(必须为 image/*)。你会收到 object_key、upload_url、public_url 和 expires_in_seconds。
  2. 你的客户端(或人类协作者)在 URL 过期前,向 upload_url 发起 HTTP PUT 请求,上传原始图像字节,并使用相同的 Content-Type 标头。此步骤在 MCP 传输之外进行。
  3. 使用 object_key、entity_type、entity_id 和 attach(默认为 true)调用 complete_image_upload。API 会验证上传内容、执行 NSFW 审核,并在 attach 为 true 时将实体的 image 字段设为审核后的 public_url。

无法发起任意 HTTP PUT 请求的 Agent,应在步骤 1 和步骤 3 之间将 PUT 步骤交由人工完成。

移除

delete_entity_image 可通过以下两种模式之一,移除某个 campaign 中的图像:

  • 按实体移除:传入 entity_type + entity_id。API 会从记录中解除图像关联,并删除底层对象。
  • 按 URL 移除:传入受管理的 image_url(例如来自之前 init_image_upload 的响应)。仅删除对象。

故障排查

  • **身份验证失败或工具返回 401:**重新连接服务并再次完成 OAuth 登录,或检查 app.myarchivist.ai 中的 API 密钥是否为最新版本。
  • **缺少写入工具(仅适用于 Agent OAuth 客户端):**缺少 agent_write 作用域的 Agent OAuth 客户端不会显示写入工具。重新连接并批准写入权限。API 密钥和非 Agent OAuth 客户端始终可以看到所有工具;请参阅 OAuth 作用域和写入权限。
  • **Claude Desktop 无法连接:**它需要 mcp-remote 代理和 Node.js;编辑配置后,请重启 Claude Desktop。
  • **编辑后 Wikilinks 消失:**更新记录前,请使用 with_links: true 读取记录。请参阅 Wikilinks。

隐私与支持

评论

支持 Markdown

第一次接触 MCP?

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

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