STDIO Transport
STDIO transport communicates with MCP servers through subprocess pipes. When using STDIO, your client launches and manages the server process, controlling its lifecycle and environment.Environment Variables
Since STDIO servers do not inherit your environment, you need strategies for passing configuration. Selective forwarding passes only the variables your server needs:Session Persistence
STDIO transports maintain sessions across multiple client contexts by default (keep_alive=True). This reuses the same subprocess for multiple connections, improving performance.
HTTP Transport
HTTP transport connects to MCP servers running as web services. This is the recommended transport for production deployments.SSL Verification
By default, HTTPS connections verify the server’s SSL certificate. You can customize this behavior with theverify parameter, which accepts the same values as httpx:
verify parameter is also available directly on StreamableHttpTransport and SSETransport:
SSE Transport
Server-Sent Events transport is maintained for backward compatibility. Use Streamable HTTP for new deployments unless you have specific infrastructure requirements.In-Memory Transport
In-memory transport connects directly to a FastMCP server instance within the same Python process. This eliminates both subprocess management and network overhead, making it ideal for testing.Unlike STDIO transports, in-memory servers share the same memory space and environment variables as your client code.
Multi-Server Configuration
Connect to multiple servers defined in a configuration dictionary:Tool Transformations
FastMCP supports tool transformations within the configuration. You can change names, descriptions, tags, and arguments for tools from a server.include_tags or exclude_tags at the server level:

