<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.sidefish.be/index.php?action=history&amp;feed=atom&amp;title=MCP_Server</id>
	<title>MCP Server - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.sidefish.be/index.php?action=history&amp;feed=atom&amp;title=MCP_Server"/>
	<link rel="alternate" type="text/html" href="https://wiki.sidefish.be/index.php?title=MCP_Server&amp;action=history"/>
	<updated>2026-08-19T22:47:38Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://wiki.sidefish.be/index.php?title=MCP_Server&amp;diff=76&amp;oldid=prev</id>
		<title>Thomas.sonck at 08:59, 25 July 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.sidefish.be/index.php?title=MCP_Server&amp;diff=76&amp;oldid=prev"/>
		<updated>2026-07-25T08:59:58Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 08:59, 25 July 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Sidefish MCP (Model Context Protocol) API - Wiki =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Sidefish MCP (Model Context Protocol) API - Wiki =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Het Sidefish platform is uitgerust met een robuuste Model Context Protocol (MCP) server. Hiermee kunnen externe AI-agents (zoals Claude of custom AI tools) direct communiceren met de Sidefish database om klanten te beheren, portfolio's aan te maken en documentverzoeken (SessionRequests) te versturen.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Het Sidefish platform is uitgerust met een robuuste Model Context Protocol (MCP) server. Hiermee kunnen externe AI-agents (zoals Claude of custom AI tools) direct communiceren met de Sidefish database om klanten te beheren, portfolio's aan te maken en documentverzoeken (SessionRequests) te versturen.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 🔌 Connectie &amp;amp; Endpoints ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 🔌 Connectie &amp;amp; Endpoints ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Om als externe agent of service te verbinden&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;gebruik je de volgende &lt;/del&gt;(&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;productie&lt;/del&gt;) &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;eindpunten. Vervang eventueel &lt;/del&gt;het &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;domein indien je een white&lt;/del&gt;-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;label of specifieke OTAP-omgeving gebruikt:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;De backend maakt gebruik van het moderne '''Streamable HTTP''' protocol, wat betekent dat het opzetten van sessies&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;het ophalen van events &lt;/ins&gt;(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;SSE&lt;/ins&gt;) &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;en &lt;/ins&gt;het &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;verzenden van tool&lt;/ins&gt;-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;commando's (POST) allemaal over één en hetzelfde basispad lopen.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* SSE &lt;/del&gt;(&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Server&lt;/del&gt;-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Sent Events) Connectie Url: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https&lt;/del&gt;:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;//sidefish.app/mcp/sse&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Om als externe agent of service te verbinden, gebruik je het volgende &lt;/ins&gt;(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;productie) eindpunt. Vervang eventueel het domein indien je een white&lt;/ins&gt;-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;label of specifieke OTAP-omgeving gebruikt&lt;/ins&gt;:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;POST Messages &lt;/del&gt;Url (voor &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tool calls, wordt normaal automatisch afgeleid door de MCP client&lt;/del&gt;): &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://sidefish.app/mcp&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/messages&lt;/del&gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Base &lt;/ins&gt;Url (voor &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zowel POST als GET Streamable HTTP connecties&lt;/ins&gt;): &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://sidefish.app/mcp&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;''(Zorg ervoor dat je client&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, &lt;/ins&gt;zoals Claude Desktop &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;of de MCP Inspector&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;correct ingesteld is op de Streamable &lt;/ins&gt;HTTP&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/&lt;/ins&gt;SSE &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;transport methode&lt;/ins&gt;).''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;''(Zorg ervoor dat je client &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(&lt;/del&gt;zoals Claude Desktop&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;) overweg kan met Server-Sent Events&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;aangezien dit systeem via &lt;/del&gt;HTTP SSE &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;werkt en niet via Standard Input/Output&lt;/del&gt;).''&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==🔐 Beveiliging en Tenant-Isolatie ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 🔐 Beveiliging en Tenant-Isolatie ==&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Veiligheid en datasegregatie (tenant-isolatie) staan centraal in deze MCP-implementatie:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Veiligheid en datasegregatie (tenant-isolatie) staan centraal in deze MCP-implementatie:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Verplichte Authenticatie: Alle MCP verzoeken via &amp;lt;code&amp;gt;/mcp&amp;lt;/code&amp;gt; vereisen een geldig OAuth 2.0 JWT Access Token (via &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;de &amp;lt;code&amp;gt;Authorization: Bearer&amp;lt;/code&amp;gt; header&lt;/ins&gt;) óf een API-key ingesteld in de HTTP header (&amp;lt;code&amp;gt;x-api-key&amp;lt;/code&amp;gt;). Zonder authenticatie wordt de connectie onmiddellijk afgebroken.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Verplichte Authenticatie: Alle MCP verzoeken via &amp;lt;code&amp;gt;/mcp&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/sse&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;/mcp/messages&lt;/del&gt;&amp;lt;/code&amp;gt; vereisen een geldig OAuth 2.0 JWT Access Token (via &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;een browser sessie&lt;/del&gt;) óf een API-key ingesteld in de HTTP header (&amp;lt;code&amp;gt;x-api-key&amp;lt;/code&amp;gt;). Zonder authenticatie wordt de connectie onmiddellijk afgebroken.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Dynamische User Sessies: Elke verbinding lanceert een eigen, virtuele &amp;lt;code&amp;gt;McpServer&amp;lt;/code&amp;gt; exclusief voor die sessie &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(gekoppeld aan een unieke &amp;lt;code&amp;gt;mcp-session-id&amp;lt;/code&amp;gt; header)&lt;/ins&gt;. De tools draaien op basis van de rechten van de actieve gebruiker (&amp;lt;code&amp;gt;user._id&amp;lt;/code&amp;gt;) en diens organisatie (&amp;lt;code&amp;gt;user.organisation&amp;lt;/code&amp;gt;)&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. Alleen indien de gebruiker een systeembeheerder is, zullen speciale admin tools ingeladen worden&lt;/ins&gt;. Dit garandeert dat state of data nooit weglekt tussen agents of gebruikers.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Dynamische User Sessies: Elke verbinding lanceert een eigen, virtuele &amp;lt;code&amp;gt;McpServer&amp;lt;/code&amp;gt; exclusief voor die sessie. De tools draaien op basis van de rechten van de actieve gebruiker (&amp;lt;code&amp;gt;user._id&amp;lt;/code&amp;gt;) en diens organisatie (&amp;lt;code&amp;gt;user.organisation&amp;lt;/code&amp;gt;). Dit garandeert dat state of data nooit weglekt tussen agents of gebruikers.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Waterdichte Tenant-Filtering: Elke actie voert standaard een check uit om er zeker van te zijn dat objecten (zoals klanten of portfolio's) strikt tot de eigen organisatie behoren. Een AI kan ''nooit'' data van een andere tenant (organisatie) lezen of overschrijven.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Waterdichte Tenant-Filtering: Elke actie voert standaard een check uit om er zeker van te zijn dat objecten (zoals klanten of portfolio's) strikt tot de eigen organisatie behoren. Een AI kan ''nooit'' data van een andere tenant (organisatie) lezen of overschrijven.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==🛠️ Beschikbare AI Tools==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 🛠️ Beschikbare AI Tools ==&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Hieronder vind je een uitgebreid overzicht van alle beschikbare tools (endpoints) die een AI-agent kan gebruiken.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Hieronder vind je een uitgebreid overzicht van alle beschikbare tools (endpoints) die een AI-agent kan gebruiken.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===1. Klanten Beheer (Customers)===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 1. Klanten Beheer (Customers) ===&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;get_customers&amp;lt;/code&amp;gt;: Zoek klanten binnen de portfolio's van jouw organisatie. Biedt krachtige zoekopties waaronder vrij zoeken in dynamische velden (via &amp;lt;code&amp;gt;dataFilters&amp;lt;/code&amp;gt;).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;get_customers&amp;lt;/code&amp;gt;: Zoek klanten binnen de portfolio's van jouw organisatie. Biedt krachtige zoekopties waaronder vrij zoeken in dynamische velden (via &amp;lt;code&amp;gt;dataFilters&amp;lt;/code&amp;gt;).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;create_customer&amp;lt;/code&amp;gt;: Maakt een nieuwe klant aan en koppelt deze automatisch aan de actieve &amp;lt;code&amp;gt;CustomerTemplate&amp;lt;/code&amp;gt; van de organisatie.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&amp;lt;code&amp;gt;create_customer&amp;lt;/code&amp;gt;: Maakt een nieuwe klant aan en koppelt deze automatisch aan de actieve &amp;lt;code&amp;gt;CustomerTemplate&amp;lt;/code&amp;gt; van de organisatie.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** Verplicht: &amp;lt;code&amp;gt;portfolioId&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; (een object met velden als ''Voornaam'', ''Achternaam'').&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;**Verplicht: &amp;lt;code&amp;gt;portfolioId&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; (een object met velden als ''Voornaam'', ''Achternaam'').&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** Optioneel: &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt; (standaard 'manual'), &amp;lt;code&amp;gt;thirdpartyId&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;notes&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;**Optioneel: &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt; (standaard 'manual'), &amp;lt;code&amp;gt;thirdpartyId&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;notes&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;update_customer&amp;lt;/code&amp;gt;: Wijzigt de gegevens van een bestaande klant. Werkt via een partiële update (merge) zodat andere data intact blijft. Je kan hiermee ook een klant verhuizen naar een ander portfolio.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&amp;lt;code&amp;gt;update_customer&amp;lt;/code&amp;gt;: Wijzigt de gegevens van een bestaande klant. Werkt via een partiële update (merge) zodat andere data intact blijft. Je kan hiermee ook een klant verhuizen naar een ander portfolio.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===2. Document &amp;amp; Handtekening Verzoeken (SessionRequests) ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 2. Document &amp;amp; Handtekening Verzoeken (SessionRequests) ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&amp;lt;code&amp;gt;create_session_request&amp;lt;/code&amp;gt;: Maakt intelligente, geautomatiseerde verzoeken aan (bijv. documenten ondertekenen of vragenlijsten invullen).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;**Automatisch Genereerd: Sidefish genereert zelfstandig de 5-karakter &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt; en de invullink (&amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt;). Deze krijg je terug in de response.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;create_session_request&amp;lt;/code&amp;gt;: Maakt intelligente, geautomatiseerde verzoeken aan (bijv. documenten ondertekenen of vragenlijsten invullen).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;**Slimme Notificaties: Door simpele booleans (zoals &amp;lt;code&amp;gt;sendEmailNotification&amp;lt;/code&amp;gt; of &amp;lt;code&amp;gt;sendSmsNotification&amp;lt;/code&amp;gt;) mee te sturen, stuurt Sidefish automatisch berichten.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** Automatisch Genereerd: Sidefish genereert zelfstandig de 5-karakter &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt; en de invullink (&amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt;). Deze krijg je terug in de response.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;**Sjabloon Fallbacks: Sidefish kijkt zelf naar de ingestelde communicatietemplates van de QuestionList, het Portfolio, of de Organisatie. Wil je dat de AI een eigen tekst schrijft? Stuur dan simpelweg een ''override'' mee (bijv. &amp;lt;code&amp;gt;emailNotificationOverride&amp;lt;/code&amp;gt;).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** Slimme Notificaties: Door simpele booleans (zoals &amp;lt;code&amp;gt;sendEmailNotification&amp;lt;/code&amp;gt; of &amp;lt;code&amp;gt;sendSmsNotification&amp;lt;/code&amp;gt;) mee te sturen, stuurt Sidefish automatisch berichten.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&amp;lt;code&amp;gt;get_sessionrequests&amp;lt;/code&amp;gt;: Haalt verzoeken op uit het verleden, optioneel te filteren op &amp;lt;code&amp;gt;status&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; of &amp;lt;code&amp;gt;customerId&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** Sjabloon Fallbacks: Sidefish kijkt zelf naar de ingestelde communicatietemplates van de QuestionList, het Portfolio, of de Organisatie. Wil je dat de AI een eigen tekst schrijft? Stuur dan simpelweg een ''override'' mee (bijv. &amp;lt;code&amp;gt;emailNotificationOverride&amp;lt;/code&amp;gt;).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&amp;lt;code&amp;gt;get_session_request_status&amp;lt;/code&amp;gt;: Haalt razendsnel de exacte, real-time status op van een individueel verzoek aan de hand van zijn &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;get_sessionrequests&amp;lt;/code&amp;gt;: Haalt verzoeken op uit het verleden, optioneel te filteren op &amp;lt;code&amp;gt;status&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; of &amp;lt;code&amp;gt;customerId&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&amp;lt;code&amp;gt;delete_session_request&amp;lt;/code&amp;gt;: Annuleert (soft-delete) een actief verzoek op basis van de 5-karakter &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;get_session_request_status&amp;lt;/code&amp;gt;: Haalt razendsnel de exacte, real-time status op van een individueel verzoek aan de hand van zijn &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===3. Portfolio Beheer===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;delete_session_request&amp;lt;/code&amp;gt;: Annuleert (soft-delete) een actief verzoek op basis van de 5-karakter &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&amp;lt;code&amp;gt;get_portfolios&amp;lt;/code&amp;gt;: Haalt alle portfolio's van jouw organisatie op, eventueel gefilterd op (een deel van) de naam.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&amp;lt;code&amp;gt;create_portfolio&amp;lt;/code&amp;gt;: Maakt een nieuw portfolio. Indien geen &amp;lt;code&amp;gt;ownerId&amp;lt;/code&amp;gt; is gespecificeerd, wordt de ingelogde AI-gebruiker automatisch de beheerder. Functies zoals &amp;lt;code&amp;gt;isBdayMailingEnabled&amp;lt;/code&amp;gt; kunnen hier direct in geconfigureerd worden.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 3. Portfolio Beheer ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&amp;lt;code&amp;gt;update_portfolio&amp;lt;/code&amp;gt;: Wijzigt de instellingen (zoals taal of naam) van een bestaand portfolio binnen de organisatie.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===4. Systeem Configuratie (Hulpmiddelen voor AI)===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;get_portfolios&amp;lt;/code&amp;gt;: Haalt alle portfolio's van jouw organisatie op, eventueel gefilterd op (een deel van) de naam.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&amp;lt;code&amp;gt;get_customertemplates&amp;lt;/code&amp;gt;: Ideaal voor AI-agents om de datastructuur te leren begrijpen. Haalt het actieve klantsjabloon van de organisatie op (inclusief alle gekoppelde categorieën), zónder backend-specifieke properties zoals &amp;lt;code&amp;gt;showOnListPage&amp;lt;/code&amp;gt;. Hiermee kan de AI leren welke archetypes (bijv. GSM of email) er door de organisatie gebruikt worden.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;create_portfolio&amp;lt;/code&amp;gt;: Maakt een nieuw portfolio. Indien geen &amp;lt;code&amp;gt;ownerId&amp;lt;/code&amp;gt; is gespecificeerd, wordt de ingelogde AI-gebruiker automatisch de beheerder. Functies zoals &amp;lt;code&amp;gt;isBdayMailingEnabled&amp;lt;/code&amp;gt; kunnen hier direct in geconfigureerd worden.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&amp;lt;code&amp;gt;get_questionlists&amp;lt;/code&amp;gt;: Vraag de beschikbare vragenlijsten (QuestionLists) van de organisatie op, zodat de AI de &amp;lt;code&amp;gt;_id&amp;lt;/code&amp;gt; van de juiste vragenlijst kan achterhalen voordat hij een &amp;lt;code&amp;gt;create_session_request&amp;lt;/code&amp;gt; aanroept.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;update_portfolio&amp;lt;/code&amp;gt;: Wijzigt de instellingen (zoals taal of naam) van een bestaand portfolio binnen de organisatie.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 4. Systeem Configuratie (Hulpmiddelen voor AI) ===&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;get_customertemplates&amp;lt;/code&amp;gt;: Ideaal voor AI-agents om de datastructuur te leren begrijpen. Haalt het actieve klantsjabloon van de organisatie op (inclusief alle gekoppelde categorieën), zónder backend-specifieke properties zoals &amp;lt;code&amp;gt;showOnListPage&amp;lt;/code&amp;gt;. Hiermee kan de AI leren welke archetypes (bijv. GSM of email) er door de organisatie gebruikt worden.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;get_questionlists&amp;lt;/code&amp;gt;: Vraag de beschikbare vragenlijsten (QuestionLists) van de organisatie op, zodat de AI de &amp;lt;code&amp;gt;_id&amp;lt;/code&amp;gt; van de juiste vragenlijst kan achterhalen voordat hij een &amp;lt;code&amp;gt;create_session_request&amp;lt;/code&amp;gt; aanroept.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==🚀 Voorbeeld Workflow voor een AI-Agent==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 🚀 Voorbeeld Workflow voor een AI-Agent ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#De AI gebruikt &amp;lt;code&amp;gt;get_customertemplates&amp;lt;/code&amp;gt; om te begrijpen welke klantvelden hij moet uitvragen aan een eindgebruiker.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#De AI roept &amp;lt;code&amp;gt;get_portfolios&amp;lt;/code&amp;gt; aan om te bepalen in welk 'mapje' een klant opgeslagen moet worden.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# De AI gebruikt &amp;lt;code&amp;gt;get_customertemplates&amp;lt;/code&amp;gt; om te begrijpen welke klantvelden hij moet uitvragen aan een eindgebruiker.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#Via &amp;lt;code&amp;gt;create_customer&amp;lt;/code&amp;gt; wordt de nieuwe klant in het doelsysteem geplaatst.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# De AI roept &amp;lt;code&amp;gt;get_portfolios&amp;lt;/code&amp;gt; aan om te bepalen in welk 'mapje' een klant opgeslagen moet worden.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#De AI gebruikt &amp;lt;code&amp;gt;get_questionlists&amp;lt;/code&amp;gt; om de &amp;quot;Onboarding&amp;quot; vragenlijst op te zoeken.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Via &amp;lt;code&amp;gt;create_customer&amp;lt;/code&amp;gt; wordt de nieuwe klant in het doelsysteem geplaatst.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#De AI triggert &amp;lt;code&amp;gt;create_session_request&amp;lt;/code&amp;gt; voor de net aangemaakte klant en stuurt hierbij een custom, door AI-geschreven SMS met de invul-link mee via de &amp;lt;code&amp;gt;smsNotificationOverride&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# De AI gebruikt &amp;lt;code&amp;gt;get_questionlists&amp;lt;/code&amp;gt; om de &amp;quot;Onboarding&amp;quot; vragenlijst op te zoeken.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#De AI rapporteert succesvol de opgeslagen url (invullink) terug aan de eindgebruiker in de chat!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# De AI triggert &amp;lt;code&amp;gt;create_session_request&amp;lt;/code&amp;gt; voor de net aangemaakte klant en stuurt hierbij een custom, door AI-geschreven SMS met de invul-link mee via de &amp;lt;code&amp;gt;smsNotificationOverride&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# De AI rapporteert succesvol de opgeslagen url (invullink) terug aan de eindgebruiker in de chat!&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key sf_wiki:diff::1.12:old-75:rev-76 --&gt;
&lt;/table&gt;</summary>
		<author><name>Thomas.sonck</name></author>
	</entry>
	<entry>
		<id>https://wiki.sidefish.be/index.php?title=MCP_Server&amp;diff=75&amp;oldid=prev</id>
		<title>Thomas.sonck at 14:23, 8 July 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.sidefish.be/index.php?title=MCP_Server&amp;diff=75&amp;oldid=prev"/>
		<updated>2026-07-08T14:23:01Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:23, 8 July 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot;&gt;Line 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Om als externe agent of service te verbinden, gebruik je de volgende (productie) eindpunten. Vervang eventueel het domein indien je een white-label of specifieke OTAP-omgeving gebruikt:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Om als externe agent of service te verbinden, gebruik je de volgende (productie) eindpunten. Vervang eventueel het domein indien je een white-label of specifieke OTAP-omgeving gebruikt:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* SSE (Server-Sent Events) Connectie Url: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;api.&lt;/del&gt;sidefish.app/mcp/sse&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* SSE (Server-Sent Events) Connectie Url: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://sidefish.app/mcp/sse&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* POST Messages Url (voor tool calls, wordt normaal automatisch afgeleid door de MCP client): &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;api.&lt;/del&gt;sidefish.app/mcp/messages&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* POST Messages Url (voor tool calls, wordt normaal automatisch afgeleid door de MCP client): &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://sidefish.app/mcp/messages&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;''(Zorg ervoor dat je client (zoals Claude Desktop) overweg kan met Server-Sent Events, aangezien dit systeem via HTTP SSE werkt en niet via Standard Input/Output).''&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;''(Zorg ervoor dat je client (zoals Claude Desktop) overweg kan met Server-Sent Events, aangezien dit systeem via HTTP SSE werkt en niet via Standard Input/Output).''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Thomas.sonck</name></author>
	</entry>
	<entry>
		<id>https://wiki.sidefish.be/index.php?title=MCP_Server&amp;diff=72&amp;oldid=prev</id>
		<title>Thomas.sonck at 17:36, 5 July 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.sidefish.be/index.php?title=MCP_Server&amp;diff=72&amp;oldid=prev"/>
		<updated>2026-07-05T17:36:57Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:36, 5 July 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Sidefish MCP (Model Context Protocol) API - Wiki =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Sidefish MCP (Model Context Protocol) API - Wiki =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Het Sidefish platform is uitgerust met een robuuste Model Context Protocol (MCP) server. Hiermee kunnen externe AI-agents (zoals Claude of custom AI tools) direct communiceren met de Sidefish database om klanten te beheren, portfolio's aan te maken en documentverzoeken (SessionRequests) te versturen.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Het Sidefish platform is uitgerust met een robuuste Model Context Protocol (MCP) server. Hiermee kunnen externe AI-agents (zoals Claude of custom AI tools) direct communiceren met de Sidefish database om klanten te beheren, portfolio's aan te maken en documentverzoeken (SessionRequests) te versturen.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== 🔌 Connectie &amp;amp; Endpoints ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Om als externe agent of service te verbinden, gebruik je de volgende (productie) eindpunten. Vervang eventueel het domein indien je een white-label of specifieke OTAP-omgeving gebruikt:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* SSE (Server-Sent Events) Connectie Url: &amp;lt;code&gt;&amp;lt;nowiki&gt;https://api.sidefish.app/mcp/sse&amp;lt;/nowiki&gt;&amp;lt;/code&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* POST Messages Url (voor tool calls, wordt normaal automatisch afgeleid door de MCP client): &amp;lt;code&gt;&amp;lt;nowiki&gt;https://api.sidefish.app/mcp/messages&amp;lt;/nowiki&gt;&amp;lt;/code&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;''(Zorg ervoor dat je client (zoals Claude Desktop) overweg kan met Server-Sent Events, aangezien dit systeem via HTTP SSE werkt en niet via Standard Input/Output).''&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;----&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 🔐 Beveiliging en Tenant-Isolatie ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 🔐 Beveiliging en Tenant-Isolatie ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Thomas.sonck</name></author>
	</entry>
	<entry>
		<id>https://wiki.sidefish.be/index.php?title=MCP_Server&amp;diff=71&amp;oldid=prev</id>
		<title>Thomas.sonck: Created page with &quot;= Sidefish MCP (Model Context Protocol) API - Wiki = Het Sidefish platform is uitgerust met een robuuste Model Context Protocol (MCP) server. Hiermee kunnen externe AI-agents (zoals Claude of custom AI tools) direct communiceren met de Sidefish database om klanten te beheren, portfolio's aan te maken en documentverzoeken (SessionRequests) te versturen.  == 🔐 Beveiliging en Tenant-Isolatie == Veiligheid en datasegregatie (tenant-isolatie) staan centraal in deze MCP-imp...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.sidefish.be/index.php?title=MCP_Server&amp;diff=71&amp;oldid=prev"/>
		<updated>2026-07-05T17:34:45Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;= Sidefish MCP (Model Context Protocol) API - Wiki = Het Sidefish platform is uitgerust met een robuuste Model Context Protocol (MCP) server. Hiermee kunnen externe AI-agents (zoals Claude of custom AI tools) direct communiceren met de Sidefish database om klanten te beheren, portfolio&amp;#039;s aan te maken en documentverzoeken (SessionRequests) te versturen.  == 🔐 Beveiliging en Tenant-Isolatie == Veiligheid en datasegregatie (tenant-isolatie) staan centraal in deze MCP-imp...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Sidefish MCP (Model Context Protocol) API - Wiki =&lt;br /&gt;
Het Sidefish platform is uitgerust met een robuuste Model Context Protocol (MCP) server. Hiermee kunnen externe AI-agents (zoals Claude of custom AI tools) direct communiceren met de Sidefish database om klanten te beheren, portfolio's aan te maken en documentverzoeken (SessionRequests) te versturen.&lt;br /&gt;
&lt;br /&gt;
== 🔐 Beveiliging en Tenant-Isolatie ==&lt;br /&gt;
Veiligheid en datasegregatie (tenant-isolatie) staan centraal in deze MCP-implementatie:&lt;br /&gt;
&lt;br /&gt;
* Verplichte Authenticatie: Alle MCP verzoeken via &amp;lt;code&amp;gt;/mcp/sse&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;/mcp/messages&amp;lt;/code&amp;gt; vereisen een geldig OAuth 2.0 JWT Access Token (via een browser sessie) óf een API-key ingesteld in de HTTP header (&amp;lt;code&amp;gt;x-api-key&amp;lt;/code&amp;gt;). Zonder authenticatie wordt de connectie onmiddellijk afgebroken.&lt;br /&gt;
* Dynamische User Sessies: Elke verbinding lanceert een eigen, virtuele &amp;lt;code&amp;gt;McpServer&amp;lt;/code&amp;gt; exclusief voor die sessie. De tools draaien op basis van de rechten van de actieve gebruiker (&amp;lt;code&amp;gt;user._id&amp;lt;/code&amp;gt;) en diens organisatie (&amp;lt;code&amp;gt;user.organisation&amp;lt;/code&amp;gt;). Dit garandeert dat state of data nooit weglekt tussen agents of gebruikers.&lt;br /&gt;
* Waterdichte Tenant-Filtering: Elke actie voert standaard een check uit om er zeker van te zijn dat objecten (zoals klanten of portfolio's) strikt tot de eigen organisatie behoren. Een AI kan ''nooit'' data van een andere tenant (organisatie) lezen of overschrijven.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 🛠️ Beschikbare AI Tools ==&lt;br /&gt;
Hieronder vind je een uitgebreid overzicht van alle beschikbare tools (endpoints) die een AI-agent kan gebruiken.&lt;br /&gt;
&lt;br /&gt;
=== 1. Klanten Beheer (Customers) ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;get_customers&amp;lt;/code&amp;gt;: Zoek klanten binnen de portfolio's van jouw organisatie. Biedt krachtige zoekopties waaronder vrij zoeken in dynamische velden (via &amp;lt;code&amp;gt;dataFilters&amp;lt;/code&amp;gt;).&lt;br /&gt;
* &amp;lt;code&amp;gt;create_customer&amp;lt;/code&amp;gt;: Maakt een nieuwe klant aan en koppelt deze automatisch aan de actieve &amp;lt;code&amp;gt;CustomerTemplate&amp;lt;/code&amp;gt; van de organisatie.&lt;br /&gt;
** Verplicht: &amp;lt;code&amp;gt;portfolioId&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; (een object met velden als ''Voornaam'', ''Achternaam'').&lt;br /&gt;
** Optioneel: &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt; (standaard 'manual'), &amp;lt;code&amp;gt;thirdpartyId&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;notes&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;update_customer&amp;lt;/code&amp;gt;: Wijzigt de gegevens van een bestaande klant. Werkt via een partiële update (merge) zodat andere data intact blijft. Je kan hiermee ook een klant verhuizen naar een ander portfolio.&lt;br /&gt;
&lt;br /&gt;
=== 2. Document &amp;amp; Handtekening Verzoeken (SessionRequests) ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;create_session_request&amp;lt;/code&amp;gt;: Maakt intelligente, geautomatiseerde verzoeken aan (bijv. documenten ondertekenen of vragenlijsten invullen).&lt;br /&gt;
** Automatisch Genereerd: Sidefish genereert zelfstandig de 5-karakter &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt; en de invullink (&amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt;). Deze krijg je terug in de response.&lt;br /&gt;
** Slimme Notificaties: Door simpele booleans (zoals &amp;lt;code&amp;gt;sendEmailNotification&amp;lt;/code&amp;gt; of &amp;lt;code&amp;gt;sendSmsNotification&amp;lt;/code&amp;gt;) mee te sturen, stuurt Sidefish automatisch berichten.&lt;br /&gt;
** Sjabloon Fallbacks: Sidefish kijkt zelf naar de ingestelde communicatietemplates van de QuestionList, het Portfolio, of de Organisatie. Wil je dat de AI een eigen tekst schrijft? Stuur dan simpelweg een ''override'' mee (bijv. &amp;lt;code&amp;gt;emailNotificationOverride&amp;lt;/code&amp;gt;).&lt;br /&gt;
* &amp;lt;code&amp;gt;get_sessionrequests&amp;lt;/code&amp;gt;: Haalt verzoeken op uit het verleden, optioneel te filteren op &amp;lt;code&amp;gt;status&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; of &amp;lt;code&amp;gt;customerId&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;get_session_request_status&amp;lt;/code&amp;gt;: Haalt razendsnel de exacte, real-time status op van een individueel verzoek aan de hand van zijn &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;delete_session_request&amp;lt;/code&amp;gt;: Annuleert (soft-delete) een actief verzoek op basis van de 5-karakter &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== 3. Portfolio Beheer ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;get_portfolios&amp;lt;/code&amp;gt;: Haalt alle portfolio's van jouw organisatie op, eventueel gefilterd op (een deel van) de naam.&lt;br /&gt;
* &amp;lt;code&amp;gt;create_portfolio&amp;lt;/code&amp;gt;: Maakt een nieuw portfolio. Indien geen &amp;lt;code&amp;gt;ownerId&amp;lt;/code&amp;gt; is gespecificeerd, wordt de ingelogde AI-gebruiker automatisch de beheerder. Functies zoals &amp;lt;code&amp;gt;isBdayMailingEnabled&amp;lt;/code&amp;gt; kunnen hier direct in geconfigureerd worden.&lt;br /&gt;
* &amp;lt;code&amp;gt;update_portfolio&amp;lt;/code&amp;gt;: Wijzigt de instellingen (zoals taal of naam) van een bestaand portfolio binnen de organisatie.&lt;br /&gt;
&lt;br /&gt;
=== 4. Systeem Configuratie (Hulpmiddelen voor AI) ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;get_customertemplates&amp;lt;/code&amp;gt;: Ideaal voor AI-agents om de datastructuur te leren begrijpen. Haalt het actieve klantsjabloon van de organisatie op (inclusief alle gekoppelde categorieën), zónder backend-specifieke properties zoals &amp;lt;code&amp;gt;showOnListPage&amp;lt;/code&amp;gt;. Hiermee kan de AI leren welke archetypes (bijv. GSM of email) er door de organisatie gebruikt worden.&lt;br /&gt;
* &amp;lt;code&amp;gt;get_questionlists&amp;lt;/code&amp;gt;: Vraag de beschikbare vragenlijsten (QuestionLists) van de organisatie op, zodat de AI de &amp;lt;code&amp;gt;_id&amp;lt;/code&amp;gt; van de juiste vragenlijst kan achterhalen voordat hij een &amp;lt;code&amp;gt;create_session_request&amp;lt;/code&amp;gt; aanroept.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 🚀 Voorbeeld Workflow voor een AI-Agent ==&lt;br /&gt;
&lt;br /&gt;
# De AI gebruikt &amp;lt;code&amp;gt;get_customertemplates&amp;lt;/code&amp;gt; om te begrijpen welke klantvelden hij moet uitvragen aan een eindgebruiker.&lt;br /&gt;
# De AI roept &amp;lt;code&amp;gt;get_portfolios&amp;lt;/code&amp;gt; aan om te bepalen in welk 'mapje' een klant opgeslagen moet worden.&lt;br /&gt;
# Via &amp;lt;code&amp;gt;create_customer&amp;lt;/code&amp;gt; wordt de nieuwe klant in het doelsysteem geplaatst.&lt;br /&gt;
# De AI gebruikt &amp;lt;code&amp;gt;get_questionlists&amp;lt;/code&amp;gt; om de &amp;quot;Onboarding&amp;quot; vragenlijst op te zoeken.&lt;br /&gt;
# De AI triggert &amp;lt;code&amp;gt;create_session_request&amp;lt;/code&amp;gt; voor de net aangemaakte klant en stuurt hierbij een custom, door AI-geschreven SMS met de invul-link mee via de &amp;lt;code&amp;gt;smsNotificationOverride&amp;lt;/code&amp;gt;.&lt;br /&gt;
# De AI rapporteert succesvol de opgeslagen url (invullink) terug aan de eindgebruiker in de chat!&lt;/div&gt;</summary>
		<author><name>Thomas.sonck</name></author>
	</entry>
</feed>