# Model Context Protocol (MCP)

## Inhoud

- [Hoe je het gebruikt hangt af van wie je bent](#hoe-je-het-gebruikt-hangt-af-van-wie-je-bent)
- [Koppelen in Claude op het web](#koppelen-in-claude-op-het-web)
- [Koppelen in Claude Desktop](#koppelen-in-claude-desktop)
- [ChatGPT](#chatgpt)
- [Mistral Le Chat](#mistral-le-chat)
- [Microsoft Copilot (via Copilot Studio)](#microsoft-copilot-via-copilot-studio)
- [Werkt het?](#werkt-het)
- [Probeer dit](#probeer-dit)
- [Wat we met je vragen doen](#wat-we-met-je-vragen-doen)
- [Werkt het niet?](#werkt-het-niet)
- [Snelstart](#snelstart)
- [MCP-server](#mcp-server)
- [Gebruik als Claude-skill](#gebruik-als-claude-skill)
- [Machine-leesbare content](#machine-leesbare-content)
- [WebMCP (preview)](#webmcp-preview)
- [Discovery-bestanden](#discovery-bestanden)
- [Contentbeleid](#contentbeleid)
- [Contact en beveiliging](#contact-en-beveiliging)
- [Voor agents](#voor-agents)


Een AI-assistent weet alleen wat er in zijn trainingsdata zat en wat je zelf in het gesprek plakt. Of hij weet wat er op onze website staat, is dus niet zeker. Waar hij wél heel goed in is: zoeken, mits hij daar het juiste gereedschap voor krijgt. Het [Model Context Protocol](/docs/begrippen#mcp), kortweg MCP, is zulk gereedschap. Het is een afspraak over hoe een AI-assistent verbinding maakt met een bron van informatie: één standaard stekker, zodat niemand voor elke combinatie van assistent en systeem een eigen koppeling hoeft te bouwen.

Wij hebben zo'n koppeling klaarstaan. Zet je hem aan, dan kan je assistent onze business cases, veelgestelde vragen en sitecontent rechtstreeks doorzoeken. Vraag je iets over ons, dan komt het antwoord uit onze eigen documentatie in plaats van uit een gok.

Het adres is `https://mcp.backlight.ai/mcp/`. Gratis, geen account, geen API-key. Aan onze content kan niets veranderd of verwijderd worden: zoeken is alles wat de tools doen, op twee na. Een offerteaanvraag en een stukje feedback achterlaten schrijven wel iets weg bij ons, en alleen als je daar zelf om vraagt.

## Hoe je het gebruikt hangt af van wie je bent

Er is niet één manier om MCP te gebruiken, en de beste route hangt af van wie erachter zit. Wil je gewoon dat je assistent meer over ons weet, dan is het een kwestie van een adres plakken en klaar. Bouw je zelf iets, dan wil je de configuratiebestanden, de toolnamen en de handshake zien. En ben je zelf een AI-agent, dan heb je aan een uitlegpagina niets: dan wil je een machineleesbaar bestand.

Kies dus hieronder wie er meekijkt.

---

| Platform | Waar je het toevoegt | Let op |
|---|---|---|
| [Claude op het web](#koppelen-in-claude-op-het-web) | Settings, Customize, tabblad Connectors | Betaald plan vereist (Pro, Max, Team of Enterprise) |
| [Claude Desktop](#koppelen-in-claude-desktop) | `+` in het invoerveld, Connectors | App volledig herstarten |
| [ChatGPT](#chatgpt) | Settings, MCP servers, Add server | Herstart na opslaan |
| [Mistral Le Chat](#mistral-le-chat) | Connectors, + Add Connector, tabblad Custom MCP Connector | Toevoegen is een beheerdersactie |
| [Microsoft Copilot](#microsoft-copilot-via-copilot-studio) | Copilot Studio, Tools, Add a tool, Model Context Protocol | Generative orchestration moet aanstaan |

## Koppelen in Claude op het web

1. Log in op [claude.ai](https://claude.ai).
2. Ga naar **Settings** en dan **Customize**, tabblad **Connectors**.
3. Klik op **Add custom connector**.
4. Plak `https://mcp.backlight.ai/mcp/` als URL.
5. Kies transport **HTTP**.
6. Er is geen login of autorisatie nodig: de server is publiek toegankelijk. Laat die velden leeg.
7. Klik op **Save**.

De koppeling is direct actief, je hoeft niets opnieuw te starten. Let op: custom connectors zijn alleen beschikbaar op een betaald plan (Pro, Max, Team of Enterprise).

## Koppelen in Claude Desktop

1. Open Claude Desktop en klik op de `+` in het invoerveld.
2. Kies **Connectors**.
3. Voeg hetzelfde adres toe: `https://mcp.backlight.ai/mcp/`.
4. Sluit Claude Desktop volledig af en start de app opnieuw. Zonder herstart verschijnen de tools niet.

## ChatGPT

1. Ga naar **Settings** en dan **MCP servers**.
2. Klik op **Add server**.
3. Vul een naam voor de server in.
4. Kies als transporttype **Streamable HTTP**. De andere optie, STDIO, is voor lokale servers, niet voor de onze.
5. Vul bij **URL** `https://mcp.backlight.ai/mcp/` in.
6. Laat authenticatie leeg. Naast Bearer-token en OAuth ondersteunt ChatGPT ook toegang zonder authenticatie, en dat is wat onze server nodig heeft.
7. Klik op **Save** en kies daarna **Restart**.

Zie je deze optie niet, dan biedt jouw abonnement of jouw organisatie hem mogelijk niet aan.

## Mistral Le Chat

1. Open de pagina **Connectors**.
2. Klik op **+ Add Connector**.
3. Ga naar het tabblad **Custom MCP Connector**.
4. Vul een **Connector name** in (uniek, geen spaties of speciale tekens), de **Server URL** `https://mcp.backlight.ai/mcp/`, en optioneel een omschrijving.
5. Klik op **Connect**. Le Chat herkent de authenticatiemethode automatisch aan de URL. Voor een publiek toegankelijke server als de onze is geen authenticatie nodig.

Een connector toevoegen is een beheerdersactie. Op de Free-, Pro- en Student-abonnementen ben je als accounteigenaar standaard ook beheerder, dus voor de meeste individuele gebruikers is dit geen drempel.

## Microsoft Copilot (via Copilot Studio)

Deze koppeling loopt via **Copilot Studio**, gekoppeld aan een agent.

1. Ga naar de pagina **Tools** van je agent.
2. Klik op **Add a tool** en dan **New tool**.
3. Kies **Model Context Protocol**. De onboarding-wizard voor MCP opent.
4. Vul **Server name**, **Server description** en **Server URL** (`https://mcp.backlight.ai/mcp/`) in.
5. Kies bij het authenticatietype **None**.
6. Klik op **Create**.
7. Kies in het dialoogvenster **Add tool** voor **Create a new connection**, en klik dan op **Add to agent**.

Let op: **generative orchestration** moet aanstaan voor je agent, anders is MCP niet beschikbaar. Copilot Studio ondersteunt alleen het Streamable-transport (SSE-ondersteuning stopte in augustus 2025), en dat is precies wat onze server spreekt. Omdat MCP-toegang via Power Platform-connectors loopt, kan het datazorgbeleid (DLP) van een organisatie de koppeling blokkeren. Een tenant-beheerder kan de server ook organisatiebreed registreren als "bring your own MCP server" via de Agents 365 CLI en het Microsoft 365 Admin Center, waarna hij in Copilot Studio selecteerbaar is.

## Werkt het?

Stel je assistent een vraag die alleen te beantwoorden is met onze eigen content, bijvoorbeeld:

> Welke cases heeft Backlight.ai voor de overheid gedaan?

Je ziet hem eerst een tool genaamd `search_cases` aanroepen, en het antwoord noemt echte cases uit ons portfolio. Zie je die toolaanroep niet, dan is de koppeling niet actief: ga naar [Werkt het niet?](#werkt-het-niet) hieronder.

## Probeer dit

- "Heeft Backlight.ai iets met documentanalyse gedaan?"
- "Hoe werkt een sprint bij Backlight.ai en wat kost die?"
- Een vraag die je normaal in onze FAQ zou opzoeken, bijvoorbeeld "Hoe gaat Backlight.ai om met privacy?"
- "Ik wil een offerte aanvragen voor een AI-assistent." Let op: dit schrijft een intake-record weg bij ons, dus je assistent doet dit alleen als je het expliciet vraagt.

## Wat we met je vragen doen

De server kan onze content doorzoeken maar niets aanpassen of verwijderen, en hij toont alleen content die al publiek op onze site staat. Twee tools schrijven wel iets weg bij ons: een offerteaanvraag en het achterlaten van feedback. Allebei alleen wanneer je er zelf om vraagt.

Van elke toolaanroep loggen we de naam van de tool, de gebruikte parameters en een zelf-gerapporteerde reden (de "purpose" die de assistent meegeeft). Persoonlijke velden zoals e-mailadres en telefoonnummer worden voor opslag onherkenbaar gemaakt. Je IP-adres slaan we nooit ruw op, alleen een gezouten, ingekorte hash. Deze gegevens bewaren we 60 dagen.

## Werkt het niet?

| Symptoom | Oplossing |
|---|---|
| Ik zie geen optie om een connector toe te voegen | In Claude: custom connectors vereisen een betaald plan (Pro, Max, Team of Enterprise), en de mobiele app kan sowieso geen connector toevoegen. In Le Chat: toevoegen is een beheerdersactie. In ChatGPT: jouw abonnement of organisatie biedt de optie mogelijk niet aan. |
| De assistent gebruikt de tools niet | Claude Desktop en ChatGPT: sluit de app volledig af en start opnieuw. Op claude.ai: begin een nieuw gesprek. In Copilot Studio: controleer of generative orchestration aanstaat. |
| De verbinding mislukt | Controleer of het adres exact `https://mcp.backlight.ai/mcp/` is. Loopt het via een organisatie, dan kan een beheerdersbeleid de koppeling blokkeren. |
| Ik wil het weer uitzetten | Verwijder de connector in je instellingen. Er blijft niets achter aan jouw kant. |

Wil je de configuratiebestanden, de toolnamen of de ruwe JSON-RPC-handshake zien? Kijk dan bij [Nerd](/mcp?view=nerd). Vragen? Mail [it@backlight.ai](mailto:it@backlight.ai).

---

## Snelstart

De MCP-server draait op `https://mcp.backlight.ai/mcp/` en spreekt het Streamable HTTP-transport. Zowel `/mcp` als `/mcp/` werken; gebruik in nieuwe configuratie toch de vorm met trailing slash (`/mcp/`), dat is de canonieke vorm die de meeste MCP-servers verwachten.

### Claude Code

De snelste route is de CLI:

```bash
claude mcp add --transport http backlight https://mcp.backlight.ai/mcp/
```

Standaard is dat `--scope local` (alleen dit project). Andere scopes:

```bash
claude mcp add --transport http backlight https://mcp.backlight.ai/mcp/ --scope project  # schrijft .mcp.json, gecommit in de repo
claude mcp add --transport http backlight https://mcp.backlight.ai/mcp/ --scope user      # ~/.claude.json, alle projecten
```

Verifieer met:

```bash
claude mcp list
```

Dat print per server een connected/failed status. Geen herstart nodig.

Handmatig kan ook, met dezelfde configuratie als hierboven in `.mcp.json`:

```json
{
  "mcpServers": {
    "backlight": {
      "type": "http",
      "url": "https://mcp.backlight.ai/mcp/"
    }
  }
}
```

### Claude Desktop

Claude Desktop ondersteunt sinds kort een native remote HTTP-connector: `+` › Connectors, adres plakken, klaar. Herstart de app daarna volledig, anders verschijnen de tools niet.

Handmatig via het configuratiebestand kan ook, met dezelfde `{"type": "http", ...}`-vorm:

```json
{
  "mcpServers": {
    "backlight": {
      "type": "http",
      "url": "https://mcp.backlight.ai/mcp/"
    }
  }
}
```

Bestandslocatie: `~/.claude/claude_desktop_config.json` op macOS en Linux, `%APPDATA%\Claude\claude_desktop_config.json` op Windows.

**Fallback voor stdio-only clients:** spreekt je client alleen stdio, gebruik dan de `mcp-remote`-proxy:

```json
{
  "mcpServers": {
    "backlight": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.backlight.ai/mcp/"]
    }
  }
}
```

### Cursor

Voeg in **Settings › Tools & Integrations › MCP** een nieuwe server toe:

```
Name:      Backlight.ai
Transport: streamable-http
URL:       https://mcp.backlight.ai/mcp/
```

### GitHub Copilot in de editor

GitHub Copilot ondersteunt een externe HTTP MCP-server als tool. Dit werkt in VS Code, en sinds de algemene beschikbaarheid in augustus 2025 ook in JetBrains, Visual Studio en Eclipse. Het werkt op elk Copilot-abonnement, zonder extra licentie. Een organisatiebeleid kan de koppeling wel blokkeren.

Voor VS Code: zet in `.vscode/mcp.json` (projectniveau) of via het commando **MCP: Open User Configuration** (gebruikersniveau) de volgende configuratie:

```json
{
  "servers": {
    "backlight": {
      "type": "http",
      "url": "https://mcp.backlight.ai/mcp/"
    }
  }
}
```

Bron: [VS Code MCP servers-documentatie](https://code.visualstudio.com/docs/copilot/customization/mcp-servers).

### Eigen MCP-client

Stuur een `initialize`-verzoek naar `https://mcp.backlight.ai/mcp/` met de standaard MCP handshake. Zie [MCP Discovery](#mcp-server) voor het volledige discovery-bestand.

De snelste manier om de toolcatalogus te verkennen en tools handmatig aan te roepen is MCP Inspector, gericht op onze server:

```bash
npx @modelcontextprotocol/inspector https://mcp.backlight.ai/mcp/
```

---

## MCP-server

De MCP-server exposeert twaalf tools. Elke tool is beschikbaar via JSON-RPC over HTTP en heeft een machineleesbaar inputschema op `/mcp/schemas/<tool_name>`.

### Toolcatalogus

| Tool | Beschrijving |
|---|---|
| `search_docs` | Geeft gerangschikte secties uit de Backlight.ai-sitecontent terug (services, methodologie, tarieven, juridisch) op basis van een vrije-tekst query. |
| `search_cases` | Geeft gerangschikte portfolio-cases terug als samenvattingsobjecten (slug, titel, klant, jaar, sector). |
| `semantic_search` | Embeddings-gebaseerde (RAG) retrieval over docs en cases, geschikt voor conceptuele of geparafraseerde vragen. |
| `get_case` | Geeft de volledige case op basis van slug, inclusief frontmatter en markdown-body. |
| `search_faq` | Zoekt in de veelgestelde vragen via BM25 + Nederlandse stemming. |
| `search_faq_vectors` | Embeddings-gebaseerde zoekopdracht binnen alleen de FAQ, geschikt voor geparafraseerde multi-query vragen. |
| `search_pois` | Zoekt in de points-of-interest-catalogus van de aanroepende organisatie (alleen beschikbaar wanneer de bedienende agent hiervoor is geconfigureerd). |
| `submit_feedback` | Slaat bezoekersfeedback over het huidige gesprek op. |
| `set_map_pin` | Bevestigt een locatie/route zonder zelf een kaart-UI te renderen. |
| `list_terms` | Geeft tot 150 termen uit het sitecorpus terug voor vocabulaireverificatie. |
| `request_proposal` | Schrijft een intake-record naar het Backlight.ai CRM en geeft een `ProposalTicket` terug. Alleen aanroepen als de gebruiker expliciet een offerte vraagt. |
| `query_case_graph` | Doorloopt relaties tussen cases (gedeelde klanten, domeinen, technieken) voor "gerelateerd aan"- of "vergelijkbare cases"-vragen. |

### Discovery-bestand

Het machineleesbare discovery-bestand staat op `https://backlight.ai/.well-known/mcp.json` en bevat het volledige endpoint, elke toolnaam met beschrijving, en links naar de inputschema's.

```bash
curl https://backlight.ai/.well-known/mcp.json
```

### JSON-RPC-voorbeelden

**Initialiseer de verbinding:**

```json
{
  "jsonrpc": "2.0",
  "method": "initialize",
  "params": {
    "protocolVersion": "2024-11-05",
    "capabilities": {},
    "clientInfo": { "name": "mijn-client", "version": "1.0" }
  },
  "id": 1
}
```

**Aanroep `search_docs`:**

```json
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "search_docs",
    "arguments": { "query": "wat kost een sprint" }
  },
  "id": 2
}
```

**Aanroep `search_cases` voor portfolio-lookup:**

```json
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "search_cases",
    "arguments": { "query": "overheid AI" }
  },
  "id": 3
}
```

**Haal een volledige case op:**

```json
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "get_case",
    "arguments": { "slug": "kamer-debat-assistent" }
  },
  "id": 4
}
```

**Aanroep `request_proposal` (alleen bij expliciete aanvraag):**

```json
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "request_proposal",
    "arguments": {
      "domain": "mijn-bedrijf.nl",
      "contact_email": "naam@mijn-bedrijf.nl",
      "brief": "We willen een AI-assistent voor klantenservice bouwen."
    }
  },
  "id": 5
}
```

---

## Gebruik als Claude-skill

Een [skill](/docs/begrippen#skill) is een op maat geschreven instructiebestand dat Claude leert hoe en wanneer een bepaalde tool of MCP-server te gebruiken. In plaats van zelf uit te zoeken welke tool bij welke vraag hoort, laadt Claude de skill automatisch zodra die relevant is en volgt daarna de daarin beschreven werkwijze.

Voor de Backlight.ai MCP-server hebben we die skill al geschreven. Download hem en installeer hem lokaal:

1. Download het skill-bestand: [`/SKILL.md`](/SKILL.md).
2. Zet het bestand op `~/.claude/skills/backlight-mcp/SKILL.md`.
3. Herstart Claude Code of Claude Desktop. De skill wordt automatisch opgepikt zodra een vraag over Backlight.ai's portfolio, diensten of FAQ binnenkomt.

Meer uitleg over skills en hoe je ze in Claude installeert en gebruikt: [Use skills in Claude](https://support.claude.com/en/articles/12512180-use-skills-in-claude) (Anthropic support).

---

## Machine-leesbare content

Naast de MCP-tools biedt Backlight.ai platte markdown-exports op vaste URL's, geschikt voor LLM-crawlers die liever HTTP-fetches doen dan JSON-RPC.

| URL | Inhoud |
|---|---|
| `https://backlight.ai/llms.txt` | Spec-conform index per [llmstxt.org](https://llmstxt.org/): sitetitel, samenvatting, linklijst |
| `https://backlight.ai/llms-full.txt` | Alle publieke docs samengevoegd in één bestand |
| `https://backlight.ai/landing.md` | Volledige landingspagina als markdown |
| `https://backlight.ai/faq.md` | Alle veelgestelde vragen |
| `https://backlight.ai/cases.md` | Overzicht van alle portfolio-cases |
| `https://backlight.ai/cases/<slug>.md` | Individuele case als markdown (bijv. `/cases/kamer-debat-assistent.md`) |
| `https://backlight.ai/mcp.md` | Deze pagina als platte markdown |
| `https://backlight.ai/SKILL.md` | De Claude-skill voor de MCP-server, als downloadbaar bestand |

Elk HTML-document stuurt ook twee `Link`-headers mee zodat clients de MCP-server en `llms.txt` kunnen ontdekken zonder `.well-known/` te scannen:

```
Link: <https://backlight.ai/.well-known/mcp.json>; rel="modelcontextprotocol"
Link: <https://backlight.ai/llms.txt>; rel="describedby"; type="text/plain"
```

---

## WebMCP (preview)

Backlight.ai ondersteunt WebMCP, een browser-side toolblootstelling via `navigator.modelContext`. Dit is een Chrome 146+ preview-API.

Als `navigator.modelContext` beschikbaar is, registreert de site zijn tools automatisch zodat een lokale AI-assistent ze kan aanroepen zonder een expliciete MCP-serververbinding.

```javascript
// Controleer of WebMCP beschikbaar is
if ("modelContext" in navigator) {
  const tools = await navigator.modelContext.listTools();
  console.log("Beschikbare tools:", tools);
}
```

WebMCP is feature-geflaged en alleen actief in compatibele browsers. Gebruik de MCP-server voor productie-integraties.

---

## Discovery-bestanden

Alle discovery-bestanden staan onder `https://backlight.ai/.well-known/`:

| Bestand | Beschrijving |
|---|---|
| [`/.well-known/mcp.json`](https://backlight.ai/.well-known/mcp.json) | MCP-discovery: endpoint, transport, toolcatalogus, links naar inputschema's |
| [`/.well-known/agent-permissions.json`](https://backlight.ai/.well-known/agent-permissions.json) | Agentbeleid: trainen verboden, zoeken/scrapen/LLM-input toegestaan |
| [`/.well-known/api-catalog`](https://backlight.ai/.well-known/api-catalog) | RFC 9727 linkset die naar de OpenAPI-descriptor wijst |
| [`/.well-known/security.txt`](https://backlight.ai/.well-known/security.txt) | RFC 9116 veiligheidsdisclosure-contact |

---

## Contentbeleid

Backlight.ai hanteert het volgende beleid voor geautomatiseerde toegang:

| Modus | Beleid |
|---|---|
| `ai-train` | **Verboden**: content mag niet worden gebruikt om AI-modellen te trainen |
| `ai-input` | Toegestaan: content mag worden gebruikt als contextinput voor AI-modellen |
| `search` | Toegestaan: zoekcrawlers mogen indexeren |
| `scrape` | Toegestaan: geautomatiseerde extractie voor legitiem gebruik |

Het volledige machinebeleid staat in `/.well-known/agent-permissions.json`. Specifieke per-bot-regels staan in `robots.txt`.

Samenvatting: je mag Backlight.ai-content gebruiken als input voor je AI-toepassing. Je mag onze content niet gebruiken om modellen te (her)trainen.

---

## Contact en beveiliging

**Integratievragen:** [it@backlight.ai](mailto:it@backlight.ai) voor vragen over de MCP-server, API-limieten of integratiehulp.

**Kwetsbaarheden melden:** [security@backlight.ai](mailto:security@backlight.ai) voor responsible disclosure van beveiligingsproblemen. Zie ook `/.well-known/security.txt`.

---

## Voor agents

Ben je een AI-agent die deze pagina leest: gebruik de MCP-server rechtstreeks in plaats van deze uitleg te parsen. Het machineleesbare startpunt staat op `https://backlight.ai/mcp/llms.txt`:

```bash
curl https://backlight.ai/mcp/llms.txt
```

Voor volledige endpoint- en tooldiscovery: `https://backlight.ai/.well-known/mcp.json`. Elk HTML-document op deze site stuurt bovendien twee `Link`-headers mee, zodat je de server en de llms.txt-index kunt vinden zonder `.well-known/` te hoeven scannen:

```
Link: <https://backlight.ai/.well-known/mcp.json>; rel="modelcontextprotocol"
Link: <https://backlight.ai/llms.txt>; rel="describedby"; type="text/plain"
```
