---
title: "Python"
description: "Use o SDK oficial Python do MCP para integrar as APIs da APIBrasil em seus scripts e aplicações Python com suporte assíncrono."
lang: pt-BR
canonical: https://doc.apibrasil.io/mcp/programacao/python
markdown: https://doc.apibrasil.io/mcp/programacao/python.md
source: apibrasil-documentation
---

# Python

> Use o SDK oficial Python do MCP para integrar as APIs da APIBrasil em seus scripts e aplicações Python com suporte assíncrono.

- **Categoria:** Linguagens de Programação
- **Dificuldade:** Médio
- **Protocolo:** conecta ao servidor MCP
- **Atualizado em:** 14 de janeiro de 2026

## Pré-requisitos

- Python 3.10 ou superior
- pip instalado
- Conhecimento básico de asyncio
- Tokens da APIBrasil

## Configuração

- **Arquivo:** `main.py`

```python
import asyncio
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

async def main():
    server_params = StdioServerParameters(
        command="npx",
        args=[
            "-y",
            "@modelcontextprotocol/server-sse-client",
            "--url",
            "https://mcp.apibrasil.cloud/mcp"
        ],
        env={
            "APIBRASIL_BEARER_TOKEN": "seu_bearer_token",
            "APIBRASIL_DEVICE_TOKEN": "seu_device_token"
        }
    )
    
    async with stdio_client(server_params) as (read, write):
        async with ClientSession(read, write) as session:
            await session.initialize()
            
            # Listar ferramentas disponíveis
            tools = await session.list_tools()
            print(f"Ferramentas disponíveis: {tools}")
            
            # Consultar CEP
            result = await session.call_tool(
                "consultar_cep",
                arguments={"cep": "01001000"}
            )
            print(f"Resultado: {result}")

if __name__ == "__main__":
    asyncio.run(main())
```

## Passo a passo

1. **Instalar dependências** — Instale o SDK oficial do MCP para Python
   ```bash
   pip install mcp
   # ou com poetry:
   poetry add mcp
   ```
2. **Criar arquivo de configuração** — Crie um arquivo .env para armazenar seus tokens de forma segura
   ```bash
   APIBRASIL_BEARER_TOKEN=seu_bearer_token_aqui
   APIBRASIL_DEVICE_TOKEN=seu_device_token_aqui
   ```
3. **Implementar cliente básico** — Crie um script Python para conectar ao servidor MCP
   ```python
   import asyncio
   import os
   from mcp import ClientSession, StdioServerParameters
   from mcp.client.stdio import stdio_client
   from dotenv import load_dotenv
   
   load_dotenv()
   
   async def consultar_cep(cep: str):
       server_params = StdioServerParameters(
           command="npx",
           args=["-y", "@modelcontextprotocol/server-sse-client", "--url", "https://mcp.apibrasil.cloud/mcp"],
           env={
               "APIBRASIL_BEARER_TOKEN": os.getenv("APIBRASIL_BEARER_TOKEN"),
               "APIBRASIL_DEVICE_TOKEN": os.getenv("APIBRASIL_DEVICE_TOKEN")
           }
       )
       
       async with stdio_client(server_params) as (read, write):
           async with ClientSession(read, write) as session:
               await session.initialize()
               result = await session.call_tool("consultar_cep", arguments={"cep": cep})
               return result
   
   if __name__ == "__main__":
       resultado = asyncio.run(consultar_cep("01001000"))
       print(resultado)
   ```
4. **Executar o script** — Execute seu script Python para testar a conexão
   ```bash
   python main.py
   ```
5. **Implementar tratamento de erros** — Adicione try/except para lidar com erros de conexão e autenticação
   ```python
   try:
       resultado = await session.call_tool("consultar_cep", arguments={"cep": cep})
       print(f"✓ Sucesso: {resultado}")
   except Exception as e:
       print(f"✗ Erro: {e}")
   ```

## Solução de problemas

- **ModuleNotFoundError: No module named 'mcp'** — Instale o pacote MCP usando pip: pip install mcp
  ```
  pip install mcp
  ```
- **asyncio.run() never finishes** — Verifique se você está usando async/await corretamente e se o servidor MCP está respondendo. Adicione timeout para debug
  ```
  resultado = await asyncio.wait_for(consultar_cep("01001000"), timeout=10.0)
  ```
- **Erro de autenticação** — Verifique se as variáveis de ambiente estão sendo carregadas corretamente
  ```
  import os
  from dotenv import load_dotenv
  
  load_dotenv()
  print(f"Token carregado: {os.getenv('APIBRASIL_BEARER_TOKEN')[:10]}...")
  ```
- **Connection refused** — Certifique-se de que o Node.js está instalado e o NPX está disponível no PATH

## Links relacionados

- [Documentação oficial do MCP Python SDK](https://github.com/modelcontextprotocol/python-sdk)
- [Exemplos avançados Python](https://doc.apibrasil.io/mcp/exemplos/python.md)
- [Integração com Node.js](https://doc.apibrasil.io/mcp/programacao/nodejs.md)
- [Tutorial asyncio Python](https://docs.python.org/3/library/asyncio.html)

## Ver também

- Guia MCP: [Guia MCP](https://doc.apibrasil.io/mcp.md)
- Índice da documentação: https://doc.apibrasil.io/llms.txt
- Versão HTML desta página: https://doc.apibrasil.io/mcp/programacao/python
