BoondManager MCP Server vs Variflight MCP
A side-by-side look at the BoondManager MCP Server and Variflight MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose BoondManager MCP Server for developer tools work as a local process; choose Variflight MCP for developer tools as a local process. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose BoondManager MCP Server when
- You need dedicated capabilities in the Developer Tools domain.
- You prefer a local stdio subprocess transport.
- You want tools like
boond_candidates_search, boond_candidates_get, boond_candidates_create.
Choose Variflight MCP when
- You need dedicated capabilities in the Developer Tools domain.
- You prefer a local stdio subprocess transport.
- You have the keys it needs:
VARIFLIGHT_API_KEY. - You want tools like
searchFlightsByDepArr, searchFlightsByNumber, getFlightTransferInfo.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Developer Tools | Developer Tools |
| Quality signal | 65/100 · Great | 67/100 · Great |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | None listed | VARIFLIGHT_API_KEY |
| Verified owner | Community listing | Community listing |
| GitHub stars | 21 | 33 |
| Directory activity | 0 views 0 installs 0 upvotes | 0 views 0 installs 0 upvotes |
| Tools | 238 | 9 |
| Full listing | View BoondManager MCP Server | View Variflight MCP |
Tools & capabilities
BoondManager MCP Server tools 238
boond_candidates_searchRecherche des candidats dans BoondManager avec filtres serveur. Plutôt que : `boond_resources_search` pour les collaborateurs internes — candidats et ressources sont deux référentiels distincts, et une personne recrutée cesse d'être trouvable ici. Cas d'usage courants : • **Mes candidats** sans connaître son propre ID : `perimeterDynamic: ["data"]`. Pour "candidats de l'équipe X" : `perimeterManagers: [<X_id>]` (utiliser `perimeterManagersType: "main"|"hr"` pour cibler Main vs HR Manager). • **États / types** : `candidateStates: [<id>]` (dictionnaire `setting.state.candidate`), `candidateTypes` (`setting.typeOf.resource`), `contractTypes`, `availabilityTypes`. IDs entiers issus du dictionnaire. • **Profil technique** : `tools: [<id>]` (OU; pour ET: `["#AND#", "1", "2"]`), `expertiseAreas`, `activityAreas`, `experiences`, `trainings`, `mobilityAreas`, `languages` (format `langueId|niveauId`). • **Sourcing** : `sources: [<id>]` (origine du candidat), `evaluations`. • **Période** : `period: "created"|"updated"|"available"|"withActions"|...` + `startDate`/`endDate`. • **Recherche par nom** : `keywords: "Dupont"` + `keywordsType: "lastName"` (ou firstName, fullName avec `"NOM#PRENOM"`, emails, phones, title, titleSkills…). Sans `keywordsType`, recherche par défaut dans le CV. • **Géolocalisation** : `coordinates: "lat,lon"` ou `location` + `geoDistance` (km, 5-200). Tri : `sort` + `order`. Returns : liste paginée des candidats. Utiliser `boond_candidates_get` ou les outils d'onglets pour le détail. - `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.boond_candidates_getRécupère la fiche complète d'un(e) candidat par son ID numérique. Quand : après un `boond_candidates_search`, pour obtenir les attributs qui n'apparaissent pas dans le résumé de liste. Plutôt que : `boond_candidates_search` si l'ID n'est pas connu (cet outil n'accepte pas de nom), ou `boond_find` pour résoudre un nom / un e-mail en ID. - `tab` cible un onglet précis (`information`, `technical-data`, `administrative`, `actions`…) ; sans `tab`, seule la fiche de base est renvoyée, pas la réunion des onglets. - Un ID inconnu remonte l'erreur BoondManager telle quelle — l'ID doit venir de `boond_candidates_search`, jamais d'une supposition. Returns : JSON de l'entité (attributs + relations) tel que renvoyé par l'API. Lecture seule.boond_candidates_createCrée un(e) candidat dans BoondManager. Quand : pour ajouter un(e) candidat inexistant(e). Plutôt que : `boond_candidates_update` pour modifier un enregistrement existant, et `boond_candidates_search` d'abord pour vérifier qu'il n'existe pas déjà. - Écriture réelle et non idempotente : deux appels identiques créent deux enregistrements (l'API ne déduplique pas). - Les ID de relations et les états/types sont des ID numériques BoondManager, à résoudre au préalable (recherches d'entités, `boond://dictionary/*`). Returns : confirmation, ID créé, et la fiche complète. `structuredContent.id` est réutilisable directement pour chaîner un appel.boond_candidates_updateMet à jour un(e) candidat existant(e), identifié(e) par son ID. Quand : pour modifier quelques champs d'un enregistrement déjà en base. Plutôt que : `boond_candidates_create` si l'enregistrement n'existe pas encore, ou `boond_find` pour résoudre un nom / un e-mail en ID. - Mise à jour partielle : seuls les champs fournis sont écrits, les autres sont laissés en place. - Attention aux champs de type tableau, qui sont **remplacés** et non fusionnés. - `boond_rights_get` dit si l'utilisateur a ce droit sur l'enregistrement avant d'essayer (un 403 évité). Returns : confirmation et fiche mise à jour.boond_candidates_deleteSupprime définitivement un(e) candidat de BoondManager. Quand : uniquement sur demande explicite de l'utilisateur, et après avoir vérifié l'ID avec `boond_candidates_get`. Plutôt que : `boond_candidates_update` pour désactiver ou changer l'état d'un enregistrement sans le détruire — c'est presque toujours l'intention réelle. - `boond_rights_get` dit si l'utilisateur a ce droit sur l'enregistrement avant d'essayer (un 403 évité). - ⚠️ Irréversible, sans corbeille côté API. - Si le client MCP annonce la capacité `elicitation`, une confirmation est demandée à l'utilisateur final et un refus annule l'appel (`structuredContent.deleted: false` + `reason`) ; sinon la suppression part directement. Returns : `{ id, deleted, reason? }` — vérifier `deleted`, qui vaut `false` en cas de refus utilisateur.boond_candidates_technical_data_updateMet à jour le dossier technique (DT) d'un candidat : compétences, outils, langues, profils (activityAreas), secteurs (expertiseAreas), formation, diplômes, expérience, résumé. Quand : pour coder le dossier technique d'un candidat (profils, secteurs, outils, langues, expérience, formation). Plutôt que : `boond_candidates_update` pour l'onglet Information (coordonnées, disponibilité, mobilité, évaluation) ; `boond_resources_technical_data_update` pour un collaborateur interne. Mode 'merge' (défaut, recommandé pour automation) — enrichit sans rien écraser : • skills (CSV) : concatène les compétences absentes • tools / languages : ajoute les entrées dont la clé (slug outil / langue) est nouvelle, conserve le niveau existant pour les autres • expertiseAreas, activityAreas, diplomas : ajoute les items absents • title, summary, training, experience : remplis UNIQUEMENT si actuellement vides Mode 'replace' — remplace intégralement chaque champ fourni. Les champs non passés ne sont pas touchés. ⚠️ experience, training, expertiseAreas, activityAreas et tools prennent des IDs de dictionnaire (`setting.experience`, `setting.training`, `setting.expertiseArea`, `setting.activityArea`, `setting.tool`), jamais des libellés. Returns : confirmation, liste des champs envoyés mais non retrouvés dans la réponse de l'API (écriture ignorée par Boond), puis le DT mis à jour.boond_candidates_administrative_updateMet à jour l'onglet Administratif d'un candidat : nationalité, salaire souhaité (fourchette), salaire actuel, contrat souhaité, commentaires. Quand : pour renseigner nationalité, salaire souhaité ou contrat souhaité d'un candidat. Plutôt que : `boond_candidates_technical_data_update` pour les compétences et le parcours. Seuls les champs fournis sont envoyés. Données personnelles : n'écrire que ce que le candidat a communiqué (CV, entretien). Returns : confirmation, liste des champs non retrouvés dans la réponse de l'API, puis le bloc administratif mis à jour.boond_candidates_informationRécupère les informations générales (coordonnées, adresse, état civil, photo, tags, source) d'un(e) candidat, par son ID. Quand : pour ne charger que cette section, sans le reste de la fiche. Plutôt que : `boond_candidates_get` pour la fiche de base, ou `boond_candidates_search` si l'ID est inconnu. Returns : Bloc identité et coordonnées du candidat. Lecture seule.boond_candidates_technical_dataRécupère le profil technique (compétences, expériences, formations, certifications, langues, CV) d'un(e) candidat, par son ID. Quand : pour ne charger que cette section, sans le reste de la fiche. Plutôt que : `boond_candidates_get` pour la fiche de base, ou `boond_candidates_search` si l'ID est inconnu. Returns : Profil technique du candidat. Les ID de documents (CV) qui s'y trouvent alimentent `boond_documents_get`. Lecture seule.boond_candidates_administrativeRécupère les données administratives (pièces justificatives, documents contractuels, informations RH) d'un(e) candidat, par son ID. Quand : pour ne charger que cette section, sans le reste de la fiche. Plutôt que : `boond_candidates_get` pour la fiche de base, ou `boond_candidates_search` si l'ID est inconnu. Returns : Bloc administratif du candidat, avec les ID de documents exploitables par `boond_documents_get`. Lecture seule.boond_candidates_actionsRécupère les actions (appels, emails, RDV, notes) d'un(e) candidat, par son ID. Quand : pour ne charger que cette section, sans le reste de la fiche. Plutôt que : `boond_candidates_get` pour la fiche de base, ou `boond_candidates_search` si l'ID est inconnu. Returns : Liste des actions rattachées au candidat. Lecture seule.boond_candidates_positioningsRécupère les positionnements (placements du candidat sur des opportunités ou des projets) d'un(e) candidat, par son ID. Quand : pour ne charger que cette section, sans le reste de la fiche. Plutôt que : `boond_candidates_get` pour la fiche de base, ou `boond_candidates_search` si l'ID est inconnu. Returns : Liste des positionnements du candidat. Lecture seule.- +226 more on the listing page
Variflight MCP tools 9
searchFlightsByDepArrSearch direct flights by departure and arrival location plus date. Use depcity and arrcity when the user specifies cities such as BJS or SHA. Use dep and arr when the user specifies exact airports such as PEK or PVG. Provide one departure field and one arrival field, and do not mix city and airport codes for the same side. All codes must be valid IATA 3-letter codes. Date must be in YYYY-MM-DD format. For today's date, use getTodayDate instead of hardcoding.searchFlightsByNumberSearch a flight by flight number and date. The flight number must include the airline code, for example MU2157 or CZ3969. dep and arr are optional and should only be provided when the exact airports are known. Date must be in YYYY-MM-DD format. For today's date, use getTodayDate instead of hardcoding.getFlightTransferInfoSearch connecting flight options between a departure city and an arrival city on a specific date. Use city IATA 3-letter codes such as BJS, SHA, or LAX. This tool is for transfer or connection itineraries between cities, not for airport weather, airport facilities, or realtime tracking. Date must be in YYYY-MM-DD format. For today's date, use getTodayDate instead of hardcoding.flightHappinessIndexUse this tool when the user wants comfort-focused details for a known flight, such as punctuality, aircraft type, cabin configuration, seat comfort, meals, entertainment, or other onboard experience details. This tool works best when a specific flight number and date are already known. Do not use it for fare search, itinerary recommendation, or raw price comparison.getRealtimeLocationByAnumGet realtime flight location by aircraft registration number, also called tail number, such as B2021 or B2022. Use this only when the aircraft registration number is known. If the registration number is unknown, first try to find the flight through searchFlightsByNumber and then use the aircraft registration number from that result.getTodayDateGet today's date in local timezone (YYYY-MM-DD format). Use this tool whenever you need today's date - NEVER hardcode dates.getFutureWeatherByAirportGet the 3-day airport weather forecast for today, tomorrow, and the day after tomorrow by airport IATA 3-letter code, such as PEK, SHA, CAN, or HFE.searchFlightItinerariesUse this tool when the user wants a concise recommended itinerary summary in natural language. It returns a text-style result that summarizes how many sale flights match, the overall lowest price, the shortest duration, and several recommended options. Use city IATA 3-letter codes only. If the user instead needs structured raw flight pricing data with each flight and cabin price, use getFlightPriceByCities.getFlightPriceByCitiesUse this tool when the user needs structured raw pricing data. It returns sale flights between two cities as a list of flights, and each flight contains cabin entries with prices. This is better than searchFlightItineraries when the caller needs per-flight, per-cabin price details instead of a natural-language recommendation summary. All city codes must be valid IATA 3-letter codes (e.g. BJS for Beijing, SHA for Shanghai, CAN for Guangzhou, HFE for Hefei).
Ready-to-paste client configs
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
BoondManager MCP Server
{
"mcpServers": {
"boondmanager-mcp-server": {
"command": "npx",
"args": [
"-y",
"boondmanager-mcp-server"
]
}
}
}
Variflight MCP
{
"mcpServers": {
"variflight-mcp": {
"command": "npx",
"args": [
"-y",
"@variflight-ai/variflight-mcp"
],
"env": {
"VARIFLIGHT_API_KEY": "YOUR_VARIFLIGHT_API_KEY_HERE"
}
}
}
}
Frequently asked questions
BoondManager MCP Server is categorized under Developer Tools and uses a local stdio subprocess. Variflight MCP belongs to Developer Tools and uses a local stdio subprocess. Pick BoondManager MCP Server for developer tools work and Variflight MCP for developer tools.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.
BoondManager MCP Server has no declared pricing — check the project's own site. Variflight MCP has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add boondmanager-mcp-server and variflight-mcp as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, BoondManager MCP Server has a quality signal of 65/100 (Great) with 0 views, 0 installs and 21 GitHub stars. Variflight MCP has 67/100 (Great) with 0 views, 0 installs and 33 GitHub stars.