Datos comerciales
CRM, ERP, pedidos, documentos, analíticas y conocimiento interno.
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.
Arquitectura ADK-Rust MCP
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.
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.
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.
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.
Cada servidor publica sólo lo que posee.
Herramientas
Acciones
Recursos
Contexto
Indicaciones
Plantillas
Tareas
Trabajo largo
CRM, ERP, pedidos, documentos, analíticas y conocimiento interno.
Control de código fuente, herramientas de compilación, navegadores, entornos sandbox y entornos de codificación.
Pagos, comunicaciones, búsqueda, mapas y socios API.
Generación de medios, hojas de cálculo, uso de computadoras y servicios de dominio específico.
Comience con el problema
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
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
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
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
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
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.
Read mcp.json-compatible definitions or construct them in Rust. Disabled servers stay registered without starting.
Spawn each enabled child and complete the MCP handshake before its capabilities become visible.
List tools from running servers, filter the published surface, and prefix only names that collide.
Add, update, enable, disable, or remove a server without rebuilding the agent application.
Detect a closed connection and apply the server's bounded exponential-backoff restart policy.
Persist the current registry atomically, cancel MCP sessions, wait for the grace period, and drop child transports.
Practical sequence
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.
Superficie del protocolo actual
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.
Utilice las capacidades de MCP dentro de los flujos de herramientas y agentes ADK-Rust normales.
Lea el resto del catálogo en lugar de reducir MCP a llamadas de herramientas.
Apoye conversaciones de protocolo que continúen más allá de una respuesta inmediata.
Elija la propiedad del proceso local o un servicio alojado por separado.
Ejemplo de trabajo
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.
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.
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.
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.
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.
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?;$ 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 serverCliente, administrador o servidor
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.
diseño de producción
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.
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.
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.
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.
Utilice stdio cuando su aplicación sea propietaria del proceso secundario local. Utilice Streamable HTTP cuando otra implementación posea disponibilidad, identidad y escalamiento.
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.
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.
Conecte los sistemas útiles
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.