Saltar al contenido
latentSource

Convertí este blog en un servidor MCP

Expuse la búsqueda del blog mediante tres herramientas MCP de lectura. El código se puede revisar y la misma búsqueda aparece en sesiones grabadas de agentes.

··3 min read
Compartir

Explora el proyecto

Datos guardados y ejemplos que puedes inspeccionar. Esta demostración funciona en tu navegador.

Escribo sobre agentes en un sitio que ya tiene búsqueda, recuperación de artículos y grabaciones de herramientas. Exponer esas capacidades mediante MCP me dio una integración concreta para construir y explicar.

El repositorio del sitio permanece privado. El ejemplo público de MCP contiene la ruta MCP, artículos sintéticos, búsqueda local por palabras y pruebas del protocolo. La recuperación de producción reutiliza los servicios del blog; esas integraciones privadas no forman parte del ejemplo.

El explorador contiene tres respuestas capturadas del endpoint público: inicialización, descubrimiento y una petición de artículo inexistente. Permite revisar solicitud y respuesta, incluido el fallo. La fecha de captura acompaña los datos.

Un protocolo acotado

La implementación acepta JSON-RPC en POST /mcp. Soporta inicialización, notificaciones, ping, descubrimiento y llamadas de herramientas. No conserva sesiones y responde JSON. GET y DELETE devuelven 405.

El servidor declara versiones específicas del protocolo. Esa lista define compatibilidad para comprobar con clientes; no promete soportar automáticamente todas las revisiones posteriores.

HerramientaResultado
search_articlesArtículos ordenados y metadatos
get_articleUn artículo publicado en markdown
list_articlesMetadatos de artículos publicados, con filtro opcional por etiqueta

Las herramientas son de lectura. Publicar artículos y administrar el sitio queda fuera de esta interfaz.

Reutilizar la búsqueda

La búsqueda combina BM25 y similitud pgvector mediante fusión recíproca de rangos. En modo híbrido exige coincidencia en el lado de palabras clave; el vector participa en el ordenamiento bajo esa condición. La API normal también ofrece un modo semántico separado.

Eso puede excluir un artículo relacionado que no coincide con las palabras de la consulta. Prefiero explicar esa decisión a llamarlo simplemente "búsqueda semántica".

La herramienta de artículos comparte el compositor markdown del sitio. Devuelve el cuerpo una vez como contenido de texto y los metadatos por separado. Duplicar el cuerpo consumiría contexto del modelo sin aportar información.

Una sesión guardada

El reproductor contiene sesiones guardadas con la herramienta de búsqueda del blog. Muestra material recuperado y la respuesta sin ejecutar inferencia nueva para cada visitante. Demuestra el agente usando recuperación; no es una captura de red que pruebe el transporte MCP público de cada llamada.

Sesiones capturadas con la búsqueda del blog. El protocolo se comprueba por separado en las pruebas MCP.

Una afirmación de la respuesta debe poder seguirse hasta su artículo fuente. También conviene mostrar una búsqueda vacía, un error de herramienta o una pregunta fuera del contenido disponible.

Comprobar los límites

Las pruebas cubren inicialización, negociación de versión, descubrimiento, validación y acceso a contenido publicado. Los endpoints normales necesitan excluir borradores también. Filtrar únicamente la portada dejaría otra ruta hacia el material sin publicar.

La ruta pública limita solicitudes. Que sea de lectura no elimina su costo: una búsqueda puede usar la base de datos y una llamada de embeddings. Hay que evaluar capacidad y gasto en ese límite del servicio.

El entorno de pruebas también importa. Este proyecto cambia a un directorio temporal para impedir que artículos ficticios terminen en los archivos enviados al despliegue. Simular la base de datos no aísla las escrituras al disco.

Reproducir la integración

El punto de partida es el manifiesto y las pruebas MCP. En un despliegue, inicializa el endpoint, pide tools/list y recupera un artículo publicado antes de agregar un modelo. Así se separan los errores del protocolo del comportamiento del agente.

Quien revise el código puede encontrar las herramientas, seguir la consulta y ver cómo regresan los errores. Esa facilidad de inspección es lo que quería demostrar en mi propio sitio.