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, zoalsbron_ververst_op(per account wanneer de bron voor het laatst is ververst),afgekapt(het antwoord was te groot en is ingekort) envolgende_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.
| Parameter | Type | Verplicht | Omschrijving |
|---|---|---|---|
source | tekst | ja | De bron, bijvoorbeeld e-boekhouden of datawerkbank. |
table | tekst | ja | De 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).
| Parameter | Type | Verplicht | Omschrijving |
|---|---|---|---|
source | tekst | ja | De bron. |
table | tekst | ja | De tabel. |
measure | telling, som, gemiddelde, min of max | ja | De berekening. som en gemiddelde werken alleen op getalkolommen, min en max op getal- of datumkolommen. |
measure_column | tekst | bij alles behalve telling | De kolom waarop je rekent. |
group_by | lijst met tekst | nee | Tot 3 kolommen om op te groeperen. |
period_column | tekst | nee | Een datumkolom om per periode te groeperen. |
period | dag, week, maand, kwartaal of jaar | bij period_column | De periode. |
filters | lijst met filters | nee | Maximaal 10. |
top | geheel getal, 1 tot en met 100 | nee | Maximaal 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.
| Parameter | Type | Verplicht | Omschrijving |
|---|---|---|---|
source | tekst | ja | De bron. |
table | tekst | ja | De tabel. |
columns | lijst met tekst | nee | Maximaal 50 kolommen. Zonder opgave krijg je alle kolommen. |
filters | lijst met filters | nee | Maximaal 10. |
sort | object met column en direction (op of af) | nee | Sortering. |
limit | geheel getal, 1 tot en met 200 | nee | Rijen per pagina (standaard 50). |
cursor | tekst | nee | De 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.
| Parameter | Type | Verplicht | Omschrijving |
|---|---|---|---|
dashboard | tekst | ja | De slug van het dashboard. |
period_from | datum jjjj-mm-dd | ja | Begin van de periode. |
period_to | datum jjjj-mm-dd | ja | Einde 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.
| Operator | Betekenis | Waarde |
|---|---|---|
= en != | gelijk aan, ongelijk aan | tekst, getal of waar/onwaar |
<, <=, >, >= | vergelijken | getal of datum |
tussen | tussen twee waarden, grenzen inbegrepen | lijst van twee waarden |
in | een van deze waarden | lijst, maximaal 100 waarden |
bevat | tekst bevat dit, hoofdletterongevoelig | tekst, alleen op tekstkolommen |
leeg en niet_leeg | kolom is leeg of gevuld | geen |
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?