Skip to main content
Glama
silamir

boondmanager-mcp-server

by silamir

Rechercher des demandes d'absence

boond_absences_search
Read-onlyIdempotent

Search BoondManager absence requests by period, resource, validation state, and scope to retrieve them and check their approval status.

Instructions

Recherche des demandes d'absence dans BoondManager, par période (startMonth / endMonth en YYYY-MM, requis), ressource, état de validation (validationStates) et périmètre (perimeter*).

Quand : pour retrouver des demandes d'absence et leur état de validation. Plutôt que : boond_planning_absences_search pour la vue calendaire (qui est absent quand), et boond_validations_search pour ce qui reste en attente de validation.

resourceId est converti en référence keywords COMP : l'API n'a pas de paramètre dédié.

Returns: Liste des demandes d'absence correspondantes.

  • fields : projection côté MCP, jamais transmise à l'API — remplace le résumé par les seuls attributs/relations listés (noms inconnus ignorés). À utiliser sur les grosses pages.

  • Pagination : pageSize 1–500 (défaut 30), page 1–100 — au-delà : refus, affiner les filtres.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNoNuméro de page (défaut: 1, max: 100)
sortNoChamp de tri (ex: lastName, firstName, updateDate)
orderNoOrdre de tri (asc/desc)
fieldsNoProjection : attributs ou relations (type#id) par résultat (ex: ['title','dependsOn']). Absent = résumé standard. Noms inconnus ignorés.
endMonthYesMois de fin de période (YYYY-MM) — obligatoire pour l'API
keywordsNoMots-clés de recherche
pageSizeNoNombre de résultats par page (max: 500, défaut: 30)
resourceIdNoFiltrer par ID ressource (référence keywords COMP<id>)
startMonthYesMois de début de période (YYYY-MM) — obligatoire pour l'API
resourceTypesNoIDs de types de ressource — `boond://dictionary/typeOf/resources`.
perimeterPolesNoIDs de pôles. Conserve les entités dont le responsable appartient à ces pôles.
narrowPerimeterNoSi true, jointure ET entre les filtres `perimeter*` (au lieu de OU par défaut).
perimeterDynamicNoPérimètre dynamique relatif à l'utilisateur courant (raccourci sans avoir à connaître son propre ID). Valeurs : 'data' (mes propres données), 'managers' (mon équipe / mes N-1), 'agencies' (mes agences), 'poles' (mes pôles), 'businessUnits' (mes BU). Combinable.
validationStatesNoÉtats du workflow de validation : waitingForValidation (à valider), validated, rejected.
perimeterAgenciesNoIDs d'agences. Conserve les entités dont le responsable appartient à ces agences.
perimeterManagersNoIDs des managers (ressources). Conserve les entités dont le responsable est l'un de ces managers. Pour 'mon équipe / N-1 d'une personne X', passer [X_id]. Obtenir son propre ID via boond_application_current_user.
perimeterBusinessUnitsNoIDs de business units. Conserve les entités dont le responsable appartient à ces BU.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv2.18.0
    • changedInput schema / properties / fields / description
      Previous value: -"Projection : attributs à afficher par résultat (ex: ['title','updateDate']). Absent = résumé standard. Noms inconnus ignorés."New value: +"Projection : attributs ou relations (type#id) par résultat (ex: ['title','dependsOn']). Absent = résumé standard. Noms inconnus ignorés."
  2. Changed19 schema fields changedv2.17.0
    • changedInput schema / properties / endMonth / description
      Previous value: -"Mois de fin de période (YYYY-MM)"New value: +"Mois de fin de période (YYYY-MM) — obligatoire pour l'API"
    • addedInput schema / properties / endMonth / pattern
      Added value: +"^\\d{4}-\\d{2}$"
    • addedInput schema / properties / narrowPerimeter
      Added value: +{
      +  "description": "Si true, jointure ET entre les filtres `perimeter*` (au lieu de OU par défaut).",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / order
      Added value: +{
      +  "description": "Ordre de tri (asc/desc)",
      +  "enum": [
      +    "asc",
      +    "desc"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / page / description
      Previous value: -"Numéro de page (max: 100)"New value: +"Numéro de page (défaut: 1, max: 100)"
    • changedInput schema / properties / pageSize / description
      Previous value: -"Résultats par page"New value: +"Nombre de résultats par page (max: 500, défaut: 30)"
    • addedInput schema / properties / perimeterAgencies
      Added value: +{
      +  "description": "IDs d'agences. Conserve les entités dont le responsable appartient à ces agences.",
      +  "items": {
      +    "maximum": 9007199254740991,
      +    "minimum": -9007199254740991,
      +    "type": "integer"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / perimeterBusinessUnits
      Added value: +{
      +  "description": "IDs de business units. Conserve les entités dont le responsable appartient à ces BU.",
      +  "items": {
      +    "maximum": 9007199254740991,
      +    "minimum": -9007199254740991,
      +    "type": "integer"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / perimeterDynamic
      Added value: +{
      +  "description": "Périmètre dynamique relatif à l'utilisateur courant (raccourci sans avoir à connaître son propre ID). Valeurs : 'data' (mes propres données), 'managers' (mon équipe / mes N-1), 'agencies' (mes agences), 'poles' (mes pôles), 'businessUnits' (mes BU). Combinable.",
      +  "items": {
      +    "enum": [
      +      "data",
      +      "agencies",
      +      "poles",
      +      "businessUnits",
      +      "managers"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / perimeterManagers
      Added value: +{
      +  "description": "IDs des managers (ressources). Conserve les entités dont le responsable est l'un de ces managers. Pour 'mon équipe / N-1 d'une personne X', passer [X_id]. Obtenir son propre ID via boond_application_current_user.",
      +  "items": {
      +    "maximum": 9007199254740991,
      +    "minimum": -9007199254740991,
      +    "type": "integer"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / perimeterPoles
      Added value: +{
      +  "description": "IDs de pôles. Conserve les entités dont le responsable appartient à ces pôles.",
      +  "items": {
      +    "maximum": 9007199254740991,
      +    "minimum": -9007199254740991,
      +    "type": "integer"
      +  },
      +  "type": "array"
      +}
    • changedInput schema / properties / resourceId / description
      Previous value: -"Filtrer par ID ressource"New value: +"Filtrer par ID ressource (référence keywords COMP<id>)"
    • addedInput schema / properties / resourceId / pattern
      Added value: +"^\\d+$"
    • addedInput schema / properties / resourceTypes
      Added value: +{
      +  "description": "IDs de types de ressource — `boond://dictionary/typeOf/resources`.",
      +  "items": {
      +    "maximum": 9007199254740991,
      +    "minimum": -9007199254740991,
      +    "type": "integer"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / sort
      Added value: +{
      +  "description": "Champ de tri (ex: lastName, firstName, updateDate)",
      +  "type": "string"
      +}
    • changedInput schema / properties / startMonth / description
      Previous value: -"Mois de début de période (YYYY-MM)"New value: +"Mois de début de période (YYYY-MM) — obligatoire pour l'API"
    • addedInput schema / properties / startMonth / pattern
      Added value: +"^\\d{4}-\\d{2}$"
    • addedInput schema / properties / validationStates
      Added value: +{
      +  "description": "États du workflow de validation : waitingForValidation (à valider), validated, rejected.",
      +  "items": {
      +    "enum": [
      +      "waitingForValidation",
      +      "validated",
      +      "rejected"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / required
      Added value: +[
      +  "startMonth",
      +  "endMonth"
      +]
  3. Changed1 schema field changedv2.12.2
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
  4. Changed1 schema field changedv2.9.0
    • addedInput schema / properties / fields
      Added value: +{
      +  "description": "Projection : attributs à afficher par résultat (ex: ['title','updateDate']). Absent = résumé standard. Noms inconnus ignorés.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  5. Changed4 schema fields changedv2.8.0
    • removedInput schema / properties / endDate
      Removed value: -{
      -  "description": "Date de fin de période (YYYY-MM-DD)",
      -  "type": "string"
      -}
    • addedInput schema / properties / endMonth
      Added value: +{
      +  "description": "Mois de fin de période (YYYY-MM)",
      +  "type": "string"
      +}
    • removedInput schema / properties / startDate
      Removed value: -{
      -  "description": "Date de début de période (YYYY-MM-DD)",
      -  "type": "string"
      -}
    • addedInput schema / properties / startMonth
      Added value: +{
      +  "description": "Mois de début de période (YYYY-MM)",
      +  "type": "string"
      +}
  6. First observedv2.1.0

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the read-only, idempotent, non-destructive profile, so the bar is lower. The description still adds real behavioral context beyond structured fields: `resourceId` is translated to a `keywords` COMP<id> reference because the API lacks a dedicated parameter, `fields` is an MCP-side projection never sent to the API, and pagination is refused beyond pageSize 500 / page 100. It stops short of return-format or auth detail, keeping it at a strong 4.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then when-to-use/alternatives, then the resourceId conversion note, then a one-line return summary, then bulleted fields/pagination details. Every sentence carries actionable information and nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 17-parameter search tool with 100% schema coverage and read-only annotations, the description is complete enough: it covers routing, the resourceId quirk, projection behavior, and pagination limits. Only minor items like how `perimeter*` filters combine (narrowPerimeter) are left entirely to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description earns an extra point by clarifying semantics the schema only implies: `fields` replaces the standard summary and is never transmitted to the API (useful for large pages), and the `resourceId`-to-`keywords` conversion explains an API quirk. Pagination bounds are restated but the fields/resourceId nuance goes beyond the schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Starts with a specific verb+resource ('Recherche des demandes d'absence dans BoondManager') and immediately lists the filter dimensions (period, resource, validation state, perimeter). It explicitly distinguishes itself from sibling tools `boond_planning_absences_search` and `boond_validations_search`, so an agent can route correctly without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Quand' and 'Plutôt que' blocks give explicit when-to-use guidance plus named alternatives with the conditions that select them (calendar view vs. pending-validation queue). No inference is required about when this tool beats its siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools