2025-10-03 14:17:08 +01:00
# MCP Python SDK
2025-03-25 13:06:15 +01:00
2025-10-03 14:17:08 +01:00
The **Model Context Protocol (MCP) ** allows applications to provide context for LLMs in a standardized way, separating the concerns of providing context from the actual LLM interaction.
2025-03-25 13:06:15 +01:00
2025-10-03 14:17:08 +01:00
This Python SDK implements the full MCP specification, making it easy to:
- **Build MCP servers** that expose resources, prompts, and tools
- **Create MCP clients** that can connect to any MCP server
- **Use standard transports** like stdio, SSE, and Streamable HTTP
If you want to read more about the specification, please visit the [MCP documentation ](https://modelcontextprotocol.io ).
## Quick Example
Here's a simple MCP server that exposes a tool, resource, and prompt:
```python title="server.py"
from mcp.server.fastmcp import FastMCP
2025-11-20 15:06:37 +00:00
mcp = FastMCP("Test Server", json_response=True)
2025-10-03 14:17:08 +01:00
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers"""
return a + b
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
"""Get a personalized greeting"""
return f"Hello, {name}!"
@mcp.prompt()
def greet_user(name: str, style: str = "friendly") -> str:
"""Generate a greeting prompt"""
return f"Write a {style} greeting for someone named {name}."
2025-11-20 15:06:37 +00:00
if __name__ == "__main__":
mcp.run(transport="streamable-http")
` ``
Run the server:
` ``bash
uv run --with mcp server.py
2025-10-03 14:17:08 +01:00
` ``
2025-11-20 15:06:37 +00:00
Then open the [MCP Inspector](https://github.com/modelcontextprotocol/inspector) and connect to ` http://localhost:8000/mcp`:
2025-10-03 14:17:08 +01:00
` ``bash
2025-11-20 15:06:37 +00:00
npx -y @modelcontextprotocol/inspector
2025-10-03 14:17:08 +01:00
` ``
## Getting Started
<!-- TODO(Marcelo): automatically generate the follow references with a header on each of those files. -->
1. * * [Install ](installation.md )** the MCP SDK
2026-02-23 15:18:24 +00:00
2. * * [Build servers ](server.md )** - tools, resources, prompts, transports, ASGI mounting
3. * * [Write clients ](client.md )** - connect to servers, use tools/resources/prompts
4. * * [Explore authorization ](authorization.md )** - add security to your servers
5. * * [Use low-level APIs ](low-level-server.md )** - for advanced customization
6. * * [Protocol features ](protocol.md )** - MCP primitives, server capabilities
2025-10-03 14:17:08 +01:00
## API Reference
Full API documentation is available in the [API Reference ](api.md ).