RPG冒险解析工具

Tome是一款本地MCP服务器工具,用于解析、组织和重构桌面RPG冒险书籍内容为可搜索的Obsidian笔记。

  • by TimHinde
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 TimHinde/Tome-MCP

使用说明

册

将任何TTRPG冒险PDF解析为即用型黑曜石保险库。

重要提示: Tome的目的是 解析人工编写的内容, 不 生成新的AI内容。它只是使用人工智能来帮助从冒险模块中提取现有文本并将其组织成结构化笔记。

Tome是一个本地MCP(模型上下文协议)服务器,帮助Game Masters处理现有的桌面RPG材料。它扮演着图书管理员的角色:解析、组织和重新格式化冒险书中的内容,将其转化为相互关联、可搜索的黑曜石笔记。

快速开始

# Run the MCP server (stdio transport, for use with Claude Desktop, Gemini, etc.)
venv/bin/python server.py

# Run tests
venv/bin/python -m unittest test_obsidian.py -v

环境变量(.env 项目根目录下的文件):

  • GEMINI_API_KEY --使用Gemini提取实体时需要(默认)
  • ANTHROPIC_API_KEY --与Claude进行实体提取所需
  • OPENAI_API_KEY --使用OpenAI(gpt-4o)提取实体所需

与聊天应用程序集成(适用于非技术用户)

您可以使用模型上下文协议(MCP)在您最喜欢的AI聊天应用程序中直接轻松使用Tome。以下是如何设置它:

克劳德桌面

  1. 打开克劳德桌面。
  2. 首选 设置 -> 开发者 然后单击 编辑配置.
  3. 这将打开 claude_desktop_config.json 文件。将以下内容添加到 mcpServers 章节:
    {
      "mcpServers": {
        "tome": {
          "command": "/absolute/path/to/Tome/venv/bin/python",
          "args": ["/absolute/path/to/Tome/server.py"],
          "env": {
            "GEMINI_API_KEY": "your_gemini_key_here",
            "OPENAI_API_KEY": "your_openai_key_here",
            "ANTHROPIC_API_KEY": "your_anthropic_key_here"
          }
        }
      }
    }
    
    (确保更换 /absolute/path/to/Tome 使用Tome文件夹的实际路径,并填写至少一个API密钥)。
  4. 保存文件并重新启动Claude Desktop。

光标

  1. 打开光标并转到 设置.
  2. 搜索 主控程序 或前往 特性 -> 主控程序 部分。
  3. 点击 +添加新的MCP服务器.
  4. 将类型设置为 命令.
  5. 将名称设置为 tome.
  6. 将命令设置为: /absolute/path/to/Tome/venv/bin/python /absolute/path/to/Tome/server.py
  7. 单击“保存”。(请确保您的API密钥设置在 .env Tome项目根目录中的文件)。

Roo代码/临床

  1. 打开Roo Code设置面板。
  2. 去 MCP服务器 选项卡。
  3. 编辑 mcp_settings.json 该文件具有与上述Claude Desktop相同的配置块。

管道

Tome通过三步流程处理冒险:

Adventure PDF → Extract Entities → Enrich with References → Obsidian Vault

步骤1:提取实体(extract_entities_llm)

将原始冒险文本发送给LLM(Gemini、Claude或OpenAI)。返回结构化JSON,其中包含NPC、位置、遭遇、事件、物品和怪物的章节。

第二步:丰富参考文献(enrich_with_references)

浏览提取的实体,并将其与当地参考资料(如D&D 5.2e SRD)进行交叉引用。将统计块和规则文本直接注入数据中。 可选--适用于任何系统的参考文档。

第三步:生成黑曜石(generate_obsidian)

将富集的数据作为嵌套的黑曜石保管库写入磁盘,其中包含:

  • YAML 前注 和 chapter, location, motivation, monsters, rarity 数据视图查询的字段
  • [[wikilinks]] 跨vault连接实体
  • _Home.md 带有静态汇总表和实时数据视图查询块的索引页面
  • 章节文件夹 包含NPC、地点、遭遇、事件、物品、怪物的子文件夹

MCP工具

工具 目的
analyze_pdf 从PDF中提取TOC并检测文档类型
extract_pdf_text 从页面范围中提取原始文本
extract_entities_with_llm LLM驱动的实体提取→ 结构化JSON
enrich_entities 对照当地参考材料的交叉参考实体
generate_obsidian_markdown 将丰富的实体写成黑曜石金库
query_references 搜索本地参考标记文件
list_references 列出可用的参考主题

实体模型

  • NPC: 姓名、动机、秘密、雕像参考、位置
  • 位置: 姓名,大声阅读描述,遭遇,抢劫,出口
  • 遭遇: 名称,大声朗读,描述,力学,怪物,NPC在场
  • 活动: 名称、描述、力学、下一步
  • 项目: 名称、稀有性、描述、力学
  • 怪物: 名称,定子块

标准物质

D&D 5.2e SRD作为默认参考包在 references/SRD/.TME是系统不可知论的——你可以指出 reference_dir 使用Pathfinder、Call of Cthulhu或任何其他系统的参考资料。

本工作包括海岸奇才有限责任公司系统参考文件5.2(“SRD 5.2”)中的材料,可在以下网址获得https://www.dndbeyond.com/srd.SRD 5.2遵循知识共享署名4.0国际许可协议。

建筑

server.py              FastMCP entrypoint — registers all tools
├── pdf_tools.py       PDF → text (PyMuPDF)
├── reference_tools.py Local reference search (header-priority regex)
└── obsidian_tools.py  LLM extraction + enrichment + Obsidian generation

隐私

RPG材料通常有版权。Tome在本地处理所有事务。唯一的外部调用是用于实体提取的LLM API。