Deployments

Smithery Deployments allow you to host your standard input/output (STDIO) MCP server on Smithery served over a WebSocket connection.

Benefits of hosting:

  • Smithery will show an MCP playground on your server page, allowing users to try your MCP online.
  • Users can call your server without installing dependencies or be concerned about security.
  • Smithery will rank hosted servers higher in our search results.

Overview

Deploying on Smithery is straightforward:

  1. Add your server to Smithery (or claim it if it's already listed)
  2. Click Deploy on Smithery Deployments tab on your server page (only authenticated server owners can see this tab)

That's it! Your MCP server will be built and deployed according to your configuration.

Why WebSockets?

Smithery Deployments use WebSockets (WS) because WebSockets enable session affinity. This means when we scale up your MCP based on traffic, the same client will always connect to the same server. The Server-Sent-Events transport provided by Model Context Protocol is unable to easily achieve this for scalable hosting. See this discussion for more details.

WebSockets transport implementations are maintained by the official MCP SDK in Typescript, Python and Kotlin.

Serverless Hosting

We serve your hosted MCP servers on Smithery over WebSockets (WS) in a serverless environment and they will timeout after 5 minutes. You will need to handle reconnection if needed. You should design your server with ephemeral storage in mind. Persistent data should be stored in an external database.

Tool Lists

Smithery can only display tool lists for servers that don't require authentication to list tools. Server developers must ensure that the list tools functionality is not dependent on any API keys or configurations that users have to provide.

As a server developer, you can implement this by supporting "lazy loading" - only authenticating using your required configuration/API keys upon tool call, rather than upon initialization.