MCP Python SDK
Tradução automática
Esta página foi traduzida automaticamente a partir da documentação em inglês, e a página em inglês é a versão de referência. Se algo parecer errado, Traduções explica como avisar.
Esta documentação cobre a v2, a linha de versões estável atual
Começando na v2 ou vindo da v1? Novidades da v2 é o tour de cinco minutos pelo que mudou, e o Guia de migração cobre todas as mudanças incompatíveis. Ainda na v1.x? A documentação dela fica nos docs da v1.x. Encontrou algo mal-acabado ou confuso? Conte para nós.
O Model Context Protocol (MCP) permite que aplicações forneçam contexto a LLMs de forma padronizada, separando a responsabilidade de fornecer contexto da interação com o LLM em si.
Este é o SDK Python oficial do protocolo. Com ele, você pode:
- Construir servidores MCP que expõem ferramentas (tools), recursos e prompts a qualquer host MCP.
- Construir clientes MCP que se conectam a qualquer servidor MCP.
- Comunicar-se por todos os transportes padrão: stdio, Streamable HTTP e SSE.
Requisitos
Python 3.10+.
Instalação
uv add "mcp[cli]"
pip install "mcp[cli]"
O extra [cli] instala o comando mcp; você vai precisar dele durante o desenvolvimento.
Veja Instalação para saber para que serve cada dependência.
Exemplo
Crie
Crie um arquivo server.py:
from mcp.server import MCPServer
mcp = MCPServer("Demo")
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers."""
return a + b
@mcp.resource("greeting://{name}")
def greeting(name: str) -> str:
"""Greet someone by name."""
return f"Hello, {name}!"
Esse é um servidor MCP completo.
Ele expõe uma ferramenta, add, e um recurso com template, greeting://{name}.
Execute
uv run mcp dev server.py
Isso inicia o seu servidor e abre o MCP Inspector, uma interface interativa para explorá-lo. Abra a URL que ele imprime.
Note
O Inspector é um app Node.js, então mcp dev precisa do npx no seu PATH.
Experimente
No Inspector, vá em Tools e chame add com a=1, b=2.
Você recebe 3 de volta. ✨
O Inspector montou esse formulário (um campo inteiro obrigatório para a, outro para b) a partir das suas anotações de tipo. O Claude faz o mesmo, assim como qualquer outro host MCP.
Agora vá em Resources e leia greeting://World:
Hello, World!
Recapitulando
Repare de novo no que você não escreveu:
- Nenhum JSON Schema.
a: int, b: inté o schema. - Nenhum parsing de requisição, nenhuma serialização, nenhum código de validação.
- Absolutamente nenhum tratamento do protocolo.
Você escreveu duas funções Python com anotações de tipo e uma docstring. O SDK faz o resto.
Para onde ir agora
- Comece por aqui leva você da instalação até um servidor funcionando e testado.
- Construindo uma aplicação que usa servidores MCP? Comece por Clientes.
- Já tem um app FastAPI ou Starlette? Adicionar a um app existente monta um servidor MCP dentro dele.
- Atrás de uma mensagem de erro específica? Solução de problemas é organizada pelo texto exato das mensagens.
- Quer saber o que mudou na v2? Novidades da v2 é o tour de cinco minutos.
- Migrando da v1? Comece pelo Guia de migração.
- Atrás de uma assinatura exata? A Referência da API é gerada a partir do código-fonte.
- Lendo com um LLM? Esta documentação também é publicada no formato llms.txt: llms.txt é um índice das páginas, e llms-full.txt contém todas as páginas em um único arquivo.