Documentação Oficial do MCP em Português
  1. Conceitos
Documentação Oficial do MCP em Português
  • Get Started
    • Introdução
    • Servidores de exemplo
    • Clientes de exemplo
    • Início rápido
      • Para os desenvolvedores de servidores
      • Para os desenvolvedores de clientes
      • Para utilizadores do Claude Desktop
  • Tutoriais
    • Construção de MCP com LLMs
    • Depuração
    • Inspetor
  • Conceitos
    • Arquitetura central
    • Recursos
    • Avisos
    • Ferramentas
    • Amostragem
    • Raízes
    • Transportes
  • Desenvolvimento
    • O que há de novo
    • Roteiro
    • Contribuindo
  1. Conceitos

Recursos

Exponha dados e conteúdo de seus servidores para LLMs
Os Resources são um primitivo central no Model Context Protocol (MCP) que permite que os servidores exponham dados e conteúdo que podem ser lidos pelos clientes e usados como contexto para interações com LLMs.
Os Resources são projetados para serem controlados pelo aplicativo, o que significa que o aplicativo cliente pode decidir como e quando devem ser usados. Diferentes clientes MCP podem lidar com os Resources de maneiras diferentes. Por exemplo:
O Claude Desktop atualmente exige que os usuários selecionem explicitamente os Resources antes que possam ser usados
Outros clientes podem selecionar automaticamente os Resources com base em heurísticas
Algumas implementações podem até permitir que o próprio modelo de IA determine quais Resources usar
Os autores do servidor devem estar preparados para lidar com qualquer um desses padrões de interação ao implementar o suporte a Resources. Para expor dados aos modelos automaticamente, os autores do servidor devem usar um primitivo controlado pelo modelo, como Tools.

Visão geral#

Os Resources representam qualquer tipo de dado que um servidor MCP deseja disponibilizar aos clientes. Isso pode incluir:
Conteúdo de arquivos
Registros de banco de dados
Respostas de API
Dados do sistema em tempo real
Capturas de tela e imagens
Arquivos de log
E mais
Cada Resource é identificado por um URI exclusivo e pode conter dados de texto ou binários.

URIs de Resource#

Os Resources são identificados usando URIs que seguem este formato:
[protocol]://[host]/[path]
Por exemplo:
file:///home/user/documents/report.pdf
postgres://database/customers/schema
screen://localhost/display1
O protocolo e a estrutura do caminho são definidos pela implementação do servidor MCP. Os servidores podem definir seus próprios esquemas de URI personalizados.

Tipos de Resource#

Os Resources podem conter dois tipos de conteúdo:

Resources de texto#

Os Resources de texto contêm dados de texto codificados em UTF-8. Eles são adequados para:
Código fonte
Arquivos de configuração
Arquivos de log
Dados JSON/XML
Texto simples

Resources binários#

Os Resources binários contêm dados binários brutos codificados em base64. Eles são adequados para:
Imagens
PDFs
Arquivos de áudio
Arquivos de vídeo
Outros formatos não textuais

Descoberta de Resource#

Os clientes podem descobrir os Resources disponíveis por meio de dois métodos principais:

Resources diretos#

Os servidores expõem uma lista de Resources concretos por meio do endpoint resources/list. Cada Resource inclui:

Templates de Resource#

Para Resources dinâmicos, os servidores podem expor templates de URI que os clientes podem usar para construir URIs de Resource válidos:

Leitura de Resources#

Para ler um Resource, os clientes fazem uma solicitação resources/read com o URI do Resource.
O servidor responde com uma lista de conteúdos de Resource:
Os servidores podem retornar vários Resources em resposta a uma solicitação resources/read. Isso pode ser usado, por exemplo, para retornar uma lista de arquivos dentro de um diretório quando o diretório é lido.

Atualizações de Resource#

O MCP oferece suporte a atualizações em tempo real para Resources por meio de dois mecanismos:

Alterações na lista#

Os servidores podem notificar os clientes quando sua lista de Resources disponíveis for alterada por meio da notificação notifications/resources/list_changed.

Alterações no conteúdo#

Os clientes podem se inscrever para receber atualizações de Resources específicos:
1.
O cliente envia resources/subscribe com o URI do Resource
2.
O servidor envia notifications/resources/updated quando o Resource é alterado
3.
O cliente pode buscar o conteúdo mais recente com resources/read
4.
O cliente pode cancelar a inscrição com resources/unsubscribe

Exemplo de implementação#

Aqui está um exemplo simples de implementação de suporte a Resources em um servidor MCP:
TypeScript
Python

Melhores práticas#

Ao implementar o suporte a Resources:
1.
Use nomes e URIs de Resource claros e descritivos
2.
Inclua descrições úteis para orientar a compreensão do LLM
3.
Defina os tipos MIME apropriados quando conhecidos
4.
Implemente templates de Resource para conteúdo dinâmico
5.
Use assinaturas para Resources que mudam com frequência
6.
Lide com erros normalmente com mensagens de erro claras
7.
Considere a paginação para grandes listas de Resources
8.
Armazene em cache o conteúdo do Resource quando apropriado
9.
Valide os URIs antes de processar
10.
Documente seus esquemas de URI personalizados

Considerações de segurança#

Ao expor Resources:
Valide todos os URIs de Resource
Implemente controles de acesso apropriados
Higienize os caminhos de arquivo para evitar a transversalidade de diretório
Seja cauteloso com o manuseio de dados binários
Considere a limitação de taxa para leituras de Resource
Audite o acesso ao Resource
Criptografe dados confidenciais em trânsito
Valide os tipos MIME
Implemente tempos limite para leituras de longa duração
Lide com a limpeza de Resources de forma adequada
Modified at 2025-03-12 10:10:43
Previous
Arquitetura central
Next
Avisos
Built with