Pular para conteúdo

MCP Python SDK

Esta página foi traduzida por máquina

As traduções desta documentação são geradas automaticamente a partir das páginas em inglês, e a versão em inglês desta página é a oficial.

Encontrou um problema na tradução? Veja como as traduções funcionam e como reportar um problema.

Esta documentação cobre a v2, a linha de release estável atual

Chegou agora na v2 ou está vindo da v1? O que há de novo na v2 é o tour de cinco minutos sobre o que mudou, e o Guia de migração cobre cada mudança incompatível. Ainda na v1.x? A documentação dela fica na documentação da v1.x. Achou algo confuso ou malfeito? Conte pra gente.

O Model Context Protocol (MCP) permite que aplicações forneçam contexto a LLMs de forma padronizada, separando a tarefa de fornecer contexto da interação com o LLM em si.

Este é o SDK oficial em Python para ele. Com ele você pode:

  • Construir servidores MCP que expõem ferramentas, recursos e prompts para qualquer host MCP.
  • Construir clientes MCP que se conectam a qualquer servidor MCP.
  • Falar 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] te dá o comando mcp; você vai querer ele para o desenvolvimento. Veja Instalação para entender 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 cutucar o servidor. Abra a URL que ele imprime.

Note

O Inspector é um app Node.js, então 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 type hints. O Claude vai fazer o mesmo, e todo outro host MCP também.

Agora vá em Resources e leia greeting://World:

Hello, World!

Recapitulando

Olhe de novo para o 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.
  • Nenhum tratamento de protocolo, nada.

Você escreveu duas funções Python com type hints e uma docstring. O SDK faz o resto.

Para onde ir agora