TODO MCP Server
Exposes tools to create and list tasks by wrapping a REST API, enabling LLMs to manage a TODO list via natural language.
README
Exercício 4.2 — Servidor MCP local que consome a API (4.1)
Módulo 3 — Construindo interfaces · Aula 6: MCP
Um servidor MCP (Model Context Protocol) que fica na frente da API REST de TODO list construída no Exercício 4.1. Um LLM não fala HTTP — ele fala MCP. Este servidor é a camada do meio: expõe ferramentas que um agente pode chamar e as implementa fazendo chamadas HTTP à API 4.1.
Agente / LLM ──MCP──▶ servidor_mcp.py ──HTTP──▶ API 4.1 (localhost:8000)
Ferramentas expostas
| Ferramenta | Assinatura | O que faz |
|---|---|---|
criar_tarefa |
criar_tarefa(titulo: str) -> dict |
faz POST /tarefas e devolve a tarefa criada |
listar_tarefas |
listar_tarefas() -> list |
faz GET /tarefas e devolve uma lista |
Estrutura
.
├── servidor_mcp.py # servidor MCP (stdio) — tools que chamam a API 4.1
├── cliente_teste.py # sobe o servidor via stdio e imprime o envelope JSON
├── requirements.txt # mcp, httpx
├── README.md
└── .autograde-exercise # conteúdo: 4.2
Como rodar localmente
Terminal A — suba a API do 4.1 (reinicie para a loja ficar limpa):
# no repositório do 4.1
uvicorn app.main:app --port 8000
Terminal B — neste repositório (4.2):
pip install -r requirements.txt
python cliente_teste.py
Deve imprimir um único envelope JSON no stdout, por exemplo:
{
"tools": ["criar_tarefa", "listar_tarefas"],
"criar_resultado": {"id": 1, "titulo": "tarefa via mcp", "concluida": false},
"listar_resultado": [{"id": 1, "titulo": "tarefa via mcp", "concluida": false}]
}
A API do 4.1 precisa estar no ar em
localhost:8000durante a validação, porque as ferramentas do MCP a chamam. Oide oconcluidasó podem vir da API REST — é assim que o autograder comprova que a ferramenta realmente chamou a API, e não devolveu um valor fixo.
Reflexão (Aula 6)
No 4.1, quem chama precisa falar HTTP: conhecer o host e a porta, o método
(POST/GET), a rota /tarefas, o formato do corpo JSON e os códigos de status.
No 4.2, o agente só precisa saber que existe uma ferramenta criar_tarefa(titulo).
O que o MCP escondeu, em uma frase: o MCP tornou irrelevante para quem chama
todo o protocolo de transporte HTTP da API — host, porta, verbo, rota e formato
do corpo —, deixando visível apenas a intenção (criar_tarefa, listar_tarefas)
e seus argumentos. Esse é o ganho de abstração da Aula 6.
Resolução de problemas
| Sintoma | Causa provável | Correção |
|---|---|---|
tool_criar_chama_api zerado |
API 4.1 não está no ar | suba uvicorn app.main:app --port 8000 no repo do 4.1 |
cliente_teste.py imprime texto extra |
logs/prints antes do JSON | imprima só json.dumps(...) no stdout (logs vão para o stderr) |
tools_expostos falha |
nome de ferramenta diferente | as tools precisam se chamar exatamente criar_tarefa e listar_tarefas |
criar_resultado sem id |
ferramenta devolveu um stub | a tool tem que fazer o POST de verdade e retornar o JSON da API |
listar_resultado não é lista |
parsing pegou só o primeiro bloco | cliente_teste.py normaliza qualquer formato do SDK para uma lista |
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.