Token导航 LogoToken导航TokenDH.com
Music and Madness Sync Bridge logo
文档知识未说明官方级别未说明来源级核验

Music and Madness Sync Bridge

MCP Server

一个用于在FoundryVTT和Notion之间同步数据的工具,支持手动同步、冲突跟踪和媒体复制。

工具数

9

提示词数

0

GitHub Stars

0

资源数

0
数据同步文档处理TypeScript游戏开发自动化

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

CaptainCurso

提供方

CaptainCurso

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

音乐与疯狂同步桥

该项目实施了您计划的第一阶段:

  • FoundryVTT->观念故事圣经期刊镜像
  • 手动运行同步命令
  • 用于Codex/LLM编排的MCP工具界面
  • 将完整媒体拷贝到持久的本地存储
  • 手动解决冲突跟踪
  • 无损写入 Music and Madness Story Bible 与顶级 Journals wiki树

项目布局

  • /Users/nicholasmcdowell/Documents/Codex Projects/Music and Madness/music-madness-sync-bridge/src

- 网桥服务、CLI、MCP服务器、Foundry/Notion适配器。

  • /Users/nicholasmcdowell/Documents/Codex Projects/Music and Madness/music-madness-sync-bridge/foundry-module/music-madness-bridge

- Foundry模块脚手架暴露经过身份验证的日志读取事件。

  • /Users/nicholasmcdowell/Documents/Codex Projects/Music and Madness/music-madness-sync-bridge/data

- 运行时状态(state/bridge.sqlite),媒体拷贝(media/),日志(logs/audit.log).

定义

  • 主控程序:模型上下文协议。让Codex调用桥接工具,如 sync.foundry_to_notion.apply.
  • 镜子挡块:生成的部分 ## Foundry Mirror 在Notion页面中。
  • 期刊维基树:名为的顶级故事圣经子页面 Journals,子页面与Foundry文件夹匹配。
  • 冲突:自上次同步以来,源和目标已更改,需要手动决定。

设置

  1. 复制env模板。
cd '/Users/nicholasmcdowell/Documents/Codex Projects/Music and Madness/music-madness-sync-bridge'
cp .env.example .env
  1. 填充 .env 值:
  • Foundry URL/令牌
  • 概念键
  • 故事圣经根页面ID(NOTION_STORY_BIBLE_PAGE_ID)
  1. 打字检查。
npm run typecheck

操作员命令

预览更改(无写入):

npm run sync:preview

sync:preview 在以下情况下自动启动本地代理 FOUNDRY_BASE_URL 是本地的(127.0.0.1 / localhost / ::1)以及 FOUNDRY_AUTO_PROXY=1. 预览/写入目标是维基页面 Journals,而不是Notion数据库。

应用镜像更新:

npm run sync:apply

sync:apply 具有相同的自动代理行为,并且仅当此命令启动后才停止代理。 创建页面时,它会在以下位置镜像Foundry文件夹结构 Journals 维基树。 媒体下载/链接默认启用;禁用 --no-include-media.

列出冲突:

npm run sync:conflicts

解决一个冲突:

npm run sync:resolve -- --conflict-id  --resolution manual_merge --notes "Reviewed and merged"

健康检查:

tsx src/cli.ts health

MCP服务器

运行stdio MCP服务器:

npm run mcp:start

外露工具:

  • foundry.health_check
  • foundry.list_journals
  • foundry.get_journal
  • foundry.export_journal_media
  • sync.foundry_to_notion.preview
  • sync.foundry_to_notion.apply
  • sync.diff
  • sync.conflicts.list
  • sync.conflicts.resolve

加强护栏

  • 仅写入Notion页面 NOTION_ALLOWED_DATABASE_IDS.
  • 通过附加/更新生成的镜像块来保留现有散文。
  • 遗产 Music and Madness 默认情况下,该部分保持不变,因为数据库作用域是显式的。

此初始实现中的已知限制

  • Foundry HTTP路由预计在 /health, /journals, /journals/:id等等。
  • 这里包含的Foundry模块是一个经过身份验证的套接字/事件脚手架。如果您需要来自Foundry本身的直接HTTP路由,请运行一个小型本地代理(或使用API模块),将这些路由映射到模块事件。
  • 媒体被复制到本地持久文件。要在云Notion中可靠地直接渲染媒体,请设置 MEDIA_PUBLIC_BASE_URL 连接到可访问的静态主机。

本地测试桥API(可选)

如果您的Foundry模块路由尚未激活,请运行mock API,该API实现:

  • GET /health
  • GET /journals
  • GET /journals/:id
  • GET /journals/:id/media
  • GET /assets/:assetId
  • GET /changes?since=

命令:

npm run foundry:mock-api

夹具数据文件:

  • /Users/nicholasmcdowell/Documents/Codex Projects/Music and Madness/music-madness-sync-bridge/fixtures/foundry-fixture.json

Real Foundry代理(Socket.IO->HTTP路由)

当您的Foundry世界和 music-madness-bridge 模块正在运行。

为什么存在

您的同步客户端需要HTTP路由(/journals, /health等等)。 Foundry模块通过世界上的套接字事件进行通信。 此代理将HTTP调用转换为套接字事件调用。

启动顺序

  1. 启动Foundry并打开目标世界。
  2. 确保模块 music-madness-bridge 已启用。
  3. 在Foundry世界设置中,设置 Bridge Token 值与 .env FOUNDRY_BRIDGE_TOKEN.
  4. 填充在 .env:

- FOUNDRY_SITE_URL - FOUNDRY_WORLD - FOUNDRY_SESSION_COOKIE - FOUNDRY_BRIDGE_TOKEN

  1. 启动代理:
npm run foundry:proxy
  1. 在另一个终端中,运行网桥操作:
npm run sync:preview
npm run sync:apply

会话cookie注释

FOUNDRY_SESSION_COOKIE 是的值 session 来自已登录到Foundry世界的浏览器的cookie。 把它当作秘密令牌。

当前限制

GET /assets/:assetId 回报 501 在套接字代理模式下,除非您的模块添加了二进制资产流。 媒体仍与链接的期刊同步 sourceUrl 可访问的值。

远程Foundry主机(局域网)

如果Foundry在网络上的另一台计算机上运行,请设置:

FOUNDRY_SITE_URL=http://192.168.1.105:30000/

保持同步客户端指向您的 本地代理:

FOUNDRY_BASE_URL=http://127.0.0.1:8788

所以流程是:

  • 此笔记本电脑同步客户端->本地代理(127.0.0.1:8788)
  • 本地代理->远程Foundry(192.168.1.105:30000)

您仍然需要:

  • FOUNDRY_WORLD 对于那个遥远的Foundry世界
  • FOUNDRY_SESSION_COOKIE 从登录到该远程Foundry的浏览器
  • 匹配 FOUNDRY_BRIDGE_TOKEN 在Foundry模块世界设置中

远程诊断命令

在同步之前运行此程序以验证远程Foundry+代理的运行状况。 此命令执行 自动启动代理;首先明确地开始它 npm run foundry:proxy.

npm run health:remote

它检查什么:

  • FOUNDRY_SITE_URL HTTP可达性
  • 本地代理 /health 响应和套接字连接状态
  • 本地代理 /journals 路线响应

如果任何检查失败,退出代码为非零。

带有补救提示的详细诊断:

npm run health:remote -- --verbose

医生命令

验证您的 .env 在运行代理或同步之前:

npm run doctor

它验证了什么:

  • 存在必需的环境变量
  • URL格式(FOUNDRY_BASE_URL, FOUNDRY_SITE_URL)
  • 数据库范围一致性概念(NOTION_DEFAULT_TARGET_DB_ID 在...里 NOTION_ALLOWED_DATABASE_IDS)
  • 代理端口健全性
  • 世界蛞蝓和会话cookie的基本形状检查

当所需检查失败时,退出代码为非零。

远程模块安装(清单URL)

通过URL单击Foundry安装/更新,请使用发布工作流程指南:

  • /Users/nicholasmcdowell/Documents/Codex Projects/Music and Madness/music-madness-sync-bridge/docs/foundry_remote_install.md

快速命令(示例):

MODULE_VERSION=0.1.0 MODULE_URL=https://github.com// MODULE_MANIFEST_URL=https://raw.githubusercontent.com///main/foundry-module/music-madness-bridge/module.json MODULE_DOWNLOAD_URL=https://github.com///releases/download/v0.1.0/music-madness-bridge-v0.1.0.zip node scripts/release/prepare-foundry-module.mjs

目录标签

目录标签

数据同步文档处理TypeScript游戏开发自动化本地部署文档管理自动化工具

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

token

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

9

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明tokenlocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP