InfraBIDS MCP-server
Koppel je AI-agent (Claude, ChatGPT, Cursor, Codex) aan InfraBIDS en vraag bedrijfsinformatie, diensten en projectcases op in het Nederlands of Engels.
- Endpoint
- https://infrabidsite.com/mcp
- Transport
- Streamable HTTP (JSON-RPC 2.0)
- Versie
- infrabids-landing 0.3.0
Authenticatie
De server is beveiligd met OAuth 2.1. Clients registreren zichzelf automatisch (dynamic client registration); je logt in met je account en keurt de koppeling goed op de toestemmingspagina. Daarna stuurt de client bij elke aanroep een Authorization: Bearer <token>-header mee. Zonder geldig token antwoordt de server met 401 Unauthorized.
Discovery-document: https://infrabidsite.com/.well-known/oauth-protected-resource
Client-configuratie
Voeg de server toe aan je MCP-client; de OAuth-flow start bij de eerste verbinding.
{
"mcpServers": {
"infrabids": {
"url": "https://infrabidsite.com/mcp"
}
}
}Beschikbare tools
Openbaar profiel van InfraBIDS: wat het bedrijf doet, focusgebieden, doelgroepen en hoe je een afspraak aanvraagt.
Invoervelden
| Veld | Type | Verplicht | Omschrijving |
|---|---|---|---|
| lang | "nl" | "en" | Nee | Taal van de teruggegeven tekst. Standaard "nl". |
Voorbeeld-request
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_company_info",
"arguments": { "lang": "nl" }
}
}Voorbeeld-antwoord (structured)
{
"brand": "InfraBIDS",
"tagline": "...",
"summary": "...",
"website": "https://infrabidsite.com",
"pageForLanguage": "https://infrabidsite.com",
"audiences": ["Bouwbedrijven", "Overheden", "..."],
"meetingRequest": "https://infrabidsite.com/#contact"
}Lijst van de openbare diensten van InfraBIDS: consultancy, softwareontwikkeling, data science, geo-data en verkeersmanagement.
Invoervelden
| Veld | Type | Verplicht | Omschrijving |
|---|---|---|---|
| lang | "nl" | "en" | Nee | Taal van de teruggegeven tekst. Standaard "nl". |
Voorbeeld-request
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "list_services",
"arguments": { "lang": "en" }
}
}Voorbeeld-antwoord (structured)
{
"services": [
{ "id": "consultancy", "name": "...", "description": "..." },
{ "id": "geo-data", "name": "...", "description": "..." }
]
}Lijst van de openbare projectcases van de website, optioneel gefilterd op een dienst-id.
Invoervelden
| Veld | Type | Verplicht | Omschrijving |
|---|---|---|---|
| lang | "nl" | "en" | Nee | Taal van de teruggegeven tekst. Standaard "nl". |
| service | string | Nee | Optioneel dienst-id om op te filteren, bijvoorbeeld "geo-data" of "traffic-management". |
Voorbeeld-request
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "list_projects",
"arguments": { "lang": "nl", "service": "geo-data" }
}
}Voorbeeld-antwoord (structured)
{
"projects": [
{
"id": "tvm-operating-system",
"name": "TVM Operating System",
"description": "...",
"focus": ["traffic-management", "software-development"],
"status": "In productie",
"url": "https://infrabidsite.com/blog/tvm-platform"
}
]
}De mensen achter InfraBIDS: rollen, achtergrond, expertisegebieden en LinkedIn-profielen.
Invoervelden
| Veld | Type | Verplicht | Omschrijving |
|---|---|---|---|
| lang | "nl" | "en" | Nee | Taal van de teruggegeven tekst. Standaard "nl". |
Voorbeeld-request
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "get_team",
"arguments": { "lang": "nl" }
}
}Voorbeeld-antwoord (structured)
{
"team": [
{
"id": "raymon-somford",
"name": "Raymon Somford",
"role": "...",
"bio": "...",
"expertise": ["Infrastructuur GWW & TVM"],
"linkedin": "https://www.linkedin.com/..."
}
]
}Doorzoekt alle openbare pagina's, secties en FAQ-antwoorden van de site en geeft treffers terug met URL.
Invoervelden
| Veld | Type | Verplicht | Omschrijving |
|---|---|---|---|
| query | string | Ja | Zoekwoorden, bijvoorbeeld "verkeersplan" of "geo data". |
| lang | "nl" | "en" | Nee | Taal van de teruggegeven tekst. Standaard "nl". |
| limit | number | Nee | Maximaal aantal resultaten (1-20). Standaard 8. |
Voorbeeld-request
{
"jsonrpc": "2.0",
"id": 5,
"method": "tools/call",
"params": {
"name": "search_site",
"arguments": { "query": "verkeersplan", "lang": "nl" }
}
}Voorbeeld-antwoord (structured)
{
"query": "verkeersplan",
"results": [
{
"type": "page",
"title": "Platformen",
"snippet": "...",
"url": "https://infrabidsite.com/#platforms"
}
]
}Beantwoordt een vraag in natuurlijke taal met alle openbare content tegelijk: FAQ, cases, diensten en pagina's. Geeft gerangschikte passages met bron-URL terug, zodat een agent kan citeren.
Invoervelden
| Veld | Type | Verplicht | Omschrijving |
|---|---|---|---|
| question | string | Ja | De vraag, bijvoorbeeld "Werken jullie met BGT en IMBOR?". |
| lang | "nl" | "en" | Nee | Taal van de teruggegeven tekst. Standaard "nl". |
| limit | number | Nee | Maximaal aantal passages (1-10). Standaard 5. |
Voorbeeld-request
{
"jsonrpc": "2.0",
"id": 6,
"method": "tools/call",
"params": {
"name": "answer_question",
"arguments": { "question": "Werken jullie met BGT en IMBOR?", "lang": "nl" }
}
}Voorbeeld-antwoord (structured)
{
"question": "Werken jullie met BGT en IMBOR?",
"passages": [
{
"source": "faq",
"title": "...",
"text": "...",
"url": "https://infrabidsite.com/#faq"
}
],
"note": "Beantwoord uitsluitend op basis van deze passages..."
}Koppelt de rol van de beller (gemeente, aannemer, landelijke beheerder, ingenieursbureau) aan de vraagstukken die InfraBIDS oplost en de bijpassende diensten met links.
Invoervelden
| Veld | Type | Verplicht | Omschrijving |
|---|---|---|---|
| audience | string | Nee | Rol: "municipality", "contractor", "national" of "engineering". Laat leeg voor alle doelgroepen. |
| lang | "nl" | "en" | Nee | Taal van de teruggegeven tekst. Standaard "nl". |
Voorbeeld-request
{
"jsonrpc": "2.0",
"id": 7,
"method": "tools/call",
"params": {
"name": "get_capabilities",
"arguments": { "audience": "municipality", "lang": "nl" }
}
}Voorbeeld-antwoord (structured)
{
"matches": [
{
"id": "municipality",
"audience": "Gemeenten en wegbeheerders",
"problems": ["..."],
"services": [{ "id": "geo-data", "name": "...", "description": "..." }],
"url": "https://infrabidsite.com/#services"
}
]
}Uitgebreide, openbaar gepubliceerde case van een eigen platform (TVM Operating System of Infrafoto): doelgroep, probleem, aanpak, functies en resultaat. Bevat geen prijzen, klantnamen of interne details.
Invoervelden
| Veld | Type | Verplicht | Omschrijving |
|---|---|---|---|
| id | string | Nee | "tvm" of "infrafoto". Laat leeg voor alle cases. |
| lang | "nl" | "en" | Nee | Taal van de teruggegeven tekst. Standaard "nl". |
Voorbeeld-request
{
"jsonrpc": "2.0",
"id": 8,
"method": "tools/call",
"params": {
"name": "get_case_study",
"arguments": { "id": "tvm", "lang": "nl" }
}
}Voorbeeld-antwoord (structured)
{
"cases": [
{
"id": "tvm",
"name": "TVM Operating System",
"audience": ["Gemeenten en wegbeheerders"],
"problem": "...",
"approach": "...",
"capabilities": ["..."],
"outcomes": ["..."],
"article": "https://infrabidsite.com/blog/tvm-platform"
}
]
}Vraagt een Microsoft Teams-meeting aan bij het InfraBIDS-team. De aanvraag wordt vastgelegd als lead. De bevestigingsmail gaat altijd naar het geverifieerde e-mailadres uit het OAuth-token van de ingelogde gebruiker, een e-mailadres opgeven in de aanroep kan niet. Maximaal 3 aanvragen per gebruiker per dag.
Invoervelden
| Veld | Type | Verplicht | Omschrijving |
|---|---|---|---|
| name | string | Ja | Naam van de aanvrager. |
| company | string | Nee | Bedrijf of organisatie. |
| topic | string | Nee | Onderwerp van het gesprek. |
| date | string | Nee | Gewenste datum, bijv. 2026-09-12. |
| time | string | Nee | Gewenst tijdstip, bijv. 10:00. |
| message | string | Nee | Extra context over het project. |
| lang | "nl" | "en" | Nee | Taal van de teruggegeven tekst. Standaard "nl". |
Voorbeeld-request
{
"jsonrpc": "2.0",
"id": 9,
"method": "tools/call",
"params": {
"name": "request_meeting",
"arguments": {
"name": "Jan Jansen",
"company": "Gemeente X",
"topic": "Verkeersplannen digitaliseren",
"date": "2026-09-12",
"time": "10:00",
"lang": "nl"
}
}
}Voorbeeld-antwoord (structured)
{
"received": true,
"emailed": true,
"followUp": "Het InfraBIDS-team bevestigt de Microsoft Teams-meeting per e-mail."
}Rauwe HTTP-aanroep
Tools opvragen met een geldig access token:
curl -X POST https://infrabidsite.com/mcp \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Foutafhandeling: ongeldige invoer levert een tool-resultaat met isError: true; een ontbrekend of verlopen token levert HTTP 401 met een WWW-Authenticate-header die naar het discovery-document verwijst.
Vragen over integratie?
Plan een Teams-meeting via de contactsectie op de website.
Plan een afspraak