Deploying your MCP server allows others to access its tools and resources beyond your local environment. There are several deployment strategies to consider, depending on your requirements for scalability, reliability, and ease of management. Below you'll find guidance for deploying MCP servers locally, in containers, and to the cloud.
This lesson covers how to deploy your MCP Server app.
By the end of this lesson, you will be able to:
- Evaluate different deployment approaches.
- Deploy your app.
If your server is meant to be consumed by running on users machine, you can follow the following steps:
- Download the server. If you didn't write the server, then download it first to your machine.
- Start the server process: Run your MCP server application
For SSE (not needed for stdio type server)
- Configure networking: Ensure the server is accessible on the expected port
- Connect clients: Use local connection URLs like
http://localhost:3000
MCP servers can be deployed to various cloud platforms:
- Serverless Functions: Deploy lightweight MCP servers as serverless functions
- Container Services: Use services like Azure Container Apps, AWS ECS, or Google Cloud Run
- Kubernetes: Deploy and manage MCP servers in Kubernetes clusters for high availability
Azure Container Apps support deployment of MCP Servers. It's still a work in progress and it currently supports SSE servers.
Here's how you can go about it:
- Clone a repo:
git clone https://github.com/anthonychu/azure-container-apps-mcp-sample.git- Run it locally to test things out:
uv venv
uv sync
# linux/macOS
export API_KEYS=<AN_API_KEY>
# windows
set API_KEYS=<AN_API_KEY>
uv run fastapi dev main.py- To try it locally, create a mcp.json file in a .vscode directory and add the following content:
{
"inputs": [
{
"type": "promptString",
"id": "weather-api-key",
"description": "Weather API Key",
"password": true
}
],
"servers": {
"weather-sse": {
"type": "sse",
"url": "http://localhost:8000/sse",
"headers": {
"x-api-key": "${input:weather-api-key}"
}
}
}
}Once the SSE server is started, you can click the play icon in the JSON file, you should now see tools on the server be picked up by GitHub Copilot, see the Tool icon.
- To deploy, run the following command:
az containerapp up -g <RESOURCE_GROUP_NAME> -n weather-mcp --environment mcp -l westus --env-vars API_KEYS=<AN_API_KEY> --source .There you have it, deploy it locally, deploy it to Azure through these steps.
- Next: Practical Implementation