Mcpize-skills publish
MCPize Publisher — takes a built MCP server and publishes it to the MCPize marketplace with full autopilot. Runs quality checks, deploys to MCPize Cloud, generates SEO metadata and logo via AI, sets up pricing, publishes to marketplace, generates go-to-market content (social posts, README badges, launch checklist), and verifies the live listing. Part of the MCPize suite (mcpize.com). Use this skill whenever someone wants to publish, launch, or list an MCP server on the marketplace, wants to deploy and publish, says 'publish this MCP', 'launch my server', 'put it on the marketplace', or references mcpize-publish. Also trigger on: publish mcp, deploy mcp, launch mcp server, list on marketplace, mcpize publish, go live, ship it, publish to mcpize, marketplace listing, go-to-market mcp.
git clone https://github.com/mcpize/mcpize-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/mcpize/mcpize-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/mcpize/skills/publish" ~/.claude/skills/mcpize-mcpize-skills-publish && rm -rf "$T"
plugins/mcpize/skills/publish/SKILL.mdMCPize: Publish Your MCP Server
Part of the MCPize suite (https://mcpize.com) — from idea to published MCP server.
Previous:
(discover & validate) →/mcpize:idea(build & test) This skill: Publish to marketplace + Go-to-Market/mcpize:build
Take a built MCP server and publish it to the MCPize marketplace — SEO, pricing, logo, listing, social media posts, all in one flow.
The person using this might have just finished
/mcpize:build or might have a server they built manually. Either way, guide them through publishing like a friendly California dev who's shipped products before. Keep the vibe warm and encouraging — celebrate milestones ("Nice, deploy went clean!"), use casual language ("Let's ship this thing"), and make the user feel like they're launching something awesome, not filling out paperwork. Professional but human.
Reference files
Before starting, read these reference files for details:
— 16 quality checks the dashboard uses (C1-C5, I1-I6, N1-N5) and what${CLAUDE_SKILL_DIR}/references/quality-checklist.md
handles--auto
— ready-to-fill templates for Twitter, Reddit, LinkedIn, HN, Discord, README badges${CLAUDE_SKILL_DIR}/references/social-templates.md
The Job
- Locate project & parse context — find the server and its brief
- Quality gate — make sure it's ready (skip if
already verified)/mcpize:build - Deploy — get it on MCPize Cloud (skip if already deployed)
- Publish — SEO + pricing + logo + marketplace listing via
mcpize publish --auto - Go-to-Market + verify — social posts, README updates, launch checklist, live verification
Step 0: Locate Project & Parse Context
Find the server
Look for
mcpize.yaml in the current directory. If not found, check subdirectories one level deep.
If multiple candidates or none found, use
AskUserQuestion:
- header: "Which project should I publish?"
- subheader: "I need to find your MCP server project"
- Provide options or ask for a path
Find the brief
Look for
mcp-brief-*.md in the project directory or parent directory. The brief contains:
- Pricing model → determines
vs--free--pricing "..." - Server description → enriches SEO generation
- Tool list → for social media content
- Target audience → for marketing copy
If no brief exists, extract context from:
— description, tools, featuresREADME.md
/package.json
— name, descriptionpyproject.toml
— runtime, secretsmcpize.yaml- Source code — tool names and descriptions from MCP registration
Extract requirements
Build a mental model:
- Server name (from mcpize.yaml, package.json, or directory name)
- Description (from brief or README)
- Tools list (from brief or source code)
- Pricing model (from brief: "Free", "Freemium", "Paid")
- Runtime (TypeScript or Python — from mcpize.yaml)
- Required secrets (from mcpize.yaml
section)secrets:
Step 1: Pre-Publish Quality Gate
Skip logic (IMPORTANT)
If
ran earlier in this conversation and all checks passed (tests, smoke test, doctor all green), skip most checks but still verify login:/mcpize:build
- Run
— if fails, tell user to runmcpize whoami
and waitmcpize login - Then note: "Quality checks already passed during
— skipping to deploy."/mcpize:build
Only run checks if:
- No build history in this conversation
- User built the server manually
- User explicitly asks to re-verify
Checks to run (when needed)
Run these in order. Stop on first blocker failure.
| # | Check | Command | Blocker? |
|---|---|---|---|
| 1 | Logged in | | YES — always check, even after build |
| 2 | Tests pass | or | YES |
| 3 | Smoke test | or | YES |
| 4 | Doctor check | | YES |
| 5 | README exists | Check file exists and >200 chars | YES |
| 6 | mcpize.yaml valid | Parse YAML, check required fields | YES |
| 7 | No hardcoded secrets | Use Grep tool to search for patterns like , | Warning only |
If a blocker fails:
- Show the error clearly
- Suggest the fix
- Help implement the fix
- Re-run the check
- Continue only when it passes
Login failure: If
mcpize whoami fails, tell the user to run mcpize login in their terminal (it opens a browser for auth). Stop and wait — do NOT proceed without auth. After they confirm login, re-run mcpize whoami to verify.
Step 2: Deploy (if needed)
Check current deployment status
First, check if
.mcpize/project.json exists in the project directory. If it does NOT exist, the server has never been deployed — skip mcpize status and proceed directly to deploy.
If
.mcpize/project.json exists, check health:
mcpize status
If the server is already deployed and healthy → skip this step:
"Server already deployed and healthy — skipping deploy."
Deploy to MCPize Cloud
This is an irreversible action. Follow the protocol:
-
State WHY: "Deploying creates a live endpoint on MCPize Cloud that users can connect to. This makes your server accessible via
."https://{name}.mcpize.run -
Tell user what will happen:
- Code will be uploaded and built in the cloud
- A live endpoint will be created
- Health monitoring will start
-
Warn the user: "Deploy takes 3-5 minutes — your code gets uploaded, built in the cloud, and a live endpoint is created. Grab a coffee."
Then share a wisdom quote about patience. Pick one that fits the moment — something original, not overused. Examples:
- "The two most powerful warriors are patience and time." — Leo Tolstoy
- "Nature does not hurry, yet everything is accomplished." — Lao Tzu
- "Have patience. All things are difficult before they become easy." — Saadi
-
Run deploy (with
to control publish separately):--skip-wizard
mcpize deploy --skip-wizard --yes
Note: Deploy creates the server with default "free" status — this is expected. The server is NOT visible on the marketplace yet (deploy = infrastructure only, publish = marketplace listing). Pricing gets set correctly in Step 3 during
. Tell the user: "Don't worry about the 'free' status — that's just a deploy default. We'll set up real pricing in the next step."mcpize publish
- Verify deployment:
mcpize status
Confirm the status shows "ready" or "healthy".
- If deploy fails: Run
and help debug.mcpize diagnose
Step 3: Publish to Marketplace
Determine pricing from brief
Read the brief's Monetization section:
- If "Free" explicitly stated → use
(defaults to free)--auto - If no pricing mentioned → default to freemium (matches
default assumption). Use/mcpize:idea--auto --pricing "Free: 50 requests/day. Pro $9.99/mo: 1000 requests/day" - If "Freemium" or "Paid" → use
--auto --pricing "description from brief"
CRITICAL — MCPize billing constraints (do NOT invent features that don't exist):
MCPize supports exactly 3 plan types:
| Type | How it works | Example |
|---|---|---|
| Flat monthly/yearly subscription | Pro $19/mo, 500 requests/day |
| Pure pay-per-use, no base fee | $0.01 per request |
| Base subscription + overage pricing | $19/mo for 500 req + $0.005/req over limit |
Quotas are per-request and per-token only. Rate limits are per second/minute/hour/day.
DO NOT generate pricing with:
- ❌ Seats / per-user pricing (MCPize bills per API request, not per user)
- ❌ "Team" or "Enterprise" tiers with seats, SSO, HIPAA, BAA, SLA
- ❌ "Contact sales" / "Custom pricing" options
- ❌ Feature gating by tool name (all tools are available on all plans)
- ❌ Any capability MCPize doesn't actually support
Valid pricing patterns:
# Freemium "Free: 50 requests/day. Pro $9.99/mo: 1000 requests/day" # Usage-based "Pay per use: $0.01 per request, first 100 free" # Hybrid "Starter $9.99/mo: 500 requests/day. Pro $29/mo: 2000 requests/day, $0.005/req overage"
Rules:
- Maximum 1 free plan (price_monthly: 0)
- Paid plans must have price_monthly > 0
- Unlimited quota only if price >= $50/mo OR usage/hybrid type with usage_price > 0
- Differentiate plans by request quotas, rate limits, and token limits — not by features or seats
Preview first (optional but recommended)
mcpize publish --dry-run --auto # or mcpize publish --dry-run --auto --pricing "Free: 50 requests/day. Pro $9.99/mo: 1000 requests/day"
Show the user what will happen before executing.
Run publish
For free servers:
mcpize publish --auto
For paid servers:
mcpize publish --auto --pricing "{pricing description from brief}"
This single command does:
- Clean server name via AI (e.g., "fda-drug-info-mcp" → "FDA Drug Info")
- Generate SEO content (display name, category, tags, descriptions) via AI
- Set up pricing (free or AI-generated tiers)
- Generate logo via AI (OpenAI gpt-image-1)
- Publish to MCPize marketplace
If publish fails with "Failed to update server status" but name/SEO/pricing/logo all succeeded — check
mcpize status. If the server is already active, this is expected (deploy already made it live). Just verify with mcpize publish --show that SEO and pricing are configured, and move on.
Verify publish
mcpize publish --show
Confirm SEO content is configured and pricing is set.
Step 4: Go-to-Market + Verification
4a: Generate viral-pattern social posts
Use templates from
${CLAUDE_SKILL_DIR}/references/social-templates.md. The templates apply 2025 X algorithm research — DO NOT fall back to old "🚀 Just launched / 🧵 Thread ↓ / features list" format.
Twitter/X — viral pattern (CRITICAL)
-
Pick the right variant (A/B/C) from social-templates.md based on the server's story:
- Variant A (Builder's confession) — niche/contrarian servers, vulnerability angle
- Variant B (Eat your own cooking) — when user is also the tool/skill author (strongest trust signal)
- Variant C (Specific number flex) — when there are concrete metrics (tool count, time, data points)
-
Fill placeholders with actual server data:
,{server_name}
,{slug}
,{one_liner}
,{tool_count}
, etc.{key_benefit} -
Generate a Twitter Intent URL so the user clicks once to publish:
- Take the chosen variant's main tweet body (NOT the reply — the marketplace link goes in a separate reply to avoid the -30-50% reach penalty for external links)
- URL-encode: spaces →
, newlines →%20
,%0A%0A
→@
,%40
→:
,%3A
→/
,%2F
→'
,%27
→+
,%2B
→—%E2%80%94 - Format:
https://twitter.com/intent/tweet?text={encoded_text}
-
Present to the user as a clickable markdown link plus the reply text separately so they can copy-paste it after the main tweet goes live.
Output format (show this to the user):
🐦 Your viral tweet is ready (variant B — builder/creator angle) Main tweet: ───────────────── built fda-drug-info to query 50k+ drug labels in one call then used it to debug my mom's prescription interactions found 2 issues her pharmacist missed it's open source btw ───────────────── [📤 Click to publish on X](https://twitter.com/intent/tweet?text=built%20fda-drug-info%20to%20query%2050k%2B...) After posting, reply to your own tweet with: ───────────────── grab it → mcpize.com/mcp/fda-drug-info taking requests for the next build ───────────────── Why this works: • Vulnerability + specific numbers (50k+, 2 issues) → high dwell time • Link in REPLY not main tweet → avoids -30-50% reach penalty • Question CTA in reply → triggers replies (13.5x algo weight)
Other platforms (Reddit, LinkedIn, HN, Discord) — generate using their respective templates from social-templates.md. These don't penalize links the way X does, so links stay in body. Tone still casual builder voice — no "Excited to share!" corporate openers.
4b: Update README with MCPize badges and install snippets
Use the templates from
${CLAUDE_SKILL_DIR}/references/social-templates.md (section "README Badge + Install Snippets") to add:
- MCPize badge — shields.io badge linking to marketplace page
- Connect section —
npx -y mcpize connect @{username}/{slug} --client claude - Per-client install commands — Claude, Cursor, Windsurf, Cline CLI commands
- JSON config — for manual setup
Get the endpoint URL from
mcpize status output. Get the slug from the server info.
4c: Generate launch checklist
Create
LAUNCH-CHECKLIST.md in the project directory:
# Launch Checklist: {Server Name} ## Pre-Launch - [x] Server deployed and healthy - [x] Marketplace listing published - [x] SEO metadata configured - [x] Pricing set - [x] Logo generated - [ ] README updated with MCPize badge + install snippets - [ ] GitHub repo public (if applicable) ## Launch Day - [ ] Twitter/X thread posted - [ ] Reddit r/mcp post published - [ ] Discord communities notified - [ ] LinkedIn post shared ## Week 1 - [ ] Hacker News "Show HN" posted - [ ] Monitor MCPize dashboard for first subscribers - [ ] Check `mcpize logs` for errors - [ ] Respond to user feedback ## Week 2-4 - [ ] Dev.to / Hashnode tutorial published - [ ] Add features based on usage patterns - [ ] Consider blog post about building it
4d: Verification loop ("Ralph loop")
Verify the published server works end-to-end:
- Deployment health:
mcpize status
Confirm status is healthy.
- MCP protocol test to live endpoint (hosted servers require auth):
# Get auth token and endpoint URL TOKEN=$(python3 -c "import json; print(json.load(open('$HOME/.mcpize/config.json'))['token'])") # Health check (no auth needed) curl -s {endpoint}/health # MCP initialize (auth required) curl -s {endpoint}/mcp \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"verify","version":"1.0.0"}}}'
- Tools verification:
curl -s {endpoint}/mcp \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
Confirm all expected tools are listed.
- Error log check:
mcpize logs --severity ERROR
Should return no recent errors.
- If any check fails:
- Diagnose the issue (
or manual investigation)mcpize diagnose - Fix the problem
- Re-deploy if code changes were needed:
mcpize deploy --skip-wizard --yes - Re-run verification from step 1
- Only proceed when ALL checks pass
- Diagnose the issue (
4e: Final handoff
Present the summary:
Published! Your MCP server is live. Server: {name} Listing: https://mcpize.com/mcp/{slug} Endpoint: {endpoint-url} Tools: {count} tools Pricing: Free / ${price}/mo What's done: [x] Deployed to MCPize Cloud [x] SEO metadata generated and saved [x] Logo generated [x] Pricing configured [x] Published to marketplace [x] Verified — all tools responding Next steps: 1. Review your listing: https://mcpize.com/mcp/{slug} 2. Upload a custom logo if you want (dashboard > General tab) 3. Post the social media content below 4. Follow the LAUNCH-CHECKLIST.md Social media posts: [Include all generated posts for easy copy-paste]
Tone & Communication Style
Talk like a friendly California dev who's genuinely stoked to help ship something. Examples:
- After deploy succeeds: "Nice, deploy went clean! Server's live and healthy."
- Before publish: "Alright, let's get this on the marketplace. Here's what's about to happen..."
- After everything's done: "Boom, you're live! Your server is on the marketplace and ready for users."
- On errors: "Hmm, that didn't go as planned. Let me dig into this..." (stay calm, debug, fix)
Don't overdo it — keep it professional but warm. No forced enthusiasm, just genuine helpfulness.
Important Notes
- Never publish without user awareness — always show
first or clearly state what will happen--dry-run - Deploy and publish are separate actions — deploy puts code in the cloud, publish makes the listing visible on the marketplace
- Logo generation uses OpenAI — it costs money on the platform side. If it fails (rate limit, payment issue), continue without logo and note it can be added later in the dashboard
- Social media content is generated, not posted — the user decides when and where to post
- This should feel like a launch party, not a chore — celebrate the achievement!