Spaces:
Running
Running
| --- | |
| title: Testing MCP Servers | |
| sidebarTitle: Testing | |
| description: Learn how to test your FastMCP servers effectively | |
| icon: vial | |
| --- | |
| Testing your MCP servers thoroughly is essential for ensuring they work correctly when deployed. FastMCP makes this easy through a variety of testing patterns. | |
| ## In-Memory Testing | |
| The most efficient way to test an MCP server is to pass your FastMCP server instance directly to a Client. This enables in-memory testing without having to start a separate server process, which is particularly useful because managing an MCP server programmatically can be challenging. | |
| Here is an example of using a `Client` to test a server with pytest: | |
| ```python | |
| import pytest | |
| from fastmcp import FastMCP, Client | |
| def mcp_server(): | |
| server = FastMCP("TestServer") | |
| def greet(name: str) -> str: | |
| return f"Hello, {name}!" | |
| return server | |
| async def test_tool_functionality(mcp_server): | |
| # Pass the server directly to the Client constructor | |
| async with Client(mcp_server) as client: | |
| result = await client.call_tool("greet", {"name": "World"}) | |
| assert result[0].text == "Hello, World!" | |
| ``` | |
| This pattern creates a direct connection between the client and server, allowing you to test your server's functionality efficiently. | |