返回市场
神话织造者

神话织造者

作者:Adist3192 星标更新:2025-11-15

项目介绍

概述

MythWeaver 是一个使用 Gradio 和模型上下文协议(MCP)构建的多模态、代理叙事系统。其核心创新是一个自定义叙事引擎 MCP 服务器,该服务器提供了一种可复用工具,用于任何应用程序的上下文感知叙事生成。用户通过文本以及可选的地图/草图上传进行交互。系统解释绘制内容,将其转换为结构化的场景图,生成风格化地图,并利用叙事引擎 MCP 动态生成目标、情节钩子和叙事机会。

新颖贡献: 叙事引擎 MCP 服务器提供了领域无关的叙事生成工具,可用于游戏、互动小说、写作工具、桌面角色扮演游戏助手和教育应用。


功能

核心 MCP 创新

  • 叙事引擎 MCP 服务器 - 新颖且可复用的 MCP 工具,用于叙事生成
    • 分析结构化上下文(世界状态、实体、关系、场景图)
    • 生成叙事目标、情节钩子、冲突和解决方案
    • 领域无关设计适用于故事、游戏、教育和写作工具
    • 提供标准化的 MCP 接口,包含多种工具

应用功能

  • 基于文本的冒险,具有用户引导或半自主叙述
  • 上传草图/地图以实现地理驱动的故事讲述
  • 视觉解析为结构化的场景图(Gemini Vision MCP)
  • 高分辨率地图生成(Flux/SDXL MCP)
  • 长上下文的世界记忆(Memory Store MCP)
  • 支持移动设备的 Gradio 6 界面

架构(文本图)

用户
 └── Gradio UI
       ├── 文本输入
       ├── 图像上传
       └── 任务选择
             │
             ▼
      Claude 4.5 Sonnet (Anthropic, 调度器)
             ├── 世界记忆推理
             ├── 叙事生成
             ├── 工具选择与路由
             └── 多步规划
             │
             ├── ⭐ 叙事引擎 MCP (自定义 - 我们的新颖贡献)
             │       → generate_narrative_objectives(context, genre, count)
             │       → analyze_narrative_opportunities(scene_graph, entities)
             │       → 返回带有叙事钩子的结构化目标
             │
             ├── Gemini Vision MCP (Google)
             │       → parse_scene(image) → 场景图
             │
             ├── 地图生成器 MCP (Flux/SDXL)
             │       → generate_map(scene_graph) → 风格化地图图像
             │
             └── 记忆存储 MCP
                     → update_world(locations, NPCs, events)
                     → query_world() → 世界状态
             │
             ▼
      Gradio 输出显示
             ├── 故事文本
             ├── 生成的地图
             └── 任务选项

关键点: ⭐ = 为本次黑客马拉松构建的新颖 MCP 服务器


技术栈

前端

  • Gradio 6 - 具有图像上传和任务选择的聊天界面

调度器模型

  • Claude 4.5 Sonnet - 规划、叙事生成、工具路由

MCP 服务器(4个核心工具)

MCP 服务器目的状态
⭐ 叙事引擎 MCP上下文感知的叙事生成自定义 - 我们的贡献
Gemini Vision MCP从草图中提取场景图现有
地图生成器 MCP高分辨率地图生成现有/自定义
记忆存储 MCP持久的世界状态现有

叙事引擎 MCP 服务器详情

暴露的工具:

# 工具 1: generate_narrative_objectives
输入:
  - context: dict         # 世界状态、实体、关系
  - narrative_style: str  # 类型/语气(奇幻、科幻、神秘等)
  - count: int           # 目标数量(1-5)
  - difficulty: str      # 简单、中等、困难

输出:
  - 目标列表,包括:
    - description: str
    - narrative_hook: str       # 这对故事为什么重要
    - success_criteria: list
    - conflicts: list           # 潜在障碍/反派
    - related_entities: list    # 涉及的NPC、地点
    - estimated_complexity: str

# 工具 2: analyze_narrative_opportunities
输入:
  - scene_graph: dict    # 结构化场景数据
  - character_state: dict # 角色关系、目标、冲突

输出:
  - 叙事机会列表:
    - opportunity_type: str  # 冲突、神秘、浪漫、发现等
    - description: str
    - involved_entities: list
    - dramatic_potential: float

实现:

  • 使用 mcp SDK 的 Python MCP 服务器
  • 基于 LLM 的分析(Claude 进行推理,结构化输出)
  • 使用 Pydantic 模型确保类型安全
  • 领域无关设计 - 适用于任何叙事上下文

代理能力

  • 通过 Claude 调度器进行多步骤叙事规划
  • 根据用户输入自动路由工具
  • 场景图推理和验证
  • 世界记忆管理和更新
  • 通过叙事引擎 MCP 进行上下文感知的叙事生成
  • 半自主的故事叙述流程

用户流程

  1. 用户通过文本开始冒险或上传草图/地图
  2. 如果上传了图像:
    • Gemini Vision MCP → 提取场景图
    • 地图生成器 MCP → 创建风格化地图
  3. 记忆存储 MCP → 更新世界状态
  4. Claude 调度器 → 生成故事延续
  5. 叙事引擎 MCP → 分析上下文并生成1-3个动态目标
  6. Gradio 显示:故事文本、地图和任务选项
  7. 用户选择一个任务或继续探索
  8. 循环重复,更新记忆和上下文

MCP 工具总结

工具目的类型
⭐ 叙事引擎 MCP上下文感知的叙事生成自定义
Gemini Vision MCP草图 → 场景图现有
地图生成器 MCP场景图 → 地图图像现有/自定义
记忆存储 MCP持久的世界状态现有

设置(uv)

1. 安装依赖项

uv sync

2. 运行应用

uv run python app.py

建议项目结构

/mythweaver
  ├── app.py                          # 主要的 Gradio 应用程序
  ├── README.md
  ├── pyproject.toml
  ├── .gitignore
  │
  ├── /mcp_servers
  │     └── narrative_engine/         # ⭐ 自定义叙事引擎 MCP 服务器
  │           ├── server.py           # MCP 服务器实现
  │           ├── schemas.py          # 叙事对象的 Pydantic 模型
  │           ├── generator.py        # 基于 LLM 的叙事逻辑
  │           └── README.md           # 用于复用的独立文档
  │
  ├── /mcp_clients                    # 现有 MCP 服务器的客户端集成
  │     ├── gemini_vision.py          # Gemini Vision MCP 客户端
  │     ├── map_generator.py          # 地图生成器 MCP 客户端
  │     └── memory_store.py           # 记忆存储 MCP 客户端
  │
  ├── /prompts
  │     ├── orchestrator.md           # Claude 系统提示
  │     └── narrative_generation.md   # 叙事引擎提示
  │
  ├── /demos
  │     └── cli_demo.py               # 使用叙事引擎 MCP 的独立 CLI
  │
  └── /assets
        └── example_maps/             # 测试用的示例草图

黑客马拉松提交检查表

  • 自定义叙事引擎 MCP 服务器 - 新颖且可复用的工具,具有清晰的API
  • MythWeaver Gradio 应用 - 主要演示使用叙事引擎
  • CLI 演示 - 第二个应用证明可复用性
  • 多模态流水线(草图 → 场景图 → 地图 → 叙事目标)
  • 自主代理行为 通过 Claude 调度
  • 独立的 MCP 文档 - 以便其他人可以集成它
  • 演示视频(1-5分钟展示两个应用)
  • 社交媒体帖子 包含 #MCPBirthday 标签
  • GitHub 仓库 提交给 MCP-1st-Birthday 组织

为何新颖

  1. 首个叙事生成 MCP 服务器 - 没有现有的 MCP 工具能进行上下文感知的故事生成
  2. 领域无关设计 - 适用于奇幻、科幻、神秘、教育等
  3. 已证明的可复用性 - 两个独立的演示应用使用相同的 MCP 服务器
  4. 标准化接口 - 清晰的API,任何 MCP 客户端都可以调用
  5. 多代理调度 - 展示 MCP 服务器在复杂工作流中的协同工作

演示流程

  1. 开始冒险 - 文本输入或草图上传
  2. 视觉解析 - Gemini Vision MCP 提取场景图
  3. 地图生成 - 地图生成器 MCP 创建风格化地图
  4. 故事生成 - Claude 调度器编写叙事
  5. 目标生成 - 叙事引擎 MCP 分析上下文并提出1-3个叙事目标
  6. 用户交互 - 选择任务或继续探索
  7. 记忆更新 - 记忆存储 MCP 持久化世界变化
  8. 循环 - 重复更新上下文

预期影响

叙事引擎 MCP 服务器可以被以下群体采用:

  • 游戏开发者 - 对于RPG和冒险游戏的动态任务/目标生成
  • 互动小说平台 - 分支叙事建议(Twine, ChoiceScript等)
  • 写作工具 - 上下文感知的情节建议和故事提示(Scrivener, Obsidian 插件)
  • 桌面角色扮演游戏工具 - AI 地下城主辅助(Roll20, Foundry VTT)
  • 教育应用 - 生成基于故事的学习场景
  • 创意AI应用 - 任何需要理解叙事上下文的应用