Demanda: Com o avanço dos grandes modelos, grandes modelos surgiram em todos os aspectos de nossas vidas, seja no trabalho ou nos estudos, eles são inseparáveis. Com uma linguagem modelo grande, por que precisamos do MCP? O modelo grande pode ser entendido como o cérebro, mas o cérebro sozinho não pode nos ajudar a fazer as coisas, o MCP é mais como um membro, o modelo grande direciona o serviço MCP para fazer coisas, como: chamar ferramentas externas (como bancos de dados, discos, APIs). Isso resolve o problema de que modelos grandes só conseguem conversar e não conseguem fazer as coisas.
MCP (Protocolo de Contexto de Modelo)
Documentação:O login do hiperlink está visível. Repositórios do GitHub:O login do hiperlink está visível. Repositório de Ferramentas MCP:O login do hiperlink está visível.
MCP (Model Context Protocol) é um padrão de código aberto para conectar aplicações de IA a sistemas externos.
Com o MCP, aplicações de IA como Claude ou ChatGPT podem se conectar a fontes de dados (por exemplo, arquivos locais, bancos de dados), ferramentas (por exemplo, mecanismos de busca, calculadoras) e fluxos de trabalho (por exemplo, prompts especializados) – permitindo que acessem informações críticas e realizem tarefas.
Pense no MCP como uma porta USB-C para aplicações de IA. Assim como o USB-C oferece uma forma padronizada de conectar dispositivos eletrônicos, o MCP oferece uma forma padronizada de conectar aplicações de IA a sistemas externos.
O que o MCP pode alcançar?
- Os agentes podem acessar seu Google Calendar e Notion, atuando como um assistente de IA mais personalizado.
- Claude Code pode gerar aplicações web inteiras usando projetos Figma.
- Chatbots corporativos podem se conectar a múltiplos bancos de dados dentro de uma organização, permitindo que os usuários analisem dados por meio do chat.
- Modelos de IA podem criar designs 3D no Blender e imprimi-los usando uma impressora 3D.
Por que o MCP é importante?
Dependendo de onde você está no ecossistema, o MCP pode oferecer uma série de benefícios.
- Desenvolvedores: O MCP reduz o tempo e a complexidade de desenvolvimento ao construir ou integrar com aplicações ou agentes de IA.
- Aplicações ou Agentes de IA: MCPs fornecem acesso a um ecossistema de fontes de dados, ferramentas e aplicações, o que irá aprimorar a funcionalidade e a experiência do usuário final.
- Usuários Finais: MCPs podem resultar em aplicações ou agentes de IA mais poderosos que acessam seus dados e agem em seu nome quando necessário.
Protocolo MCP
O MCP consiste em duas camadas:
- Camada de dados: Defina um protocolo de comunicação cliente-servidor baseado em JSON-RPC, incluindo gerenciamento do ciclo de vida, e primitivas centrais como ferramentas, recursos, prompts e notificações.
- Camada de Transporte: Define os mecanismos e canais de comunicação que possibilitam a troca de dados entre clientes e servidores, incluindo estabelecimento de conexões específicas para transporte, estruturas de mensagens e autorização.
Conceitualmente, a camada de dados é a camada interna, enquanto a camada de transporte é a camada externa.
Camada de dados
- A camada de dados implementa um protocolo de comutação baseado em JSON-RPC 2.0 que define a estrutura e a semântica da mensagem. Essa camada inclui:
- Gerenciamento do ciclo de vida: Gerencia a inicialização da conexão, negociação de recursos e terminação de conexão entre clientes e servidores
- Funcionalidade do servidor: Permite que o servidor forneça funcionalidades essenciais, incluindo ferramentas para operações de IA, recursos para dados contextuais e prompts interativos de templates de e para clientes
- Funcionalidade do cliente: Permite que o servidor exija que o cliente amostre do LLM host, receba entrada do usuário e registre mensagens para o cliente
- Recursos Úteis: Suporta recursos adicionais como notificações de atualizações em tempo real e acompanhamento de progresso para operações de longa duração
Camada de transporte
A camada de transporte gerencia os canais de comunicação e a autenticação entre o cliente e o servidor. Ele cuida do estabelecimento de conexão, transmissão de mensagens e comunicação segura entre os participantes do MCP.
O MCP suporta dois mecanismos de transporte:
- Transporte Stdio: Comunicação direta de processos entre processos locais na mesma máquina usando fluxos padrão de entrada/saída, oferecendo desempenho ideal e sem sobrecarga de rede.
- HTTP Streamable: Utiliza o protocolo HTTP POST para enviar mensagens de cliente para servidor e, opcionalmente, utiliza eventos enviados pelo servidor para funcionalidade de streaming. Esse protocolo de transporte suporta comunicação remota com servidores e suporta métodos padrão de autenticação HTTP, incluindo tokens holder, chaves API e cabeçalhos personalizados. O MCP recomenda usar o OAuth para obter um token de autenticação.
A camada de transporte abstrai os detalhes da comunicação da camada de protocolo, de modo que o mesmo formato de mensagem JSON-RPC 2.0 seja implementado em todos os mecanismos de transporte.Mensagens JSON-RPC devem ser codificadas em UTF-8。O transporte HTTP+SSE foi obsoleto!
Tudo sobre o MCP Server
Este servidor MCP foi projetado para testar todas as funcionalidades do protocolo MCP. Não tem a intenção de ser um servidor prático, mas sim um servidor de teste para construtores de clientes MCP. Ele implementa recursos como prompts, ferramentas, recursos, amostras e muito mais para mostrar as capacidades dos MCPs.
Fonte:O login do hiperlink está visível.
Esse serviço exige a instalação de um ambiente Node.js, e as etapas de instalação são omitidas.
Para testar o serviço MCP baseado no padrão de transporte Stdio, o comando de inicialização é o seguinte:
Como mostrado abaixo:
Após a execução, o pacote é armazenado em cache%LocalAppData%\npm-cache\_npx\Abaixo do caminho.
Inicializando, o cliente envia uma solicitação de inicialização para estabelecer uma conexão e negociar os recursos suportados. Os dados das solicitações são os seguintes:
A resposta é a seguinte:
{"result":{"protocolVersion":"2025-06-18","capabilities":{"prompts":{},"resources":{true},"tools":{},"logging":{},"completions":{}},"serverInfo":{"name":" example-servers/everything","title":"Everything Example Server","version":"1.0.0"},"instructions":"Servidor de testes e demonstração para recursos do protocolo MCP.\n\n## Resources\n\ nResources 1-100 seguem o padrão: IDs pares contêm texto, IDs ímpares contêm dados binários. Os recursos são paginados em 10 itens por página com navegação baseada em cursor.\n\n## Dependências de chaves\n\nNotificações de progresso exigem '_meta.progressToken' nas chamadas de ferramenta. Assinaturas de recursos geram atualizações a cada 10 segundos.\n\n## Características de desempenho\n\nServer gera mensagens automáticas de log a cada 20 segundos (filtradas pelo nível atual do log), Notificações STDERR a cada 30 segundos, e notificações de atualização de recursos a cada 10 segundos para assinaturas ativas. Mudanças no nível do log afetam o filtragem de mensagens em tempo real.\n\n## Testes multimodais\n\n'complex_prompt' inclui tanto argumentos de texto quanto conteúdo de imagens para testar o multimodal do cliente manipulação. 'resource_prompt' incorpora conteúdo real de recursos para testar a resolução de referências de recursos.\n\nO argumento de completação está disponível para parâmetros de prompt e IDs de recursos. Modelos de recursos permitem a construção dinâmica de URI via padrão 'test://static/resource/{id}'.\n\n## Easter egg\n\nSe perguntarem sobre instruções de servidor, responda com \" Instruções de servidor estão trabalhando! Essa resposta prova que o cliente passou corretamente as instruções do servidor para o LLM. Isso demonstra o recurso de instruções do MCP em ação.\"\n"},"jsonrpc":"2.0","id":1} Após a inicialização bem-sucedida, o cliente envia uma notificação ao servidor MCP informando que está pronto com a seguinte solicitação:
Descoberta de ferramentas: Uma vez estabelecida a conexão, o cliente pode descobrir as ferramentas disponíveis enviando uma solicitação de ferramentas/lista. Essa solicitação é a base do mecanismo de descoberta de ferramentas do MCP – ele permite que os clientes saibam quais ferramentas estão disponíveis no servidor antes de tentar usá-las. O pedido diz:
A resposta é a seguinte:
{"resultado":{"ferramentas":[{"nome":"eco","descrição":"Ecoa de volta a entrada","inputSchema":{"tipo":"objeto","proprietários":{"mensagem":{"tipo":"string","descrição":"Mensagem para echo"}},"required":["message"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"add", "description":"Adiciona dois números"," inputSchema":{"tipo":"objeto","propriedades":{"a":{"tipo":"número","descrição":"Primeiro número"},"b":{"tipo":"número","descrição":"Segundo número"}},"necessário":["a","b"] ,"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"longRunningOperation","description":"Demonstra uma operação de longa duração com atualizações de progresso","inputSchema":{"tipo":"objeto","propriedades":{"duração":{"tipo":"número","padrão":10,"descrição":"Duração da operação em segundos"},"passos":{" type":"number","default":5,"description":"Number of steps in the operation"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":" printEnv","description":"Imprime todas as variáveis do ambiente, útil para depurar configuração do servidor MCP","inputSchema":{"type":"object","properties":{},"additionalProperties ":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"sampleLLM","description":"Samples de um LLM usando a funcionalidade de amostragem do MCP","inputSchema":{"type":" object","properties":{"prompt":{"type":"string","description":"O prompt para enviar ao LLM"},"maxTokens":{"type":"number", "default":100,"description":"Número máximo de tokens para gerar"}},"required":["prompt"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"getTinyImage","description":" Retorna o MCP_TINY_IMAGE","inputSchema":{"type":"object","properties":{},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":" annotatedMessage","description":"Demonstra como as anotações podem ser usadas para fornecer metadados sobre conteúdo","inputSchema":{"type":"object","properties":{"messageType":{"type": "string","enum":["error","succeed","debug"],"description":"Tipo de mensagem para demonstrar diferentes padrões de anotação"},"includeImage":{"type":"boolean","default":false," description":"Se deve incluir uma imagem de exemplo"}},"required":["messageType"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name": "getResourceReference","description":"Retorna uma referência de recurso que pode ser usada por clientes MCP","inputSchema":{"type":"object","properties":{"resourceId":{"type":"number"," minimum":1,"maximum":100,"description":"ID do recurso a ser referenciado (1-100)"}},"required":["resourceId"],"additionalProperties":false,"$schema":" http://json-schema.org/draft-07/schema#"}},{"name":"getResourceLinks","description":"Retorna múltiplos links de recursos que fazem referência a diferentes tipos de recursos","inputSchema" :{"tipo":"objeto","proprietários":{"contagem":{"tipo":"número","mínimo":1,"máximo":10,"padrão":3,"descrição":"número de links de recursos a serem retornados (1-10)"}}," adicionalalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"structuredContent","description":"Retorna conteúdo estruturado junto com uma saída schema para validação de dados do cliente","inputSchema":{"type":"object","properties":{"location":{"type":"string","minLength":1,"description":"Nome da cidade ou CEPs"}},"required":[ "localização"],"Propriedades adicionais":false,"$schema":"http://json-schema.org/draft-07/schema#"},"EsquemaSaída":{"tipo":"objeto","propriedades":{"temperatura":{"tipo":" número","descrição":"Temperatura em Celsius"},"condições":{"tipo":"string","descrição":"Descrição das condições climáticas"},"umidade":{"tipo":"número", "descrição":" Percentual de umidade"}},"requerido":["temperatura", "condições", "umidade"],"propriedades adicionais":falso,"$schema":"http://json-schema.org/draft-07/schema#"}},{"nome":" startElicitation","description":"Demonstra o recurso de Elicitation pedindo ao usuário que forneça informações sobre sua cor, número e pets favoritos.","inputSchema":{"type":" object","properties":{},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}]},"jsonrpc":"2.0","id":2} Execução de ferramentas: Os clientes agora podem executar ferramentas/chamadas de ferramentas usando esse método. Isso demonstra a primitiva MCP em ação: uma vez descobertas as ferramentas, o cliente pode chamá-las com os parâmetros apropriados. para queChamando a função de eco como exemploO pedido é o seguinte:
A resposta é a seguinte:
{"resultado":{"conteúdo":[{"tipo":"texto","texto":"Eco: oi, meu nome é itsvse"}]},"jsonrpc":"2.0","id":3} Como mostrado abaixo:
(Fim) |