French family benefits (CNAF corpus) MCP Server
by arxohqio.arxo/cnafv0.1.1
French family-benefit models (CNAF corpus) as executable rules with sources; independent demo
context tax
~9,139 tok/turn16 tools
security
97/100
cold start
pending
freshness
Active4d ago
Our reading of French family benefits (CNAF corpus), from the data
French family benefits (CNAF corpus) is an MCP server from arxohq, listed in the official MCP Registry.
Its 16 tools add about 9,139 tokens to every model turn (measured 2026-10-19).
Maintenance is active: the last public signal was 4 days ago (2026-10-14).
It runs either locally over stdio or as a hosted endpoint.
Install French family benefits (CNAF corpus) MCP server
Install in Claude Code
claude mcp add cnaf -- npx -y @arxo/mcp-cnafInstall in Cursor
{
"mcpServers": {
"cnaf": {
"command": "npx",
"args": [
"-y",
"@arxo/mcp-cnaf"
]
}
}
}Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project).
Install in Claude Desktop
{
"mcpServers": {
"cnaf": {
"command": "npx",
"args": [
"-y",
"@arxo/mcp-cnaf"
]
}
}
}Settings → Developer → Edit Config (claude_desktop_config.json), then restart.
Install in VS Code
{
"servers": {
"cnaf": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@arxo/mcp-cnaf"
]
}
}
}Add to .vscode/mcp.json in your workspace.
Install in Windsurf
{
"mcpServers": {
"cnaf": {
"command": "npx",
"args": [
"-y",
"@arxo/mcp-cnaf"
]
}
}
}Add to ~/.codeium/windsurf/mcp_config.json.
Remote endpoints
- streamable-http
https://mcp.arxo.io/mcp/cnaf
Context tax
Connecting this server adds ~9,139 tokens of tool definitions to every model turn (heavy, 16 tools). Measured 2026-10-19 via its hosted endpoint; o200k tokenizer, worst case for clients that load all tools up front. How we measure
| Model | Per 1,000 turns | With prompt caching |
|---|---|---|
| Claude Opus 5.5 | $36.56 | $1.83 |
| Claude Sonnet 5.5 | $18.28 | $1.83 |
| Claude Haiku 5.5 | $0.914 | — |
Input prices as of 2026-10-06. Excludes your own prompt and output.
Tools (16)
law_ask1,875 tokPoser une question au droit formalisé. Quand la réponse est « non établi », elle porte whyNot — le rapport why_not du moteur : les règles candidates et l'état de chaque conjonct (satisfait / non satisfait / indéterminé) ; les faits manquants y sont visibles et n'ont pas à être inventés. AVANT LE PREMIER appel, obtenez les noms de prédicats par law_search (une question dans vos propres mots → adresses) ou law_packages (les signatures d'un acte connu) — un nom inventé sera rejeté. Si l'outil a renvoyé une erreur ou « non établi », C'EST LA RÉPONSE : transmettez-la à l'utilisateur et ne la substi
law_query972 tokUne requête LawQL déterministe sur le CLIR d'une formalisation : une question sur le modèle de l'acte lui-même, pas sur une affaire. Relations (14) : anchors, edges, fields, imports, interpretations, labels, links, literals, nodes, norms, positions, rules, variables, windows. Listes des champs : `law query --schema`. Fonctions (9) : anchor/1, labels/1..2, short/1, contains/2, overlaps/2, starts_with/2, ends_with/2, position/2, derivation/2. exists/not exists sur une variable liée ; égalité et appartenance seulement, sans arithmétique ni comparaisons d'ordre. Périmètre : corpus par package.name
law_packages826 tokLe catalogue du droit formalisé : actes, prédicats avec signatures, frontières de couverture. C'est d'ici que viennent les NOMS des prédicats — ils ne doivent jamais être inventés. Mais ne commencez PAS par le catalogue pour trouver le bon acte : l'aperçu est vaste, et le titre d'un acte coïncide rarement avec les mots d'une question (« Newton's laws of motion » ne contient pas le mot « physics »). Une question dans vos propres mots va d'abord à law_search, qui renvoie des adresses ; le catalogue sert à la signature exacte de ce que vous avez trouvé. Sans arguments — l'aperçu : une ligne par a
law_prepare_answer550 tokÀ la demande explicite de l'utilisateur, répéter entre 1 et 12 appels law_ask ou law_process_run antérieurs, comparer strictement leurs replayControl, et préparer un document figé non public pour 24 heures. Le client ne fournit jamais la réponse machine : le serveur ne l'obtient qu'en exécutant à nouveau. Un écart dans une entrée, dans le droit, dans une ressource, dans le code du serveur, dans la bibliothèque du moteur ou dans le résultat rejette le document entier.
law_case_ask540 tokL'opération ask : exécuter une affaire enregistrée d'un paquet-affaire sur ses dépendances épinglées et renvoyer la réponse : par défaut une projection du document d'évaluation sans graphe de preuve, avec responseMode full ou proof: true le document canonique avec une preuve et un manifeste. La question est du JSON selon query.schema.json (query), une chaîne evaluate (evaluate + queryId), un queryId enregistré sans query, ou card + args. Un refus de préparation est une erreur avec un code LDC-*, jamais une réponse vide.
law_inspect483 tokInspecteur d'évaluation sur un document d'évaluation ENREGISTRÉ : summary — la fiche d'origine, la vérification de resultHash et de l'instantané, les listes de résultats, de positions et d'issues ; slice — la clôture des nœuds de preuve pour une question, une règle, une position ou un nœud avec leurs adresses, les deux côtés de BOTH, les défaites, les valeurs, les noms résolus d'après l'instantané ; diff — ce qui a changé entre deux documents aux niveaux du contexte, du résultat et de la justification ; locate — la déclaration par StableId. Rien n'est évalué ni recalculé : la source est evalua
law_sources399 tokSources : par défaut de courts extraits (view=summary), 5 textes par page, avec l'adresse du texte complet dans fragments[].full. package ou fragment est requis (un StableId issu de law_search/law_rules). view=full renvoie des parties exactes du texte : textRange fixe une plage de caractères Unicode, fragments[].next est la continuation avec un contentHash. L'empreinte se rapporte à la source ENTIÈRE, non à l'extrait ni à la partie. textOffset/textLimit exigent fragment ; une continuation exige contentHash. Les listes sont paginées avec offset/limit ; le budget de réponse peut réduire une page
law_rules383 tokLes règles du droit formalisé mises en mots : comment exactement un prédicat est dérivé (prémisses, articles sources). Appelez ceci AVANT de fournir des faits à law_ask — les règles disent quels faits sont nécessaires au lieu de les laisser à inventer. Pour les grands actes, package=… renvoie une table des matières ; le texte complet vient de predicate=…. La liste par paquet est paginée : limit (20 par défaut, 500 au plus) et offset ; le reste est nommé dans le texte (`showing a–b of N; k more`) et dans structuredContent (total, truncated, next — un appel de continuation tout prêt).
law_explain374 tokDéplier la preuve d'une réponse law_ask en une chaîne « règle ← prémisses → conclusion ». L'entrée compacte : question (les arguments law_ask d'origine, truth/collect), resultHash et codeHash issus de la provenance de la réponse. Le serveur répète le calcul et compare les empreintes ; si quelque chose a changé, il refuse explicitement. Autrement, passer l'évaluation de law_ask(proof=true). answerResource=fullAnswer.uri explique un instantané compact stocké sans recalcul et sans que le client charge des pages ; par défaut seulement la chaîne proofRef. nodeId sélectionne un nœud et toutes ses pr
law_screen317 tokConstruire une condition nécessaire — un surensemble — pour la présélection de lignes d'une source externe. Ce n'est PAS une réponse juridique et PAS du SQL : le résultat est un arbre typé et un manifeste des extensions jusqu'à TRUE. Chaque ligne qui passe doit ensuite être calculée en entier par le moteur, avec un graphe de preuve, sur le même instantané des données. Le binding est passé comme objet épinglable ; sourceSchemaContentHash est l'empreinte réelle du schéma source et est comparée bruyamment avec l'épingle. Les faits d'affaire qui portent une provenance (origin, document, citation,
law_search270 tokUne RECHERCHE sémantique sur le droit formalisé : une question ou une notion dans vos propres mots → des candidats avec adresses — prédicats avec signatures, règles, fragments d'articles. C'est la couche de DÉCOUVERTE, non de la réponse : le résultat dit QUOI demander ensuite (law_ask par signature, law_rules, law_sources) et n'établit ni un fait ni une norme. Le classement est un embedder lexical déterministe, et la similarité de texte n'est pas l'applicabilité d'une norme. Si vous connaissez le nom exact, allez directement à law_packages/law_ask ; un résultat vide ne signifie PAS que la norm
law_passport190 tokPasseport d'une publication exacte : objet, interface, frontières, contrôles et performance. La section reports conserve l'historique des mesures, y compris les échecs. Les enregistrements sont paginés par JSON Pointer ; next poursuit la réponse.
law_revoke_answer91 tokRévoquer un document publié au moyen de son secret distinct. L'identifiant public à lui seul ne donne aucun contrôle ; la révocation ferme la page HTML, l'API et le téléchargement.
law_capture_answer82 tokExécuter un producteur enregistré et obtenir producerControl/0.2 pour une préparation ultérieure vérifiable d'une Lens. Le producteur n'est choisi que dans le registre livré.
law_answer_capabilities73 tokUne matrice lisible par machine des producteurs Lens réellement installés, des contrôles replay/projection, des profils, des limites et des tests de contrat qui les confirment. declared_only désigne un schéma sans témoin exécutable.
law_publish_answer73 tokPublier un document préparé. La répétition avec le même preparationId renvoie de façon idempotente la même URL et le même secret de révocation distinct.
Security signals
97/100 — no known issues found as of 2026-10-19, from the checks below. This is not a guarantee of safety; review what a server can do before connecting it.
Deductions
- No security policy (SECURITY.md)-3
Checks
- ✓Repository hygiene (archived, activity, license, security policy)
- ✓Tool descriptions (prompt-injection and hidden-text heuristics)
- ○Package metadata (install scripts, provenance) — pending
- ○Source scan (secrets, CVEs, risky code) by vectra-guard — pending
Scan it yourself before installing with vectra-guard, the open-source agent security CLI. Scoring rules
Freshness
Active — last maintenance signal 4d ago. The newest of the signals below sets the band.
Last commit (default branch)
2026-10-14 · 4d ago · GitHub
Latest release
2026-10-12 · 6d ago · GitHub · law-package-tools@0.3.0
Package published
no data · npm/PyPI
Registry entry updated
2026-10-14 · 4d ago · official registry · v0.1.1
FAQ
›How do I install the French family benefits (CNAF corpus) MCP server in Claude Code?
Run: claude mcp add cnaf -- npx -y @arxo/mcp-cnaf. For Cursor, VS Code, Claude Desktop and Windsurf, use the install tabs above.
›Does French family benefits (CNAF corpus) require an API key?
No required environment variables are declared in its published metadata.
›Can I use French family benefits (CNAF corpus) as a remote (hosted) MCP server?
Yes — it offers both a hosted endpoint and a local stdio package.
›Is French family benefits (CNAF corpus) in the official MCP registry?
Yes, as io.arxo/cnaf.
›How many tokens does French family benefits (CNAF corpus) add to my context?
Its tool definitions total about 9,139 tokens, resent on every turn.
Sources and method
- Official MCP Registry entry
- updated 2026-10-14
- GitHub repository
- fetched 2026-10-19
- Package registry (npm / PyPI)
- listed
- Tool list (tools/list), measured by us
- 2026-10-19
- Security signals, computed by us
- 2026-10-19
- Last checked against all sources
- 2026-10-19
The description, packages and links come from the maintainer's own published metadata. Token cost, security signals, freshness and the reading above are MCPSkillHub's own measurements; see the methodology. Spot an error? Request a correction or claim the listing.