Fr Legifrance

liveLegalScienceDeveloper

France's Légifrance API via the state's PISTE gateway — the parts @pipeworx/france-legi does NOT already cover. france-legi serves the consolidated codes from the DILA LEGI bulk base; this pack is everything else on the same API: the Journal officiel (JORF), collective-bargaining agreements (KALI), Conseil d'État / administrative case law (CETAT, i.e. the JADE dataset), Constitutional Council decisions (CONSTIT), and a search that spans all of them plus circulaires (CIRC), company-level collective agreements (ACCO) and CNIL decisions (CNIL).

4tools
0msauth
free tier50 calls/day

Tools

fr_legifrance_text

Read one full text by id from fr_legifrance_search's results: a JORFTEXT (Journal officiel), KALITEXT/KALIARTI/KALICONT (collective agreement text/article/container), CETATEXT (Conseil d'État decision

No parameters required.

▶Try it
fr_legifrance_journal_officiel_recent

List the most recently published issues of the Journal officiel de la République française, each with its id, publication date, JO number and the texts it contains. A text id inside an issue can be re

No parameters required.

▶Try it
fr_legifrance_convention_collective

Resolve a collective-bargaining agreement by its IDCC number (e.g. "1261") to its title, scope and the KALITEXT ids of its base texts — the entry point for KALI when you have an IDCC rather than a raw

No parameters required.

▶Try it

Test with curl

The gateway speaks JSON-RPC 2.0 over HTTP POST. You can test any pack directly from the terminal.

List available tools
bash
curl -X POST https://gateway.pipeworx.io/fr-legifrance/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Call a tool
bash
curl -X POST https://gateway.pipeworx.io/fr-legifrance/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"fr_legifrance_search","arguments":{}}}'

Use with the SDK

Install @pipeworx/sdk to call tools from any TypeScript/Node project.

TypeScript
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("fr_legifrance_search", {});
ask_pipeworx
// Or ask in plain English:
const answer = await px.ask("france's légifrance api via the state's piste gateway — the parts @pipeworx/france-legi does not already cover");