Build MCP Server QuickStart
Outcomes
Build and run an Server with that you create.
You will Learn
- Install
arcade-mcp, the secure framework for building servers - Start your server and connect to it from your favorite MCP client
- Call a simple
- Call a that requires a secret
- Create an Arcade
- Call a that requires auth
Prerequisites
- Python 3.10 or higher
- The
uvpackage manager
Install the Arcade CLI
In your terminal, run the following command to install the arcade-mcp package - Arcade’s CLI:
uv
uv tool install arcade-mcpThis will install the Arcade CLI as a uv tool , making it available system wide.
Create Your Server
In your terminal, run the following command to scaffold a new Server called my_server:
arcade new my_server
cd my_server/src/my_serverThis generates a Python module with the following structure:
my_server/
├── src/
│ └── my_server/
│ ├── __init__.py
│ ├── .env.example
│ └── server.py
└── pyproject.toml- server.py with MCPApp and example
- pyproject.toml Dependencies and configuration
- .env.example Example
.envfile containing a secret required by one of the generated inserver.py
server.py includes proper structure with command-line argument handling. It creates an MCPApp with three sample :
greet: This has a single argument, the name of the person to greet. It requires no secrets or authwhisper_secret: This requires no arguments, and will output the last 4 characters of aMY_SECRET_KEYsecret that you can define in your.envfile.get_posts_in_subreddit: This has a single argument, a subreddit, and will return the latest posts on that subreddit, it requires the to authorize the tool to perform a read operation on their behalf.
If you’re having issues with the
arcadecommand, please see the Troubleshooting section.
Setup the secrets in your environment
Secrets are sensitive strings like passwords, , or other tokens that grant access to a protected resource or API. Arcade includes the “whisper_secret” that requires a secret key to be set in your environment. If the secret is not set, the tool will return an error.
.env file
You can create a .env file at the same directory as your (server.py) and add your secret:
MY_SECRET_KEY="my-secret-value"The generated includes a .env.example file with the secret key name and example value.
You can rename it to .env to start using it.
mv .env.example .envConnect to Arcade to unlock authorized tool calling
Since the Reddit tool accesses information only available to your Reddit , you’ll need to authorize it. For this, you’ll need to create an Arcade account and connect to it from the terminal, run:
arcade loginFollow the instructions in your browser, and once you’ve finished, your terminal will be connected to your Arcade .
Run your MCP Server
Run your Server using one of the following commands in your terminal:
stdio transport (default)
uv run server.py stdioWhen using the stdio transport, clients typically launch the as
a subprocess. Because of this, the server may run in a different environment
and not have access to secrets defined in your local .env file. Please refer
to the create a tool with
secrets guide for more
information.
You should see output like this in your terminal:
2025-11-03 13:46:11.041 | DEBUG | arcade_mcp_server.mcp_app:add_tool:242 - Added tool: greet
2025-11-03 13:46:11.042 | DEBUG | arcade_mcp_server.mcp_app:add_tool:242 - Added tool: whisper_secret
2025-11-03 13:46:11.043 | DEBUG | arcade_mcp_server.mcp_app:add_tool:242 - Added tool: get_posts_in_subreddit
INFO | 13:46:11 | arcade_mcp_server.mcp_app:299 | Starting my_server v1.0.0 with 3 toolsConfigure your MCP Client(s)
Now you can connect Clients to your :
Cursor IDE
# Configure Cursor to use your MCP server with the default transport (stdio)
arcade configure cursor
# Configure Cursor to use your MCP server with the http transport
arcade configure cursor --transport httpTry it out!
Try calling your inside your assistant.
Here’s some prompts you can try:
- “Get some posts from the r/ subreddit”
- “What’s the last 4 characters of my secret key?”
- “Greet me as Supreme Master”
Troubleshooting
arcade command not found or not working
If you’re getting issues with the arcade command, please make sure you did not install it outside of your virtual environment. For example, if your system-wide Python installation older than 3.10, you may need to uninstall arcade from that Python installation in order for the terminal to recognize the arcade command installed in your virtual environment.
The Reddit tool is not working
Ensure you run arcade login and follow the instructions in your browser to connect to your Arcade .
The Whisper Secret tool is not working
Ensure you have set the environment variable in your terminal or .env file, and that it matches the secret key defined in the @app.tool decorator. If you are using the stdio transport, then ensure the environment variable is set in the client’s configuration file.
Next Steps
- Learn how to write a with auth: Create a tool with auth
- Learn how to write a with secrets: Create a tool with secrets
- Learn more about the object: Tools and Context
- Learn how to write evaluations: Create an evaluation suite to optimize them for LLM usage
- Learn how to deploy your server: Deploy your MCP server