
Tw Legal Rag
io.github.aa0101181514由 GitHub 帳號 aa0101181514 發布v2.3.2更新於 Nov 7, 2026
Taiwan law MCP server: 22M court judgments, statutes, agency rulings, with citation checks
概覽
託管式台灣法律檢索伺服器:對 2,277 萬筆裁判書、法規與行政函釋做語意檢索,並附引用查核。
- 可以做什麼
- 以語意或關鍵詞檢索裁判書,完整案號自動切換精確調卷
- 讀取裁判理由全文,附審級關聯與廢棄標記
- 產生含可引用白名單與驗證指示的引用 bundle
- 依法規名稱與條號查詢現行法條原文
- 依字號查詢行政函釋並附效力狀態,或做語意檢索
- 適用情境
- 適合需要讓助理以真實裁判、法條或行政函釋為依據回答台灣法律問題,並希望引用範圍限於實際讀入的文件、而非模型憑記憶生成時使用。
- 執行需求
- 遠端 Streamable HTTP 端點,使用 OAuth 授權,不需 API key。連線時會開啟法律偵探帳號登入頁(Google 或電子郵件,免費註冊)。另有 PyPI 命令列工具,需連線金鑰或 OAuth token。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Tw Legal Rag,將其新增到工作區。
- 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
- 為需要使用其工具的對話啟用該服務。
Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。
交給代理程式安裝
把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。
閱讀 https://sourceweft.com/mcp/io.github.aa0101181514%2Ftw-legal-rag/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。其他 MCP 客戶端
把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。
{
"mcpServers": {
"tw-legal-rag": {
"type": "http",
"url": "https://tlr.dr-legal.com.tw/mcp"
}
}
}README
Taiwan Legal RAG:台灣法律 MCP 伺服器與 CLI(twlegalrag)
免費、免 API key,連接時登入法律偵探帳號 的台灣法律 MCP 伺服器:在 Claude、ChatGPT、Gemini CLI、Microsoft 365 Copilot、Codex、Cursor 加入
https://tlr.dr-legal.com.tw/mcp一個網址,AI 助理就能直接語義檢索 2,277 萬筆台灣裁判書、 行政函釋與憲法法庭裁判,逐筆附引用查核。另提供同一後端的公開原始碼 CLI(twlegalrag)。Free, no API key; sign in to a Dr.Legal account when connecting. Taiwan legal MCP server (Taiwan law MCP) + source-available CLI, backed by Dr.Legal's 22M-judgment semantic retrieval infrastructure.
快速連接:台灣法律 MCP
MCP 端點(Streamable HTTP,OAuth 授權):
首次連接會開啟法律偵探登入頁,以 Google 或電子郵件帳號登入(免費註冊),不需申請 API 金鑰。 提供六個工具:裁判檢索、裁判全文與審級關聯、附引用白名單的 bundle、現行法條查詢、行政函釋字號查詢、行政函釋語義檢索。 圖文步驟見 dr-legal.com.tw/mcp。
Taiwan Legal RAG CLI retrieves Taiwan court judgments from Legal Detective's public TLR endpoint and packages them for use with your own AI tools. It does not generate legal advice, does not call any LLM, and does not guarantee semantic faithfulness of third-party model outputs. Its built-in citation check only verifies whether cited judgments belong to the retrieved bundle.
作者:黃思齊(Aaron Huang)律師,法律偵探/Dr.Legal 創辦人(個人介紹)。
繁中:Taiwan Legal RAG CLI 是一個公開原始碼命令列工具,連接法律偵探建置的 2,277 萬筆 台灣裁判語義檢索服務(22,770,604 筆,截至 2026-11-04),讓你能用自然語言搜尋判決,並將檢索結果帶入自己的 AI 工具使用。
資料涵蓋(統計截至 2026-11-04,取自 production 資料庫)
一、法規範(依法位階)
二、裁判與裁決
三、輔助資料
法規範與裁判之取用方式:裁判書、行政規則走 hosted MCP 的語義檢索與字號精確查詢;
現行憲法、法律、法規命令的條文,以 hosted MCP 的 get_law_article 依法規名稱與條號精確查詢;法規全文檢索於 dr-legal.com.tw 站上進行。
裁判書為每日增量同步(司法院公開資料釋出有數日時差,極新宣判的裁判請以官網為準)。 以上數字直接取自 production 資料庫並標註統計日,非估計值。
裁判書明細(依法院層級/案件類別)
行政規則發布機關明細(107 個機關,統計日 2026-11-04)
(機關名稱依函釋原始發文機關記載,含已改制機關之歷史名稱,如「行政院環境保護署」 「前司法行政部」;改制前後分列、不合併,以保留原始發文脈絡。)
為什麼不一樣
這不是一般關鍵字判決搜尋工具。背後連到的是法律偵探長期建置的 TLR 檢索服務:
- 22,770,604 筆台灣裁判資料(截至 2026-11-04),經過結構化處理與向量化。
- 語義模糊搜尋:不是只靠案號、法院、關鍵字,用自然語言就能找到 「概念相近但用詞不同」的判決;另有詞彙精確檢索模式供專有名詞查找。
- 案號精確調卷:完整裁判字號自動切換精確調卷;查無時明確告知 「查無不代表該裁判不存在」,不拿語義近似結果充數。
- 審級關聯
case_history:隨判決附上資料庫記錄的上下審級與主文 「廢棄/駁回」旗標,引用前就能看到判決是否已被上級審廢棄。 - 行政規則雙工具:字號精確查詢(附效力狀態:已驗證有效/未驗證/已廢止/
停止適用/已被取代)與語義檢索成對使用;函釋與判決嚴格分流,不混排、
不得引為法院見解。詳見
docs/mcp-anchor.zh.md。 - 現行法條精確查詢:以法規名稱+條號取回現行條文原文,並附法規最後修正 日期、廢止註記與本庫所對應的官方資料集版本日期。引用法條前可先核驗條號存在 與文字內容,不必憑模型記憶背條文;常用縮寫(勞基法、刑法、憲法)自動解析為 官方法規名。法規語料每日核對全國法規資料庫官方版本更新;僅提供現行整編版本, 行為時法(修法前舊條文)請至官方沿革查詢。
- 引用防護是一等公民:
allowed_citations白名單(只含實際讀入理由全文的 判決)、unread_candidates標記、寫進每個 bundle 的驗證指示,加上 CLI 端的 citation check。整套設計針對法律 AI 最痛的幻覺型態:字號真實、見解捏造。 - 本 CLI 不內建判決庫,也不暴露後端模型權重、向量索引或檢索管線細節; 它是連接公開 TLR retrieval endpoint 的工具。
與「官方網站 wrapper」型工具的差異
另一類常見做法是即時轉打司法院/法規官網的站內搜尋。兩者定位不同,可以互補:
官網 wrapper 的強項是即時性與官方來源直連;本工具的強項是語義檢索品質與引用 紀律。
Unlike keyword-only legal search tools, Taiwan Legal RAG CLI connects to a production semantic retrieval backend built on 22M+ Taiwan court judgments, enabling fuzzy concept-level search while keeping model weights, infrastructure, and private indexes server-side.
(措辭說明:公開原始碼的是 CLI,不是模型或向量庫;後端的檢索服務、模型權重、私有 索引都留在伺服器端,不隨本工具公開。)
它做什麼 / 不做什麼
做:用自然語言檢索判決 → 取得結構化清單、判決全文片段(excerpt)、引用連結 → 打包成 bundle 交給你自己的 AI;並可對 AI 產生的答案做 bundle 層級的引用檢查。
不做:本工具不呼叫任何 LLM、不生成法律意見、不背書任何模型輸出。答案要由 你自己選的 AI(ChatGPT / Claude / Gemini / 本地模型)生成。
內建的 citation check 能檢查什麼
check 是 bundle 層級、盡力而為的字串檢查,只驗:
- 答案引用的判決字號是否在 bundle 內(抓「引用了不在 bundle 的字號」= 疑似捏造);
- 是否引用 bundle 外、或不存在的判決;
- 引文存在性(bundle 層級):答案宣稱「法院說……」的逐字句,是否出現在 bundle 文字的某處。
它不能檢查什麼(重要)
- 引文是否出自答案所指的那一篇判決(存在性檢查只看「整個 bundle 裡有沒有這句」, 不綁定到特定判決);
- 法院見解是否讀對;
- 是否把當事人主張(原告/被告/上訴人)當成法院見解;
- 是否把附帶論述當成判決核心權威;
- paraphrase(改寫)型的見解幻覺。
這些都需要閱讀判決全文才能判斷,這也是為什麼 bundle 內附上判決全文片段與
verification instructions,要求下游模型自行核對。pass 只代表「引用的字號身分對得上
bundle」,不代表「法律推論正確」或「引文確實出自那篇」。 另外,check 只比對
bundle 內的內容,不是整個法律偵探資料庫,若你事後自己開判決全文再改寫答案,
check 仍只看 bundle 當初打包的片段。
安裝
只依賴 httpx / typer / rich。不需要任何 LLM 套件或 LLM 金鑰,本工具不呼叫 LLM。
使用前先設定 TLR 連線金鑰(見下方「設定」);未設定時,指令會提示取得方式。
使用
pack 產生的 bundle 包含 query、每筆判決的 citation_id(J1, J2, ...)、
citation_text、citation_url、doc_id、Layer-1 listing、fulltext_excerpt
(判決理由的擷取片段,有長度上限)、case_history(資料庫記錄的審級關聯,v1.1)、
allowed_citations,以及一段 verification_instructions,明確要求下游模型只引用
bundle 內判決、把不支持的命題標為 unverified。stderr 也會印一段 AI USE NOTICE。
v1.1 起 verification_instructions 額外包含見解層自查規則(OPINION-LAYER
SELF-CHECK),要求下游模型在作答後逐一回頭核對:(a) 歸給某判決的見解確實出現在
該判決的 excerpt(不是別篇的、不是推論的);(b) 裁判結果方向(勝訴/敗訴/廢棄/駁回/
發回)沒有顛倒;(c) case_history 顯示已被廢棄的判決,不得當成現行有效見解引用。
這與 check 的 bundle 層級字號檢查互補,字號真實不代表見解真實,見解層的核對
只能由讀了全文的模型自己做,這些規則就是把該動作寫進每個 bundle 的硬性指示。
allowed_citations 是「可引用判決」白名單,只含實際讀入理由全文的判決。CLI 的
pack 會讀入每一筆判決,所以兩者一致。Hosted Remote MCP 的 search_bundle
(/v1/pack)若 read_top < max_results,只讀入前 read_top 筆;其餘判決仍列在
judgments 供瀏覽,但會移到 unread_candidates(非 authority,不可引為法院論理)。
詳見 docs/mcp-anchor.zh.md。
設定
預設連接公開端點 https://tlr.dr-legal.com.tw。2026-10-30 起 REST 需帶憑證:登入法律偵探帳號(免費)後,
到連線金鑰頁自助產生金鑰,放環境變數或 ~/.twlegalrag/config.toml(已 git-ignore,切勿 commit):
沒有機構金鑰、想在自己的程式裡直接呼叫 REST:走 OAuth 授權碼加 PKCE 流程登入一次(會開瀏覽器進法律偵探登入頁),之後以 refresh token 自動續期,持續使用不必重登。可直接用純標準函式庫的範例 docs/tlr_oauth_cli.py:python3 docs/tlr_oauth_cli.py login,然後 python3 docs/tlr_oauth_cli.py law 民法 184。範例會把 token 存在 ~/.twlegalrag/tlr_oauth.json(權限 600)。注意:請求要帶能辨識程式的 User-Agent,預設的 Python-urllib 會被邊緣防護擋下。
隱私與資料流向
先講清楚哪些東西永遠不會經過 TLR 伺服器:
- 你與 AI(Claude / ChatGPT / 本地模型)的完整對話內容、上傳的文件、AI 生成的 回答,全部發生在你與你的 AI provider 之間,從不經過 TLR。TLR 是 retrieval-only 伺服器,唯一收到的是你的 AI client 決定送出的檢索 query 字串與後續調閱的 判決編號。
- 連接時登入帳號:2026 年 10 月 30 日起,MCP 授權需登入法律偵探帳號(Google 或 email,免費註冊), 查詢記錄會綁定該帳號,用於識別使用者與統計用量;REST 端點需帶機構金鑰或 OAuth access token,匿名請求回 401。
- 判決資料本身是台灣公開裁判書,查詢回傳的內容不含非公開個資。
其餘請務必理解的網路傳輸:
- 你的搜尋字詞 / 問題會送到 TLR 檢索端點(
https://tlr.dr-legal.com.tw)以取得判決。 - TLR may log your query text, timestamp, IP-derived metadata, and result counts for retrieval-quality analysis. Do not submit personal secrets or confidential facts. Queries are not used to train generative models. (TLR 後端可能以明文記錄你的查詢字串、時間、由 IP 推得的中介資料與結果筆數, 供檢索品質分析之用。請勿送出個人機密或保密事實。查詢不會用於訓練生成模型。)
- 本工具不呼叫 LLM、不使用 server-side token;若你自行把 bundle 餵給某個 AI, 那段傳輸與費用發生在你與你選的 AI provider 之間,與本工具無關。
- 端點 API 金鑰(若有)請放環境變數,不要 commit 設定檔。
citation check 如何運作
twlegalrag/faithful/ 是一組零依賴純函式(只用標準庫 re + unicodedata)。
給定答案文字與 bundle 內判決片段,回 pass / needs_review / fail。設計上保守:
不確定時回 needs_review 而非 fail,以壓低誤報。它不呼叫 LLM、不碰資料庫,是
確定性的字串分析。
⚠️ 這個目錄是內部程式的快照,裡面有些函式(如 check_party_as_court /
run_all_checks)CLI 並沒有用到。它們存在不代表 CLI 能做見解層 / 語義驗證,
CLI 只用其中兩個 bundle 層級檢查。請勿把檔案清單當功能清單。詳見
twlegalrag/faithful/VENDORED.md。
2026-08-20 服務端更新(hosted MCP / REST)
- bundle 回應附
result_token,可對 bundle 內任一判決直接調閱全文。 - 每筆結果附
hit_excerpt(命中段落預覽);引用仍以理由全文為準。 get_judgment_fulltext支援excerpt_offset分頁,長判決可完整讀畢。- 詞彙精確檢索模式(
search_type: keyword/phrase)強化,適合專有名詞 與技術用語;概念性問題建議預設的hybrid。
以上為伺服器端能力,REST 與 Remote MCP 介面即日可用。CLI v2.1.0 已跟進:
pack 自動分頁讀完長判決(bundle 每篇全文預算加倍),並將命中段落
hit_excerpt 帶入 bundle。
其他接法(同一個 TLR 後端)
這個 CLI 是接 TLR 檢索服務的方式之一。同一個後端 tlr.dr-legal.com.tw 也支援把判決
搜尋透過 Remote MCP 直接接進你的 AI 工具。兩者填同一個 MCP 端點
https://tlr.dr-legal.com.tw/mcp,連線時會自動完成 OAuth(動態註冊,無需自行申請或
設定 API key):
- Claude(Remote MCP):Settings → Connectors → Add custom connector,URL 填
https://tlr.dr-legal.com.tw/mcp。 - ChatGPT(MCP connector):在 Connectors 新增自訂 MCP server,URL 填
https://tlr.dr-legal.com.tw/mcp。 - Gemini 網頁版(Spark):開啟 gemini.google.com/spark/apps
→「自訂應用程式」→ 在「Spark 適用的自訂應用程式」貼上
https://tlr.dr-legal.com.tw/mcp→ 按「繼續」完成授權(自動動態註冊,免金鑰)。 需帳號具備 Gemini Spark;連結後在 Spark 輸入框打@選「法律偵探」即可指名呼叫,一般聊天視窗不會呼叫。 2026-09-01 台灣帳號實測可用。 - Gemini CLI(Remote MCP):在
~/.gemini/settings.json的mcpServers加入{"tlr": {"httpUrl": "https://tlr.dr-legal.com.tw/mcp"}},啟動後執行/mcp auth tlr完成授權。詳細步驟見 使用者指南。 - Microsoft 365 Copilot / Copilot Studio(MCP):在 Copilot Studio 或 Agent Builder
為 agent 新增 MCP 工具,Server URL 填
https://tlr.dr-legal.com.tw/mcp, 認證選 OAuth 2.0 動態探索(dynamic discovery),不需預先註冊應用程式。 詳細步驟見 使用者指南。 - Claude Code(Skill,走 CLI 非 MCP):本 repo 附了一個現成的 skill 在
skills/tw-legal-rag/,把整個資料夾放到你專案的.claude/skills/即可。它包裝本 CLI 的pack子指令,讓 Claude 在你問到 台灣判決/法律論據時自動檢索、並要求只引用 bundle 內的citation_id。 skill 內附的scripts/search_judgments.py會自動定位執行檔,並處理 Windows 上的兩個踩雷點(詳見 skill 內的SKILL.md)。
Remote MCP 介面現有六個工具:
各工具的輸入輸出契約詳見 docs/mcp-anchor.zh.md。
本服務已登錄於官方 MCP Server Registry,
名稱為 io.github.aa0101181514/tw-legal-rag。
不論走 CLI、MCP 還是 Claude Code skill,答案都由你自己的 AI 生成,本服務只提供 判決內容與可驗證的引用連結。
架構
判決庫、embedding、檢索邏輯都在伺服器端,不在本 repo。本 CLI 是公開原始碼的客戶端 與引用檢查工具。
免責
本工具是分析輔助,不是法律意見,也不是律師。務必自行閱讀引用的判決全文。 透過 API 取得的判決為台灣公開裁判資料,你需為自己的使用負責。
License
v2.0.0 起採 Elastic License 2.0(ELv2)。可自由使用、複製、修改與 再散布,包含商業與企業內部使用,僅有兩項限制:不得將本軟體本身作為 託管/代管服務提供給第三人,以及不得移除授權與聲明保護。 1.2.2 以前的版本維持 MIT。
託管 API 與判決語料庫從未在程式碼授權範圍內,詳見 TERMS.md。
專案名稱與標識不在授權範圍,詳見 TRADEMARK.md。
本專案不接受外部 pull request(單一作者授權策略),詳見 CONTRIBUTING.md。
來源:README.md,提交 7f74a19
工具
0版本歷史
3- v2.3.2最新Nov 7, 2026
- v2.3.1Oct 14, 2026
- v2.3.0Sep 16, 2026
評分
已滿足適用檢查項的 75%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通必需25 分
- 已宣告認證方式必需10 分
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
請在儲存庫或註冊中心條目中宣告授權條款。