Wat is er veranderd?
Er is een MCP (Model Context Protocol) server toegevoegd aan de website. Via een enkel HTTP-endpoint kunnen AI-assistenten gestructureerd communiceren met de blogcontent.
Waarom een MCP server?
MCP is een open standaard waarmee AI-assistenten veilig en gestructureerd externe data kunnen raadplegen. Door een MCP server aan te bieden voor de blog, kan een AI-assistent:
- Alle gepubliceerde blogposts opvragen
- Een specifieke blogpost ophalen op basis van de slug
- De volledige markdown-content lezen, inclusief metadata
Dit maakt het mogelijk om de blogcontent te gebruiken als kennisbron in AI-gesprekken — zonder dat de gebruiker handmatig tekst hoeft te kopiëren.
Waarom in Symfony?
De MCP server is gebouwd als onderdeel van de bestaande Symfony-applicatie. Dat is een bewuste keuze:
- Geen extra runtime nodig — geen Node.js proces, geen aparte server
- Directe toegang tot de BlogService — dezelfde service die de website gebruikt
- Eén codebase — deployment, testen en onderhoud blijven eenvoudig
- Symfony autowiring — de MCP server wordt automatisch geïnjecteerd via dependency injection
Beschikbare tools
De MCP server biedt twee tools:
- list_blog_posts — Geeft een overzicht van alle gepubliceerde posts met titel, slug, datum, auteur en samenvatting.
- get_blog_post — Haalt de volledige markdown-content op van een specifieke post aan de hand van de slug.
Technische details
- Protocol: JSON-RPC 2.0 over HTTP (Streamable HTTP transport)
- Endpoint:
POST https://www.hvsoftware.nl/mcp - Controller:
McpController.php - Server logica:
McpServer.phpenMcpResponse.php - BlogPost model: uitgebreid met
markdownContentzodat de ruwe markdown beschikbaar is naast de HTML
Het endpoint accepteert standaard MCP-methodes: initialize, ping, tools/list en tools/call. Notificaties (berichten zonder id) worden beantwoord met HTTP 204.