Protocolo de contexto modelo · rmcp 2.2

Conecte sus agentes a los sistemas donde ocurre el trabajo.

MCP permite que otro programa publique herramientas, información e indicaciones reutilizables a través de un contrato estándar. ADK-Rust convierte esas capacidades en herramientas de agente tipificadas, expone el protocolo más amplio y puede administrar una flota cambiante de servidores MCP locales mientras su producto se está ejecutando.

HerramientasRecursosIndicacionesFinalizaciónSuscripcionesElicitaciónTareasStdioStreamable HTTP

Arquitectura ADK-Rust MCP

Agregue o elimine capacidades MCP de su agente.

Su agente utiliza las capacidades de MCP como cualquier otra herramienta ADK-Rust. MCP lo conecta a cada servidor, mientras que cada servidor sigue siendo responsable de sus propios datos, reglas y acciones.

01

Producto agente

La experiencia pidiendo trabajo.

Agente o flujo de trabajo

Elige una capacidad de las herramientas que se le ha permitido ver.

Política ADK

Aplica aprobación, autorización, barreras de seguridad y auditoría en torno a la convocatoria.

Toolset
02

Cliente ADK-Rust MCP

El adaptador escrito dentro del tiempo de ejecución.

McpToolset

Descubre herramientas y conserva los esquemas del servidor y el contenido de los resultados.

Protocolo API

Recursos, indicaciones, finalización, suscripciones, obtención y tareas.

administrador del servidor

Cambia y supervisa un registro de conexiones stdio locales.

MCP
03

Límite de conexión

Elija el transporte que coincida con la titularidad.

Locales stdio

ADK-Rust inicia un proceso binario nativo u otro proceso secundario y es propietario de su sesión.

Streamable HTTP

Conéctese a un servicio alojado de forma independiente con encabezados, autenticación y tiempos de espera.

Contrato
04

Servidores MCP

Cada servidor publica sólo lo que posee.

Herramientas

Acciones

Recursos

Contexto

Indicaciones

Plantillas

Tareas

Trabajo largo

Cada servidor sigue siendo responsable de sus propias credenciales, acceso a datos, efectos secundarios y estado del servicio.

Datos comerciales

CRM, ERP, pedidos, documentos, analíticas y conocimiento interno.

Sistemas de desarrollador

Control de código fuente, herramientas de compilación, navegadores, entornos sandbox y entornos de codificación.

Servicios externos

Pagos, comunicaciones, búsqueda, mapas y socios API.

Tiempos de ejecución especializados

Generación de medios, hojas de cálculo, uso de computadoras y servicios de dominio específico.

`McpToolset` gestiona una conexión. `McpServerManager` gestiona una flota cambiante de conexiones locales. El `rmcp` oficial SDK permanece disponible para servidores, transportes, controladores y extensiones de protocolo personalizados.

Comience con el problema

¿Por qué necesitamos MCP?

Un agente de IA resulta útil cuando puede llegar a los sistemas que contienen información real y realizan un trabajo real. Sin un protocolo compartido, cada base de datos, producto SaaS, herramienta de navegador, servicio interno y tiempo de ejecución especializado necesita un adaptador personalizado. Esos adaptadores repiten el código de descubrimiento, esquemas, transporte, errores, autenticación y ciclo de vida.

MCP establece un contrato estable alrededor de ese límite. Un servidor describe lo que ofrece y cómo llamarlo. Un cliente descubre ese catálogo en tiempo de ejecución. Luego, la aplicación del agente puede seleccionar una capacidad revisada sin importar la implementación del servidor ni recibir sus credenciales privadas.

ADK-Rust conecta ese contrato a la misma herramienta y abstracciones Toolset utilizadas por las herramientas nativas Rust. El modelo puede funcionar con capacidades MCP a través de su bucle de agente normal, mientras que la aplicación mantiene la conversión de esquemas, aprobación, sesiones, telemetría y política operativa específicos del proveedor en torno a la llamada.

Herramienta

Algo que el agente puede pedirle a un servidor que haga

Una herramienta tiene un nombre, una descripción útil, un esquema de entrada y, opcionalmente, un esquema de salida. Los ejemplos incluyen leer un pedido, buscar en un repositorio, actualizar un ticket o generar una hoja de cálculo.

Recurso

Contexto que el agente o producto puede leer

Un recurso proporciona a la información un URI estable. Puede representar un documento, política, registro de base de datos, catálogo o resultado generado sin pretender que la lectura de datos sea una acción.

rápido

Una plantilla de mensaje reutilizable publicada por el servidor.

Un mensaje puede capturar las instrucciones y entradas correctas para una tarea propiedad del dominio del servidor, como investigar un pedido o revisar una implementación.

Elicitación

Una solicitud por falta de aportación humana

Durante una llamada a una herramienta, un servidor puede pedirle al cliente que presente un formulario o abra una URL aprobada. La aplicación sigue siendo responsable del consentimiento y de validar la respuesta.

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

Superficie del protocolo actual

ADK-Rust utiliza el protocolo MCP más amplio, no solo llamadas a herramientas.

Los ADK-Rust API directos cubren las capacidades que un producto de agente necesita con mayor frecuencia: descubrir y llamar a herramientas, leer recursos, resolver mensajes, solicitar sugerencias de argumentos, suscribirse a recursos cambiantes, responder solicitudes de obtención y seguir una tarea de herramienta negociada de larga duración.

Para la creación avanzada de servidores, controladores de clientes personalizados, notificaciones, transportes, trabajos de autorización y extensiones de protocolo, adk_tool::mcp::rmcp reexporta la versión oficial exacta de SDK utilizada dentro del marco. Esto evita mezclar tipos de protocolos incompatibles en una aplicación.

01

Adaptadores orientados al agente

Utilice las capacidades de MCP dentro de los flujos de herramientas y agentes ADK-Rust normales.

herramientas/lista + herramientas/llamada
esquemas de entrada/salida sin procesar
texto, imagen, audio, recursos
filtros de herramientas
normalización del proveedor
02

Contexto y orientación

Lea el resto del catálogo en lugar de reducir MCP a llamadas de herramientas.

recursos + plantillas
mensajes/lista + obtener
pronta finalización
finalización de recursos
suscripciones a recursos
03

Trabajo interactivo y largo.

Apoye conversaciones de protocolo que continúen más allá de una respuesta inmediata.

elicitación de formas
Obtención de URL
tareas de herramientas negociadas
tareas/obtener + resultado
cancelación acotada
04

Conexiones

Elija la propiedad del proceso local o un servicio alojado por separado.

locales stdio
Streamable HTTP
encabezados personalizados
portador + clave API
recuperación de sesión caducada
Un límite de compatibilidad deliberado: El muestreo, las raíces y el registro de MCP están obsoletos en sentido ascendente hasta SEP-2577. ADK-Rust mantiene el muestreo detrás de una función de compatibilidad opcional; no se presenta como la arquitectura recomendada para un nuevo producto.

Ejemplo de trabajo

Administre servidores MCP desde el inicio hasta el apagado.

Una aplicación puede necesitar diferentes capacidades MCP para cada espacio de trabajo, cliente o tarea. Codificar cada servidor al inicio dificulta esos cambios. McpServerManager le brinda a la aplicación un lugar para iniciar servidores MCP locales, combinar sus herramientas, cambiar su configuración, monitorear sus conexiones y cerrarlas limpiamente.

Este ejemplo comienza con un servidor configurado llamado local-tools. El agente puede descubrir y llamar a su herramienta de eco. Luego, la aplicación agrega un segundo servidor, lo habilita, reemplaza su configuración en ejecución, guarda el registro actualizado y lo elimina nuevamente. Cada cambio utiliza los mismos API disponibles para una pantalla de administración o servicio de configuración.

El ejemplo se ejecuta completamente en su máquina. El ejecutable Rust inicia una copia de sí mismo como servidor secundario MCP, por lo que el protocolo de enlace, el descubrimiento de herramientas, la llamada a herramientas, el reinicio, la persistencia y el apagado son reales. No se requiere ningún modelo, paquete Node.js, clave API ni conexión a Internet.

01

Iniciar un servidor

Cargue local-tools desde una configuración compatible con mcp.json, inicie su proceso hijo, complete el protocolo de enlace MCP y descubra su herramienta de eco.

02

Agregar otro servidor

Registre las herramientas en espera como deshabilitadas, luego habilítelas e inícielas cuando la aplicación decida que la capacidad debería estar disponible.

03

Reemplácelo de forma segura

Actualice la definición del servidor en ejecución. El administrador lo reinicia con la nueva configuración y puede restaurar la definición anterior si falla el inicio de reemplazo.

04

Guardar y cerrar

Vuelva a escribir el registro activo en JSON, deshabilite y elimine el servidor adicional, luego cierre limpiamente cada sesión de MCP y cada proceso secundario.

manager.rsÓXIDO
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?;
terminalSALIDA 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, administrador o servidor

Elija la capacidad ADK-Rust MCP que necesita.

La mayoría de las aplicaciones de agentes son clientes MCP. Se conectan a un servidor existente y ponen a disposición de un agente herramientas seleccionadas. Los productos que permiten integraciones de espacio de trabajo o administrador pueden colocar conexiones stdio locales detrás del administrador. Los equipos que publican una nueva capacidad utilizan el servidor rmcp reexportado API y luego prueban el servidor desde un 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.

diseño de producción

Implemente MCP de forma segura.

MCP hace que el descubrimiento y la comunicación sean consistentes. No decide a qué sistemas debe llegar un agente, qué acciones requieren aprobación, cómo se emiten las credenciales o qué debe suceder cuando falla una dependencia. Esas siguen siendo decisiones sobre productos y plataformas.

Elija el límite del servidor

Cree un servidor en torno a una capacidad coherente propiedad de un equipo o sistema. Evite un servidor enorme cuyas herramientas abarquen credenciales y niveles de riesgo no relacionados.

Publicar una pequeña superficie

Filtre las herramientas antes de que el modelo las vea. Mantenga las operaciones de lectura distintas de las escrituras, pagos, eliminación, implementación y otras acciones consiguientes.

Mantener aprobación en ADK-Rust

mcp.json autoApprove se conserva por motivos de compatibilidad; no omite la autorización del marco, los controladores de confirmación ni la política de aplicación.

Haga coincidir el transporte con la propiedad

Utilice stdio cuando su aplicación sea propietaria del proceso secundario local. Utilice Streamable HTTP cuando otra implementación posea disponibilidad, identidad y escalamiento.

Tratar el contenido como no confiable

Las descripciones de herramientas, los esquemas, el contenido de los recursos y los resultados cruzan los límites del sistema. Valide argumentos, vincule tamaños de resultados y proteja el contexto del modelo de instrucciones hostiles.

Operar las dependencias

Establezca tiempos de espera de conexión y tareas, registre cambios en el ciclo de vida, pruebe la dependencia empresarial por separado y decida cómo se comporta el producto cuando un servidor no está disponible.

Detalle de autenticación: El constructor HTTP admite tokens de portador, encabezados de clave API personalizados y un punto final de token de credenciales de cliente OAuth 2.0 fijo. El descubrimiento completo de autorización MCP, la autorización del navegador, PKCE y la negociación del indicador de recursos deben utilizar la autorización oficial rmcp API o su capa de identidad.

Conecte los sistemas útiles

Ofrezca a un agente una capacidad cuidadosamente elegida y luego haga crecer la red.

Comience con un servidor que comprenda, filtre su catálogo, llame a una herramienta de solo lectura e inspeccione el resultado completo. Agregue acciones de escritura, gestión dinámica, servicios remotos, obtención y tareas de larga duración cuando el producto tenga una razón clara para cada una.