MCP Server Python
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Server PythonCall the hello tool with my name"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Server Template (Python)
A minimal Model Context Protocol server template for Render. Fork it, add your own tools, and deploy.
What's included
A working MCP server using the MCP Python SDK with Streamable HTTP transport
Bearer token authentication via
MCP_API_TOKEN(auto-generated on deploy)One example tool (
hello) to show the patternA
/healthendpoint for Render's health checksA
render.yamlBlueprint for one-click deploymentAn
AGENTS.mdso AI coding assistants can scaffold new tools for you
Note: This template deploys on the free plan by default. Free services spin down after 15 minutes of inactivity, causing cold starts of 30-60 seconds on the next request. MCP clients may time out during this delay. For reliable use, upgrade to a paid plan in the Render Dashboard — the Starter plan keeps your service running continuously.
Related MCP server: MCP Server Template (Python)
Getting started locally
git clone https://github.com/render-examples/mcp-server-python.git
cd mcp-server-python
pip install -r requirements.txt
python server.pyThe server starts on http://localhost:10000. The MCP endpoint is at /mcp.
Running tests
pip install -r requirements.txt
pytestAuthentication
The server authenticates requests using a bearer token. Render's Blueprint auto-generates a random MCP_API_TOKEN on first deploy.
To find your token after deploying, go to Render Dashboard > your service > Environment and copy the MCP_API_TOKEN value.
Clients must include the token in the Authorization header:
Authorization: Bearer YOUR_TOKENWhen MCP_API_TOKEN is not set (e.g., during local development), authentication is disabled and all requests are allowed through.
Managing your token
After the initial deploy, the token is yours to manage:
Rotate it by updating
MCP_API_TOKENin the Render Dashboard under Environment. The service restarts automatically with the new value.Generate a new token with any of these:
openssl rand -base64 32python3 -c "import secrets; print(secrets.token_urlsafe(32))"A password manager's generator (1Password, Bitwarden, etc.)
Don't commit tokens to source control. Use environment variables or
.envfiles (which are in.gitignore).For multi-user or production setups, consider upgrading to OAuth 2.1.
Connecting to your MCP server
After deploying to Render, your MCP endpoint is available at:
https://your-service-name.onrender.com/mcpCursor
Add to your project's .cursor/mcp.json:
{
"mcpServers": {
"my-mcp-server": {
"url": "https://your-service-name.onrender.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
}
}
}
}Claude Desktop
Add to your Claude Desktop config:
{
"mcpServers": {
"my-mcp-server": {
"type": "streamable-http",
"url": "https://your-service-name.onrender.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
}
}
}
}Codex
codex mcp add --transport streamable-http \
--url https://your-service-name.onrender.com/mcp \
--header "Authorization: Bearer YOUR_TOKEN" \
my-mcp-serverOr add to .codex/config.toml:
[mcp_servers.my-mcp-server]
url = "https://your-service-name.onrender.com/mcp"
http_headers = { Authorization = "Bearer YOUR_TOKEN" }Adding tools
Add tools to server.py by decorating a function with @mcp.tool():
@mcp.tool()
def fetch_weather(city: str, units: str = "celsius") -> str:
"""Get the current weather for a city."""
# your implementation here
return f"Weather for {city}"The docstring becomes the tool's description, which MCP clients show to LLMs. Always write a clear one.
This repo includes an
AGENTS.mdfile. If you use an AI coding assistant (Cursor, Copilot, Codex, Windsurf, etc.), you can ask it to "add a new tool" and it will follow the conventions inAGENTS.mdautomatically.
Project structure
server.py MCP server with example tool and health check
requirements.txt Python dependencies
render.yaml Render Blueprint for deployment
.env.example Environment variable reference
tests/test_server.py Test suite (auth, health, tool calls)
pyproject.toml pytest configuration
AGENTS.md Instructions for AI coding assistants
CLAUDE.md Pointer to AGENTS.md for Claude CodeLearn more
This server cannot be deployed
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
Enable secure connectivity between Sentry issues and debugging data, and LLM clients, using a Model Context Protocol (MCP) server.
Build, validate, deploy — HTTP APIs, cron jobs, webhooks and MCP tools — from your AI client.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that exposes multiple AI tools over SSE transport with JWT-based secure authentication, allowing for dynamic tool registration and session management.3,970 npm4MIT
- FlicenseNot gradedqualityCmaintenanceA minimal Model Context Protocol server template for Render with bearer token authentication, an example tool, and a health check endpoint. Enables deploying custom MCP tools quickly on Render.-
- FlicenseNot gradedqualityCmaintenanceEnables developers to deploy a Model Context Protocol server to Render with bearer token authentication, allowing custom tools to be connected to MCP clients like Claude Desktop and Cursor.-
- FlicenseNot gradedqualityCmaintenanceProvides a minimal Model Context Protocol server with Streamable HTTP transport, bearer token authentication, an example hello tool, and a health check endpoint for deployment on Render.-