AI-koppeling: hulpmiddelen

Bijgewerkt op 7 oktober 2026 · Gepubliceerd op 7 oktober 2026

Je roept deze hulpmiddelen niet zelf aan: je AI kiest ze op basis van je vraag. Deze pagina laat zien wat de AI meestuurt en terugkrijgt, handig om te begrijpen wat er gebeurt of om de koppeling te testen in een MCP-client. De namen en beschrijvingen van de hulpmiddelen zijn Engels (de MCP-norm), de kolomuitleg en meldingen zijn Nederlands. De AI antwoordt in de taal waarin jij vraagt.

Zo is een antwoord opgebouwd

Elk antwoord is compacte JSON met twee onderdelen:

  • data: het eigenlijke resultaat.
  • meta: begeleidende informatie, zoals bron_ververst_op (per account wanneer de bron voor het laatst is ververst), afgekapt (het antwoord was te groot en is ingekort) en volgende_cursor (om verder te bladeren).

Een fout komt terug als een foutmelding in gewone taal, zie Limieten. In de voorbeelden hieronder is de aanroep verkort tot de naam en de argumenten, zoals een MCP-client ze in een tools/call-verzoek meestuurt. Alle waarden zijn fictief.

list_sources

Geeft je gekoppelde bronnen met hun accounts en het tijdstip van de laatste verversing, de tabellen per bron, je eigen tabellen (bron datawerkbank) en de Studio-dashboards die met get_kpis te gebruiken zijn. De AI begint hier altijd mee.

Parameters: geen.

Voorbeeldaanroep

{ "name": "list_sources", "arguments": {} }

Voorbeeldantwoord

{
  "data": {
    "koppelingen": [
      {
        "bron": "e-boekhouden",
        "accounts": [{ "account": "Voorbeeld B.V.", "laatst_ververst": "2026-10-07T03:00:00+00:00" }],
        "tabellen": [
          { "tabel": "facturen", "label": "Facturen" },
          { "tabel": "relaties", "label": "Relaties" }
        ]
      }
    ],
    "eigen_tabellen": [{ "tabel": "budget_2026", "label": "Budget 2026" }],
    "dashboards": [
      { "slug": "debiteuren-crediteuren", "titel": "Debiteuren en crediteuren", "beschrijving": "…" }
    ]
  },
  "meta": {}
}

describe_table

Beschrijft één tabel: de kolommen met Nederlandse uitleg en type, het aantal rijen en het datumbereik. Kolommen met tekst van derden zijn gemarkeerd met niet_vertrouwde_tekst.

ParameterTypeVerplichtOmschrijving
sourcetekstjaDe bron, bijvoorbeeld e-boekhouden of datawerkbank.
tabletekstjaDe tabel binnen die bron.

Voorbeeldaanroep

{ "name": "describe_table", "arguments": { "source": "e-boekhouden", "table": "facturen" } }

Voorbeeldantwoord

{
  "data": {
    "kolommen": [
      { "kolom": "account", "type": "text", "label": "Account", "niet_vertrouwde_tekst": false },
      { "kolom": "bedrag_incl", "type": "numeric", "label": "Bedrag incl. btw", "niet_vertrouwde_tekst": false },
      { "kolom": "datum", "type": "date", "label": "Datum", "niet_vertrouwde_tekst": false },
      { "kolom": "factuurnummer", "type": "text", "label": "Factuurnummer", "niet_vertrouwde_tekst": false }
    ],
    "rijen": 1284,
    "datum_kolom": "datum",
    "datum_van": "2024-01-02",
    "datum_tot": "2026-10-06"
  },
  "meta": {}
}

aggregate

Telt, sommeert of middelt, of zoekt het minimum of maximum, per groep en/of per periode, met optionele filters en een top-N. Gebruik dit voor totalen en trends in plaats van query_rows. Niet beschikbaar voor je eigen tabellen (datawerkbank).

ParameterTypeVerplichtOmschrijving
sourcetekstjaDe bron.
tabletekstjaDe tabel.
measuretelling, som, gemiddelde, min of maxjaDe berekening. som en gemiddelde werken alleen op getalkolommen, min en max op getal- of datumkolommen.
measure_columntekstbij alles behalve tellingDe kolom waarop je rekent.
group_bylijst met tekstneeTot 3 kolommen om op te groeperen.
period_columntekstneeEen datumkolom om per periode te groeperen.
perioddag, week, maand, kwartaal of jaarbij period_columnDe periode.
filterslijst met filtersneeMaximaal 10.
topgeheel getal, 1 tot en met 100neeMaximaal aantal groepen (standaard 100).

Voorbeeldaanroep

{
  "name": "aggregate",
  "arguments": {
    "source": "e-boekhouden",
    "table": "facturen",
    "measure": "som",
    "measure_column": "bedrag_excl",
    "period_column": "datum",
    "period": "maand",
    "filters": [{ "kolom": "datum", "op": "tussen", "waarde": ["2026-07-01", "2026-09-30"] }]
  }
}

Voorbeeldantwoord

{
  "data": [
    { "periode": "2026-07-01", "waarde": 48250.5 },
    { "periode": "2026-08-01", "waarde": 39120 },
    { "periode": "2026-09-01", "waarde": 52780.25 }
  ],
  "meta": {
    "afgekapt": false,
    "bron_ververst_op": [{ "account": "Voorbeeld B.V.", "laatst_ververst": "2026-10-07T03:00:00+00:00" }]
  }
}

query_rows

Geeft rijen van één tabel, met kolomkeuze, filters en sortering. Maximaal 200 rijen per pagina; blader verder met volgende_cursor. Voor je eigen tabellen kun je kolommen kiezen en bladeren, maar geen filters gebruiken.

ParameterTypeVerplichtOmschrijving
sourcetekstjaDe bron.
tabletekstjaDe tabel.
columnslijst met tekstneeMaximaal 50 kolommen. Zonder opgave krijg je alle kolommen.
filterslijst met filtersneeMaximaal 10.
sortobject met column en direction (op of af)neeSortering.
limitgeheel getal, 1 tot en met 200neeRijen per pagina (standaard 50).
cursortekstneeDe volgende_cursor uit het vorige antwoord.

Voorbeeldaanroep

{
  "name": "query_rows",
  "arguments": {
    "source": "e-boekhouden",
    "table": "facturen",
    "columns": ["factuurnummer", "datum", "bedrag_incl"],
    "filters": [{ "kolom": "bedrag_incl", "op": ">", "waarde": 5000 }],
    "sort": { "column": "datum", "direction": "af" },
    "limit": 2
  }
}

Voorbeeldantwoord

{
  "data": [
    { "factuurnummer": "2026-0457", "datum": "2026-09-29", "bedrag_incl": 7260 },
    { "factuurnummer": "2026-0449", "datum": "2026-09-22", "bedrag_incl": 5445.5 }
  ],
  "meta": {
    "volgende_cursor": "eyJvIjoyLCJwaCI6ImE3ZjMifQ",
    "afgekapt": false,
    "niet_vertrouwde_kolommen": [],
    "bron_ververst_op": [{ "account": "Voorbeeld B.V.", "laatst_ververst": "2026-10-07T03:00:00+00:00" }]
  }
}

De cursor is gebonden aan de parameters van de eerste aanroep: gebruik hem alleen met dezelfde source, table, columns, filters, sort en limit.

get_kpis

Geeft de kerncijfers van een Studio-dashboard voor een periode, vergeleken met de vorige periode zoals het dashboard die zelf definieert. De slug van een beschikbaar dashboard staat in het antwoord van list_sources.

ParameterTypeVerplichtOmschrijving
dashboardtekstjaDe slug van het dashboard.
period_fromdatum jjjj-mm-ddjaBegin van de periode.
period_todatum jjjj-mm-ddjaEinde van de periode, die dag telt mee.

Voorbeeldaanroep

{
  "name": "get_kpis",
  "arguments": { "dashboard": "debiteuren-crediteuren", "period_from": "2026-09-01", "period_to": "2026-09-30" }
}

Voorbeeldantwoord

{
  "data": [
    { "label": "Openstaand debiteuren", "waarde": 18450.75, "vorige_waarde": 21200 },
    { "label": "Openstaand crediteuren", "waarde": 9300, "vorige_waarde": 8750.5 }
  ],
  "meta": {
    "dashboard": "debiteuren-crediteuren",
    "periode_van": "2026-09-01",
    "periode_tot": "2026-09-30"
  }
}

Een tegel met een tabel of grafiek in plaats van één getal komt niet in het antwoord, alleen tegels met één waarde.

Filters

aggregate en query_rows gebruiken dezelfde filters. Een filter heeft een kolom, een op (operator) en meestal een waarde. Alle filters moeten tegelijk kloppen.

OperatorBetekenisWaarde
= en !=gelijk aan, ongelijk aantekst, getal of waar/onwaar
<, <=, >, >=vergelijkengetal of datum
tussentussen twee waarden, grenzen inbegrepenlijst van twee waarden
ineen van deze waardenlijst, maximaal 100 waarden
bevattekst bevat dit, hoofdletterongevoeligtekst, alleen op tekstkolommen
leeg en niet_leegkolom is leeg of gevuldgeen

Past een waarde niet bij het kolomtype, of bestaat een kolom niet, dan krijgt de AI een foutmelding met uitleg. Zo’n aanroep telt niet mee voor de limieten.

Was dit artikel behulpzaam?