canlii-mcp
CanLII MCP 서버
CanLII API를 통해 캐나다 법률 정보를 검색하기 위한 MCP(Model Context Protocol) 서버입니다. Claude Desktop 또는 Claude Code에서 바로 판례 검색, 법령 탐색, 인용 확인을 수행할 수 있습니다.
npx canlii-mcp주요 기능
전문 검색(Full-text search) — 키워드, 사건명 또는 법적 개념을 사용하여 CanLII 전체 검색
판례 인용 확인(Case citator) — 후속 판례에서 해당 사건을 어떻게 인용하는지 확인하여 현재 유효한 판례인지 검토
법령 탐색 — 관할 구역별 법률 및 규정 탐색
이중 언어 지원 — 인용 도구를 포함한 모든 도구에서 영어 및 프랑스어 지원
9가지 도구 — 검색, 법원 탐색, 판례 탐색, 판례 메타데이터, 전체 인용 정보, 인용 미리보기, 법령 데이터베이스, 법령 탐색, 법령 메타데이터
내장 속도 제한 — CanLII API 제한(초당 2회 요청, 동시 1회, 일일 5,000회)을 준수하는 직렬 요청 큐
입력 유효성 검사 — 모든 매개변수는 정규식 검증 및 URI 인코딩을 거쳐 인젝션 방지
최소한의 리소스 — 2개의 런타임 의존성, 약 500줄의 코드, 로컬 stdio 프로세스로 실행
보안 우선 — 파일 시스템 접근 불가, 셸 실행 불가,
api.canlii.org에만 연결
빠른 시작
사전 요구 사항: Node.js 18+ 및 CanLII API 키 (연구용 무료).
Claude Desktop — 설정 파일에 추가 (~/Library/Application Support/Claude/claude_desktop_config.json macOS 기준):
{
"mcpServers": {
"canlii": {
"command": "npx",
"args": ["-y", "canlii-mcp"],
"env": {
"CANLII_API_KEY": "your_api_key_here"
}
}
}
}저장 후 Claude Desktop을 재시작하세요.
Claude Code:
claude mcp add canlii -e CANLII_API_KEY=your_key -- npx -y canlii-mcp소스에서 실행 (개발용):
git clone https://github.com/mohammadfarooqi/canlii-mcp.git
cd canlii-mcp
npm install && npm run build사용 가능한 도구 (9)
search
CanLII 전체(판례, 법령, 주석)에 대한 전문 키워드 검색. 법률 연구의 기본 진입점입니다.
search({ query: "material change in circumstances Ontario", resultCount: 10 })get_courts_and_tribunals
사용 가능한 모든 법원 및 재판소 데이터베이스 목록을 나열합니다. 다른 도구에서 필요한 데이터베이스 ID를 반환합니다.
주요 온타리오 데이터베이스: onsc (고등법원), onca (항소법원), oncj (사법재판소), csc-scc (캐나다 대법원).
get_case_law_decisions
특정 법원 데이터베이스의 판례를 최근 추가된 순서대로 탐색합니다. 날짜 필터를 지원합니다.
get_case_law_decisions({ databaseId: "onsc", resultCount: 20 })get_case_metadata
특정 사건에 대한 전체 세부 정보(인용, 판결 날짜, 사건 번호, 키워드) 및 전체 판결문을 읽을 수 있는 CanLII URL을 가져옵니다.
get_case_metadata({ databaseId: "onsc", caseId: "2021onsc8582" })get_case_citator
사건의 인용 관계를 조회합니다. citingCases를 사용하여 해당 사건이 여전히 유효한 판례인지 확인하세요.
get_case_citator({ databaseId: "csc-scc", caseId: "1996canlii190", metadataType: "citingCases" })get_case_citator_tease
최대 5개의 결과를 반환하는 빠른 인용 미리보기입니다. 전체 인용 도구보다 빠르게 확인할 때 유용합니다.
get_case_citator_tease({ databaseId: "csc-scc", caseId: "1996canlii190", metadataType: "citingCases" })get_legislation_databases
모든 법령 데이터베이스를 나열합니다. 온타리오: ons (법률), onr (규정). 연방: cas (법률), car (규정).
browse_legislation
특정 데이터베이스 내의 법령 항목을 나열합니다.
browse_legislation({ databaseId: "ons" })get_legislation_regulation_metadata
특정 법률 또는 규정에 대한 메타데이터(CanLII URL 포함)를 가져옵니다.
일반적인 연구 워크플로우
검색 —
search({ query: "gatekeeping parenting time" })으로 관련 판례 찾기세부 정보 확인 —
get_case_metadata(...)로 전체 인용 및 CanLII URL 가져오기인용 확인 —
get_case_citator(..., metadataType: "citingCases")로 해당 판례가 여전히 유효한지 검증판결문 읽기 — CanLII URL을 클릭하여 canlii.org에서 전문 읽기
API 속도 제한
CanLII API 약관에 따름:
일일 5,000회 쿼리
초당 2회 요청
한 번에 1회 요청
메타데이터 접근만 가능 — 전체 문서 텍스트는 API를 통해 제공되지 않음
서버는 내장된 속도 제한기를 통해 이러한 제한을 자동으로 준수합니다.
개발
npm run build # Compile TypeScript
npm run start # Run the server (needs CANLII_API_KEY env var)프로젝트 구조
src/
index.ts # MCP server — tools, rate limiter, stdio transport
schema.ts # Zod schemas for CanLII API responses기여하기
기여를 환영합니다! 이 프로젝트는 AI 도구를 통해 캐나다 법률 연구를 더 쉽게 만드는 것을 목표로 합니다.
기여 방법:
PR 제출 방법:
이 저장소를 포크(Fork)합니다.
기능 브랜치를 생성합니다 (
git checkout -b feature/my-improvement).변경 사항을 적용하고 로컬에서 테스트합니다 (
npm run build && CANLII_API_KEY=your_key npm run start).커밋하고 포크한 저장소에 푸시합니다.
변경 내용과 이유를 설명하는 풀 리퀘스트를 엽니다.
CanLII API 응답 문제, 스키마 불일치 또는 법률 연구에 도움이 될 새로운 도구 아이디어가 있다면 해결 방법을 모르더라도 이슈를 열어주세요. 함께 조사하겠습니다.
보안
이 서버는 투명하고 최소한의 기능으로 설계되었습니다:
api.canlii.org에만 연결 — 다른 네트워크 호출, 텔레메트리, 분석 도구 없음API 키는 로컬에 유지 — 환경 변수를 통해 전달되며, 로그에 남거나 응답에 포함되지 않음
모든 입력값 검증 — 데이터베이스 ID, 사건 ID, 날짜는 사용 전 정규식 검증을 거치며, 경로 세그먼트는 URI 인코딩됨
모든 API 응답 검증 — 반환 전 Zod 스키마를 통해 파싱
파일 시스템 접근 불가 — 서버는 CanLII에 대한 HTTPS 호출만 수행
셸 실행 불가 —
child_process,exec,spawn사용 안 함2개의 런타임 의존성 —
@modelcontextprotocol/sdk(공식 Anthropic MCP SDK) 및zod(스키마 검증)내장 속도 제한 — 직렬 요청 큐를 통해 API 남용 방지
MIT 라이선스, 완전 오픈 소스 — src/index.ts(약 350줄) 및 src/schema.ts(약 140줄)에서 모든 코드 확인 가능
보안 문제를 발견하시면 SECURITY.md를 참조하세요.
알려진 제한 사항
판결문 본문 없음 — 전문 검색은 가능하지만(사건 제목, 인용, 내용 검색), API는 판결문 전문을 반환할 수 없습니다. canlii.org에서 판결문을 읽으려면 CanLII URL을 클릭해야 합니다. 단락 번호와 직접 인용은 원문을 읽고 확인해야 합니다.
키워드 기반 검색 — 의미론적 검색이 아니므로 "mother gatekeeping sole decision-making"과 같은 쿼리는 혼합된 결과를 반환할 수 있습니다. 쿼리를 구체화하고 메타데이터를 확인하기 전에 사건 제목을 먼저 확인하세요.
검색 결과에 사건 세부 정보 미포함 — 검색 결과는 인용과 제목만 반환합니다. 키워드, 주제, 판결 날짜, CanLII URL을 얻으려면 각 사건에 대해
get_case_metadata를 별도로 호출해야 합니다.처리 지표 없음 — 인용 도구는 어떤 사건이 해당 판결을 인용하는지 보여주지만, 인용된 판결이 따랐는지, 구별되었는지, 뒤집혔는지 여부는 나타내지 않습니다. 인용된 판례를 읽고 처리 여부를 판단해야 합니다.
인용 미리보기는 최대 5개 결과 — 포괄적인 인용 분석을 위해서는
get_case_citator(전체 버전)를 사용하세요.검색 시 데이터베이스/관할 구역 필터 없음 — 서버 측에서 특정 법원이나 주(province)로 검색 결과를 제한할 수 없습니다. 대신 쿼리에 관할 구역 키워드를 추가하세요 (예: "custody" 대신 "custody Ontario").
검색 엔드포인트는 비공식 — 작동은 하지만 CanLII 공식 API 문서에 없으므로 예고 없이 변경될 수 있습니다.
엄격한 속도 제한 — 일일 5,000회 쿼리, 초당 2회 요청, 동시 1회 요청(내장 속도 제한기에 의해 자동 강제).
라이선스
MIT — LICENSE 참조.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mohammadfarooqi/canlii-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server