Frequently Asked Questions
Quick answers to common questions about mctx, including troubleshooting tips for subscribers and developers.
General
What is mctx?
mctx gives you free hosting for your MCP server. Deploy from your GitHub repo with one click, and optionally charge subscribers for usage — you set the price and keep 100% of what they pay. Connect your GitHub repo, deploy, and publish to the MCP ecosystem. That is the whole workflow.
What is MCP?
MCP (Model Context Protocol) is an open protocol that lets AI assistants use external tools. An MCP server provides tools that AI can call -- fetching data, performing actions, or connecting to services. Think of it as a standardized plugin system for AI.
Is there a free tier?
Yes. Every MCP server on mctx gets 1,000 requests per month, always free. Below that threshold, hosting is completely free with no payment method required.
When your server exceeds 1,000 requests in a calendar month, graduated hosting fees apply. All requests above 1,000 are billed, including in the month you first cross the threshold. To keep your server running uninterrupted, add a payment method before you exceed the free tier. If no payment method is on file when the threshold is crossed, your server is suspended immediately.
Is there a free tier for subscribers?
It depends on the server. Servers without monetization enabled are free to subscribe to. Servers with monetization enabled charge subscribers per request at the developer's chosen price.
For Subscribers
How do I find MCP servers to use?
A few places to look:
- MCP Community Registry -- The official directory. Browse by category or search by keyword.
- Developer channels -- Developers share their server links on Twitter/X, Discord, Reddit, and in GitHub READMEs.
- Community lists -- Curated directories like awesome-mcp-servers collect notable servers.
When you find a server link (like weather-api.mctx.ai), visit it to see what it does and subscribe.
How much does it cost?
It depends on the server. Servers without monetization are free to subscribe to. When a developer enables monetization, they set their own price per 1,000 requests — you only pay for what you use.
What payment methods work?
All major credit and debit cards.
Can I cancel anytime?
Yes. Go to your subscriptions page, cancel, and you will not be charged again. Access ends within minutes of cancellation.
Do I get charged if I don't use it?
No. Billing is usage-based. Zero requests means zero charges.
What if an MCP server I use gets deleted?
You will receive an email and an in-app notification. If the server has active subscribers (including you), there is a 24-hour wind-down period before it goes offline. If the server had no subscribers, it may have been deleted immediately with no wind-down. See When a Server You Use Is Deleted for the full timeline and billing details.
Can I use one subscription with multiple AI tools?
Yes. Your subscription works with any MCP-compatible client. Check your subscriptions page for setup instructions for each client type.
What happens if my payment fails?
We retry the payment automatically. If it keeps failing, your subscription becomes past due and access is paused until payment goes through.
For Developers
How do I get started?
The Deploy Your Server guide walks you through the whole process. Most developers are live in under 10 minutes — no payment setup required.
What languages can I use?
JavaScript or TypeScript, compiled to a single entry point. See package.json Configuration for the exact structure.
What Node.js APIs can I use?
A subset. Your server runs on Cloudflare Workers — a V8 isolate, not Node.js — but mctx enables the nodejs_compat flag so commonly needed modules like node:crypto, node:buffer, node:stream, node:util, node:events, node:url, and node:path are available. Modules that require OS-level access — node:net, node:dgram, node:cluster, node:worker_threads — are not available. See package.json Configuration for the full list and alternatives.
How does hosting pricing work?
The first 1,000 requests per month per server are free, always. Above that, graduated per-request fees apply:
| Monthly requests | Rate per 1K |
|---|---|
| First 1,000 | Free |
| 1,001 – 10,000 | $1.00/1K |
| 10,001 – 100,000 | $0.85/1K |
| 100,001+ | $0.80/1K |
All requests above the free tier are billed at graduated rates. Add a payment method before you exceed the free tier to keep your server running uninterrupted.
See How Pricing Works for the full breakdown.
Can I charge subscribers for my server?
Yes — but it's optional. Monetization is a separate opt-in feature. When you enable it, you set your own price per 1,000 requests and keep 100% of subscriber revenue. Subscribers pay you directly; you're the merchant of record.
Monetization requires payout setup (a standard account to receive funds). Hosting fees are billed separately and use a different payment method.
When do subscriber payouts arrive?
Payouts are sent on a standard schedule, typically a 2-day rolling basis once your payout account is set up.
Can I set my own prices?
Yes. When you enable monetization, you control your base price per 1,000 requests.
What if I need to take my server offline?
You can deactivate it temporarily or delete it permanently. If your server has active subscribers, there is a 24-hour wind-down period so they have time to adjust. See Deleting Your Server for the full process.
Can I run multiple servers?
Yes. Deploy as many as you want from different repos.
Do I need a payout account to go live?
No. Hosting is free up to 1,000 requests/month and requires no payment setup at all. Above that free tier, you add a standard payment method (credit or debit card) to cover hosting fees.
A payout account is only required if you want to charge subscribers for your server (optional monetization). See How Payouts Work for setup details.
Can I update my server without breaking things for existing users?
Yes. Each version runs at its own endpoint. Subscribers stay on their current version until they choose to update. See the versioning guide for how this works.
What if my server has a bug?
Deploy a fix as a new version. Subscribers on the old version are not affected until they decide to switch. This gives you time to test the fix without disrupting anyone.
Pricing and Billing
How does pricing work?
There are two separate pricing flows on mctx: hosting fees (what you pay mctx to host your MCP server) and subscriber revenue (what subscribers pay you if you enable monetization). See How Pricing Works for the full breakdown.
What is the free tier?
Every server gets 1,000 requests per month at no cost. No payment method required until you exceed that limit.
What is locked-in pricing?
For monetized servers: the price a subscriber sees when they subscribe is the price they keep for as long as they stay subscribed. Even if you raise prices or demand bonus kicks in later, their rate does not change.
If they cancel and resubscribe, they pay whatever the current price is at that point. The locked-in rate only lasts while the subscription is active.
What is Demand Bonus?
An optional feature that automatically increases prices during high-traffic periods. Subscribers who join during quieter times lock in lower rates.
Are there hidden fees?
No. The free tier is genuinely free. Above the free tier, graduated hosting fees apply (documented in full on How Pricing Works). If you enable monetization, subscribers pay you directly with no platform cut.
Technical
How does authentication work?
It is automatic. mctx uses OAuth 2.0, and MCP clients handle the flow for you. When your client connects to an MCP server, it discovers auth requirements automatically and prompts you to sign in through your browser. See the Authentication guide for details.
Are there rate limits?
No hard platform-level rate limits. Individual servers may implement their own, and abusive usage may trigger account review.
Is there an SLA?
mctx runs on a global edge network with high availability. Formal SLAs are not currently offered.
Where are servers hosted?
Globally, on edge infrastructure close to your users. Every MCP server runs on Cloudflare Workers, deployed to data centers around the world.
Can I see logs for my server?
Yes. Your dashboard has real-time log streaming built in. Click View Logs on your server's detail page and watch console.log output appear as requests come in.
Logs are live-only -- there is no retention, so you see them while the modal is open. For persistent logging, connect an external service. See Server Logs for tips.
Is my data secure?
Yes.
- All traffic is encrypted over HTTPS
- Environment variables are encrypted at rest with AES-256-GCM
- mctx does not access your server's data
- Check each server developer's privacy policy for server-specific data handling
Are my environment variables safe?
Yes. Your API keys and secrets are protected with AES-256-GCM encryption, stored encrypted in the database, and only decrypted at deploy time when they are injected into your worker. They are never visible in logs, API responses, or the dashboard after you save them.
Account
How do I delete my account?
Go to Settings → Danger Zone → Close Account at app.mctx.ai/usr/settings. See Closing Your Account for what to expect before and after closure.
Can I change my email?
Email changes are not currently self-service. Contact support@mctx.ai to update your account email.
I forgot my password
mctx uses email and password login, with optional sign-in via Google or GitHub. If you signed up with an email and password, use the Forgot Password link on the login page to reset it. If you used Google or GitHub to sign in, log in via that provider instead — there is no mctx-specific password to reset.
Troubleshooting
Why did my deployment fail with a validation error?
If your deployment fails with a validation error (Cloudflare error 10021), your built JavaScript file imports a Node.js module that is not available in the Workers runtime.
Common causes:
- Direct import of an unsupported module —
node:net,node:dgram,node:cluster, ornode:worker_threads - Transitive dependency — a package you use internally depends on one of these modules (for example,
shelljsusesnode:child_process, which requires additional flags not enabled by mctx) node:child_process— this module requires experimental flags that mctx does not currently enable for tenant workers
To find the problem, build locally with the browser target and look for errors:
npx esbuild src/index.ts --bundle --platform=browser --format=esm --outfile=/dev/null 2>&1 | grep "Cannot use"Once you identify which import is failing, replace it with an HTTP-based alternative or remove the dependency. See package.json Configuration for supported modules and alternatives.
Why am I getting an "Unauthorized" error?
This usually means the OAuth flow between your MCP client and the server did not complete. Here is what to check:
- Is your MCP client set up for OAuth? It needs to support OAuth 2.0 discovery. Make sure it is pointed at the full server URL (for example,
https://example.mctx.ai/v1.0.0). - Did the sign-in flow finish? When your client prompts you to sign in, complete the flow in your browser. If it got stuck, restart the client and try again.
- Has your session expired? Sign out and back in through your MCP client. Most clients will prompt you automatically.
- Are you using the right account? Check your subscriptions page to confirm you are logged into the account that has the subscription.
Why am I getting a "Payment Required" error?
This means you are authenticated but do not have an active subscription for this MCP server.
- Check your subscriptions at app.mctx.ai/subscriptions. If the MCP server is not listed, you need to subscribe.
- Subscription canceled or past due? Update your payment method or resubscribe.
- Wrong MCP server URL? Double-check that the slug in the URL matches the MCP server you subscribed to.
Why is my version not found?
The version you requested does not exist on this MCP server. The error response includes a list of available versions:
{
"error": {
"code": -32001,
"message": "Version not found",
"data": {
"requestedVersion": "1.0.0",
"availableVersions": ["1.1.0", "2.0.0"]
}
}
}Update your client configuration to use one of the available versions.
Why is my connection timing out?
A few possibilities:
- The MCP server might be inactive. Check the MCP server's info page for its current status.
- Network issues on your end. Verify your internet connection and try the request again.
- The MCP server is doing something slow. Some operations (external API calls, complex computations) take time. Try increasing your client's timeout setting.
Why does my SSE connection keep dropping?
Server-Sent Events connections can be finicky. Try these:
- Add reconnection logic to your client so it recovers automatically
- Check for proxy interference. Some proxies and firewalls do not support SSE well.
- Verify the Accept header is set to
text/event-stream
Why can't I activate my MCP server?
Walk through this checklist:
- GitHub connected? Go to Developer Settings and confirm GitHub OAuth is connected and the GitHub App is installed.
- Valid package.json? Check for syntax errors and make sure
name,version,description, andmainare all present. - Does the main file exist? The path in the
mainfield must point to a real file, relative topackage.json. - Does the project build? Fix any TypeScript or compilation errors in your repo.
Why isn't my new version deploying?
You pushed to main but nothing happened. Here is what to check:
- Look at your notifications. Check the dashboard and your email for deployment failure messages.
- Did you bump the version? The
versioninpackage.jsonmust be a valid semver string (like1.0.0or2.1.3-beta.1), and it must be different from the currently deployed version. Same version number means no new deployment. - Build errors? Make sure your code compiles successfully on its own.
- Is the GitHub App installed? Verify it has access to your repo. You can reinstall it from your MCP server settings if needed.
Why aren't my environment variables working?
- Check the scope. Server-level variables are available to all versions. Version-level variables only apply to that specific version.
- Did you redeploy? Server-level variables require a new deployment to take effect. Push a new version or use the Redeploy button.
- Check the variable name. Names are case-sensitive. Watch for typos.
Why aren't my logs showing up?
- No requests coming in? Logs only appear when requests are actively hitting your MCP server.
- MCP server inactive? Activate it first.
- Using the right methods? Stick to
console.log,console.warn, andconsole.error.
I can't subscribe to an MCP server
- Are you signed in? You need to be logged in to subscribe.
- Payment issue? Try a different card.
- MCP server inactive? You can only subscribe to active MCP servers.
My subscription is not showing up
- Refresh the page. The subscription list sometimes needs a moment.
- Check your email for a payment receipt confirming the payment went through.
- Right account? Make sure you are logged into the same account you used to subscribe.
My usage shows zero even though I'm making requests
- Are you hitting the right endpoint? Make sure you are using the versioned URL (like
/v1.0.0). - Check for auth errors. If requests are returning 401 or 402, they are not counted as usage.
- Give it a minute. Usage reporting can take a few minutes to update.
Still stuck?
Check the Authentication guide for technical details on how OAuth works, or browse the full documentation for guides on every part of the platform.
See something wrong? Report it or suggest an improvement — your feedback helps make these docs better.
Slug Reservation & Cooling-Off Period
How mctx reserves subdomains after MCP server deletion. 7-day cooling-off period on production, DNS hijacking protection, and test environment behavior.
Closing Your Account
How to permanently close your mctx account, including pre-closure requirements, what data is retained, and how to export your data before closing.