Legifrance
Consulte bancos de dados jurídicos franceses usando a API Legifrance.
Documentação
mcp-server-legifrance
Servidor MCP Model Context Protocol experimental que permite consultar as bases jurídicas francesas por meio da API Legifrance em LLMs compatíveis como Claude.
Descrição
Este projeto implementa um servidor MCP que permite acessar os recursos jurídicos franceses (textos legais, códigos, jurisprudência) diretamente de um Large Language Model. Ele facilita as pesquisas jurídicas ao tornar os dados da Legifrance acessíveis por meio de ferramentas interativas.
Ele segue a criação do pacote pylegifrance.
O que é o MCP?
O Model Context Protocol (MCP) é um protocolo padronizado desenvolvido pela Anthropic que permite que modelos de linguagem como Claude interajam de forma estruturada com ferramentas e serviços externos. Trata-se de um avanço interessante na interoperabilidade dos LLMs, pois estabelece um quadro comum para a troca de dados e a execução de funções entre os modelos e APIs de terceiros. Até agora, era necessário desenvolver, para cada serviço, chamadas de funções específicas.
A interoperabilidade via MCP
A importância do MCP reside na sua capacidade de criar uma interface padronizada entre os LLMs e os sistemas externos. Essa padronização apresenta várias vantagens:
-
Arquitetura modular: Os desenvolvedores podem criar ferramentas especializadas que são facilmente integráveis a diferentes LLMs compatíveis com o protocolo.
-
Segurança aprimorada: O MCP limita o acesso dos modelos apenas às funcionalidades explicitamente definidas, reduzindo assim os riscos de segurança.
-
Manutenção simplificada: As atualizações das ferramentas externas podem ser feitas independentemente do modelo, facilitando a evolução dos sistemas.
-
Extensão das capacidades: Os LLMs podem acessar dados em tempo real e executar operações complexas que não conseguiriam realizar sozinhos.
mcp-server-legifrance?
A ideia é explorar o poder dos modelos de linguagem como Claude para realizar processamentos sobre conteúdos jurídicos oficiais via Legifrance e, futuramente, outras bases de dados públicas como o RNE, o BODACC, etc. Os primeiros resultados são muito promissores e permitem superar algumas limitações da pesquisa estatística clássica oferecida pela Legifrance. O serviço está em melhoria contínua, mas você já pode consultar alguns exemplos de pesquisas abaixo.
O servidor suporta as seguintes funcionalidades:
- Pesquisa em textos legais (leis, decretos-leis, decretos, portarias)
- Consulta de artigos de códigos jurídicos franceses
- Pesquisa na jurisprudência judicial
Os outros fundos da Legifrance serão implementados em breve.
Se você deseja acessar diretamente a API Legifrance para conectar seu próprio servidor MCP, é por aqui: https://lab.dassignies.law ou linkedin
Pré-requisitos
- Python 3.9+
- Chave de API para Legifrance (a ser obtida junto a lab.dassignies.law)
- Um modelo compatível com o protocolo MCP (como Claude desktop)
Instalação
- Crie um ambiente virtual e ative-o:
python -m venv venv
source venv/bin/activate # Sur Windows: venv\Scripts\activate
uv venv .venv
source .venv/bin/activate # Sur Windows: venv\Scripts\activate
- Instale via pip:
pip install git+https://github.com/rdassignies/mcp-server-legifrance.git
- Instale via uv
uv pip install git+https://github.com/rdassignies/mcp-server-legifrance.git
- Crie um arquivo
.envna raiz do projeto com suas credenciais:
DASSIGNIES_API_KEY=votre_clé_api
DASSIGNIES_API_URL=https://lab.dassignies.law/api/ # ou l'URL correspondante
Para obter suas chaves de API de teste, entre em contato comigo via LinkedIn
Uso
Integração com Claude
É a integração mais "simples".
- Use o seguinte arquivo de configuração para integrar o servidor MCP ao Claude Desktop. Para encontrar esse arquivo, vá em configurações>Desenvolvedor>modificar a configuração (encaminha para o arquivo de configuração no formato .json).
Também existe um procedimento via linha de comando usando uv que será documentado posteriormente.
Aqui está um exemplo de uso:
{
"mcpServers": {
"legifrance": {
"command": "<CHEMIN_VERS_VOTRE_REP>/mcp-server-legifrance/venv/bin/python",
"args": [
"<CHEMIN_VERS_VOTRE_REP>/mcp-server-legifrance/src/server.py"
]
}
}
}
- Inicie o Claude desktop, você deve ver ícones de ferramentas aparecerem:

Ferramentas disponíveis
1. rechercher_dans_texte_legal
Pesquisa artigos em textos legais (leis, decretos-leis, decretos, portarias).
Parâmetros:
- text_id: Identificador do texto (ex: "78-17" para a lei de informática e liberdades)
- search: Palavras-chave ou número do artigo
- champ: Área de pesquisa ("ALL", "TITLE", "TABLE", "NUM_ARTICLE", "ARTICLE")
- type_recherche: Modo de pesquisa ("TOUS_LES_MOTS_DANS_UN_CHAMP", "EXPRESSION_EXACTE", "AU_MOINS_UN_MOT")
- page_size: Número de resultados (máx. 100)
Para detalhes, cf https://lab.dassignies.law/api/docs
Exemplo: Para pesquisar o artigo 7 da lei 78-17:
{
"text_id": "78-17",
"search": "7",
"champ": "NUM_ARTICLE"
}
2. rechercher_code
Pesquisa artigos nos códigos jurídicos franceses.
Ex.: "Escreva para mim uma síntese sobre o regime jurídico do PACS"
Parâmetros:
- search: Termos de pesquisa
- code_name: Nome do código (ex: "Code civil", "Code du travail")
- champ: Área de pesquisa
- sort: Ordenação dos resultados
- type_recherche: Modo de pesquisa
- page_size: Número de resultados
- fetch_all: Se todos os resultados devem ser recuperados
Exemplo: Para pesquisar informações sobre o PACS no Código Civil, o modelo de linguagem enviará a seguinte consulta:
{
"search": "pacte civil de solidarité",
"code_name": "Code civil"
}
Para detalhes, cf https://lab.dassignies.law/api/docs
3. rechercher_jurisprudence_judiciaire
Pesquisa na base de jurisprudência judicial. Pode-se usar o poder dos modelos de linguagem para fazer pesquisas de jurisprudência diretamente na Legifrance.
Exemplo 1 Panorama das últimas jurisprudências sobre um tema específico (ex.: "Encontre as últimas jurisprudências sobre a ruptura brusca das relações comerciais estabelecidas e elabore para mim uma tabela de síntese").
Exemplo 2 A partir de uma decisão específica conhecida (número de recurso 23-23.382), pode-se fazer análises por etapas:
- Encontra-se o acórdão e Claude gera a ficha do acórdão
- Pede-se para extrair os artigos citados e encontrá-los na Legifrance
- Pede-se para encontrar jurisprudências semelhantes
- etc...
Parâmetros:
- search: Termos ou número do processo
- publication_bulletin: Se publicado no boletim ["T"] ou não ["F"]
- sort: Ordenação dos resultados
- champ: Área de pesquisa
- type_recherche: Modo de pesquisa
- page_size: Número de resultados
- fetch_all: Se todos os resultados devem ser recuperados
- juri_keys: Campos de resposta a extrair
- juridiction_judiciaire: Lista das jurisdições
Para detalhes, cf https://lab.dassignies.law/api/docs
Prompts predefinidos
O servidor pode incluir prompts predefinidos para facilitar o uso. Por enquanto, apenas um prompt foi implementado como exemplo. É possível criar prompts muito mais detalhados, especialmente para realizar operações do tipo deepsearch ou extrações em vários documentos...
agent_juridique_expert
Cria um agente jurídico especialista que:
- Cita sistematicamente suas fontes
- Usa as ferramentas relevantes para pesquisar informações
- Fornece análises passo a passo
- Inclui links oficiais para os textos jurídicos
Uso:
# Exemple d'utilisation du prompt prédéfini
response = client.messages.create(
model="claude-3-opus-20240229",
max_tokens=1000,
tools=tools,
messages=[
{
"role": "user",
"content": [
{
"type": "tool_use",
"id": "prompt_use_1",
"name": "legifrance.get_prompt",
"input": {
"prompt_name": "agent_juridique_expert",
"inputs": {
"question": "Quelles sont les conditions de validité d'un contrat de mariage?"
}
}
}
]
}
]
)
Limitações
- As consultas são limitadas a 10 por segundo para respeitar os limites da API
- Uma conexão com a internet é necessária para acessar as bases jurídicas
- O servidor não armazena resultados em cache; cada consulta interroga a API
Contribuição
Contribuições são bem-vindas! Abra uma issue ou envie um pull request para qualquer melhoria ou correção.