MCP Server: Difference between revisions

From Sidefish Wiki
Jump to navigation Jump to search
(Created page with "= 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...")
Β 
No edit summary
Β 
Line 1: Line 1:
= Sidefish MCP (Model Context Protocol) API - Wiki =
= 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.
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.
== πŸ”Œ Connectie & Endpoints ==
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:
* SSE (Server-Sent Events) Connectie Url: <code><nowiki>https://api.sidefish.app/mcp/sse</nowiki></code>
* POST Messages Url (voor tool calls, wordt normaal automatisch afgeleid door de MCP client): <code><nowiki>https://api.sidefish.app/mcp/messages</nowiki></code>
''(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).''
----


== πŸ” Beveiliging en Tenant-Isolatie ==
== πŸ” Beveiliging en Tenant-Isolatie ==

Latest revision as of 17:36, 5 July 2026

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.

πŸ”Œ Connectie & Endpoints

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:

  • SSE (Server-Sent Events) Connectie Url: https://api.sidefish.app/mcp/sse
  • POST Messages Url (voor tool calls, wordt normaal automatisch afgeleid door de MCP client): https://api.sidefish.app/mcp/messages

(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).


πŸ” Beveiliging en Tenant-Isolatie

Veiligheid en datasegregatie (tenant-isolatie) staan centraal in deze MCP-implementatie:

  • Verplichte Authenticatie: Alle MCP verzoeken via /mcp/sse en /mcp/messages vereisen een geldig OAuth 2.0 JWT Access Token (via een browser sessie) Γ³f een API-key ingesteld in de HTTP header (x-api-key). Zonder authenticatie wordt de connectie onmiddellijk afgebroken.
  • Dynamische User Sessies: Elke verbinding lanceert een eigen, virtuele McpServer exclusief voor die sessie. De tools draaien op basis van de rechten van de actieve gebruiker (user._id) en diens organisatie (user.organisation). Dit garandeert dat state of data nooit weglekt tussen agents of gebruikers.
  • 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.

πŸ› οΈ Beschikbare AI Tools

Hieronder vind je een uitgebreid overzicht van alle beschikbare tools (endpoints) die een AI-agent kan gebruiken.

1. Klanten Beheer (Customers)

  • get_customers: Zoek klanten binnen de portfolio's van jouw organisatie. Biedt krachtige zoekopties waaronder vrij zoeken in dynamische velden (via dataFilters).
  • create_customer: Maakt een nieuwe klant aan en koppelt deze automatisch aan de actieve CustomerTemplate van de organisatie.
    • Verplicht: portfolioId, data (een object met velden als Voornaam, Achternaam).
    • Optioneel: origin (standaard 'manual'), thirdpartyId, notes.
  • update_customer: 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.

2. Document & Handtekening Verzoeken (SessionRequests)

  • create_session_request: Maakt intelligente, geautomatiseerde verzoeken aan (bijv. documenten ondertekenen of vragenlijsten invullen).
    • Automatisch Genereerd: Sidefish genereert zelfstandig de 5-karakter code en de invullink (url). Deze krijg je terug in de response.
    • Slimme Notificaties: Door simpele booleans (zoals sendEmailNotification of sendSmsNotification) mee te sturen, stuurt Sidefish automatisch berichten.
    • 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. emailNotificationOverride).
  • get_sessionrequests: Haalt verzoeken op uit het verleden, optioneel te filteren op status, type of customerId.
  • get_session_request_status: Haalt razendsnel de exacte, real-time status op van een individueel verzoek aan de hand van zijn code.
  • delete_session_request: Annuleert (soft-delete) een actief verzoek op basis van de 5-karakter code.

3. Portfolio Beheer

  • get_portfolios: Haalt alle portfolio's van jouw organisatie op, eventueel gefilterd op (een deel van) de naam.
  • create_portfolio: Maakt een nieuw portfolio. Indien geen ownerId is gespecificeerd, wordt de ingelogde AI-gebruiker automatisch de beheerder. Functies zoals isBdayMailingEnabled kunnen hier direct in geconfigureerd worden.
  • update_portfolio: Wijzigt de instellingen (zoals taal of naam) van een bestaand portfolio binnen de organisatie.

4. Systeem Configuratie (Hulpmiddelen voor AI)

  • get_customertemplates: 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 showOnListPage. Hiermee kan de AI leren welke archetypes (bijv. GSM of email) er door de organisatie gebruikt worden.
  • get_questionlists: Vraag de beschikbare vragenlijsten (QuestionLists) van de organisatie op, zodat de AI de _id van de juiste vragenlijst kan achterhalen voordat hij een create_session_request aanroept.

πŸš€ Voorbeeld Workflow voor een AI-Agent

  1. De AI gebruikt get_customertemplates om te begrijpen welke klantvelden hij moet uitvragen aan een eindgebruiker.
  2. De AI roept get_portfolios aan om te bepalen in welk 'mapje' een klant opgeslagen moet worden.
  3. Via create_customer wordt de nieuwe klant in het doelsysteem geplaatst.
  4. De AI gebruikt get_questionlists om de "Onboarding" vragenlijst op te zoeken.
  5. De AI triggert create_session_request voor de net aangemaakte klant en stuurt hierbij een custom, door AI-geschreven SMS met de invul-link mee via de smsNotificationOverride.
  6. De AI rapporteert succesvol de opgeslagen url (invullink) terug aan de eindgebruiker in de chat!