mcpField
F
Forge MCP

Forge MCP

本地服务
github.com媒体与设计01 周前更新

关于 Forge MCP

Forge MCP 是面向生成式音乐创作的 MCP 服务,让 Agent 在 Forge E-- Recipe 中完成编写、编译、运行和提交。它连接库目录与本地 vault,并提供沙箱预览和版本更新。

主要功能

  1. 01读取 Forge 音乐库目录与 vault 笔记
  2. 02编译 Recipe 并报告解析错误
  3. 03在受限沙箱中运行并预览产物
  4. 04获取运行日志与产物清单
  5. 05提交 Recipe 并递增版本

适用场景

  1. 01从音乐库芯片编写 E-- Recipe
  2. 02验证 Recipe 是否可解析
  3. 03在沙箱中试听或检查生成产物
  4. 04将完成的 Recipe 保存到 vault 笔记

MCP 相关

作为 MCP 服务,它向 Agent 提供读取目录、编译、运行、查询结果和提交等工具,以及笔记和运行产物资源。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"frmoded-forge": {
"command": "uvx",
"args": [
"forge-recipe-mcp"
],
"env": {
"FORGE_TRANSPILE_URL": "<FORGE_TRANSPILE_URL>",
"FORGE_VAULT_PATH": "<FORGE_VAULT_PATH>",
"FORGE_MCP_BEARER": "<FORGE_MCP_BEARER>"
}
}
}
}
启动命令uvx forge-recipe-mcp
需要配置的环境变量
FORGE_TRANSPILE_URLBase URL of the forge-transpile service. Provides /catalog, /compile, /run, /resolve-slot endpoints backing the read/author tools.
FORGE_VAULT_PATHLocal vault directory used by forge_read_notes_in_vault + forge_commit_recipe. Must exist and be writable.
FORGE_MCP_BEARER密钥Bearer token forwarded to forge-transpile. Rotate by updating FORGE_TRANSPILE_SECRET on the upstream service and re-setting this. Dev fallback only when clients don't set Authorization on each request.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiforge-recipe-mcp0.2.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

forge-mcp

直接通过任何支持 MCP 的 Agent(Claude Desktop、Cursor 等)编写、编译、运行并提交生成式音乐 E-- 配方。 forge-mcp 将 Forge E-- 库的笔记目录和保险库作为 MCP 服务公开,并端到端打通编写流程:Agent 从目录中选择一个芯片,起草配方,验证其是否能解析,在沙箱中运行,预览生成的产物,并将完成的配方提交到保险库笔记。目前已提供全部 6 个工具。

[library note catalog] → [compile] → [run] → [commit] → [vault note with recipe_version bump]

安装到 Claude Code

最快的方式 —— Claude Code 会将 forge-mcp 作为 stdio 子进程启动。完整指南见 docs/claude-code-install.md。

# 1. Install from PyPI (https://pypi.org/project/forge-recipe-mcp/)
pip install forge-recipe-mcp

# 2. Fetch your Bearer once and export
export FORGE_MCP_BEARER=$(jq -r '.transpileServiceToken' \
  ~/forge-vaults/bluh/.obsidian/plugins/forge-client-obsidian/data.json)

# 3. Register with Claude Code
claude mcp add forge-mcp \
  -e FORGE_MCP_BEARER=$FORGE_MCP_BEARER \
  -e FORGE_TRANSPILE_URL=https://forge.thecodingarena.com \
  -e FORGE_VAULT_PATH=$HOME/forge-vaults/bluh \
  -e FORGE_MCP_TRANSPORT=stdio \
  -- forge-mcp

# 4. Start Claude Code and ask "list the notes in my forge music library."

安装(其他客户端)

完整指南(Claude Desktop 配置、获取 forge-transpile Bearer、验证冒烟测试、故障排除):docs/install.md。

快速方式:

# From source (pip + editable install for development)
pip install -e ".[dev]"
python -m forge_mcp.server

# Docker
docker build -t forge-mcp:latest .
docker run --rm -p 8765:8765 \
    -e FORGE_TRANSPILE_URL=https://forge.thecodingarena.com \
    -e FORGE_VAULT_PATH=/path/to/your/vault \
    forge-mcp:latest

环境变量:

  • FORGE_TRANSPILE_URL — forge-transpile 服务的基础 URL。默认值:http://localhost:8000。
  • FORGE_VAULT_PATH — forge_read_notes_in_vault 和 forge_commit_recipe 使用的本地保险库目录。默认值:~/forge-vaults/bluh。
  • FORGE_MCP_HOST — 绑定的主机。默认值:0.0.0.0。
  • FORGE_MCP_PORT — 绑定的端口。默认值:8765。
  • FORGE_MCP_BEARER — 仅用作开发回退方案。按请求提取 Bearer 是主要方式(CW-MCP-1-B);仅当传入请求没有 Authorization 标头时才会使用此环境变量。请勿在生产环境中设置。

Claude Desktop 配置

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "forge-mcp": {
      "url": "http://localhost:8765/mcp",
      "headers": {
        "Authorization": "Bearer <your-forge-transpile-token>"
      }
    }
  }
}

获取你的 Bearer:

jq -r '.transpileServiceToken' \
    ~/forge-vaults/bluh/.obsidian/plugins/forge-client-obsidian/data.json

工具

读取(无副作用):

  • forge_read_note_catalog({domain?}) — 列出 Forge 库笔记;每个条目都包含 Agent 调用它所需的 E-- 签名。
  • forge_read_notes_in_vault({filter?}) — 列出保险库笔记,并附带 has_recipe 和 recipe_version 摘要。由本地文件系统遍历提供支持(CW-MCP-2-E)。

编写(确定性操作——不使用 LLM,不写入保险库):

  • forge_compile_recipe({source}) — 将配方转换为 Python。返回编译后的源码和未解析的插槽数量,或包含行号/列号的结构化解析错误(依据 drain CW-recipe-parser-line-info)。
  • forge_run_recipe({source, domains?}) — 编译配方,并在受资源限制的服务端沙箱中执行。返回简短预览和一个 run_id;可通过 forge-artifact:// 资源访问产物(MusicXML / MIDI / PNG)。
  • forge_get_run_result({run_id}) — 获取先前运行的完整 stdout/stderr 和产物清单。保留 7 天,按 Bearer 隔离。

提交:

  • forge_commit_recipe({source, note_id, expected_version?}) — 将配方保存到保险库笔记(按分面更新——Description、Python 和 frontmatter 均逐字节保留)。递增笔记 frontmatter 中的 recipe_version。通过 expected_version 实现乐观并发控制;版本冲突时返回 isError:true,并附带预期值和当前值。

资源

  • forge-note:///{domain}/{name} — 库笔记内容。
  • forge-artifact:///{run_id}/{artifact_name} — 按需获取运行产物的二进制数据。文本 MIME 类型通过 text 返回;二进制数据通过 base64 blob 返回。
  • forge-recipe:///{note_id}/v{n} — 指定 recipe_version 对应的配方正文(仅适用于由 git 跟踪的保险库;否则返回“历史记录不可用”文本)。

身份验证

forge-mcp 本身不会验证令牌——forge-transpile 是唯一可信来源(由 FORGE_TRANSPILE_SECRET 保护)。每个请求的 Authorization: Bearer <token> 标头都会原样转发;forge-transpile 返回的 401 或 403 会以 isError: true 形式呈现,并附上 Agent 可读的可操作消息(drain CW-MCP-1-B)。

forge-mcp 端的令牌轮换无需停机:在 forge-transpile 上更改 FORGE_TRANSPILE_SECRET,更新 MCP 客户端的标头,即可完成。旧令牌会在下一个请求时失效,并返回清晰的拒绝消息。

相关仓库

  • forge — E-- 解析器、转译器和核心音乐库。根据 CW-MCP-2-A 架构,forge-mcp 引用了 forge/recipe/ 的一个快照;forge-transpile 仓库中的 scripts/check-recipe-drift.sh 会检测差异。
  • forge-transpile — 提供 /compile / /run / /catalog 等接口的 FastAPI 服务,forge-mcp 的工具会通过该服务执行转译和沙箱运行。Vault 的读取和提交都在本地进行,不会访问 forge-transpile。
  • forge-client-obsidian — 同一创作流程中的 Obsidian 插件。forge-mcp 会写入插件读取和渲染的同一个 Vault;两者共用笔记文件格式。

评论

支持 Markdown

第一次接触 MCP?

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

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