Protocolo de Contexto do Modelo · rmcp 2.2

Conecte seus agentes aos sistemas onde o trabalho acontece.

MCP permite que outro programa publique ferramentas, informações e prompts reutilizáveis por meio de um contrato padrão. ADK-Rust transforma esses recursos em ferramentas de agente tipadas, expõe o protocolo mais amplo e pode gerenciar uma frota variável de servidores MCP locais enquanto seu produto está em execução.

FerramentasRecursosSolicitaçõesConclusãoAssinaturasElicitaçãoTarefasStdioStreamable HTTP

Arquitetura ADK-Rust MCP

Adicione ou remova recursos MCP do seu agente.

Seu agente usa recursos MCP como qualquer outra ferramenta ADK-Rust. MCP conecta-o a cada servidor, enquanto cada servidor permanece responsável por seus próprios dados, regras e ações.

01

Produto do agente

A experiência de pedir trabalho.

Agente ou fluxo de trabalho

Escolhe um recurso dentre as ferramentas que ele pode ver.

Política ADK

Aplica aprovação, autorização, proteções e auditoria em torno da chamada.

Toolset
02

Cliente ADK-Rust MCP

O adaptador tipado dentro do tempo de execução.

McpToolset

Descobre ferramentas e preserva os esquemas do servidor e o conteúdo dos resultados.

Protocolo APIs

Recursos, prompts, conclusão, assinaturas, elicitação e tarefas.

Gerenciador de servidor

Altera e supervisiona um registro de conexões stdio locais.

MCP
03

Limite de conexão

Escolha o transporte que corresponda à propriedade.

Local stdio

ADK-Rust inicia um binário nativo ou outro processo filho e possui sua sessão.

Streamable HTTP

Conecte-se a um serviço hospedado de forma independente com cabeçalhos, autenticação e tempos limite.

Contrato
04

Servidores MCP

Cada servidor publica apenas o que possui.

Ferramentas

Ações

Recursos

Contexto

Solicitações

Modelos

Tarefas

Trabalho longo

cada servidor permanece responsável por suas próprias credenciais, acesso a dados, efeitos colaterais e integridade do serviço

Dados comerciais

CRM, ERP, pedidos, documentos, análises e conhecimento interno.

Sistemas de desenvolvedor

Controle de origem, ferramentas de construção, navegadores, sandboxes e ambientes de codificação.

Serviços externos

Pagamentos, comunicações, pesquisa, mapas e APIs de parceiros.

Tempos de execução especializados

Geração de mídia, planilhas, uso de computador e serviços específicos de domínio.

`McpToolset` gerencia uma conexão. `McpServerManager` gerencia uma frota variável de conexões locais. O `rmcp` SDK oficial permanece disponível para servidores personalizados, transportes, manipuladores e extensões de protocolo.

Comece com o problema

Por que precisamos de MCP?

Um agente de IA torna-se útil quando consegue alcançar os sistemas que contêm informações reais e realizam trabalhos reais. Sem um protocolo compartilhado, cada banco de dados, produto SaaS, ferramenta de navegador, serviço interno e tempo de execução especializado precisa de um adaptador personalizado. Esses adaptadores repetem descoberta, esquemas, transporte, erros, autenticação e código de ciclo de vida.

MCP estabelece um contrato estável em torno desse limite. Um servidor descreve o que oferece e como chamá-lo. Um cliente descobre esse catálogo em tempo de execução. O aplicativo do agente pode então selecionar um recurso revisado sem importar a implementação do servidor ou receber suas credenciais privadas.

ADK-Rust conecta esse contrato às mesmas abstrações Tool e Toolset usadas pelas ferramentas nativas Rust. O modelo pode funcionar com recursos MCP por meio de seu loop de agente normal, enquanto o aplicativo mantém conversão de esquema, aprovação, sessões, telemetria e política operacional específicas do provedor em torno da chamada.

Ferramenta

Algo que o agente pode pedir a um servidor para fazer

Uma ferramenta possui um nome, uma descrição útil, um esquema de entrada e, opcionalmente, um esquema de saída. Os exemplos incluem a leitura de um pedido, a pesquisa em um repositório, a atualização de um ticket ou a geração de uma planilha.

Recurso

Contexto que o agente ou produto pode ler

Um recurso fornece às informações um URI estável. Pode representar um documento, política, registro de banco de dados, catálogo ou resultado gerado sem fingir que a leitura de dados é uma ação.

Alerta

Um modelo de mensagem reutilizável publicado pelo servidor

Um prompt pode capturar as instruções e entradas corretas para uma tarefa pertencente ao domínio do servidor, como investigar um pedido ou revisar uma implantação.

Elicitação

Um pedido de falta de contribuição humana

Durante uma chamada de ferramenta, um servidor pode solicitar ao cliente que apresente um formulário ou abra uma URL aprovada. A aplicação permanece responsável pelo consentimento e pela validação da resposta.

Dynamic MCP management

Capabilities can change while the product keeps running.

An agent product may serve several tenants, workspaces, or operating modes. The useful MCP servers can change when a workspace opens, an administrator enables an integration, a credential rotates, or a specialist process is upgraded.

`McpServerManager` keeps that lifecycle in the application instead of forcing every server definition into startup code. It is designed for local stdio child processes; independently hosted HTTP services remain application-owned connections.

01

Load the registry

Read mcp.json-compatible definitions or construct them in Rust. Disabled servers stay registered without starting.

02

Start and negotiate

Spawn each enabled child and complete the MCP handshake before its capabilities become visible.

03

Discover safely

List tools from running servers, filter the published surface, and prefix only names that collide.

04

Change it live

Add, update, enable, disable, or remove a server without rebuilding the agent application.

05

Supervise the session

Detect a closed connection and apply the server's bounded exponential-backoff restart policy.

06

Save and close

Persist the current registry atomically, cancel MCP sessions, wait for the grace period, and drop child transports.

Practical sequence

Resolve a damaged order with three independently owned capabilities.

The model does not receive database credentials or private API clients. It receives a reviewed catalog of tools and resources. ADK-Rust keeps approval around the consequential replacement call.

Support agent01Discover approved CRM, order, and policy toolsMCP client
MCP client02tools/list over the negotiated connectionsThree MCP servers
Support agent03read_order { order_id: ORD-1042 }Orders server
Orders server04Structured order and delivery evidenceSupport agent
Support agent05Read the current damaged-goods policy resourcePolicy server
Support agent06request_replacement after ADK approvalCRM server
CRM server07Replacement ID, status, and audit evidenceSupport agent

Superfície de protocolo atual

ADK-Rust usa o protocolo MCP mais amplo, não apenas chamadas de ferramentas.

Os ADK-Rust APIs diretos cobrem os recursos que um produto de agente precisa com mais frequência: descobrir e chamar ferramentas, ler recursos, resolver prompts, solicitar sugestões de argumentos, assinar recursos variáveis, responder a solicitações de elicitação e seguir uma tarefa de ferramenta negociada de longa duração.

Para criação avançada de servidor, manipuladores de cliente personalizados, notificações, transportes, trabalho de autorização e extensões de protocolo, adk_tool::mcp::rmcp reexporta a versão oficial exata do SDK usada dentro da estrutura. Isso evita misturar tipos de protocolo incompatíveis em um aplicativo.

01

Adaptadores voltados para agente

Use recursos MCP dentro de fluxos de ferramentas e agentes ADK-Rust comuns.

ferramentas/lista + ferramentas/chamada
esquemas de entrada/saída brutos
texto, imagem, áudio, recursos
filtros de ferramentas
normalização do provedor
02

Contexto e orientação

Leia o restante do catálogo em vez de reduzir MCP a chamadas de ferramentas.

recursos + modelos
prompts/lista + obter
conclusão imediata
conclusão de recursos
assinaturas de recursos
03

Trabalho interativo e longo

Suporta conversas de protocolo que continuam além de uma resposta imediata.

elicitação de formulário
Elicitação de URL
tarefas de ferramentas negociadas
tarefas/obter + resultado
cancelamento limitado
04

Conexões

Escolha a propriedade do processo local ou um serviço hospedado separadamente.

stdio local
Streamable HTTP
cabeçalhos personalizados
portador + chave API
recuperação de sessão expirada
Um limite de compatibilidade deliberado: A amostragem, raízes e registro MCP foram descontinuados no upstream por meio de SEP-2577. ADK-Rust mantém a amostragem por trás de um recurso de compatibilidade opcional; não é apresentada como a arquitetura recomendada para um novo produto.

Exemplo de trabalho

Gerencie servidores MCP desde a inicialização até o desligamento.

Um aplicativo pode precisar de recursos MCP diferentes para cada espaço de trabalho, cliente ou tarefa. A codificação permanente de cada servidor na inicialização dificulta essas alterações. McpServerManager oferece ao aplicativo um local para iniciar servidores MCP locais, combinar suas ferramentas, alterar sua configuração, monitorar suas conexões e fechá-las de forma limpa.

Este exemplo começa com um servidor configurado denominado local-tools. O agente pode descobrir e chamar sua ferramenta de eco. O aplicativo então adiciona um segundo servidor, habilita-o, substitui sua configuração em execução, salva o registro atualizado e o remove novamente. Cada alteração utiliza os mesmos APIs disponíveis para uma tela de administração ou serviço de configuração.

O exemplo é executado inteiramente em sua máquina. O executável Rust inicia uma cópia de si mesmo como o servidor filho MCP, portanto, o handshake, a descoberta da ferramenta, a chamada da ferramenta, a reinicialização, a persistência e o desligamento são reais. Não é necessário modelo, pacote Node.js, chave API ou conexão com a Internet.

01

Inicie um servidor

Carregue local-tools de uma configuração compatível com mcp.json, inicie seu processo filho, conclua o handshake MCP e descubra sua ferramenta de eco.

02

Adicionar outro servidor

Registre as ferramentas de espera como desativadas e, em seguida, ative-as e inicie-as quando o aplicativo decidir que esse recurso deve ficar disponível.

03

Substitua-o com segurança

Atualize a definição do servidor em execução. O gerenciador o reinicia com a nova configuração e pode restaurar a definição anterior se a inicialização de substituição falhar.

04

Salvar e desligar

Grave o registro ativo de volta em JSON, desative e remova o servidor extra e, em seguida, feche cada sessão MCP e processo filho de forma limpa.

manager.rsFERRUGEM
let manager = McpServerManager::from_json(&config)?
      .with_health_check_interval(Duration::from_secs(15));

  manager.start_server("local-tools").await?;
  manager.start_monitoring();

  manager
      .add_server("standby-tools".into(), standby)
      .await?;
  manager.enable_server("standby-tools").await?;
  manager.start_server("standby-tools").await?;

  manager
      .update_server("standby-tools", replacement)
      .await?;
  manager.save_json_file("mcp.json").await?;
  manager.shutdown().await?;
terminalSAÍDA REAL
$ cargo run --manifest-path     examples/mcp_manager/Cargo.toml

  1. Loaded local-tools from mcp.json-compatible configuration
     status: Running
  2. Discovered 1 tool: echo
  3. Called the real child server
     response: {"output":"MCP server replied: dynamic MCP is running"}
  4. Added standby-tools at runtime: Disabled
     enabled and started: Running
  5. Reconfigured the running server and restarted it safely
  6. Saved the live registry
  7. Disabled, removed, and shut down every child server

Cliente, gerente ou servidor

Escolha o recurso ADK-Rust MCP que você precisa.

A maioria dos aplicativos de agente são clientes MCP. Eles se conectam a um servidor existente e disponibilizam ferramentas selecionadas para um agente. Os produtos que permitem integrações de espaço de trabalho ou administrador podem colocar conexões stdio locais atrás do gerente. As equipes que publicam um novo recurso usam os APIs do servidor rmcp reexportados e, em seguida, testam o servidor a partir de um cliente ADK-Rust.

Your situation
Use
Why
One known MCP service
McpToolset
One initialized connection, filters, tools, resources, prompts, completion, subscriptions, elicitation, and tasks.
A changing set of local integrations
McpServerManager
Runtime add, update, enable, disable, remove, save, monitor, restart, aggregation, and collision-safe names.
A separately hosted MCP service
McpHttpClientBuilder
Streamable HTTP with request timeout, headers, bearer or API-key injection, and expired-session recovery.
You own the capability being published
adk_tool::mcp::rmcp
Build the MCP server with the official SDK version already aligned with ADK-Rust.

Design de produção

Implante MCP com segurança.

MCP torna a descoberta e a comunicação consistentes. Ele não decide quais sistemas um agente deve alcançar, quais ações exigem aprovação, como as credenciais são emitidas ou o que deve acontecer quando uma dependência falha. Essas continuam sendo decisões de produto e plataforma.

Escolha o limite do servidor

Crie um servidor em torno de um recurso coerente pertencente a uma equipe ou sistema. Evite um servidor enorme cujas ferramentas abrangem credenciais e níveis de risco não relacionados.

Publique uma pequena superfície

Filtre as ferramentas antes que o modelo as veja. Mantenha as operações de leitura distintas de gravações, pagamentos, exclusão, implantação e outras ações consequentes.

Manter aprovação em ADK-Rust

mcp.json autoApprove é preservado para compatibilidade; ele não ignora a autorização da estrutura, os manipuladores de confirmação ou a política de aplicativo.

Combine o transporte com a propriedade

Use stdio quando seu aplicativo possuir o processo filho local. Use Streamable HTTP quando outra implantação possuir disponibilidade, identidade e escalabilidade.

Trate o conteúdo como não confiável

Descrições de ferramentas, esquemas, conteúdo de recursos e resultados ultrapassam os limites do sistema. Valide argumentos, limite tamanhos de resultados e proteja o contexto do modelo contra instruções hostis.

Operar as dependências

Defina tempos limite de conexão e tarefas, registre alterações no ciclo de vida, investigue a dependência de negócios separadamente e decida como o produto se comportará quando um servidor estiver indisponível.

Detalhe de autenticação: o construtor HTTP suporta tokens de portador, cabeçalhos de chave API customizados e um terminal de token de credenciais de cliente OAuth 2.0 fixo. A descoberta completa de autorização MCP, autorização do navegador, PKCE e negociação de indicador de recursos devem usar os APIs oficiais de autorização rmcp ou sua camada de identidade.

Conecte os sistemas úteis

Dê a um agente uma capacidade cuidadosamente escolhida e depois aumente a rede.

Comece com um servidor que você conhece, filtre seu catálogo, chame uma ferramenta somente leitura e inspecione o resultado completo. Adicione ações de gravação, gerenciamento dinâmico, serviços remotos, elicitação e tarefas de longa execução quando o produto tiver um motivo claro para cada uma delas.