Skip to main content
Glama

australian-law-mcp

Federal Register of Legislation용 MCP 서버입니다. 특정 날짜에 호주 법률이 어떻게 규정했는지 질문하고, 공식 등록부를 기준으로 인용을 확인한 후에 의존하세요. API 키도, 가입도 필요 없습니다.

모든 것은 연방 정부의 자체 법률 API에서 실시간으로 제공됩니다: 13만 개 이상의 법률 및 입법 문서, 각각의 모든 통합본이 1901년까지 거슬러 올라갑니다. 그 등록부는 연방법의 공인 출처이며, 특정 시점 버전을 기본적으로 제공합니다 — 따라서 get_law_as_at은 지정한 날짜에 실제로 시행 중이던 본문을 반환하며, 재구성된 것이 아닙니다.

빠른 시작

Claude Code:

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

Claude Desktop, Cursor 또는 기타 stdio MCP 클라이언트:

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

Node 20 이상이 필요합니다. 그 외에는 설치할 것이 없습니다 — npx가 패키지를 첫 실행 시 가져옵니다.

호스트에 Node를 두고 싶지 않다면 Dockerfile이 있습니다. 서버는 stdio를 사용하므로 컨테이너에는 -i가 필요합니다:

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

Related MCP server: au-eli-mcp

도구

도구

기능

search_law

이름으로 법률 및 문서를 검색합니다. 다른 도구들이 사용하는 title ID를 반환합니다.

get_law_text

현재 통합본: 목차, 단일 조항 또는 전체 본문을 페이지 단위로 제공합니다. 일정표(Schedule)도 주소 지정이 가능합니다(section="Schedule 7"). 요율표와 서식이 실제로 있는 곳입니다.

get_law_as_at

동일하지만, 과거 특정 날짜에 시행 중이던 법률을 제공합니다.

verify_citations

본문에서 법령 인용을 추출하여 각각을 등록부와 대조합니다: 해당 법이 존재하는지, 시행 중인지, 인용된 조항이 존재하는지 확인합니다. 상위 시스템 오류는 UNVERIFIED로 반환되며, 누락된 법으로 처리되지 않습니다.

get_amendment_status

시행 중인지 폐지되었는지, 최신 통합본이 무엇을 포함하는지, 아직 통합되지 않은 시행 개정이 있는지, 그리고 무엇이 개정했는지 제공합니다.

compare_versions

두 날짜 사이에 무엇이 변경되었는지: 추가된 조항, 삭제된 조항, 수정된 조항 — 또는 단일 조항의 줄 단위 차이를 제공합니다.

search_full_text

등록부에 있는 모든 제목의 본문에 대해 관련성 순위 검색을 수행합니다.

check_frl_health

등록부 API에 ping을 보내 다른 곳의 오류가 API 문제인지 확인합니다.

docs/tools.md에 각 도구의 매개변수와 작업 예시, 그리고 각 도구가 응답할 수 없을 때의 동작이 설명되어 있습니다.

특정 시점이 중요한 이유

세금 분쟁, 비자 결정, 계약 및 법원 사건은 과거 특정 날짜에 시행 중이던 법률에 따라 결정되며, 모델은 종종 오늘의 법률로 답변합니다. 등록부는 정확한 시행 기간과 함께 모든 통합본을 보관합니다:

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 ...

그리고 verify_citations는 반대 방향의 안전장치입니다 — 모델이 존재하지 않는 조항을 지어내는 것을 방지합니다:

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

실제 법이 누락된 것으로 보고되는 것은 이 도구가 가질 수 있는 최악의 오류입니다. 따라서 네트워크 및 API 오류는 항상 NOT FOUND가 아닌 UNVERIFIED로 보고되며, 조항은 인용이 실제로 해당 법과 연결될 때만 그 법에 대해 대조됩니다.

동일한 원칙이 본문 자체에도 적용됩니다. 등록부는 1901년 이래로 세 가지 다른 형식으로 발행되었으며, 그중 가장 오래된 형식 — 연방 시대의 제정 당시 스캔본 — 에는 구조적 마크업이 전혀 없고 조항 번호만 있습니다. 그러한 문서는 자체 번호 체계로 읽히며, 결과는 복원된 조항 번호가 1번부터 순서대로 이어질 때만 수용됩니다. 순서대로 이어지지 않으면, 도구는 법에 조항이 없다고 보고하거나 조항의 내용을 다른 번호에 잘못 배정하는 대신, 통합본을 읽을 수 없다고 말합니다.

범위

설계상 연방 법률만 다룹니다. 주(州) 등록부는 공개 API가 없거나(Vic), 봇 차단 뒤에 있거나(NSW), 등록을 요구합니다(Qld). 판례법 데이터베이스 (AustLII, Jade)는 자동 접근을 허용하지 않으므로, 판례 도구는 없습니다. ATO 규정은 기계 판독이 불가능합니다. 이러한 사항이 변경되면, 범위도 확장될 수 있습니다.

데이터 출처 및 라이선스

입법 콘텐츠는 Federal Register of Legislation API에서 제공되며 호주 연방 정부에 의해 CC BY 4.0으로 라이선스됩니다. 등록부 콘텐츠를 재생산하는 모든 응답에는 등록부가 요구하는 출처 표시가 포함됩니다. 이 프로젝트는 독립적입니다: 호주 의회 법률 사무소(Office of Parliamentary Counsel)나 호주 정부와 제휴하거나 보증하지 않습니다. 출력물은 법적 정보이지 법적 조언이 아닙니다 — 모든 법률의 공인 버전은 등록부에 게시된 것입니다.

코드는 MIT 라이선스입니다.

개발

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

Available Tools

8 tools
check_frl_healthCheck the register APIA
Read-only

Pings the Federal Register of Legislation API and reports latency, so failures elsewhere can be attributed.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds behavioral insight (pings, reports latency, purpose of attribution) beyond annotations. However, it doesn't specify the exact return format or what 'latency' includes, so it's slightly incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the verb 'Pings' and directly stateful. Every word earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter health check, the description communicates the tool's purpose and use case well. However, without an output schema, it would benefit from specifying what 'latency' entails (e.g., milliseconds, status indicator) to fully guide an agent interpreting results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, and schema coverage is trivially 100%. With no parameters to document, the baseline of 4 applies; the description appropriately omits parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool pings the Federal Register of Legislation API and reports latency, which is a specific verb+resource+outcome. It distinguishes itself from sibling data-retrieval tools by focusing on API health rather than legal content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for use as an attribution/diagnostic tool ('failures elsewhere can be attributed'), implying use for health checks. It does not explicitly name alternatives or exclusions, but the sibling list makes the distinction obvious.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_versionsCompare an act between two datesA
Read-only

Shows what changed in an act between two dates: which sections were added, removed or reworded. Give a section number for a line-by-line diff of that provision.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
dateAYesyyyy-mm-dd, the earlier date
dateBYesyyyy-mm-dd, the later date
sectionNo
titleIdYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint and openWorldHint annotations already indicating a safe read operation, the description adds valuable behavioral context by explaining the output nature (sections added/removed/reworded) and the optional line-by-line diff behavior. It does not contradict annotations and provides extra clarity beyond them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the primary purpose and followed by the optional behavior. No redundant wording; every sentence contributes meaningful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core functionality and optional section behavior, which is reasonably complete for a read-only diff tool with no output schema. However, it does not mention what output to expect without a section (summary vs. details) or how it relates to sibling tools like get_amendment_status, leaving slight gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 40%, with only dateA and dateB described. The description clarifies the 'section' parameter ('Give a section number for a line-by-line diff'), but titleId and page remain underspecified. It partially compensates for the coverage gap but leaves key parameter meanings implicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states what the tool does: 'Shows what changed in an act between two dates' with specific detail on the types of changes (added, removed, reworded). It also distinguishes itself by specifying an optional section-level diff, which differs from sibling tools that retrieve single-version text or amendment status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for comparing versions of an act over time, but it does not explicitly state when to use this tool versus alternatives like get_law_as_at or get_amendment_status. It gives context but no exclusions or alternative guidance, leaving the agent to infer the appropriate scenario.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_amendment_statusAmendment status of an actA
Read-only

Reports whether a title is in force, what its latest compilation incorporates, whether commenced amendments are still unincorporated, and which acts have amended it.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleIdYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already indicate read-only and open-world behavior. The description further clarifies exactly what status questions the tool answers, including details about compilation and unincorporated amendments, going beyond the basic annotations. No contradiction with annotations is present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one sentence and front-loaded with the verb 'Reports'. Every listed item adds value and the sentence is free of fluff, repetition, or unrelated background.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description sufficiently covers the tool's purpose and key output dimensions for a simple one-parameter tool. However, it does not clarify the titleId input semantics or what the return structure looks like, which is a mild gap given that no output schema is provided.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter titleId has no schema description, and the tool description does not explicitly explain titleId's value format or scope. The description's repeated use of 'title' makes the parameter's intent inferable, but the tool still relies on the parameter name for meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Reports') and names distinct outcomes: in-force status, latest compilation contents, unincorporated commenced amendments, and amending acts. This clearly identifies the tool's primary function and differentiates it from sibling tools like compare_versions or get_law_text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is provided, nor are alternative sibling tools named. The description implies that this tool is appropriate when amendment/status information is needed, but it does not specify exclusions or preferred alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_law_as_atRead an act as it stood on a dateA
Read-only

Returns the compilation of a Commonwealth act that was in force on the given date — the register keeps every historical version. Same output shape as get_law_text.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesyyyy-mm-dd
fullNo
pageNo
sectionNo
titleIdYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the tool is known to be a safe read operation. The description adds context that the register retains every historical version and that the output shape matches get_law_text, providing useful behavioral details beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, with the core purpose in the first sentence and a cross-reference in the second. It is front-loaded, concise, and free of superfluous text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters and no output schema, the description is incomplete. It does not explain pagination (page), section filtering (section), or the 'full' flag, nor does it define 'compilation' in detail. The reference to get_law_text hints at output structure but does not fully convey the behavior for all parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema coverage only at 20%, the description is expected to explain parameter meanings. It only hints at the 'date' parameter ('on the given date') and does not address 'titleId', 'full', 'page', or 'section'. This leaves agents without guidance for most inputs, failing to compensate for the schema's lack of detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Returns' and the resource 'Commonwealth act' with the specific temporal qualifier 'as it stood on the given date'. It also distinguishes from siblings by noting 'Same output shape as get_law_text', which signals a relationship to a likely current-version tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool—when needing a historical version on a specific date—and contrasts it with get_law_text via 'Same output shape as get_law_text'. However, it does not explicitly state when not to use it or mention alternatives like compare_versions or search_full_text.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_law_textRead the current text of an actA
Read-only

Returns the latest compilation of a Commonwealth act or instrument. Without a section number it lists the table of sections; with one it returns that provision. Set full=true for the whole text, paginated.

ParametersJSON Schema
NameRequiredDescriptionDefault
fullNoReturn the full text instead of the table of sections
pageNo
sectionNoSection number, e.g. "3A" or "90-5"
titleIdYesRegister title id, e.g. C2004A03348

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only and open-world behavior. The description adds meaningful behavioral context: default table of sections, section-specific provision retrieval, and paginated full-text mode. It does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, and the most important information is front-loaded. Every clause contributes meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple and well-annotated, and the description covers default behavior, section mode, and full-text mode. Minor gap: the page parameter's semantics are only implied by 'paginated' and not explicitly tied to request/response mechanics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 75% of parameters but leaves 'page' undocumented. The description explains the interplay of section and full parameters, and 'paginated' hints at the page parameter's purpose, adding value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Returns') and clearly identifies the resource ('the latest compilation of a Commonwealth act or instrument'). It distinguishes itself from siblings like get_law_as_at by emphasizing 'latest' and from search tools by describing structured text retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies this is for current text retrieval, not historical or as-at versions, by saying 'latest compilation.' However, it does not explicitly name alternative tools or state when not to use this tool, so it stops short of full usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_full_textFull-text search across all legislationA
Read-only

Searches the body text of every act and instrument on the register for a phrase, ranked by relevance. Slower and broader than search_law.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
matchNoexact = the phrase verbatim (default), all = every word, any = any word
phraseYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, so the description's 'slower' note adds performance context beyond the annotation. However, it does not mention potential rate limits, result size limitations, or other side effects, which might be relevant given the 'slower' warning. It is not contradictory, but additional transparency could be given.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that directly states the purpose and a key comparative attribute. There is no redundancy or fluff; every word contributes to clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and the presence of annotations (read-only) and a straightforward schema, the description adequately covers the core context. It does not need to explain return values since there is no output schema, and the 'slower and broader' hint provides performance context useful for agent decision-making.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description only explicitly covers the 'phrase' parameter ('for a phrase'), while 'limit' and 'match' are not addressed. The schema partially covers 'match' via its description, but 'limit' is left with no context beyond its name. The description adds some value by stating the search target, but it does not meaningfully enhance understanding of the other parameters, staying at a baseline level.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action (searches) on a specific resource (body text of every act and instrument) and includes a distinct scope (all legislation). It differentiates from siblings like search_law and get_law_text by emphasizing the full-text, cross-document nature and relevance ranking.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly contrasts with the sibling tool search_law by noting it is 'slower and broader', which tells the agent when to prefer this tool over the alternative. It does not provide exhaustive usage scenarios, but the comparative hint is actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_lawSearch Australian legislation by nameA
Read-only

Finds Commonwealth acts and legislative instruments on the Federal Register of Legislation by title. Returns title ids for the other tools. Falls back to full-text matching when nothing matches by name.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYesWords from the title, e.g. "income tax rates"

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint and openWorldHint, and the description adds value beyond that by disclosing that the tool returns title IDs and falls back to full-text matching. This provides practical operational context without contradicting the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences with no wasted words. It front-loads the core purpose and includes only essential additional details about return values and fallback behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a straightforward search tool with two parameters and no output schema, the description fully covers the tool's purpose, return values, and matching behavior. It leaves no critical gaps for an agent to understand when and how to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes the query parameter with an example ('income tax rates'), covering 50% of parameters. The description reinforces the 'by title' semantics but does not add significant new meaning for the limit parameter, making the guidance adequate yet not exceptional.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'Finds Commonwealth acts and legislative instruments on the Federal Register of Legislation by title', using a specific verb and resource. It distinguishes itself from the sibling search_full_text by noting it searches by title and falls back to full-text matching.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context, explaining that it returns title ids for other tools and falls back to full-text when name matching fails. However, it does not explicitly name alternatives or state conditions to avoid using this tool, so it stops short of full explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_citationsCheck statute citations against the registerA
Read-only

Extracts Australian statute citations from text and checks each against the Federal Register of Legislation: does the act exist, is it still in force, does the cited section exist in the current compilation. Use before presenting legal citations to a user. An upstream failure is reported as UNVERIFIED, never as a missing law.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText containing the citations to check

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, so they convey safety. The description goes beyond by disclosing critical behavioral semantics: it retrieves from an open world ('openWorldHint' context), and crucially, it specifies the failure mode: 'An upstream failure is reported as UNVERIFIED, never as a missing law.' This adds essential behavioral context beyond annotations and is crucial for correct interpretation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each earning its place: the first states the core action, the second provides a usage guideline, and the third adds a critical caveat. No wasted words, front-loaded with the verb.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (checking citation existence and status), the description covers the key behavioral expectations without going into excessive detail. It does not detail the return format or edge cases with multiple citations, but the read-only nature and the explicit UNVERIFIED rule cover the most important usage aspects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is only one parameter, `text`, and schema description coverage is 100%, so the baseline of 3 applies. The description's mention of 'text' aligns with the parameter, but it does not add detail beyond what the schema already documents (e.g., no format, length, or examples).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb+resource construction: 'Extracts Australian statute citations from text and checks each against the Federal Register of Legislation.' It clearly details what is checked (act existence, in-force status, section existence) and distinguishes this from siblings by focusing on verification against the register.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: 'Use before presenting legal citations to a user.' This provides clear usage context, but it does not explicitly mention alternatives or when not to use the tool, though the sibling list implies alternatives exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv0.1.3
    • First observedcheck_frl_health
    • First observedcompare_versions
    • First observedget_amendment_status
    • First observedget_law_as_at
    • First observedget_law_text
    • First observedsearch_full_text
    • First observedsearch_law
    • First observedverify_citations

TDQS

A4.3/5.0

Scored across 8 tools

Disambiguation4/5

Most tools have clearly distinct purposes. The only mild ambiguity is between get_law_text and get_law_as_at, but the descriptions make the current-versus-historical distinction explicit. search_law and search_full_text are also separable by title-search versus full-text-search.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern, such as search_law, get_law_text, compare_versions, and verify_citations. The get_ and search_ prefixes group related operations predictably, with no mixed conventions.

Tool Count5/5

Eight tools is well-scoped for a legal research server. Each tool provides a distinct capability without redundancy, and the count feels neither thin nor bloated for the domain.

Completeness5/5

The toolset covers the core legislative research workflow: finding laws, retrieving current and historical text, checking amendment status, comparing versions, and verifying citations. There are no obvious dead ends or missing operations for the stated purpose of working with the Federal Register of Legislation.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    An MCP server providing AI assistants access to Canadian case law and legislation metadata from CanLII across all jurisdictions, supporting search and citation relationships.
    7
    13 npm
    6
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    MCP server for Australia's Federal Register of Legislation. Enables searching and fetching Commonwealth Acts with verifiable citations.
    3
    71 PyPI
    Apache 2.0