TODO list MCP server (Exercício 4.2)
README.md
# MCP server da TODO list — Exercício 4.2
Um **MCP server** local que expõe *tools* de uma lista de tarefas para um agente
de IA. As tools não guardam estado próprio: elas chamam a **API REST do
Exercício 4.1** (`http://localhost:8000`). O MCP é a camada de adaptação entre o
mundo do agente (MCP) e a fonte do dado (HTTP).
**Aluno:** Antonio Diniz · **Disciplina:** IDP-TD 2026
```
Agente / LLM ──MCP──▶ servidor_mcp.py ──HTTP──▶ API 4.1 (localhost:8000)
```
## Tools expostas
| Tool | Chamada HTTP | Retorno |
|------|--------------|---------|
| `criar_tarefa(titulo)` | `POST /tarefas` | a tarefa criada `{id, titulo, concluida}` |
| `listar_tarefas()` | `GET /tarefas` | lista de tarefas |
A URL da API é lida da variável de ambiente `API` (default `http://localhost:8000`).
## Como rodar
1. Suba a API do 4.1 (noutro terminal, no repo do 4.1):
```bash
uvicorn app.main:app --port 8000
```
2. No repo do 4.2:
```bash
pip install -r requirements.txt
python cliente_teste.py
```
Deve imprimir o envelope JSON com `tools`, `criar_resultado` e `listar_resultado`.
> Para testar apontando para outra porta: `API=http://localhost:9010 python cliente_teste.py`.
## Reflexão (Aula 6)
No 4.1 o cliente precisava falar HTTP: montar URL, método, cabeçalhos, corpo e
tratar status. No 4.2 o agente só precisa saber que existe `criar_tarefa(titulo)`.
**O MCP escondeu o protocolo HTTP** — endpoint, verbo, formato do corpo e códigos
de status deixaram de importar para quem chama. A tool virou a interface; a API
continua sendo a fonte do dado.
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues