Compare ferramentas, recursos e prompts
Conheça as três primitivas de servidor e quem decide quando cada uma é usada.
- Escolher entre ferramenta, recurso ou prompt para cada caso
- Explicar quem controla cada primitiva
- Identificar as solicitações usadas pelo cliente
Servidores oferecem três tipos de capacidade. A diferença principal é quem decide quando usá-los:
| Primitiva | O que é | Quem controla | Listar / usar |
|---|---|---|---|
| Tool (ferramenta) | Uma ação: pesquisar, criar, enviar | O modelo decide chamá-la | tools/list, tools/call |
| Resource (recurso) | Dados identificados por URI, como um arquivo ou esquema | A aplicação escolhe o contexto | resources/list, resources/read |
| Prompt | Um modelo reutilizável, às vezes um comando de barra | O usuário escolhe | prompts/list, prompts/get |
Os mesmos dados podem ser oferecidos de mais de uma forma: um banco de dados pode expor uma ferramenta run_query e um recurso schema://tables.
Experimente
Até 15 XPFerramenta, recurso ou prompt?
Para cada capacidade, escolha a primitiva adequada: é uma ação, um contexto legível ou um modelo escolhido pelo usuário?
“Criar um evento no calendário”
“O conteúdo de README.md”
““/revisar-pr”, um modelo para revisão de código”
“Pesquisar uma frase na web”
“As definições das tabelas de um banco de dados”
““/resumir-reunião” com uma transcrição”
methods = {"tool": "tools/call", "resource": "resources/read", "prompt": "prompts/get"}
for kind, name in [("tool", "get_weather"), ("resource", "file:///notes.md"), ("prompt", "code_review")]:
print(methods[kind], name)tools/call get_weather resources/read file:///notes.md prompts/get code_review
Principais conclusões
Ferramentas são ações; recursos são contexto legível; prompts são modelos escolhidos pelo usuário.
Cada primitiva tem uma solicitação de listagem e outra para uso.
Prompt e recurso não controlam acesso: autorização é uma responsabilidade separada.
Quiz da aula
7 perguntas · aprovação com 5 acertos · até 50 XP
Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.
Pratique: crie um servidor MCP
Escreva código Python no editor e execute os testes com exemplos. O Python roda localmente no navegador usando WebAssembly.
Encaminhe solicitações por capacidade
Cada linha de entrada tem o tipo (tool, resource ou prompt) e seu nome ou URI. Imprima o método usado pelo cliente e o nome: tools/call NAME, resources/read URI ou prompts/get NAME. Leia até o fim da entrada.
- One of each
- Two tools
O Python é executado em um ambiente isolado no navegador, com limite de 60 segundos. O runtime é carregado pelo CDN do Pyodide; seu código permanece neste navegador.
Dúvidas sobre esta lição
Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.
Carregando publicações…