Herramienta gratuita

De API REST a servidor MCP en Rust

Lo que hace falta de verdad para exponer una API REST como servidor MCP en Rust: el SDK, una herramienta que funciona y la parte que decide si un agente la usa bien.

SDK oficial modelcontextprotocol/rust-sdk (rmcp)
Instalación
cargo add rmcp
Una herramienta MCP que funciona en Rust
#[derive(Debug, Deserialize, JsonSchema)]
struct GetOrderArgs {
    /// The order id to look up
    order_id: String,
}

#[tool_router]
impl MyServer {
    #[tool(description = "Look up one order by its id and return its current status.")]
    async fn get_order(&self, Parameters(args): Parameters<GetOrderArgs>)
        -> Result<CallToolResult, McpError> {
        Ok(CallToolResult::success(vec![Content::text(fetch_order(&args.order_id).await)]))
    }
}

Funciona. Nadie más puede verlo.

Un servidor que funciona es donde acaba el esfuerzo y empieza la venta. Apunta MCP Showcase hacia él y obtén un playground en vivo que tus clientes pueden probar, con documentación generada para cada herramienta.

Cómo funciona

link
Instala el SDK

Se muestra arriba, junto con si está mantenido oficialmente o es un proyecto de la comunidad, algo que importa más en unos lenguajes que en otros.

play_circle
Envuelve un endpoint

Empieza con una sola herramienta, no con toda tu API. Las definiciones de herramientas se envían al modelo en cada petición, y el acierto al elegir baja según crece la lista.

checklist
Pruébalo antes de conectar un agente

Pasa la URL desplegada por el MCP Inspector para confirmar que el handshake se completa y que las herramientas aparecen como querías.

El SDK de Rust

cargo add rmcpmodelcontextprotocol/rust-sdk (rmcp), mantenido oficialmente.

El runtime asíncrono y la derivación de esquemas son ambos explícitos

rmcp se apoya en Tokio y deriva los esquemas con schemars, así que tanto el runtime como la derivación de esquemas son decisiones que tomas y no valores por defecto que heredas. Cuenta con más preparación que en Python para el mismo servidor, y con que el compilador atrape los errores de esquema que otros SDK descubren en ejecución.

Envolver un endpoint REST

Un servidor MCP es una capa fina sobre código que ya tienes. Cada herramienta necesita tres cosas: un nombre, una descripción que diga qué hace y cuándo elegirla, y un esquema de entrada. El SDK de Rust se encarga del protocolo; lo que escribes tú es la correspondencia entre esos argumentos y tu llamada HTTP existente.

Empieza por un endpoint y no por toda tu API. Las definiciones de herramientas se reenvían al modelo en cada petición, así que cada una es un coste de contexto permanente, y el acierto del modelo al elegir baja según crece la lista. Ocho herramientas bien descritas ganan a ochenta.

La parte que no va de Rust

Sea cual sea el lenguaje, las descripciones deciden si el agente se comporta. Las lee el modelo, no tus compañeros, y una herramienta descrita en tres palabras se llama a ciegas. Puedes revisar las tuyas con el linter de esquemas MCP y ver qué cuesta la lista por petición con la calculadora de tokens.

Herramientas y guías relacionadas

Un servidor que funciona es la mitad del trabajo

Una vez que arranca, queda el problema de que nadie puede saber qué hace. Un cliente potencial no puede leer tu código Rust y no instalará un cliente para averiguarlo. MCP Showcase apunta a la misma URL y produce un playground en vivo con documentación generada para cada herramienta, de modo que evaluar tu servidor cueste un clic.

Preguntas frecuentes

Envuelve en una herramienta cada endpoint que quieras que un agente alcance: un nombre, una frase sobre qué hace y cuándo usarla, y un esquema de entrada. El SDK de Rust se encarga del protocolo; lo que escribes tú es la correspondencia entre los argumentos de la herramienta y tu llamada HTTP existente.

No, y este es el error más común. Las definiciones de herramientas se reenvían en cada petición: ochenta endpoints son ochenta descripciones en la ventana de contexto de cada turno, y la capacidad del modelo para elegir la correcta cae con claridad según crece la lista. Empieza por las pocas que un agente necesita de verdad.

La etiqueta sobre el código te lo dice. Donde no hay SDK oficial, las opciones de la comunidad siguen la especificación con mayor o menor fidelidad: comprueba cuándo siguió la biblioteca una revisión del protocolo por última vez, sobre todo en transportes, antes de construir sobre ella.

Streamable HTTP para todo lo desplegado. Los clientes lo intentan cada vez más en primer lugar y algunos ya no recurren al antiguo HTTP+SSE, lo que se manifiesta como un cliente que simplemente no ve tu servidor y no como un error.

No puedes saberlo releyendo tu propio código, porque ya sabes qué hacen las herramientas. Pasa el servidor por el linter de esquemas: revisa las descripciones y los esquemas de entrada como los lee un modelo y señala los que obligarían a un agente a adivinar.

Más herramientas MCP gratuitas