Nalegalu MCP

Semantic search over Polish law and case law, citing the exact in-force article.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
76%
이름 품질
94%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,286토큰 (도구 정의)
~1.7 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.79%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "nalegalu": {
      "url": "https://mcp.nalegalu.org/mcp"
    }
  }
}

원격 엔드포인트

https://mcp.nalegalu.org/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (7)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢search_law(query, limit, address, domain, article, ...)

Search current Polish statutes and return article-level hits. Start here for a natural-language legal issue or a direct citation. Use the user's own Polish wording, e.g. "kupiłem wadliwy towar od firmy jakie mam prawa". Do not add address, domain, article, act_type, or status filters unless the user explicitly supplied that restriction. Results are primary-source material, not legal advice.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "limit": {
      "default": 10,
      "title": "Limit",
      "type": "integer"
    },
    "address": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Address"
    },
    "domain": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Domain"
    },
    "article": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Article"
    },
    "act_type": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Act Type"
    },
    "status": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Status"
    },
    "include_non_in_force": {
      "default": false,
      "title": "Include Non In Force",
      "type": "boolean"
    },
    "case_law_boost": {
      "default": 0,
      "title": "Case Law Boost",
      "type": "number"
    },
    "candidate_multiplier": {
      "default": 4,
      "title": "Candidate Multiplier",
      "type": "integer"
    },
    "top_cases": {
      "default": 3,
      "title": "Top Cases",
      "type": "integer"
    },
    "retrieval_mode": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Retrieval Mode"
    }
  },
  "required": [
    "query"
  ],
  "title": "search_lawArguments"
}

출력 스키마

{
  "type": "object",
  "additionalProperties": true,
  "title": "search_lawDictOutput"
}
🟢get_article(address, article_key, paragraph_key)

Fetch the exact text of one article (or paragraph) of a Polish legal act. Use after search_law or another trusted source supplied the address and article key; never guess them. Deterministic lookup by act address (e.g. WDU19740240141) and article key (e.g. "133" or "Art. 133."). Optional paragraph_key (e.g. "1" or "§ 1.") narrows the result to a single paragraph.

입력 스키마

{
  "type": "object",
  "properties": {
    "address": {
      "title": "Address",
      "type": "string"
    },
    "article_key": {
      "title": "Article Key",
      "type": "string"
    },
    "paragraph_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Paragraph Key"
    }
  },
  "required": [
    "address",
    "article_key"
  ],
  "title": "get_articleArguments"
}

출력 스키마

{
  "type": "object",
  "additionalProperties": true,
  "title": "get_articleDictOutput"
}
🟢related_cases(address, article_key, paragraph_key, limit)

List SAOS cases related to one statutory provision. Use after identifying a relevant provision. A related-case link is not proof of a legal rule: inspect the judgment with get_case before asserting its holding. Deterministic lookup by act address (e.g. WDU19740240141) and article key. Returns case number, court, date, relevance score when available, and a SAOS link per case; scored cases sort first. Newer data also carries citation context per case: mentions (how many times the article appears in the judgment text), mention_match ("exact" = found with a matching act marker; "ambiguous" = bare mention, possibly another act's article — discount it), and context (snippet around the mention). mentions=0 or a missing context means the link comes from SAOS metadata but the text scan could not confirm it — treat relevance as unverified rather than assuming the case is on point. If count is zero, it means this local provision-to-case link dataset has no rows; it is not an exhaustive SAOS or case-law search.

입력 스키마

{
  "type": "object",
  "properties": {
    "address": {
      "title": "Address",
      "type": "string"
    },
    "article_key": {
      "title": "Article Key",
      "type": "string"
    },
    "paragraph_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Paragraph Key"
    },
    "limit": {
      "default": 10,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "address",
    "article_key"
  ],
  "title": "related_casesArguments"
}

출력 스키마

{
  "type": "object",
  "additionalProperties": true,
  "title": "related_casesDictOutput"
}
🟢research_cases(query, provision_limit, cases_per_provision, candidate_limit, context_max_chars, ...)

Discover related-case candidates for a natural-language legal issue. This tool first searches statutes, then follows local provision-to-case links for several distinct provisions and deduplicates by SAOS ID. ``rerank=false`` is the inexpensive deterministic discovery stage. With ``rerank=true``, it fetches at most ``rerank_fetch_limit`` public SAOS excerpts and reranks them only when the server has explicitly configured a Cohere reranker. It never decides a holding: call ``get_case`` for every judgment used in an answer.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "provision_limit": {
      "default": 5,
      "title": "Provision Limit",
      "type": "integer"
    },
    "cases_per_provision": {
      "default": 80,
      "title": "Cases Per Provision",
      "type": "integer"
    },
    "candidate_limit": {
      "default": 40,
      "title": "Candidate Limit",
      "type": "integer"
    },
    "context_max_chars": {
      "default": 450,
      "title": "Context Max Chars",
      "type": "integer"
    },
    "rerank": {
      "default": false,
      "title": "Rerank",
      "type": "boolean"
    },
    "rerank_fetch_limit": {
      "default": 75,
      "title": "Rerank Fetch Limit",
      "type": "integer"
    },
    "rerank_result_limit": {
      "default": 10,
      "title": "Rerank Result Limit",
      "type": "integer"
    },
    "case_text_max_chars": {
      "default": 6000,
      "title": "Case Text Max Chars",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "research_casesArguments"
}

출력 스키마

{
  "type": "object",
  "additionalProperties": true,
  "title": "research_casesDictOutput"
}
🟢get_case(saos_id, max_chars, offset)

Fetch one SAOS court judgment (metadata + bounded text excerpt). Use only with a saos_id returned by related_cases, research_cases, or search_case_by_signature. Long judgments are paged: when has_more is true, call again with offset=next_offset. If the response has ok=false with a fallback hint, SAOS is unavailable or rate-limited — fetch the returned saos_url yourself with your own web tools instead of retrying this tool.

입력 스키마

{
  "type": "object",
  "properties": {
    "saos_id": {
      "title": "Saos Id",
      "type": "integer"
    },
    "max_chars": {
      "default": 6000,
      "title": "Max Chars",
      "type": "integer"
    },
    "offset": {
      "default": 0,
      "title": "Offset",
      "type": "integer"
    }
  },
  "required": [
    "saos_id"
  ],
  "title": "get_caseArguments"
}

출력 스키마

{
  "type": "object",
  "additionalProperties": true,
  "title": "get_caseDictOutput"
}
🟢search_case_by_signature(signature, limit, court_type)

Verify a cited case signature (sygnatura), e.g. "II CSK 448/14". Use before relying on a judgment cited by a user or another agent. Answers from a local index of all SAOS judgments first; only on a local miss does it query live SAOS. Read the verdict field: "confirmed" (matches listed with saos_id, court, date, type — different courts reuse signatures, so check the court), "not_found" (strong evidence the citation is fabricated or wrong), "outside_coverage" (administrative courts NSA/WSA are not in SAOS — verify in CBOSA instead), "unverified" (local miss and SAOS unreachable; do not treat as nonexistent). Optional court_type: COMMON, SUPREME, CONSTITUTIONAL_TRIBUNAL, NATIONAL_APPEAL_CHAMBER. has_text=false on a match means SAOS stores no text for it, so verify_quote cannot check quotes against that judgment.

입력 스키마

{
  "type": "object",
  "properties": {
    "signature": {
      "title": "Signature",
      "type": "string"
    },
    "limit": {
      "default": 10,
      "title": "Limit",
      "type": "integer"
    },
    "court_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Court Type"
    }
  },
  "required": [
    "signature"
  ],
  "title": "search_case_by_signatureArguments"
}

출력 스키마

{
  "type": "object",
  "additionalProperties": true,
  "title": "search_case_by_signatureDictOutput"
}
🟢verify_quote(saos_id, quote, min_similarity)

Check whether a supplied quote appears in a SAOS judgment. Use only after resolving the judgment to a saos_id. This validates wording, not whether the quote supports a legal conclusion. Pass the saos_id (from search_case_by_signature or related_cases) and the fragment as quoted. One call replaces paging through the full text: verdict is "exact" (verbatim after normalizing whitespace, quote marks and dashes), "near_match" (best passage plus similarity score — compare it against the claim), or "not_found" (treat the quote as fabricated or misattributed). If ok=false with a fallback hint, fetch saos_url with your own web tools instead of retrying.

입력 스키마

{
  "type": "object",
  "properties": {
    "saos_id": {
      "title": "Saos Id",
      "type": "integer"
    },
    "quote": {
      "title": "Quote",
      "type": "string"
    },
    "min_similarity": {
      "default": 0.75,
      "title": "Min Similarity",
      "type": "number"
    }
  },
  "required": [
    "saos_id",
    "quote"
  ],
  "title": "verify_quoteArguments"
}

출력 스키마

{
  "type": "object",
  "additionalProperties": true,
  "title": "verify_quoteDictOutput"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 7개
검증됨버전이 기록되지 않음도구 7개
검증됨버전이 기록되지 않음도구 7개