Pular para conteúdo

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:

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