Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Descripción del creador (original en inglés)
French family-benefit models (CNAF corpus) as executable rules with sources; independent demo
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Funciona en Claude para web, escritorio y móvil:
https://mcp.arxo.io/mcp/cnafAbre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"cnaf": {
"command": "npx",
"args": [
"-y",
"@arxo/mcp-cnaf"
]
}
}
}Ejecuta esto en tu terminal
claude mcp add --transport http cnaf https://mcp.arxo.io/mcp/cnafclaude mcp add cnaf -- npx -y @arxo/mcp-cnafPégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"cnaf": {
"url": "https://mcp.arxo.io/mcp/cnaf"
}
}
}Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"cnaf": {
"command": "npx",
"args": [
"-y",
"@arxo/mcp-cnaf"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"cnaf": {
"type": "http",
"url": "https://mcp.arxo.io/mcp/cnaf"
}
}
}Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"cnaf": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@arxo/mcp-cnaf"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
ChatGPT solo se conecta a servidores en internet:
https://mcp.arxo.io/mcp/cnafLos nombres de los menús pueden variar un poco según el plan y con el tiempo.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Todavía no hemos leído la lista de herramientas de este servidor; revisamos los endpoints por turnos.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026
El nombre en el registro se verificó con el dominio arxo.io (el registro comprueba quién es dueño del dominio)
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Aún sin revisar; revisamos los endpoints por turnos
Aún sin revisar; revisamos los endpoints por turnos
Aún sin revisar; leemos la lista de herramientas cuando revisamos el endpoint
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Funciona de las dos formas: instálalo en tu computadora o conéctate a la versión en la nube.
El repo de GitHub cambió por última vez –, y la última versión (0.1.1) llegó al registro hace 23 días.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. Se conecta por URL, así que también funcionan las apps que aceptan servidores MCP remotos, como ChatGPT en modo desarrollador.
En la misma categoría: Spec Driven Development, Remote Desktop Commander, sync. labs
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Lipsync videos, dub them into other languages, make talking videos and open sync. Studio.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
Explore French benefit rules as executable models, and trace their answers back to published legal sources.
[Explore the demo](https://french-benefits.law.arxo.io/) · [Run an example](#quick-start) · [Read the book](https://books.arxo.io/)
First of all, a demonstration. This repository shows what modelling legislation with Arxo can do:
French family-benefit law written as executable canons, with the source of every answer. It is an
independent model built from published French law for teaching and demonstration. It does not claim
legal accuracy or completeness, it is not an implementation by or for the Cnaf or any French
authority, and its answers are not legal advice. For a real file, rely on the official texts and the
competent bodies.
| I want to… | Start here |
|---|---|
| Explore saved cases and their sources in a browser | French Benefits Lab — no installation |
| Use a model from JavaScript or TypeScript | Node.js package |
| Run a local MCP with npx, connect a client or deploy independently | CNAF MCP — stdio, connection and pinned image |
| Run a scenario on my machine | Quick start |
| Find the model for a benefit | Browse the models |
| Reproduce a chapter of the book | Book examples |
| Rebuild a package or check the registry | Reproducibility guide |
*French Benefits Lab, captured on 12 October 2026. Open the demo and choose “Explore a saved family case” to inspect its inputs, answer and French sources. The lab presents its own recorded evidence release; its coverage and version are separate from this repository's export.*
| Question | Explore a concrete example |
|---|---|
| How does a selected reading change the amount? | One APL case, two readings |
| Why is an answer withheld? | The same APL case without a selected reading |
| Where do an amount and its parameters come from? | Follow an instruction to a saved calculation |
| What changes between two legal dates? | Compare saved dates in the lab |
| Which facts, duties and stages does a case involve? | Browse the book's fictional case files |
The browser examples belong to the lab's recorded release. The local APL example below belongs to this repository's pinned model.
Node.js 20+. The pinned models are available as @arxo/canon-fr-benefits. Load one world and ask it through the common @arxo/law API:
npm install @arxo/law@0.4.2 @arxo/canon-fr-benefits@0.1.1
import { open } from '@arxo/law';
import { loadModel } from '@arxo/canon-fr-benefits/apl'; import { household, caseInput } from '@arxo/canon-fr-benefits/examples/apl';
const model = await loadModel(); const apl = await open(model.spec, { offline: true, local: { packages: { [model.spec]: model.package } }, }); const answer = await apl.collect('aide_formule', [household, '?amount'], caseInput); console.log(answer.evaluationStatus); // COMPUTED console.log(answer.value[0].value); // '20.17' (EUR, formula amount) console.log(apl.unfold('aide_formule', { depth: 2 }).text);
The input is the technical APL case below, with PpPlancherFinal selected. The answer includes the engine's canonical document, proof and hashes. This is a formula amount, not a final payable benefit. The package contains all 21 models; loading a subpath parses only the selected world.
Package API, model exports, TypeScript and verification limits. For maintainers: how to ship a canon with several models. Source models are pinned to the original public export; npm delivery checks are separate from full corpus acceptance, which remains not checked.
You need Git, Node.js 20+ and npm. This example uses the released `law` 0.2.2 command-line tool, which executes the models. The package already includes its pinned dependency; no Python, source restoration or registry installation is needed for this scenario.
npm install -g @arxo/cli@0.2.2
law --version
git clone https://github.com/arxohq/arxo-cnaf.git cd arxo-cnaf/packages/fr.apl
law test . --file tests/finish-lecture-pp.lawtest --json
This runs seven scenarios about the personal contribution in housing aid (article D. 823-17). Success means the command exits with code 0 and the JSON report records no failed scenarios. These are checks against the model's declared expectations, not certification of legal accuracy. The successful report includes these fields:
{"ok": true, "passed": 7, "failed": 0, "notRun": 0, "total": 7}
What to explore next: compare the readings, then open the scenario file.
Need help getting started? See Troubleshooting.
The model records two readings of the personal contribution in article D. 823-17. The choice enters at SensMinimumPp, an interpretation group that requires exactly one of PpPlancherFinal or PpLitteral.
The scenario fixes a single person with no dependants, zone II in metropolitan France, legal date 15 June 2024, supplied resources of €4,000 and zero rent. It also supplies ordinary housing, sole tenancy, zero solidarity rent reduction and no AAH/AEEH beneficiary. Zero rent deliberately isolates the reading difference; this is a technical probe, not a realistic aid claim.
The pinned parameters used in this probe are P0 = €37.91, Tp = 0.0283, R0 = €5,186, L = €0 and C = €58.08.
| Selected reading | Personal contribution Pp | Formula amount Af |
|---|---|---|
PpPlancherFinal — keep a final floor at P0 | €37.91 | €20.17 |
PpLitteral — apply the formula without that final floor | €4.3462 | €53.7338 |
| No reading selected | INTERPRETATION_REQUIRED | INTERPRETATION_REQUIRED |
Both readings feed the same participation_personnelle relation. The same AideFormule rule then uses Af = L + C − Pp. These are exact formula amounts in the probe; neither is presented as the final payable benefit. The model leaves the choice explicit rather than selecting a reading for you.
This is the native unfold response for aide_formule, rendered as a tree from the published fr.apl@0.1.0 world. Each rule exposes its premises, strength and source anchors. The two contribution producers are both visible: ParticipationPersonnelle and ParticipationPersonnelleLitterale.
*No case, legal date or reading is selected. This shows the model's available rules, not which rules applied to a particular answer. The depth-limit markers come from the engine. Repeated article locators are grouped visually; the JSON retains every dated source anchor.*
Full native JSON · Native text and labels · Reproduce these trees
Follow the map in the actual model:
| Step | Inspect |
|---|---|
| Source references and captured publications | 01-sources.law — CCH_D823_17, CCH_D823_16 and their dated versions |
| Selection and literal branch | 24-lecture-pp.law — SensMinimumPp, ParticipationPersonnelleLitterale |
| Final-floor branch and downstream formula | 02-calcul-locatif.law — ParticipationPersonnelle, AideFormule |
| Both readings and the missing-selection check | finish-lecture-pp.lawtest — the seven scenarios run in the Quick start |
The same view for droit_ouvert shows a defeasible opening rule alongside its exception rules (defeater). Expanding surface_insuffisante exposes its own producers and an exception to that condition. fact, derived, judgment and test are distinct kinds of premise in the native response.
*This is a map of declared rule structure across the published world, not an eligibility finding for a person. No case, date or reading is selected.*
Full native JSON · Native text and labels · Declared exception scenarios
Published text → executable rules → dated case facts → answer and evidence.
A canon is a package containing a legal model, its source references and checks. A scenario supplies facts, dates and any selected interpretation, then states the expected answer. A pinned source is a captured publication identified by its provenance and a content hash, so the model's input can be checked later.
The rules are data in .law files, executed by law. This repository carries no separate implementation of the benefit formulas in application code. Models have individual scope and date boundaries; read a package's source and scenarios before applying its answers to a different case.
| This snapshot | Recorded value and evidence |
|---|---|
| Subject | French benefit models, including housing, family, disability, care and income support; each package has its own scope |
| Canon export | 12 October 2026 · public source revision f2efcc6 |
| Source packages and scenarios | 21 packages · 1,985 declared scenarios · packages.json |
| Model semantics | law.core/0.2.11 · fr.apl/law.lock |
| CLI for the Quick start | Released law 0.2.2; expected report: 7 passed, 0 failed |
| Registry publications | 22 packages including the dependency closure · reproducibility guide |
The names below identify the subject of each model, not a claim of complete coverage of that benefit. The version and scenario inventory records the exported package versions and dependency counts.
| Subject | Model |
|---|---|
| Housing aid (APL / AL) | fr.apl |
| Housing-aid payment stage | fr.apl.versement |
| Income used for housing aid | fr.tax.income_for_apl |
| Subject | Model |
|---|
| Family allowances (AF) | [`fr.
Solo se muestra el principio; lee el resto en el repo