ArtCraft Command Bridge
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ArtCraft Command Bridgelist the artcraft apps, then show figcraft's node.create command"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
artcraft-command-bridge
One MCP server for the 13 ArtCraft Crafting Apps — 5 tools instead of 799.
Each Crafting App ships its own MCP server that exposes every engine command as a separate tool. Registering all 13 of them costs 799 tools / 547 KB of schema ≈ 140k tokens of permanently resident context, and that payload is re-sent on every request.
This bridge drives the apps' CLIs instead and exposes 5 tools / 3.5 KB.
799 tools · 547.3 KB · ~140,000 tokens → 5 tools · 3.5 KB · ~900 tokensWhy this exists
MCP clients register a server's tool list in full. The protocol has no
"just give me the names, fetch the schema on demand" mode — the client calls
tools/list once and keeps every tool's name + description +
inputSchema in the system payload forever. Some clients have an on-demand
tool search facility, but that covers deferred tools (cron, integrations),
not MCP server tools.
The Crafting Apps already share one model that is perfect for this:
commands— lists stable command IDs with their parametersrun— executes those IDs
Measured across the 13 apps, that is 7027 command IDs. The 799 tools the apps' own MCP servers expose are only a subset view of the same registry. So the tools do not need to be flattened into 799 separate entries — they need a directory and a dispatcher, which is what this is.
Only PdfCraft ships an on-demand mode of its own (pdfcraft-cli mcp --compact,
which exposes a core set plus tool_search/tool_call); the other twelve reject
--compact outright, so there was no unified switch to simply turn on.
Related MCP server: MCPico
Quick start
Install the apps you want — see getartcraft.com/apps. Each app installs a
<app>-clibinary.Register this server with your MCP client:
{ "mcpServers": { "artcraft-command-bridge": { "type": "stdio", "command": "node", "args": ["/absolute/path/to/artcraft-command-bridge/server.js"] } } }Or with the official installer:
npm install -g artcraft-command-bridgeRestart the client so the tools load.
The 5 tools
Tool | What it does |
| The 13 apps: purpose, version, install status, and how their |
| An app's stable command IDs with parameter docs. Filter by substring. |
| Execute one or more command IDs in order. The deterministic path. |
| Escape hatch — run any CLI subcommand verbatim ( |
| An app's own |
Example
// what can figcraft do?
{ "app": "figcraft", "filter": "node.create" }
// build a frame
{
"app": "figcraft",
"steps": [
{ "id": "node.create", "params": { "type": "frame", "name": "Hero", "width": 1200, "height": 800 } }
],
"output": "D:/out/hero.figcraft"
}
// export it (not a command ID — use the escape hatch)
{ "app": "figcraft", "args": ["export", "hero.figcraft", "-o", "hero.png", "--format", "png", "--node", "Hero"] }How it works
Every app's run takes its commands in a slightly different shape. The bridge
translates one uniform { id, params } model into each app's own syntax:
argv style | apps |
| PhotoCraft, VectorCraft |
| DesignCraft, GridCraft, SoundCraft, DeckCraft, WordCraft |
| CADCraft |
positional | LightCraft, EffectCraft |
script file | FigCraft ( |
script file | FilmCraft ( |
| PdfCraft (tool names, not command IDs) |
The command registry is exposed differently too, so the bridge normalises it:
registry shape | apps |
| PhotoCraft, VectorCraft, FigCraft, GridCraft, LightCraft, EffectCraft, FilmCraft, WordCraft |
| CADCraft, DesignCraft — their |
plain-text table | DeckCraft, SoundCraft |
| PdfCraft has no |
Finding the CLIs
artcraft_apps reports what it found. The bridge probes, in order:
ARTCRAFT_<APP>_CLI— e.g.ARTCRAFT_PHOTOCRAFT_CLI=/opt/craft/photocraft-cliARTCRAFT_HOMEand the official per-OS app roots (%LOCALAPPDATA%\storytold\apps,~/.local/share/storytold/apps,~/Library/Application Support/storytold/apps)PATH(<app>-cli)System install locations (
C:\Program Files\<App>Craft\,/Applications/<App>Craft.app/Contents/MacOS/,/usr/local/bin)
Apps that are not installed are reported as such and skipped — the bridge never fails as a whole because one app is missing.
Why not an existing tool?
eznix86/mcp-gateway (MIT) — a general-purpose gateway with the same idea, but it aggregates MCP servers, so the 13 Crafting App servers still have to be running as upstream processes, and its
searchis text-similarity rather than an exact registry lookup.ai-2070/claude-storytold-skills (MIT) — a Claude Code plugin whose per-app skills use grep over generated reference catalogs. Same goal, different layer: it still registers every app's MCP server with
claude mcp add, so the tool schemas stay resident.smyrgeorge/artcraft-toolbox (Apache-2.0) — a suite manager (install, verify, update, launch). It is complementary: the toolbox gets the apps onto your machine, this bridge makes them pleasant to drive.
Development
node tools/probe-mcp.js # probe every app's MCP handshake + tool count
node tools/schema-size.js # measure schema weight, refresh registry snapshots
node tools/agg-test.js # end-to-end self-test of the bridge
node tools/per-app-verify.js # verify each app's run argv is accepted
node tools/cursor-launch-check.js # start the bridge the way a client wouldZero runtime dependencies; Node ≥ 18.
License
MIT — see LICENSE. See NOTICE for trademark attribution. The Crafting Apps themselves are open source (MIT OR Apache-2.0) and are developed at github.com/storytold.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Find, vet, and run MCP tools through a secure audited gateway with prompt-injection risk scoring
214 tools for AI agents over one MCP endpoint: image, video, audio, 3D, data, storage, mail, GPUs.
The OpenRouter for tools. One MCP connection gives any AI agent 254 hosted tools, pay per call.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceAggregates tools from multiple upstream MCP servers and exposes them through 4 meta-tools, enabling LLMs to discover and use hundreds of tools without loading all schemas upfront.278 PyPI3Apache 2.0
- FlicenseNot gradedqualityCmaintenanceMCP proxy that bundles flat tool lists into hierarchical subcommand groups to reduce context token usage, supporting multi-server aggregation and auto-generated help from tool schemas.-
- AlicenseNot gradedqualityAmaintenanceMCP proxy that bundles flat tool lists into hierarchical subcommand groups, reducing context token usage and improving tool discovery.10 npm9MIT
- AlicenseNot gradedqualityBmaintenanceFronts every MCP server you have with two tools: search shortlists relevant tools, and execute runs sandboxed Python that calls upstream tools as mcp..(). It enables agents to make bulk, repeated, or conditional tool calls using calibrated decision-model choices instead of per-item LLM generation.3MIT