Australian Law

Leia a lei da Commonwealth australiana como estava em qualquer data desde 1901 e verifique citações de estatutos no Registro Federal oficial de Legislação. Sem chave de API.

Documentação

australian-law-mcp

Servidor MCP para o Federal Register of Legislation. Pergunte o que a lei australiana dizia em qualquer data e verifique citações no registro oficial antes de confiar nelas. Sem chave de API, sem necessidade de cadastro.

Tudo é servido ao vivo pela própria API de legislação da Commonwealth: mais de 130.000 leis e instrumentos legislativos, todas as compilações de cada um, desde 1901. Esse registro é a fonte autorizada do direito da Commonwealth e publica versões ponto-no-tempo nativamente — então get_law_as_at retorna o texto que estava realmente em vigor na data que você indicar, não uma reconstrução.

Início rápido

Claude Code:

claude mcp add australian-law -- npx -y australian-law-mcp

Claude Desktop, Cursor ou qualquer outro cliente MCP stdio:

{
  "mcpServers": {
    "australian-law": {
      "command": "npx",
      "args": ["-y", "australian-law-mcp"]
    }
  }
}

Requer Node 20 ou mais recente. Nada mais para instalar — npx busca o pacote na primeira execução.

Existe um Dockerfile se você preferir não ter Node no host. O servidor fala stdio, então o contêiner precisa de -i:

docker build -t australian-law-mcp .
docker run -i --rm australian-law-mcp

Ferramentas

ferramentao que faz
search_lawEncontra leis e instrumentos por nome. Retorna os ids de título que as outras ferramentas usam.
get_law_textA compilação atual: a tabela de disposições, uma seção ou o texto completo paginado. Anexos também são endereçáveis (section="Schedule 7"), que é onde tabelas de tarifas e formulários realmente ficam.
get_law_as_atO mesmo, mas como a lei estava em qualquer data passada.
verify_citationsExtrai citações de estatutos do texto e verifica cada uma no registro: a lei existe, está em vigor, a seção citada existe. Falhas upstream retornam como UNVERIFIED, nunca como lei inexistente.
get_amendment_statusEm vigor ou revogada, o que a compilação mais recente incorpora, se emendas iniciadas ainda não foram incorporadas e o que a alterou.
compare_versionsO que mudou entre duas datas: seções adicionadas, removidas, reformuladas — ou um diff de linhas de uma seção.
search_full_textBusca classificada por relevância no texto completo de cada título do registro.
check_frl_healthFaz ping na API do registro para que falhas em outros lugares possam ser atribuídas.

docs/tools.md tem os parâmetros e um exemplo prático de cada uma, incluindo o que cada ferramenta faz quando não consegue responder.

Por que ponto-no-tempo importa

Disputas tributárias, decisões de visto, contratos e processos judiciais dependem da lei como estava em um dia passado, e os modelos respondem de forma confiável com a lei de hoje em vez disso. O registro mantém cada compilação com janelas exatas de vigência:

get_law_as_at titleId=C2004A03348 date=2017-01-05 section=3A
→ As at 2017-01-05: Income Tax Rates Act 1986, Compilation No. 48
  s 3A  Working holiday makers and working holiday taxable income ...

E verify_citations é a proteção para a outra direção — modelos inventando seções que nunca foram promulgadas:

verify_citations text="See s 3A and s 999 of the Income Tax Rates Act 1986."
→ [OK] Income Tax Rates Act 1986 [C2004A03348] — in force.
    [OK] s 3A exists: "Working holiday makers and working holiday taxable income"
    [NOT FOUND] s 999 — Provision 999 was not found in this compilation. It has
      28 sections and 6 schedules. Closest by number: s 30, s 29, s 28

Uma lei real reportada como inexistente é a pior falha que uma ferramenta como esta pode ter, então erros de rede e API são sempre reportados como UNVERIFIED em vez de NOT FOUND, e uma seção só é verificada contra uma lei quando a citação realmente vincula as duas.

A mesma regra rege o próprio texto. O registro publicou em três formatos diferentes desde 1901, e o mais antigo deles — digitalizações originais de leis da era da federação — não traz nenhuma marcação estrutural, apenas a numeração na prosa. Esses são lidos a partir de sua própria numeração, e o resultado só é aceito quando os números de seção recuperados seguem em ordem a partir da seção 1. Quando não seguem, a ferramenta diz que a compilação não pôde ser lida em vez de reportar uma lei sem seções ou arquivar as palavras de uma seção sob o número de outra.

Escopo

Somente legislação da Commonwealth, por design. Registros estaduais ou não têm API aberta (Vic), ficam atrás de desafios anti-bot (NSW) ou exigem registro (Qld). Bancos de jurisprudência (AustLII, Jade) não permitem acesso automatizado, então não há ferramenta de jurisprudência. Decisões da ATO não são acessíveis por máquina. Se qualquer uma dessas coisas mudar, o escopo pode crescer.

Fonte de dados e licença

O conteúdo legislativo vem da API do Federal Register of Legislation e é licenciado CC BY 4.0 pela Commonwealth da Austrália; toda resposta que reproduz conteúdo do registro carrega a atribuição exigida pelo registro. Este projeto é independente: não é afiliado nem endossado pelo Office of Parliamentary Counsel nem pelo Governo Australiano. A saída é informação jurídica, não aconselhamento jurídico — a versão autorizada de qualquer lei é a publicada no registro.

O código é MIT.

Desenvolvimento

npm install
npm test                        # build + unit tests (offline)
node scripts/smoke.mjs          # live API smoke test
node scripts/protocol-test.mjs  # stdio round trip against the live API