Create a FastMCP Server
A FastMCP server is a collection of tools, resources, and other MCP components. To create a server, start by instantiating theFastMCP
class.
Create a new file called my_server.py
and add the following code:
my_server.py
Add a Tool
To add a tool that returns a simple greeting, write a function and decorate it with@mcp.tool
to register it with the server:
my_server.py
Run the Server
The simplest way to run your FastMCP server is to call itsrun()
method. You can choose between different transports, like stdio
for local servers, or http
for remote access:
python my_server.py
. The stdio transport is the traditional way to connect MCP servers to clients, while the HTTP transport enables remote connections.
Why do we need the
if __name__ == "__main__":
block?The __main__
block is recommended for consistency and compatibility, ensuring your server works with all MCP clients that execute your server file as a script. Users who will exclusively run their server with the FastMCP CLI can omit it, as the CLI imports the server object directly.Using the FastMCP CLI
You can also use thefastmcp run
command to start your server. Note that the FastMCP CLI does not execute the __main__
block of your server file. Instead, it imports your server object and runs it with whatever transport and options you provide.
For example, to run this server with the default stdio transport (no matter how you called mcp.run()
), you can use the following command:
Call Your Server
Once your server is running with HTTP transport, you can connect to it with a FastMCP client or any LLM client that supports the MCP protocol:my_client.py
- FastMCP clients are asynchronous, so we need to use
asyncio.run
to run the client - We must enter a client context (
async with client:
) before using the client - You can make multiple client calls within the same context
Deploy to FastMCP Cloud
FastMCP Cloud is a hosting service run by the FastMCP team at Prefect. It is optimized to deploy authenticated FastMCP servers as quickly as possible, giving you a secure URL that you can plug into any LLM client.Please note that FastMCP Cloud is a commercial service, though it is completely free for most personal servers.
- Push your
my_server.py
file to a GitHub repository - Sign in to FastMCP Cloud with your GitHub account
- Create a new project from your repository and enter
my_server.py:mcp
as the server entrypoint
https://your-project.fastmcp.app/mcp
. You can chat with it to test its functionality, or connect to it from any LLM client that supports the MCP protocol.
For more details, see the FastMCP Cloud guide.