Nalegalu MCP

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

我該用這個嗎

品質與安全性

A
說明品質
100%
結構描述完整度
76%
命名品質
94%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~2,286Token(工具定義)
~1.7 KB典型回應大小
中等的注意力影響(128k 上下文的 1.79%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `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 個工具