Deploy Your App
Deploy your App to mctx and make it available to subscribers. Set your price, click deploy, and go live.
This is the payoff. You click deploy, and your App goes live on mctx's global infrastructure. Subscribers can find it, connect to it, and pay you for it.
Before you deploy
Make sure you have completed these steps:
- Connected your GitHub repository
- Added and verified a support email
- Completed payout setup
Your App detail page tracks this for you. If the status shows setup_required, finish the remaining steps first:
- Set Up Payouts -- complete payout onboarding (~5 minutes)
- Add Support Email -- verify a contact email for subscribers (~1 minute)
Once payout setup is complete, your App status changes to ready. Email verification is a separate prerequisite check that unlocks the Deploy and Publish buttons -- it does not change App status, but both must be complete before you can deploy.
Step 1: Set your price
On your server detail page, set the price per 1,000 requests:
- $1-$2/1K -- Good for hobby projects and low-traffic tools
- $2-$5/1K -- Standard range for production-quality servers (recommended)
- $5-$10+/1K -- Premium, specialized, or enterprise services
You earn 80% of what subscribers pay. The remaining 20% covers hosting, infrastructure, and payment processing.
Step 2: Click deploy
Once your server status is ready:
- Click Deploy Server
- Confirm the deployment
That is it. mctx takes it from here.
What happens during deployment
Behind the scenes, mctx:
- Pulls your code from the branch you configured
- Validates the entry point -- confirms your JavaScript file exists and is valid
- Deploys to the edge -- creates a worker on Cloudflare's global network
- Sets up your subdomain --
{slug}.mctx.aistarts routing to your server - Runs a health check -- verifies your server responds correctly
Typical time: 1-3 minutes. You get an in-app notification when it finishes.
Step 3: Verify it works
Once the status changes to live, check that everything is working.
Visit your App's public page:
Go to mctx.ai/apps/{slug} in your browser. This is the page subscribers see. It shows your App name, description, available tools, pricing, and a subscribe button.
Test the MCP endpoint:
Your App is live. Share the versionless URL with subscribers — it always connects to your latest deployed version:
https://{slug}.mctx.aiFor example, if your slug is weather-api:
https://weather-api.mctx.aiSubscribers who need to pin to a specific version can use:
https://weather-api.mctx.ai/v1.0.0Check real-time logs:
Open the logs modal from your server detail page and make a test request. You will see console.log, console.warn, and console.error output in real time. Logs are ephemeral -- they only appear while the modal is open. See Server Logs for details.
If deployment fails
Deployment issues are almost always one of these things.
"File specified in main not found in repository"
The file in your package.json main field does not exist in the repo. Make sure it is built and committed. mctx does not run build commands — you commit the built file, similar to GitHub Actions JavaScript actions. If you are using a release branch pattern, confirm the mctx dashboard is set to deploy from your release branch, not main.
Still stuck? Check the Last Deployment Error section on your server detail page for the full error message. If that does not help, see the FAQ.
After deployment
Your App is live. Your detail page shows a checklist to help you reach subscribers:
Publish to MCP Community Registry -- One click. Your App appears in the registry within minutes. See Publish to MCP Registry for details. If your repository belongs to a GitHub organization, your org membership must be set to public before publishing will succeed -- see Publishing org-owned servers.
Share your App page -- Your public URL is https://mctx.ai/apps/{slug}. Share it on Twitter/X, Discord, Reddit, your GitHub README -- wherever developers hang out. See Your Vanity Link.
Get paid automatically -- Subscribers pay, you receive 80% via payouts. Future pushes to your configured branch deploy automatically.
Updating your App
Bumping the version in package.json triggers a new deployment. mctx creates a new version endpoint (/v2.0.0 alongside /v1.0.0). Subscribers using the versionless URL automatically connect to the new version on their next session. Subscribers pinned to a specific version remain on that version until they update their configuration.
Pushing without a version change is a no-op — mctx detects that the version already exists and skips deployment. To trigger a new deployment, you must bump the version in package.json. See Versioning for details.
Next Steps
Your App is live and accepting subscribers. Here is what to explore:
- Publish to MCP Registry -- Get discovered
- Environment Variables -- Add API keys and secrets
- Versioning -- Manage multiple versions
- Server Logs -- Debug with real-time logs
- Getting Paid -- Manage your payouts
See something wrong? Report it or suggest an improvement — your feedback helps make these docs better.