MCP-server laten bouwen: AI-agents veilig in uw stack

Het Model Context Protocol (MCP) is in korte tijd de de-facto standaard geworden voor het aansluiten van AI-agents op interne tools, databronnen en bedrijfssystemen. Appfront bouwt custom MCP-servers waarmee Claude, Cursor, Cline en uw eigen agents op een gestandaardiseerde, veilige en schaalbare manier toegang krijgen tot uw CRM, ERP, datawarehouse, documenten en operationele acties — zonder voor elke client een aparte integratie te schrijven.

Model Context Protocol JSON-RPC 2.0 Tools, resources, prompts OAuth 2.1 Python & TypeScript SDK
Plan een MCP-architectuurgesprek Bekijk toepassingen
MCP-host Claude / Cursor / Cline MCP-server tools · resources · prompts JSON-RPC CRM ERP Docs DWH

Wat is een MCP-server precies?

Het Model Context Protocol is een open standaard die Anthropic in november 2024 publiceerde. MCP definieert hoe een LLM-applicatie (de host) met externe systemen praat: gestructureerd, herontdekbaar en zonder dat de host hoeft te weten hoe die systemen onder de motorkap werken.

Een MCP-server stelt drie soorten capabilities beschikbaar aan de host. Tools zijn acties die het model kan aanroepen — een ticket aanmaken, een query uitvoeren, een mail versturen. Resources zijn lees-bronnen, vergelijkbaar met REST GET-endpoints — een document, een tabelrij, een gebruikersprofiel. Prompts zijn herbruikbare instructie-templates die de server aan de host aanbiedt voor veelvoorkomende workflows.

De analogie die binnen de MCP-community vaak wordt gebruikt is "USB-C voor AI-tooling": één gestandaardiseerd stopcontact waarop honderden tools en honderden hosts kunnen aansluiten zonder onderlinge afhankelijkheid. Voor organisaties betekent dit dat één goed gebouwde MCP-server jarenlang dienst kan doen, zelfs als u onderweg van Claude naar een andere LLM-vendor of agent-framework migreert. Lees meer over de officiële specificatie op modelcontextprotocol.io.

Communicatie verloopt over JSON-RPC 2.0. Lokale MCP-servers draaien meestal via stdio, waarbij de host het server-process spawnt en via standard input en output communiceert. Remote MCP-servers gebruiken Server-Sent Events (SSE) of streamable HTTP, met OAuth 2.1 voor authenticatie. Capability-negotiation aan het begin van de sessie zorgt dat host en server alleen die features gebruiken die beide ondersteunen — backwards compatibility is daarmee in het protocol ingebakken.

Waarom MCP, en niet gewoon een API-koppeling per agent?

Veel teams beginnen hun AI-traject door function calling rechtstreeks in de prompt te programmeren of een LangChain-tool per integratie te schrijven. Dat werkt voor één agent, maar wordt onbeheerbaar zodra u meerdere clients of meerdere LLM-providers wilt ondersteunen.

Eén integratie, vele hosts

Met MCP bouwt u uw bedrijfslogica één keer. Claude Desktop, Cursor, Cline, Continue.dev, Zed en custom agents praten allemaal met dezelfde server. U kunt een ontwikkelaar Cursor laten gebruiken en een sales-collega Claude Desktop, terwijl beide dezelfde tools en data zien.

Geen vendor lock-in

Function-calling formats verschillen per LLM-leverancier. MCP staat los van de model-provider. Migreert u van Anthropic naar een andere vendor of voegt u een lokaal open model toe? Uw MCP-server blijft draaien.

Veiligheid op één plek

Authenticatie, autorisatie, scopes, rate-limiting en audit-logging zitten in de server. U hoeft niet per agent te bewaken welke prompts welke gevoelige actie kunnen triggeren — de server houdt de poort.

Discoverable capabilities

De host hoeft niet hardcoded te weten welke tools beschikbaar zijn. De server publiceert via list_tools en list_resources zijn capabilities, en de host past zijn gedrag automatisch aan. Nieuwe tools worden direct beschikbaar zonder client-update.

Schaalbaar over teams

U kunt per domein een aparte MCP-server draaien — één voor finance, één voor HR, één voor engineering — en hosts per gebruiker selecteren welke ze laden. Composable, niet monolithisch.

Open standaard

MCP is open source onder MIT-licentie. SDKs voor Python, TypeScript, C#, Java en Kotlin zijn officieel; de community draagt SDKs voor Go, Rust en andere talen bij. Geen propriëtaire afhankelijkheid van een single vendor.

Architectuur: host, client en server

MCP volgt een klassiek client-server-model met een driedeling die het waard is om te kennen voordat u een implementatie ontwerpt.

De MCP-host is de applicatie waar de eindgebruiker mee werkt — Claude Desktop, Cursor, Cline of een custom agent. De host beheert het LLM, de gebruikersinterface en de gebruikerssessie. Voor elke MCP-server die de host wil gebruiken, instantieert hij een aparte MCP-client. Die client is de plumbing-laag die JSON-RPC-berichten serialiseert en deserialiseert.

De MCP-server tenslotte is wat Appfront voor u bouwt. Het is een proces dat tools, resources en prompts publiceert en op verzoek uitvoert. De server is stateless tussen requests — alle context komt mee in de aanroep — wat horizontaal schalen eenvoudig maakt.

Bij het opstarten van een sessie voert host en server een capability-negotiation uit. Beide partijen geven aan welke protocol-versie en welke features ze ondersteunen, zoals tools, resources, prompts, sampling, roots of logging. Pas daarna gaat de echte communicatie van start.

┌──────────────────────┐ │ MCP-host │ │ (Claude / Cursor) │ │ ┌────────────────┐ │ │ │ MCP-client │ │ │ └───────┬────────┘ │ └──────────┼───────────┘ │ JSON-RPC 2.0 stdio / SSE │ ┌──────────┼───────────┐ │ ┌───────▼────────┐ │ │ │ MCP-server │ │ │ │ • tools │ │ │ │ • resources │ │ │ │ • prompts │ │ │ └────────────────┘ │ │ │ │ Auth · scopes · │ │ audit · rate-limit │ └──────────┬───────────┘ │ ┌───────┼───────┐ │ │ │ CRM Docs Datawarehouse

Wat een custom MCP-server voor u kan

Een goed ontworpen MCP-server is de brug tussen uw LLM-frontend en alles wat al in uw landschap draait. Hieronder zes typische capability-categorieën die we voor klanten implementeren.

Bedrijfsdata bevragen

Lezen uit uw CRM, ERP, ticketsysteem, datawarehouse of CMS. Met scope-based permissies, query-templates en row-level security kan een agent veilig naar afdelings- of klantdata vragen zonder uitlooprisico.

Documenten ontsluiten

Een resource-aanbod dat handleidingen, contracten, beleidsdocumenten of Confluence-pagina's terugkoppelt. De agent leest pas wanneer relevant — geen vooraf-gevulde context, geen contextlimiet-problemen.

Operationele acties

Tickets aanmaken in Jira of ServiceNow, e-mails inplannen, agendavergaderingen boeken, payment-links genereren, deployments triggeren — write-tools die conform uw approval-flow werken.

Legacy bridge

SOAP-services, IBM-mainframes, AS/400's en andere oude systemen krijgen via één MCP-server een modern AI-toegankelijk gezicht. De server vertaalt LLM-vriendelijke calls naar legacy-protocollen.

Workflow-templates als prompts

Veelgebruikte instructiepatronen — een onboarding-checklist, een incident-response-flow, een sales-discovery-script — publiceert u als MCP-prompts. Eindgebruikers krijgen ze geserveerd in de host-UI.

Domein-specifieke berekeningen

Premie-berekeningen, taxatie-modellen, inkoop-vergelijkingen, capaciteitsplanning — alles wat u liever in deterministische code dan in een LLM-prompt afhandelt, exposeert u als tool.

Hoe Appfront uw MCP-server bouwt

Wij werken in iteratieve sprints met een werkend prototype binnen enkele weken en een productie-deploy met monitoring binnen één tot drie maanden, afhankelijk van scope.

01
Use-case-discovery
In een werksessie inventariseren we welke tools, resources en prompts uw agents nodig hebben. We mappen de bron-systemen, identificeren auth-patronen en bepalen welke acties read en welke write zijn.
02
Schema- en security-ontwerp
We leggen pydantic- of zod-schemas vast voor elke tool, definiëren OAuth-scopes en autorisatieregels, en ontwerpen het audit-log-formaat. Hier landen ook de rate-limits en de tool-permissions.
03
Build & integratie
Implementatie met de officiële MCP Python- of TypeScript-SDK (vaak FastMCP voor snelle bootstrap), gekoppeld aan uw bron-systemen. Inclusief unit-tests, integration-tests en end-to-end-tests vanuit Claude Desktop.
04
Deploy & monitoring
Container-deploy op uw cloud (Docker/Kubernetes) of on-premise. Logging via OpenTelemetry, observability in Grafana of Datadog, alerting op tool-failures, en handover-documentatie voor uw beheerteam.
Nog niet zeker over een groot traject?

Test je idee eerst — werkend prototype in 1 dag

Met OneDayBuild maken we je idee in één dag tastbaar voor €950, zodat je weet of verdere ontwikkeling de investering waard is. Besluit je door te gaan met de volledige bouw? Dan verrekenen we de kosten volledig.

Bekijk OneDayBuild →

Technologie en SDK's

We werken met de officiële MCP-stack en aanvullende libraries die de operationele kant van een productie-grade server invullen.

MCP-server-frameworks

MCP Python SDK FastMCP MCP TypeScript SDK Anthropic agent SDK pydantic-ai JSON-RPC 2.0 SSE / streamable HTTP stdio transport

FastMCP (onderdeel van de officiële Python SDK) versnelt de bootstrap van een server tot enkele tientallen regels code voor een eerste tool. Voor TypeScript-projecten gebruiken we de officiële @modelcontextprotocol/sdk.

Operationele stack

Docker Kubernetes OAuth 2.1 PKCE OpenTelemetry Grafana / Datadog PostgreSQL Redis GitHub Actions / GitLab CI FastAPI / Express

Voor remote MCP-servers gebruiken we OAuth 2.1 met PKCE, optioneel via uw bestaande Identity Provider (Auth0, Okta, Azure AD). Audit-events streamen we naar uw SIEM of een dedicated logging-bucket.

Concrete use cases

Vier scenario's die we regelmatig invullen, ter inspiratie voor uw eigen MCP-roadmap.

Bedrijfs-Claude met intern-wiki-toegang

Een MCP-server bovenop Confluence, Notion of een eigen DMS, zodat Claude Desktop voor medewerkers fungeert als bedrijfs-AI met permanente toegang tot beleid, processen en handleidingen. Resources zijn gescoped op afdeling, write-tools zijn beperkt tot draft-creation.

DevOps-AI: Kubernetes en GitHub via MCP

Tools voor cluster-status, pod-logs, deploy-rollouts en GitHub PR-reviews. Engineers gebruiken Cursor of Cline als operations-cockpit. Schrijf-acties (deploys, rollbacks) staan achter een human-in-the-loop confirmation-flow.

Klantenservice-agent: tickets en CRM gecombineerd

Eén MCP-server koppelt Zendesk of Freshdesk aan uw CRM. De agent ziet ticket-historie, klant-status en contractuele afspraken in één call, en kan gepersonaliseerde antwoorden voorstellen of gestructureerde escalaties aanmaken.

Datawarehouse-MCP voor analisten

Een MCP-server boven Snowflake, BigQuery of Postgres met read-only query-tools, schema-resources en saved-query-prompts. Business-analisten stellen natuurlijke-taal-vragen aan Claude die veilig SQL genereert binnen de toegestane scope.

Security en governance

Een MCP-server geeft een AI-agent toegang tot productiedata. Dat verdient een security-baseline op het niveau van uw andere kritische integraties — niet meer, maar zeker niet minder.

Authenticatie en autorisatie

OAuth 2.1 met PKCE voor remote servers, optioneel via uw Identity Provider. Per tool een aparte scope, per resource row-level of attribute-based access control. Tokens lopen automatisch af, refresh-flows verlopen volgens spec.

Audit-logging

Elke tool-call en elke resource-read wordt gelogd met user-id, scope, timestamp, parameters (geredacteerd waar nodig) en uitkomst. Logs streamen naar uw SIEM. Achterhalen wie wat wanneer heeft uitgevoerd is forensisch reproduceerbaar.

Human-in-the-loop voor write-tools

Schrijf-acties met onomkeerbare gevolgen krijgen standaard een confirmation-stap in de host. Het LLM kan voorstellen doen, de gebruiker bevestigt. Voor sommige flows leveren we daarnaast async approval via een tweede kanaal.

Data-residency en AVG

MCP-servers draaien default in EU-regio's of op uw eigen infra. PII-velden worden waar mogelijk pas op de plek van gebruik gedecrypteerd. Verwerkersovereenkomsten en DPIA-input leveren we standaard mee bij de oplevering.

Veelgestelde vragen over MCP-servers

Wat is het Model Context Protocol (MCP) precies?
MCP is een open protocol dat Anthropic in november 2024 publiceerde. Het standaardiseert hoe LLM-applicaties (zogenaamde MCP-hosts) gestructureerd verbinding maken met externe tools, data en kennisbronnen via MCP-servers. Communicatie verloopt via JSON-RPC 2.0, over stdio of Server-Sent Events. U kunt het zien als een USB-C-standaard voor AI-tooling: één protocol, vele clients.
Waarom een MCP-server bouwen in plaats van directe API-koppelingen per AI-agent?
Met een MCP-server bouwt u één integratie die werkt voor elke MCP-compatibele host. Claude Desktop, Cursor, Cline, Continue.dev en custom agents krijgen allemaal toegang tot dezelfde tools, resources en prompts zonder dat u per client opnieuw integreert. Dit voorkomt vendor lock-in en versnipperde authenticatie.
Welke programmeertaal gebruikt Appfront voor MCP-servers?
Wij werken hoofdzakelijk met de officiële Python SDK (mcp en FastMCP) en de TypeScript SDK. Welke keuze het beste past hangt af van uw bestaande stack: een datawarehouse-MCP draait vaak prettiger in Python met pydantic-typing, terwijl een Node-microservice-koppeling in TypeScript natuurlijker integreert.
Hoe wordt een MCP-server beveiligd?
Een MCP-server hoort nooit ongeauthenticeerd toegang te geven tot bedrijfsdata. Wij implementeren OAuth 2.1 of API-key flows, scope-based permissies per tool, audit-logging van alle calls, en rate-limiting. Voor remote MCP-servers gebruiken we TLS en optioneel mutual TLS. Tool-permissies staan los van resource-permissies, zodat u read-only en write-acties apart kunt afschermen.
Kan een MCP-server zowel lezen als schrijven in onze systemen?
Ja. MCP onderscheidt drie primitives: tools (acties uitvoeren, ook schrijven), resources (data lezen, vergelijkbaar met REST GET) en prompts (herbruikbare instructie-templates). U bepaalt per primitive welke autorisatie geldt. Een veelvoorkomend patroon: brede read-access op resources en strikt afgebakende write-tools achter expliciete user-confirmation.
Werkt een MCP-server alleen met Claude of ook met andere LLM's?
Het Model Context Protocol is open en LLM-agnostisch. Naast Anthropic's Claude (Desktop en API met agent SDK) ondersteunen onder meer Cursor, Cline, Continue.dev, Zed en een groeiend aantal open-source agent-frameworks MCP-clients. U bouwt één server en sluit meerdere LLM-frontends aan.
Hoe verhoudt MCP zich tot OpenAI function calling of LangChain tools?
Function calling en LangChain tools zijn vendor- of framework-specifiek. MCP is een transport- en discovery-protocol dat los staat van een specifieke LLM-leverancier. Een MCP-server kan intern function-calling-handlers aanroepen, maar exposeert ze op een gestandaardiseerde manier zodat ze in elke MCP-host opduiken.
Hoe lang duurt een MCP-server-implementatie?
Een proof of concept met enkele tools en een lees-resource staat doorgaans binnen één tot twee weken. Een productie-grade MCP-server met OAuth, audit-logging, monitoring en koppelingen op meerdere systemen kost typisch zes tot twaalf weken, afhankelijk van het aantal tools en de complexiteit van de onderliggende systemen.

MCP-server laten bouwen voor uw stack?

Bespreek uw use case met onze AI-engineers. We schetsen samen welke tools, resources en prompts uw agents nodig hebben — en welke architectuur en security-baseline daarbij past. Vrijblijvend en zonder verplichtingen.

Plan een MCP-architectuurgesprek

Edit Content