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
- Voer de synchronisatieopdracht uit nadat MCP-updates zijn uitgebracht.
- Herstart uw agent-stack om capaciteitswijzigingen op te halen.
- 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/mcpmet{"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>enContent-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: omgevingsvariabeleFLOWTLY_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 nooitAccess-Control-Allow-Origin: *metAccess-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-timesals 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 metallowWriteaccepteren schrijfacties. -
Routing: POST voor aanmaken, PATCH (met
application/merge-patch+json) als de URI eindigt op een ID. Overschrijven viaparams.contentType. -
Aanmaakpaden:
/api/.../createforceert POST zelfs als er een ID aanwezig is. -
IRI-conventie:
params.urigebruikt/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/writeondersteunt/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
employeevoor persoonlijke taken;hrvoor verlof/vakantie;managervoor bezetting/kosten;executivevoor KPI's;accountancyvoor financiën;recruitervoor kandidaten;onboardingvoor 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. Ondersteuntdate[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 viaMCP_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.statusweerspiegelt de HTTP-statuscode van de upstream Flowtly API als die beschikbaar is.
Aanvullende opmerkingen
-
allowPrefixes: Laat
resources/readURI's accepteren die beginnen met toegestane voorvoegsels, waardoor cross-naamruimte-lookups mogelijk worden. -
OpenAPI-referentie: Beschikbaar op
public/mcp/openapi.json(gekopieerd naardist/mcp/openapi.jsonbij bouwtijd). -
LLM-intentiecontracten: Router + manager-patronen gedocumenteerd in
docs/llm-intent-architecture.md, geïmplementeerd inpackages/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