Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
French family-benefit models (CNAF corpus) as executable rules with sources; independent demo
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ใช้ได้ทั้ง Claude บนเว็บ แอปคอมพิวเตอร์ และมือถือ:
https://mcp.arxo.io/mcp/cnafเปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"cnaf": {
"command": "npx",
"args": [
"-y",
"@arxo/mcp-cnaf"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add --transport http cnaf https://mcp.arxo.io/mcp/cnafclaude mcp add cnaf -- npx -y @arxo/mcp-cnafวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"cnaf": {
"url": "https://mcp.arxo.io/mcp/cnaf"
}
}
}วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"cnaf": {
"command": "npx",
"args": [
"-y",
"@arxo/mcp-cnaf"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"cnaf": {
"type": "http",
"url": "https://mcp.arxo.io/mcp/cnaf"
}
}
}วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"cnaf": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@arxo/mcp-cnaf"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ChatGPT ต่อได้เฉพาะ server ที่อยู่บนอินเทอร์เน็ต:
https://mcp.arxo.io/mcp/cnafชื่อเมนูอาจต่างกันเล็กน้อยตามแพ็กเกจและรุ่นของแอป
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
ยังไม่ได้อ่านรายการเครื่องมือของตัวนี้ เราตรวจ endpoint ทีละชุดวนไป
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันโดเมน arxo.io แล้ว (registry ตรวจความเป็นเจ้าของโดเมน)
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป
ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป
ยังไม่ได้ตรวจ เราอ่านรายการเครื่องมือตอนตรวจ endpoint
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
ได้ทั้งสองแบบ จะลงในเครื่องหรือต่อผ่านคลาวด์ก็ได้
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.1) เข้า registry 23 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Whisper
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
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.
One routable IPv6 per AI agent, verifiable from the DNS root. Keyless tools need no signup.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
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.
ตัดมาแค่ช่วงต้น อ่านต่อใน repo