Deploying to the cloud with Arcade Deploy
Running your servers locally is very convenient during development and testing. Once your is mature, however, you may want to access it from any MCP client, or to facilitate multi-user support. Doing all that from your computer comes with the complexity of running and maintaining a server, handling auth and high availability for all your users and all the integrations you want to support. Arcade Deploy takes care of all that for you. Your MCP server will be accessible to any MCP client. Also, all the tools you create will be available in the larger catalog that you can use when building MCP gateways.
This guide shows you how to deploy your Server with Arcade Deploy.
Requirements
- Python 3.10 or higher
Verify your Python version by runningpython --versionorpython3 --versionin your terminal. - Arcade : Sign up for an Arcade account if you haven’t already.
- Arcade CLI: Install the Arcade CLI
uv
uv pip install arcade-mcpCreate an MCP server using Arcade MCP
If you have not created an server yet, then follow the steps outlined in this guide before deploying.
Deploy your MCP Server
Run the deploy command in the directory where you started your server (containing your pyproject.toml file).
arcade deployBy default, running arcade deploy looks for a file named server.py as the entry point to your server.
An entry point file is considered valid if it executes the run() method on your MCPApp instance when invoked directly - for example, running uv run your_entrypoint_file.py should result in your server starting. A minimal valid entry point looks like this:
from arcade_mcp_server import MCPApp
app = MCPApp()
@app.tool
def echo(phrase: Annotated[str, "The phrase to echo"]):
return phrase
if __name__ == "__main__":
app.run()If your server uses a different script name or location, specify it with the —entrypoint option. For example, if your pyproject.toml is in ~/my-app/mcp-server/ and your entry point file is ~/my-app/mcp-server/server/my_mcp_server.py, start the deployment with:
arcade deploy --entrypoint server/my_mcp_server.pyIt is important that your entrypoint script executes MCPApp.run() (or
app.run() if app is of type MCPApp) when invoked directly.
We recommend to do it inside an if __name__ == "__main__": statement.
You should see output like the following:
Verifying server and extracting metadata...
✓ Server is healthy
✓ Found server: ArcadeMCP v0.1.0
ArcadeMCP v0.1.0 has 3 tools
Discovered 1 required secret(s)
Required secrets: MY_SECRET_KEY
✓ Secret 'MY_SECRET_KEY' uploaded
Creating deployment package...
✓ Package created (1.8 KB)
Deploying to Arcade Engine...
✓ Server deployed successfullyManage your MCP servers in Arcade
Navigate to the Servers page in your Arcade dashboard. From there, you will be able to:
- Monitor the health status of the server
- Get a connection string to configure your clients.
- Delete the server
- Test and execute all the
- Manage users connected to the
- Create Gateways
List your MCP servers on the terminal
Run the following command to list your servers:
arcade server listYou should see output like the following:
┌----------┳----------┳-------------┳---------┳------------┳------------------┓
| | Cloud | Engine | | | |
| ID | Deployed | Registered | Enabled | Host | Toolkits |
├----------╇----------╇-------------╇---------╇------------╇------------------┤
| main | False | True | True | http://wo… | SlackApi, Asana, |
| | | | | | BoxApi, Clickup, |
| | | | | | ... |
| | | | | | Zendesk, Zoom |
| mcp_demo | False | True | True | | Demo |
└----------┴----------┴-------------┴---------┴------------┴------------------┘Your Server is now deployed and registered with the engine and ready to use!