Naar inhoud gaan

Bouw veiligere agents met Flowtly MCP documentatie

Verbind assistenten, tools of aangepaste agents met Flowtly met beveiligingsrails. De MCP-server biedt 19 naamruimten, 8 ingebouwde agents, 14 logische samenvattingen en volledige lees-/schrijftoegang tot het Flowtly-platform via JSON-RPC 2.0.

Documentatiestatus

Laatste synchronisatie op 2026-05-15 14:13

Synchroniseer regelmatig om MCP-documenten afgestemd te houden op de nieuwste serverbuild.

Secties

Hoe u actueel blijft

  1. Voer de synchronisatieopdracht uit nadat MCP-updates zijn uitgebracht.
  2. Herstart uw agent-stack om capaciteitswijzigingen op te halen.
  3. Sla deze pagina op als bladwijzer voor de laatste Flowtly MCP-richtlijnen.

Wat is er inbegrepen

  • Authenticatie-, CORS- en cachingregels voor MCP-endpoints.
  • 19 resource-naamruimten met lijst-, lees- en schrijfbewerkingen.
  • 8 ingebouwde agents met op rollen gebaseerde toegangscontrole.
  • 14 logische samenvattingen voor berekende analyses.
  • JSON-RPC-payloads, codevoorbeelden en integratietips.

Snelstart

  • Stap 1 — Token ophalen: Ga naar Flowtly Workspace → Agent-tokens en genereer een clienttoken.
  • Stap 2 — Initialiseren: POST naar https://mcp.flowtly.eu/mcp met {"jsonrpc":"2.0","id":"init-1","method":"initialize","params":{"protocolVersion":"2024-11-05"}}
  • Stap 3 — Gegevens lezen: POST {"jsonrpc":"2.0","id":"read-1","method":"resources/work-times/read","params":{"uri":"/api/work-times"}}
  • Stap 4 — Gegevens schrijven: POST {"jsonrpc":"2.0","id":"write-1","method":"resources/work-times/write","params":{"uri":"/api/work-times","contents":[{"text":"{\"date\":\"2026-04-03\",\"seconds\":3600,\"project\":\"/projects/1\",\"description\":\"Support\"}"}]}}
  • Alle verzoeken gebruiken Authorization: Bearer <YOUR_TOKEN> en Content-Type: application/json.

Transport & authenticatie

  • Basis-URL (productie): https://mcp.flowtly.eu
  • Endpoints: POST /mcp (JSON-RPC-ingang), GET /health (levendheidscontrole)
  • Authenticatie: Authorization: Bearer <token> (aanbevolen). Fallback: omgevingsvariabele FLOWTLY_API_KEY. Token genereren: workspace.flowtly.eu/user/agent-tokens
  • Content-Type: application/json. Body: JSON-RPC 2.0 {"jsonrpc":"2.0","id":"...","method":"...","params":{...}}
  • CORS: Inloggegevens alleen toegestaan van https://workspace.flowtly.eu. Combineer nooit Access-Control-Allow-Origin: * met Access-Control-Allow-Credentials: true.
  • Upstream API: https://api.flowtly.eu — de MCP-server proxyt alle verzoeken naar de Flowtly REST API.

initialize

  • Onderhandelt protocolversie, capaciteiten en beschikbare naamruimten.
  • Verzoek: {"jsonrpc":"2.0","id":"init-1","method":"initialize","params":{"protocolVersion":"2024-11-05"}}
  • Reactiecapaciteiten: {"resources":{"list":true,"read":true,"write":true}}
  • Beschikbare naamruimten: work-times, projects, employees, vacations, holidays, responsibilities, cost-groups, budget-groups, budgets, logical, project-rates, transactions, transaction-attachments, suppliers, organization, candidates, resource-requests.

resources/list

  • Methode: resources/{namespace}/list — standaard naamruimte: work-times als weggelaten.
  • Naamruimten (19): work-times, projects, employees, vacations, holidays, responsibilities, cost-groups, budget-groups, budgets, logical, project-rates, transactions, transaction-attachments, suppliers, organization, candidates, resource-requests, candidate-notes, resource-request-candidates.
  • Retourneert een array van {uri, name}-objecten die beschikbare resources per naamruimte beschrijven. Zie de naamruimte-uitsplitsing hieronder voor details.
  • Voorbeeld: {"jsonrpc":"2.0","id":"list-1","method":"resources/projects/list","params":{}}

resources/read

  • Methode: resources/{namespace}/read — standaard naamruimte: work-times.
  • Parameters: uri (verplicht) — de resource-URI, bijv. /api/work-times.
  • allowPrefixes: maakt cross-naamruimte-matches mogelijk. Elke URI die begint met een toegestaan voorvoegsel wordt geaccepteerd.
  • {current} oplossing: {current} in medewerker-queryparameters wordt automatisch opgelost naar /api/employees/me.
  • Automatische standaarden: work-times voegt date[after]/date[before] toe (laatste 30 dagen), employees voegt itemsPerPage=200 toe, holidays/vacations voegen pagineringstandaarden toe.
  • Verrijking: Responsibilities read volgt maximaal 10 @id-links om titel/naam-velden te verrijken.
  • Logische naamruimte: retourneert aan serverzijde berekende samenvattingen in plaats van ruwe API-payloads.
  • Reactie: {"jsonrpc":"2.0","id":"...","result":{"contents":[{"uri":"...","text":"{...}","mimeType":"application/json"}]}}

resources/write

  • Methode: resources/{namespace}/write — alleen resources met allowWrite accepteren schrijfacties.
  • Routing: POST voor aanmaken, PATCH (met application/merge-patch+json) als de URI eindigt op een ID. Overschrijven via params.contentType.
  • Aanmaakpaden: /api/.../create forceert POST zelfs als er een ID aanwezig is.
  • IRI-conventie: params.uri gebruikt /api/...-paden, maar entiteitsreferenties in JSON-payloads moeten upstream IRI's gebruiken (bijv. "project": "/projects/1", niet "/api/projects/1").
  • Schrijfbare naamruimten: work-times, holidays (holiday-requests), transactions, transaction-attachments, suppliers (contractors), budgets, budget-groups, candidates, candidate-notes, resource-requests, resource-request-candidates.
  • Logische schrijfhulpen: resources/logical/write ondersteunt /logical/work-times/log (POST naar /api/work-times), /logical/recruiting/resource-requests/update?id=<id> en /logical/recruiting/resource-request-candidates/update?id=<id> (PATCH).

Ingebouwde agents

  • EmployeeAgent (employee): Dagelijkse operaties — werktijd registreren, verlof controleren, toewijzingen bekijken. Toegang: elke geauthenticeerde gebruiker (gescopet op token/instantie).
  • ManagerAgent (manager): Ondersteuning project-/engineeringmanager — tarieven, bezetting, kosten, goedkeuringen. Vereist: project_manager- of admin-rol.
  • ExecutiveAgent (executive): Managementoverzichten — KPI's, budgetten, samenvattingen, goedkeuringen. Vereist: admin-, executive-, director-, vp- of c-level-rol.
  • HRManagerAgent (hr): HR en verlof — verlofsaldi, verlofhistorie, teamverlof. Toegang: elke geauthenticeerde gebruiker.
  • AccountancyAgent (accountancy): Financiële vragen — transacties weergeven, bedragen samenvatten. Toont nooit bijlage-URL's. Toegang: elke geauthenticeerde gebruiker.
  • RecruiterAgent (recruiter): Werving — openstaande functies weergeven, kandidaten zoeken/aanmaken, koppelen aan functies, notities toevoegen. Vereist: candidates_manager-, admin- of recruiter-rol.
  • OnboardingAgent (onboarding): Begeleiding nieuwe gebruikers — installatiehulp, navigatie, "waar vind ik X"-antwoorden. Toegang: elke geauthenticeerde gebruiker.
  • TechAgent (tech): Technische installatie — MCP/ChatGPT-inloggegevensverzoeken. Genereert per-gebruiker clientinloggegevens na beheerdersgoedkeuring. Toegang: open voor alle rollen (zal worden aangescherpt).
  • Agentselectie: Gebruik employee voor persoonlijke taken; hr voor verlof/vakantie; manager voor bezetting/kosten; executive voor KPI's; accountancy voor financiën; recruiter voor kandidaten; onboarding voor installatie.
  • Toegangsmodel: Rolcontroles gebruiken Flowtly-rollen/bevoegdheden/rechten. Beperkte agents weigeren acties als er geen vereiste rol overeenkomt. Alle agents gebruiken uitsluitend de MCP API-tool — geen externe services.

Logische naamruimte — berekende samenvattingen

  • Werktijdsamenvattingen: /logical/work-times/summary — geaggregeerde uren per medewerker/project. Ondersteunt date[after]/date[before] (standaard laatste 7 dagen).
  • Medewerkersamenvatting: /logical/employees/summary — personeelsbestand, afdelingen en statusoverzicht.
  • Projectensamenvatting: /logical/projects/summary — actieve projecten, factureringstypen en klantdistributie.
  • Medewerkerwerktijden: /logical/employee-work-times/summary — bezettingsoverzicht per medewerker.
  • Projecttarieven: /logical/project-rates/summary — tariefkaarten en factureringstariefoverzicht.
  • Transacties: /logical/transactions/summary — uitgaventotalen, categorisering en trends.
  • Projectwinstgevendheid: /logical/project-profitability/summary — omzet versus kosten per project.
  • Budgetgroepen: /logical/budget-groups/summary — budgetgroeptoewijzingen en burn-status.
  • Budgetten: /logical/budgets/summary — individueel budgetverbruik en waarschuwingen.
  • Bedrijfsonboarding: /logical/company-onboarding/status — voortgang van werkruimteconfiguratie en openstaande stappen.
  • Openstaande functies: /logical/recruiting/open-roles — niet-ingevulde resource-requests en wervingspijplijn.
  • Kandidaten: /logical/recruiting/candidates — stagedistributie van kandidatenpijplijn.
  • Verlof: /logical/holidays — geaggregeerde verlofgegevens en teambeschikbaarheid.
  • Werktijdlog (schrijven): /logical/work-times/log — POST maakt een werktijdvermelding aan via /api/work-times.

Caching & prestaties

  • Redis logische cache: Optionele cache voor logisch lezen. Kan Redis delen met de hoofd-API voor invalidatiepatronen.
  • Omgevingsvariabelen: MCP_LOGICAL_CACHE_ENABLED (automatisch ingeschakeld als Redis-URL aanwezig is), MCP_LOGICAL_CACHE_REDIS_URL (fallbacks: REDIS_URL, CACHE_REDIS_URL).
  • Sleutelformaat: Voorvoegsel mcp:logical:v1: — gescopet op instantie + principal, bevat genormaliseerde logische URI. Configureer voorvoegsel via MCP_LOGICAL_CACHE_PREFIX.
  • TTL: 86400 seconden (24 uur). Configureren via MCP_LOGICAL_CACHE_TTL_SECONDS.

Foutafhandeling

  • Standaard JSON-RPC-fout: {"jsonrpc":"2.0","id":"...","error":{"code":-32000,"message":"Upstream Flowtly API failed","data":{"status":502}}}
  • Veelvoorkomende foutcodes: -32700 (parseerfout), -32600 (ongeldig verzoek), -32601 (methode niet gevonden), -32000 (upstream API-fout).
  • Het veld data.status weerspiegelt de HTTP-statuscode van de upstream Flowtly API als die beschikbaar is.

Aanvullende opmerkingen

  • allowPrefixes: Laat resources/read URI's accepteren die beginnen met toegestane voorvoegsels, waardoor cross-naamruimte-lookups mogelijk worden.
  • OpenAPI-referentie: Beschikbaar op public/mcp/openapi.json (gekopieerd naar dist/mcp/openapi.json bij bouwtijd).
  • LLM-intentiecontracten: Router + manager-patronen gedocumenteerd in docs/llm-intent-architecture.md, geïmplementeerd in packages/agent/src/intents/contract.ts.
  • Paginering: Standaarden worden automatisch per naamruimte toegepast. Overschrijf met expliciete queryparameters indien nodig.

Naamruimtereferentie — resources/list per naamruimte

work-times

  • Lijst: /api/work-times (stelt automatisch date[after]/date[before] in voor laatste 30 dagen), /api/employees/me
  • Lezen: dezelfde URI's — retourneert geregistreerde uren met project, medewerker, omschrijving en seconden
  • Schrijven: POST /api/work-times (aanmaken), PATCH /api/work-times/{id} (bijwerken). Payload: {date, seconds, project, description}

projects

  • Lijst: /api/projects, /api/projects?employee={current} (automatisch opgelost), /api/employees/me
  • Lezen: retourneert projectmetadata, leden, factureringstype, klant, valuta en datums

employees & responsibilities

  • employees Lijst: /api/employees/me, /api/employees (itemsPerPage=200)
  • responsibilities Lijst: /api/responsibility-employees?employee={current}, /api/responsibilities, /api/responsibility-groups
  • Lezen: responsibilities verrijkt @id-links (maximaal 10) met titel/naam-context

vacations & holidays

  • vacations: balance?employee={current}, holiday-days-limits (itemsPerPage=50), holidays (itemsPerPage=50)
  • holidays: /api/holidays?employee={current} (itemsPerPage=200), /api/holiday-requests
  • Schrijven: POST/PATCH /api/holiday-requests voor verlofaanvraagbeheer

transactions & attachments

  • transactions: /api/transactions (itemsPerPage=200&page=1), /api/bank-accounts
  • transaction-attachments: /api/transaction-attachments, /api/transaction-attachments/create
  • Schrijven: transactions (POST/PATCH), attachments (POST/PATCH, /create forceert POST)

suppliers & cost-groups

  • suppliers: /api/contractors (itemsPerPage=100&page=1)
  • cost-groups: /api/cost-groups (itemsPerPage=200&page=1)
  • Schrijven: /api/contractors (POST/PATCH)

budget-groups & budgets

  • budget-groups: /api/budget-groups (schrijven toegestaan, itemsPerPage=200&page=1)
  • budgets: /api/budgets (schrijven toegestaan, itemsPerPage=200&page=1)
  • Schrijven: POST/PATCH voor zowel budget-groups als budgets

project-rates

  • Lijst: /api/employees/{current}/project-rates (itemsPerPage=200, huidige medewerker automatisch opgelost)
  • Logisch: /logical/project-rates/summary, /logical/project-profitability/summary

candidates & resource-requests

  • candidates: /api/candidates (itemsPerPage=50&page=1), /api/candidates/search, /api/candidate-notes
  • resource-requests: /api/resource-requests (itemsPerPage=50&page=1), /api/resource-request-candidates (itemsPerPage=50&page=1)
  • Schrijven: candidates, candidate-notes, resource-requests, resource-request-candidates (POST/PATCH)
  • Logisch schrijven: /logical/recruiting/resource-requests/update?id=<id>, /logical/recruiting/resource-request-candidates/update?id=<id> (PATCH)

logical (14 endpoints)

  • Kern: /logical/work-times/summary, /logical/employees/summary, /logical/projects/summary
  • Analyses: /logical/employee-work-times/summary, /logical/project-rates/summary, /logical/transactions/summary, /logical/project-profitability/summary
  • Budgetten: /logical/budget-groups/summary, /logical/budgets/summary
  • Werving: /logical/company-onboarding/status, /logical/recruiting/open-roles, /logical/recruiting/candidates
  • Overig: /logical/holidays, /logical/work-times/log (schrijfhulp)

organization

  • Lezen: /api/organization — werkruimteprofiel, naam, instellingen en abonnementsdetails
Whatsapp