TODO MCP Server

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.

Category
Visit Server

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:8000 durante a validação, porque as ferramentas do MCP a chamam. O id e o concluida só 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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured