Migrating an MCP server off Smithery
On October 31, 2026 Smithery shut down its connection management: the proxy, server URLs on run.tools and server.smithery.ai, the API, Connect, Toolbox, accounts and API keys. The directory at smithery.ai stays online as a plain, non-proxied listing. If your users reached your server through a Smithery URL, they need a direct path now.
Source: smithery.ai/future. KeyFlint is not affiliated with Smithery.
What KeyFlint does and does not replace
| Smithery gave you | After the shutdown |
|---|---|
| A hosted URL that proxied your server | Run it yourself: stdio via npx/uvx, an MCP Bundle (.mcpb), or your own HTTP endpoint on any host. KeyFlint does not host MCP servers. |
| Managed end-user identity and OAuth connectors | Not a KeyFlint feature. Use your client's built-in OAuth support or a connector platform. |
| A directory listing | Still there; point it at your direct install command or official URL. |
| (Nothing for selling access) | KeyFlint: license keys checked offline, per-call credits, Stripe checkout. Optional. |
1. Give users a direct install path
For a local (stdio) server, publish it to npm or PyPI so a client can start it with one command:
{
"mcpServers": {
"my-server": { "command": "npx", "args": ["-y", "my-mcp-server"] }
}
}
For a remote server, deploy it on a host you control and give users the HTTPS URL directly. Update your README and your smithery.ai listing so nobody is left with a dead server.smithery.ai link.
2. Optional: charge for it without touching its code
@keyflint/wrap starts your stdio server and gates every tools/call: offline Ed25519 license check, optional credit debit on your KeyFlint gateway, automatic refund when a call fails. Other messages pass through untouched.
export KEYFLINT_LICENSE="LIC-..." # the buyer's key
export KEYFLINT_PUBLIC_KEYS="k1=<hex>" # your issuer public key
export KEYFLINT_URL="https://licenses.example.com" # only for metered tools
npx @keyflint/wrap --credits 0 --tool summarize=5 -- npx -y my-mcp-server
--credits 0 means license check only; --tool NAME=N meters one tool. For HTTP servers, use the keyflint-verify SDK in code instead (Python, TypeScript, Go). The full setup, including the gateway and Stripe, is in How to sell a paid MCP server.
3. Ship a one-click install for Claude Desktop
The repo's examples/mcpb-template packages a server behind the wrapper as an MCP Bundle. The buyer pastes the license key once at install time; it is declared sensitive, so Claude Desktop masks it and stores it securely. Cursor and Windsurf users can run npx keyflint-verify activate LIC-... to write the key into their config.
FAQ
Do I need KeyFlint to migrate? No. Step 1 is all a free server needs. KeyFlint only matters if you want to sell access.
Does the wrapper stop someone who has my source? No. Anyone who can edit the server can run it without the wrapper. It protects buyers' keys and quota; keep paid logic behind your gateway if that matters.
Is there a cut per sale? No. KeyFlint is self-hosted; you pay only your payment processor.
Read the full guide Star on GitHub