From moulds-ship
Use when the user wants to publish, ship, deploy, or monetize an automation in the current directory to moulds.ai — an MCP server, a script, or just an idea. Turns it into a live marketplace agent. Triggers on "ship this to moulds.ai", "turn this MCP server into an agent", "publish this to moulds", "deploy this as an agent", "monetize this automation".
How this skill is triggered — by the user, by Claude, or both
Slash command
/moulds-ship:moulds-shipThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Turn whatever is in the current directory into a deployed agent on the **moulds.ai** marketplace. The headline case: an **MCP server** → a hosted agent whose tools become callable HTTP endpoints, each running the server inside an isolated sandbox.
Turn whatever is in the current directory into a deployed agent on the moulds.ai marketplace. The headline case: an MCP server → a hosted agent whose tools become callable HTTP endpoints, each running the server inside an isolated sandbox.
Scripts live at $CLAUDE_PLUGIN_ROOT/scripts/ (this skill's base directory is <plugin>/skills/moulds-ship; the scripts are two levels up under scripts/). All scripts are zero-dependency Node (require Node 18+); they shell out to npx esbuild and the system zip only for the MCP path.
To target a non-production platform (local dev or staging), set MOULDS_BASE_URL (e.g. http://localhost:3000) in the environment for every command. Default is https://app.moulds.ai.
Run:
node "$CLAUDE_PLUGIN_ROOT/scripts/detect.mjs"
It prints JSON with a type: mcp, manifest, script, mcp-python, or idea.
Tell the user, in 2-3 lines: what was detected, the agent name/slug it will get, and — for MCP — that each tool becomes a POST /api/<tool> endpoint. Ask for a single go-ahead. Don't over-ask; the user invoked this skill on purpose.
Run (this may open a browser and wait for the user to approve — use a generous Bash timeout, ~300000 ms):
node "$CLAUDE_PLUGIN_ROOT/scripts/login.mjs"
It prints a short code + a URL to stderr. Relay that to the user and tell them to approve in the browser. The token is cached at ~/.moulds/credentials.json; subsequent runs skip this.
mcp — fully automatic. Run from the MCP server's directory:
node "$CLAUDE_PLUGIN_ROOT/scripts/ship.mjs"
This bundles the server (esbuild → single file), introspects its tools, generates the Tier-2 manifest + a per-tool stdio adapter, zips it, creates the app, uploads + activates the package, and submits for review.
manifest (a manifest.json already present) — run ship.mjs; it validates and publishes. If the file is manifest.yaml, first convert it to manifest.json yourself (read the YAML, write equivalent JSON), then run ship.mjs.
script or idea (no MCP server, no manifest) — you draft a Tier-1 manifest. Ask the user 1-2 quick questions if the purpose/inputs are unclear, then write a manifest.json using the template below, then run:
node "$CLAUDE_PLUGIN_ROOT/scripts/ship.mjs" --manifest manifest.json
mcp-python — not supported in V1 (the sandbox runtime is node20). Tell the user to re-implement as a Node MCP server, or offer to draft a Tier-1 agent (the idea path) instead.
On success ship.mjs prints JSON with slug, dashboard_url, and public_url_after_approval. Tell the user: it's shipped and pending admin approval before it appears publicly at /agents/<slug>; they can view/manage it now at the dashboard URL. For MCP agents, list the tool endpoints that are now live.
Fill every <…>. shape: batch_analyzer = "inputs in → AI processes → report out". Keep one ai_generate step + one render_report step unless the user needs more.
{
"manifest_version": 1,
"slug": "<kebab-case-slug>",
"name": "<Display Name>",
"shape": "batch_analyzer",
"category": "<e.g. research-tools>",
"landing": { "tagline": "<one line>", "description": "<2-3 sentences>" },
"integrations": [],
"inputs": [
{ "kind": "text", "name": "<input_name>", "label": "<Label>", "required": true }
],
"pipeline": [
{
"step": "ai_generate",
"config": {
"model": "flash",
"prompt_template": "<instructions using {{input_name}} placeholders>",
"output_schema": { "type": "object" },
"knowledge_collections": []
}
},
{ "step": "render_report", "config": { "template": "<HTML using {{outputs}}>" } }
],
"pricing": { "free_trial": { "quantity": 25, "period_days": 30 }, "plans": [] },
"platform_fee_pct": 15
}
fetch, time, computation). (BYOK wiring is a follow-on.)~/.moulds/credentials.json — re-run login.mjs --force to refresh.Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub moulds-ai/claude-plugins --plugin moulds-ship