Herramienta gratuita

De API REST a servidor MCP en PHP

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

SDK de la comunidad community SDKs
Instalación
composer require ...
Una herramienta MCP que funciona en PHP
// Community SDK. Note this process stays alive across requests, unlike typical PHP.
$server = new McpServer('my-server');

$server->tool(
    'get_order',
    'Look up one order by its id and return its current status.',
    ['orderId' => ['type' => 'string', 'description' => 'The order id to look up']],
    fn(array $args) => fetch_order($args['orderId'])
);

$server->run();

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 PHP

composer require ...community SDKs, un proyecto de la comunidad: no hay SDK bajo modelcontextprotocol para PHP.

Eso importa más de lo que parece. El protocolo se ha movido rápido, sobre todo en transportes, y un port que dejó de seguir revisiones de la especificación funcionará con unos clientes y fallará en silencio con otros. Comprueba la última revisión que siguió la biblioteca antes de construir sobre ella.

Los procesos de larga duración son la parte incómoda

Los servidores MCP mantienen una sesión; el modelo habitual de PHP, una ejecución por petición, no. Un servidor MCP en PHP se ejecuta por tanto como un proceso de larga duración (o mediante un framework pensado para ello), y eso es una desviación mayor del despliegue normal de PHP que el propio protocolo.

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 PHP 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 PHP

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 PHP 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 PHP 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