MCP server + tools for the Forge E-- generative-music authoring loop (compile / run / commit).
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Author, compile, run, and commit generative-music E-- Recipes directly from any MCP-capable agent (Claude Desktop, Cursor, β¦). forge-mcp exposes the Forge E-- library note catalog + vault as an MCP server and closes the authoring loop end-to-end: the agent picks a chip from the catalog, drafts a Recipe, verifies it parses, runs it in a sandbox, previews the artifact, and commits the finished Recipe to a vault note. All 6 tools ship today.
Fastest path β Claude Code spawns forge-mcp as a stdio subprocess. Full walkthrough at docs/claude-code-install.md.
Full walkthrough (Claude Desktop config, forge-transpile Bearer acquisition, verification smoke, troubleshooting): docs/install.md.
Quick paths:
Environment:
FORGE_TRANSPILE_URL β base URL of the forge-transpile service. Default: http://localhost:8000.FORGE_VAULT_PATH β local vault directory for forge_read_notes_in_vault + forge_commit_recipe. Default: ~/forge-vaults/bluh.FORGE_MCP_HOST β host to bind. Default: 0.0.0.0.FORGE_MCP_PORT β port to bind. Default: 8765.FORGE_MCP_BEARER β dev fallback only. Per-request Bearer extraction is the primary path (CW-MCP-1-B); this env var only fires when the incoming request has no Authorization header. Do NOT set in production.Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
Get your Bearer:
Read (no side effects):
forge_read_note_catalog({domain?}) β list Forge library notes; every entry carries the E-- signature the agent needs to Call it.forge_read_notes_in_vault({filter?}) β list vault notes with a has_recipe + recipe_version summary. Backed by a local filesystem walk (CW-MCP-2-E).Author (deterministic β no LLM, no vault write):
forge_compile_recipe({source}) β Recipe β Python. Returns compiled source + unresolved slot count, OR a structured parse error with line/column (per drain CW-recipe-parser-line-info).forge_run_recipe({source, domains?}) β compile + execute in a resource-limited server sandbox. Returns a short preview + a run_id; artifacts (MusicXML / MIDI / PNGs) accessible via the forge-artifact:// resource.forge_get_run_result({run_id}) β fetch full stdout/stderr + artifact manifest of a previous run. 7-day TTL, per-Bearer isolation.Commit:
forge_commit_recipe({source, note_id, expected_version?}) β persist Recipe to a vault note (facet-scoped β Description + Python + frontmatter survive byte-for-byte). Bumps recipe_version in the note's frontmatter. Optimistic-concurrency via expected_version; version-conflict returns isError:true with expected + current numbers.forge-note:///{domain}/{name} β library note content.forge-artifact:///{run_id}/{artifact_name} β on-demand binary fetch for run artifacts. Text mimes return via text; binaries via base64 blob.forge-recipe:///{note_id}/v{n} β Recipe body at a specific recipe_version (git-tracked vaults only; returns "history unavailable" text otherwise).forge-mcp does NOT validate tokens itself β forge-transpile is the source of truth (guarded by FORGE_TRANSPILE_SECRET). Each request's Authorization: Bearer <token> header is forwarded verbatim; a 401 or 403 from forge-transpile surfaces as isError: true with an actionable message the agent can read (drain CW-MCP-1-B).
Rotation is zero-downtime on the forge-mcp side: change FORGE_TRANSPILE_SECRET on forge-transpile, update your MCP client's header, done. Old tokens fail on the next request with a clean rejection message.
forge/recipe/ per the CW-MCP-2-A architecture; drift is caught by scripts/check-recipe-drift.sh in the forge-transpile repo./compile / /run / /catalog etc. that forge-mcp's tools proxy for the transpile + sandboxed-run paths. Vault reads + commits are LOCAL and don't hit forge-transpile.No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/forge-mcp-2)<a href="https://allmcps.com/mcp/forge-mcp-2"><img src="https://allmcps.com/api/badge/forge-mcp-2?style=directory" alt="Forge MCP on AllMCPs" /></a>