proofread.law について
proofread.law は、米国とスイスの法的文書に含まれる判例引用を、公開判決登録データと照合する MCP サーバーです。文書から管轄を判定し、引用確認や収録範囲の説明に加え、任意の文書保存や判例提案を行います。
主な機能
- 01テキストや文書内の引用確認
- 02単一または複数引用の照合
- 03登録データの収録範囲と制限の提示
- 04任意の文書保存とバージョン管理
- 05米国・スイスの関連判例の提案
活用シーン
- 01提出前の法的文書の引用確認
- 02判例引用リストの照合
- 03文書の版ごとに要確認の引用を比較
- 04スイスの法条や米国法上の規則に関連する判例の検索
MCP 対応
引用確認・照合、収録範囲の確認、レポート作成、判例提案、任意の文書管理を行う 14 個のツールを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y proofread-mcpPROOFREAD_API_KEYシークレットproofread.law API key (pl_...), from the sign_up tool or https://proofread.law/account. Optional: without it the free tier applies per IP.PROOFREAD_APIBase URL of the proofread.law API.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
14掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| deep | boolean | いいえ | 各引用先の判決が引用された文を裏付けているかどうかも確認します。処理は遅く、明示的な有効化が必要です。無料プランでは月 3 件までです。 |
| text | string | はい | 確認するテキストを原文のまま指定します(段落、脚注、準備書面全体など)。テキストを貼り付けてもかまいません。 |
詳細
proofread-mcp
proofread.law 用の MCP サーバーです。Claude Desktop、Claude Code、Cursor、OpenAI Agents SDK から、提出前の草稿に含まれる判例引用を確認できます。対象は、米国の裁判所意見書約1,000万件と、スイスの裁判例110万件(BGE/ATF/DTF、連邦最高裁判所の事件記録、連邦裁判所、全26州)です。草稿から管轄区域を検出し、スイスのレポートは草稿の言語(ドイツ語、フランス語、イタリア語)で返されます。
proofread.law は、各引用を裁判所意見書約1,000万件を収録したオープンな登録簿(CourtListener の一括データ)と照合します。各結果には、確認した内容、見つかった内容、登録簿では確認できない内容が記載されます。
できること
14 個のツールがあります。
| ツール | 入力 | 返される内容 |
|---|---|---|
check_citations | テキスト、deep(任意) | カバレッジに関する説明、ティアごとの件数、人による確認が必要な各行(赤、オレンジ、ディープチェックが必要な行の順)、見つかった引用の数、レポート ID |
check_document | .pdf、.docx、.txt、.md ファイルへのパス(最大 10 MB)、deep(任意) | ディスク上のファイルについて、同じ内容を返します |
resolve_citation | 引用文字列 1 件 | その引用に対するレジスターの回答:見つかった(事件、裁判所、日付、並行引用、リンク)、曖昧(候補)、レジスターに未登録、検証不可、既知の引用、引用を認識できず、該当巻のカバレッジ、カバレッジに関する説明 |
resolve_citations | 引用文字列のリスト(最大 500 件) | ステータス別の件数、入力順の引用ごとの 1 行、カバレッジに関する説明 |
coverage | jurisdiction(任意:us または ch) | カバレッジに関する説明と保存に関する通知。ch の場合は、収録されている裁判所と、それぞれがライブインデックスに占める割合を示すスイスのレジスターを返します |
render_report | 以前のチェックのレポート ID、またはレポート全体の JSON | すべての行を含む、デューデリジェンスレポートの Markdown |
suggest_cases | スイス連邦法令の条文、またはその条文を引用する段落、もしくは米国法の一文。court、jurisdiction、domain、lang、k(いずれも任意) | スイス:条文で引用されている主要な連邦最高裁判所の判例(BGE)を、1 つのランキングリストにして提示します。各判例には、法分野のラベル、引用箇所、後の判例変更の有無、判決へのリンク、引用を確認するリンクが付き、クエリの言語で表示されます。米国(ベータ):判決文自体にその一文が記載されている判例を最大 3 件提示します。各判例には、モデルが照合した箇所、その前後の段落、指定した裁判所に対する拘束力、意見書へのリンク、引用を確認するリンクが付きます |
save_brief | テキスト、title(任意) | ブリーフをユーザーのアカウントに保存(オプトイン、暗号化して保存)してチェックします。ブリーフ ID と、check_citations と同じ簡潔な結果を返します |
list_briefs | なし | 保存済みブリーフの一覧:ID、タイトル、保存日時と最終チェック日時、ティアごとの件数、バージョン数 |
get_brief | ID、include_text(デフォルトは true)、version(任意) | 保存済みテキスト、最新のレポート、保持されているバージョンを返します。version を指定すると、そのバージョンのテキストを返します |
update_brief | ID、text、title、recheck(いずれも任意。少なくとも 1 つ必要) | 編集したテキストを新しいバージョンとして保存し、再チェックします。前のバージョンから解決したフラグ、新しいフラグ(それぞれ見出し付き)、変更のない件数、引き続き対応が必要なすべての行を返します。recheck: true は、編集せずに保存済みテキストを再チェックします(例:レジスターが更新された後)。タイトルのみの場合は、チェックせずに名前を変更します |
delete_brief | ID | ブリーフとそのバージョンを完全に削除します |
sign_up | アカウント所有者のメールアドレス、エージェント名 | proofread.law アカウントと API キー(1 回のみ表示)を作成します。サーバーはセッションの残りの間、そのキーを使用します |
billing_link | payg、solo、firm のいずれか | アカウント所有者用の Stripe Checkout リンクを返します。API キーが必要です |
チェックの簡潔な結果は約 12,000 文字に制限されています。長いブリーフで、表示可能な行数を超えるフラグがある場合は、省略された行数がテキストに示され、render_report ですべての行を確認できます。
保存済みブリーフ(オプトイン)
save_brief または update_brief が呼び出されない限り、何も保存されません。check_citations と check_document は一切保存しません。保存済みブリーフは、delete_brief で削除されるまでユーザーの proofread.law アカウントに暗号化して保存されるため、ブリーフツールには API キーが必要です(任意の PROOFREAD_API_KEY、または sign_up で取得したキーを使用できます)。API キーがない場合はメッセージを返し、何も送信しません。ストレージが無効になっているサーバーは storage_off を返し、ツールもその旨を伝えます。
フラグが付いた引用を修正する手順は次のとおりです。まず一度 save_brief を呼び出し、テキスト内のフラグが付いた行を修正します(引用、事件名、引用文を直すか、引用を削除します)。次に ID と編集後のテキスト全体を指定して update_brief を呼び出し、変更内容を確認します。解消されたフラグ(以前はフラグが付いていて、現在は付いていないもの)、新たに付いたフラグ、引き続き対応が必要な行が示されます。直近 20 件のバージョンが保持されます。get_brief では、それらの一覧表示と以前のバージョンの読み込みができます。API では ID は整数、ツールでは文字列です。
check_citations と check_document は文章を読み込み、事件名や引用文が登録情報と一致するかを比較します。resolve_citation と resolve_citations は引用文字列を登録情報で検索し(/v1/resolve API)、該当する事件を返します。指定した事件名との比較は行いません。
ツールで使用される各ティアの説明は次のとおりです。
| ティア | 表示 | 意味 |
|---|---|---|
| red | check this | 登録情報に、引用と異なる事件、巻やページの不一致、判決文に存在しない引用語句など、具体的な食い違いがあります |
| orange | cannot verify | 照合対象がありません。Westlaw または Lexis の識別子、登録情報より新しい巻号、登録情報に一部しか収録されていない判例集などが該当します。どちらの可能性を示す証拠にもなりません |
| green | found | 引用から該当する事件が特定され、事件名が一致します |
| white | deep check | deep: true の場合のみ。引用先の判決文が、その引用元の文を裏付けているかを確認します。判定ではなく、レビュー対象の一覧です |
できないこと:Westlaw(WL)または Lexis の識別子の解決、制定法・規則・二次資料の確認、事件が現在も有効な法令であるかどうかの判断。これらの制限は、各ツールの説明と各結果に付属するカバレッジに関する説明に記載されています。
事件推荐(スイス)
suggest_cases はスイス連邦法令の条文(Art. 41 OR、art. 41 CO、Art. 8 ZGB、art. 9 Cst.。小文字やピリオドを省いた形式(art 41 or など)も認識されます)、または条文を引用した段落を受け取り、裁判所がそれと併せて引用している連邦最高裁判所の主要判例(BGE)を一覧表示します。対象は連邦法令のみで、州法は対象外です。フリーテキスト検索には対応していません。条文を含まないクエリに対しては、条文を認識できなかった旨のメッセージが返されます。結果は計測された順序に基づくランキング形式の一覧で、各判例には法分野が表示されます。domain フィルターを使うと、選択した法分野内の順序を保ったまま表示されるため、フィルター後も各行の全体順位(Rang 7、Rang 9 など)は変わりません。また、どの法分野が表示されているかを示すフィルターメモが付きます。各行には、引用情報、日付、法分野、判決の言語、順位、引用箇所(レゲステまたは判決理由)、その後の実務変更(判例変更があった場合はフラグ付きで掲載され、省略されることはありません)、裁判所のウェブサイト上の判決、および proofread.law で確認を開くリンクが含まれます。各文字列はクエリの言語(ドイツ語、フランス語、イタリア語。英語の場合は lang: "en")で返され、ツールはそのまま出力します。推薦されるのは読むべき判例です。入力文との照合は行われておらず、フラグのない行も、その判例の実務が現在も有効である証拠にはなりません。引用を確認するには、check_citations を使ってください。
引数:query(必須、最大20,000文字。1,500文字を超える場合は POST で送信)、domain(all、civil、criminal、public、social のいずれか。既定値は all)、lang(de、fr、it、en のいずれか。既定値はクエリの言語)、k(表示する行数。1~50。既定値は10)。k が大きい場合、テキストが約20,000文字を超える行では、見出し行と実務フラグは残りますが、引用箇所とリンクは省略されます。これらは、法分野ごとの件数とともに構造化された結果に含まれます。試験運用期間中は、有料プランまたはトライアルの API キーが必要です。キーがない場合、API は plan_required を返し、ツールはアップグレード方法を案内します。
suggest_cases の呼び出し例。{"query": "Art. 41 OR, Art. 97 OR", "k": 3}(開発用インスタンス、2026-09-26。2行目と3行目は途中で省略):
Gelesen als: Art. 41 OR, Art. 97 OR
1. BGE 146 IV 76, 13.11.2019, Strafrecht, FR, Rang 1
Das Bundesgericht zitiert diesen Entscheid zusammen mit Art. 41 OR; der Entscheid selbst nennt den Artikel nicht. Aus der Regeste: «a) Art. 110 Abs. 1 StGB; Art. 118, 121 Abs. 1 und 382 Abs. 1 StPO; ...»
Entscheid öffnen: https://search.bger.ch/ext/eurospider/live/de/php/clir/http/index.php?highlight_docid=atf%3A%2F%2F146-IV-76%3Ade&lang=de&type=show_document
Zitat prüfen: https://proofread.law/?cite=Art.%2041%20OR%3B%20BGE%20146%20IV%2076#check
...
Die Vorschläge sind publizierte Leitentscheide (BGE). Sie sind danach gereiht, wie oft das Bundesgericht sie zusammen mit dem Artikel zitiert, [...] Ein Vorschlag ist ein Entscheid zum Lesen: Ob er Ihre Aussage stützt, prüft diese Liste nicht, und ein Entscheid ohne Hinweis ist kein Beleg dafür, dass seine Praxis weiter gilt.
"domain": "civil" を指定すると、一覧の先頭にフィルターメモが付き、全体順位が維持されます。
Gelesen als: Art. 41 OR
Filter: Zivilrecht. Die Reihenfolge ist dieselbe wie in der ganzen Liste.
1. BGE 132 III 122, 13.09.2005, Zivilrecht, FR, Rang 7
Regeste: «Rechtmässigkeit von im Arbeitskampf eingesetzten Mitteln (Art. 28 BV; Art. 41 und 357a OR). ...»
...
フィルターに該当する行がない場合は、その旨を示すメッセージが返されます。実務変更がある場合は、該当する行の直後に表示されます。たとえば、Praxisänderung durch BGE 145 III 1, möglicherweise nur teilweise: <link> に続いて、それを示すレゲステの一文が表示されます。
事例の提案(米国、ベータ版)
suggest_cases は、法的ルールを述べる米国の草稿からの一文(または1,500文字以内の短い段落)も受け取り、その内容を判示文中で述べている事例を最大3件提示します。モデルが上位10件の候補それぞれについて裁判所の意見を読み、その中に該当する文を述べた箇所を見つけた場合にのみ、事例が表示されます。各行には、事件の参照情報、裁判所、年、指定した裁判所に対する事件の位置づけ(拘束力あり、同一巡回区、説得的権威)、引用判例検索ツールが見つけた後続の履歴(一部破棄、制定法により置き換えなど)、モデルが一致すると判断した箇所とその前後の段落(それぞれ約600文字にカット)、CourtListenerの意見書へのリンク、およびproofread.lawでチェックを開くリンクが含まれます。後の裁判所によって破棄または覆された事例は除外され、注記でその事例を示します。
これはベータ版です。回答はすべて、その旨を示す行で始まり、測定値も記載されます。サイト独自のインデックスでは、提出済みの準備書面に含まれる50文について表示された94件のうち、73件(78%)がその文を裏付け、4件は裏付けていませんでした。この判定は、実務弁護士ではない2つのモデル読み手が、先入観なしに行ったものです(詳細)。事例を引用する前に、該当箇所を読んでください。提案は、読むべき事例を示すものです。引用を確認するには、check_citations を使ってください。
引数:court(省略可能、最大200文字)は、準備書面を提出する裁判所です。連邦控訴裁判所(9th Cir.、Ninth Circuit、ca9)、地方裁判所(N.D. Cal.、S.D.N.Y.、cand)、またはその州・地域を管轄する連邦裁判所を指定する州名・地域名または郵便略号(California、CA)を指定します。その裁判所を拘束する事例が先に表示されます。裁判所を指定しない場合は、最高裁判所の事例が先に表示されます。州裁判所はまだ読み込まれません。APIが読み込まない裁判所を指定すると、読み込む裁判所を示すエラーが返されます。jurisdiction の既定値は auto です。スイスの法律条文、またはドイツ語、フランス語、イタリア語の文章はスイスとして扱われ、それ以外は米国の文章として扱われます。us または ch で指定できます。domain、lang、k はスイスの回答にのみ適用され、米国の回答は英語です。
法的ルールを述べていない入力(質問、引用または事件名、見出し、記録や当事者の主張に関する記述、または1,500文字を超える入力)には、一覧は返されません。代わりに、貼り付けるべき内容と例文が回答に示され、料金はかかりません。モデルを実行した米国の回答は、resolve ではなく、詳細チェック済み引用1件として数えられます。モデル呼び出しの当日分の予算を使い切ると、米国の提案は翌日(UTC)に再開します。
例:plausibility pleading基準に関する文と "court": "N.D. Cal." を指定した suggest_cases の呼び出し(開発用インスタンス、2026-09-26。該当箇所とその前後の段落を短縮し、2行目と3行目をカット):
Beta: Each case is shown with the passage we matched; read it before you cite the case. Measured on the site's own index: 78% of shown cases support the sentence, and 4 of 94 did not (details on https://proofread.law/measurements#suggestions).
Ordered for N.D. Cal. (Ninth Circuit): binding cases first.
1. Bell Atlantic Corp. v. Twombly, 550 U.S. 544 (2007), Supreme Court, 2007, Binding here (Supreme Court)
The passage we matched: "Here, in contrast, we do not require heightened fact pleading of specifics, but only enough facts to state a claim to relief that is plausible on its face. Because the plaintiffs here have not nudged ..."
Before: "Plaintiffs say that our analysis runs counter to Swierkiewicz, 534 U. S., at 508 , which held that “a complaint in an employment discrimination lawsuit [need] n..."
After: "The judgment of the Court of Appeals for the Second Circuit is reversed, and the case is remanded for further proceedings consistent with this opinion...."
Read the opinion: https://www.courtlistener.com/opinion/145730/bell-atlantic-corp-v-twombly/
Check this citation: https://proofread.law/?cite=Bell%20Atlantic%20Corp.%20v.%20Twombly%2C%20550%20U.S.%20544%20%282007%29#check
2. Ashcroft v. Iqbal, 556 U.S. 662 (2009), Supreme Court, 2009, Binding here (Supreme Court)
...
3. Greg Landers v. Quality Communications, Inc., 771 F.3d 638 (9th Cir. 2014), Court of Appeals for the Ninth Circuit, 2014, Binding here
...
How we build this list: we search the sentences in which federal appellate courts and the Supreme Court cite a case, and the cases' own text. [...] We leave out cases that a later court overruled or reversed.
質問を入力すると、ベータ版の案内行の後にAPIからのメッセージと例が返されます。
This reads as a question. Paste the rule itself, as a sentence, and we will look for cases that state it.
For example: "A complaint must contain sufficient factual matter, accepted as true, to state a claim to relief that is plausible on its face."
インストール
Node 20以降が必要です。インストール手順は不要です。npx が npmからproofread-mcpを取得します。
Claude Desktop(拡張機能バンドル)
最新のGitHubリリースから proofread-mcp-<version>.mcpb をダウンロードし、Claude Desktopで開きます(ダブルクリック、または「設定」、「拡張機能」、「拡張機能をインストール」の順に選択)。バンドルにはサーバーとその依存関係が含まれており、Claude Desktopに付属するNodeランタイムを使用するため、ほかにインストールするものはありません。設定は任意のAPIキーのみです。キーはClaude Desktopによって機密情報として保存され、PROOFREAD_API_KEY としてサーバーに渡されます。
バンドルを自分でビルドするには、scripts/build-mcpb.sh(npx @anthropic-ai/mcpb が必要)を実行します。manifest.json、icon.png、npmパッケージの内容から build/proofread-mcp-<version>.mcpb が作成されます。
Claude Desktop(設定ファイル)
claude_desktop_config.json を編集します(「設定」、「開発者」、「設定を編集」の順に選択)。
{
"mcpServers": {
"proofread": {
"command": "npx",
"args": ["-y", "proofread-mcp"],
"env": {
"PROOFREAD_API_KEY": "pl_..."
}
}
}
}
無料枠を使うには、env を省略してください。
Claude Code
claude mcp add proofread -- npx -y proofread-mcp
# with an API key:
claude mcp add proofread -e PROOFREAD_API_KEY=pl_... -- npx -y proofread-mcp
Cursor
「Settings」、「MCP」、「Add new global MCP server」の順に選択するか、プロジェクト内に .cursor/mcp.json を記述します。
{
"mcpServers": {
"proofread": {
"command": "npx",
"args": ["-y", "proofread-mcp"],
"env": { "PROOFREAD_API_KEY": "pl_..." }
}
}
}
OpenAI Agents SDK(HTTP 経由)
HTTP トランスポートを使ってサーバーを起動します。
PROOFREAD_API_KEY=pl_... npx proofread-mcp --http --port 3333
# MCP endpoint: http://127.0.0.1:3333/mcp health: http://127.0.0.1:3333/health
次に、Agents SDK から接続します。
from agents import Agent, Runner
from agents.mcp import MCPServerStreamableHttp
# The SDK's default read timeout is 5 s. A check of a long brief takes up to 6 s and a deep check 1 to 2 s per citation,
# so give the session up to 15 minutes (the API's own deep-check limit).
async with MCPServerStreamableHttp(params={"url": "http://127.0.0.1:3333/mcp"}, client_session_timeout_seconds=900) as proofread:
agent = Agent(name="Drafting assistant", instructions="Check every case citation before you rely on it.", mcp_servers=[proofread])
result = await Runner.run(agent, "Check the citations in this paragraph: ...")
import { Agent, run, MCPServerStreamableHttp } from "@openai/agents";
const proofread = new MCPServerStreamableHttp({ url: "http://127.0.0.1:3333/mcp", name: "proofread" });
await proofread.connect();
try {
const agent = new Agent({ name: "Drafting assistant", mcpServers: [proofread] });
const result = await run(agent, "Check the citations in this paragraph: ...");
} finally {
await proofread.close();
}
HTTP サーバーはデフォルトで 127.0.0.1 にバインドされ、設計上シングルテナントです。独自の認証機能はなく、レポート ID はセッション間で共有され、sign_up で取得したキーはプロセス全体で使用されます。30 分間アイドル状態のセッションは終了します。ネットワーク上に公開するには、--host 0.0.0.0 を指定し、認証を追加する何らかの仕組みの背後に配置してください。
任意の MCP クライアント
stdio の場合:proofread-mcp を実行します。Streamable HTTP の場合:proofread-mcp --http --port 3333 を実行し、クライアントから /mcp に接続します。
環境変数
| 変数 | デフォルト | 意味 |
|---|---|---|
PROOFREAD_API_KEY | 未設定 | PROOFREAD_API にのみ Authorization: Bearer として送信される API キー(pl_...)です。すべてのプランにキーがあります(free は 1 個、pay as you go は 3 個、solo は 3 個、firm は 5 個)。有料プランのキーを使うと、無料プランの制限が解除されます。キーがない場合、IP ごとに無料プランが適用されます |
PROOFREAD_API | https://proofread.law | セルフホスト環境またはテスト環境のベース URL |
アカウントとキー
エージェント自身でアカウントを開設できます。sign_up は所有者の実際のメールアドレスと名前を POST /agent/signup に送信し、キーを取得します。キーは一度だけ表示されます。サーバーは残りのセッションでそのキーを使用します。保持するには PROOFREAD_API_KEY に設定してください。所有者には確認メールが 1 通届きます。クォータを使い切ると(ツールが「needs the ... plan」または「monthly allowance used」と応答すると)、billing_link から所有者用の Stripe Checkout リンクが返されます。支払いが完了するまで請求は発生しません。プランと料金については、proofread.law/pricing をご覧ください。API がエージェント向けに公開しているオンボーディングテキストは、proofread.law/agent/onboarding.md にあります。
無料プラン
キーなしの場合は IP アドレスごと、無料プランのキーがある場合はアカウントごとに、月単位で適用されます。
| ツール | クォータ |
|---|---|
check_citations、check_document | 20 回のチェック。そのうちディープチェックは 3 回までです |
save_brief、新しいテキストを指定した update_brief、または recheck | いずれもデフォルトのチェックを実行し、上記のチェック回数のうち 1 回としてカウントされます。タイトルのみの場合はカウントされません。各プランには保存できるブリーフ数の上限があります |
resolve_citation、resolve_citations | 1,000 回の照会(リスト内の引用はそれぞれ 1 回としてカウントされます) |
suggest_cases | 試用期間中は有料プランとトライアルのみ利用できます。スイスの回答は照会 1 回としてカウントされます(条文を含まないクエリは無料です)。モデルを実行した米国の回答は、ディープチェック済みの引用 1 件としてカウントされます(法規範を示さない入力は無料です) |
coverage、render_report、sign_up、billing_link | 無料。カウントされません |
また、IP ごとに 1 時間あたり 20 件のリクエスト制限があります(有料プランでは上限が増えます)。制限に達すると、ツールは再試行可能な時刻またはアップグレードリンクを記載したプレーンなメッセージを返します。プロトコルレベルの例外は発生しません。
.docx のアップロードと無制限のチェックには有料プランが必要です。proofread.law/pricing をご覧ください。
プライバシーポリシー
ポリシーの全文はproofread.law/privacyにあります。このサーバーに適用される内容は次のとおりです。
- 収集される情報。 チェックするテキストまたはファイルは、お使いのマシンからHTTPS経由でproofread.law独自のサーバー(
PROOFREAD_API、デフォルトはhttps://proofread.law)に送信され、そこでチェックされます。save_briefとupdate_briefも同じ方法でブリーフのテキストとタイトルを送信します。suggest_casesは、クエリ(論文、文章、または指定した段落)と、指定した場合は裁判所を送信します。sign_upはアカウント所有者のメールアドレスと、指定したエージェント名を送信します。それ以外は何も送信されません。会話履歴、ほかのファイル、テレメトリーは送信されません。 - proofread.lawでの使用と保存。 チェック対象の入力はメモリ内で処理され、レポートが返されると破棄されます。ディスクにはコピーを保存しません。例外はオプトインの場合です。
save_briefまたはupdate_briefで保存されたブリーフは、ユーザーのアカウント内で暗号化され、レポートや以前のバージョンとともに、delete_briefで削除されるまで保存されます(削除すると完全に消去されます)。ほかのツールが情報を保存することはありません。リクエストごとのログ行には、入力の種類、サイズ、引用の数、ティアごとの件数、所要時間が記録されますが、引用、当事者名、テキストは一切記録されません。アカウントをお持ちの場合、proofread.lawはメールアドレス、プラン、月ごとのチェック回数、各APIキーのハッシュを保持します。 - 第三者。 登録簿で解決できない引用文字列は、CourtListenerの引用APIで検索される場合があります(送信されるのは引用文字列のみで、文章は送信されません)。詳細チェック(
deep: true)はオプトインです。各引用の前にある条項(最大700文字)と引用された判決が、モデル判定者に送信されます。米国のSuggest_casesクエリ(ベータ版)は、候補となる訴訟の判決とともに、同じモデル判定者に送信されます。この2つの場合に限り、送信した文章がproofread.lawの外部に送信されます。サインインリンクはResend経由で送信されます。支払いはStripe経由で行われ、カード情報はStripeに送信されますが、proofread.lawには送信されません。リクエストは転送中にCloudflareのエッジを経由します。 - 保持期間。 入力とレポートは保持しません。ただし、保存されたブリーフはユーザーが削除するまで保持されます。アカウント記録は、所有者から[email protected]に削除を依頼されるまで保持されます。
- このサーバー。 保存済みのブリーフも含め、ディスクには何も保存しません(ブリーフはここではなくproofread.lawのアカウントに保存されます)。
render_reportを短いIDで呼び出せるよう、直近50件のレポートをメモリ内に保持しますが、プロセスの終了時に消去されます。APIキーはMCPクライアントの設定に保存されます(Claude Desktopでは、拡張機能のキーは機密設定として保存されます)。sign_upで取得したキーはセッション中メモリ内に保持され、一度だけ表示されるため、ご自身で保存できます。キーはPROOFREAD_APIにのみ、Authorization: Bearerヘッダーとして送信されます。すべての引用が判定される前に詳細チェックのストリームが停止した場合、ツールはチェック済みの件数を示すエラーを返します。詳細チェックが完了したかのように、部分的な結果を提示することはありません。 - お問い合わせ先。 Data Alchemy Labs、[email protected]。
対象範囲に関する注意事項
すべての結果の冒頭に、たとえば次のような対象範囲に関する記述が表示されます。
1,010万件の訴訟データと照合済み(CourtListener一括データ、2026-06-30、最終更新2026-09-19)。2019年から2023年の連邦控訴裁判所のデータは10~15%が不完全です。Westlaw/Lexisの識別子は解決できません。制定法、規則、二次資料はチェックしていません。
必ずお読みください。登録簿にない引用は、対象範囲に関する限定を伴う登録簿上の事実であり、訴訟が存在しない証拠ではありません。赤い行は「確認してください」という意味です。ツールは何をチェックし、何が見つかったかを伝えるだけで、訴訟が捏造されたとは断定しません。
例
入力:
Title VII forbids discrimination because of sexual orientation. Bostock v. Clayton County, 509 U.S. 644 (2020).
check_citationsの戻り値(実際の出力、レビューインスタンス、2026-09-20):
Coverage: Checked against 10.1 M cases (CourtListener bulk data 2026-06-30, last refreshed 2026-09-19); federal appellate 2019 to 2023 is 10 to 15% incomplete; Westlaw/Lexis identifiers are not resolvable; statutes, regulations and secondary sources are not checked.
Summary: 1 citation, 1 row. Check this (red): 1. Cannot verify (orange): 0. Found (green): 0.
Flagged rows:
- CHECK THIS: 509 U.S. 644 (Bostock v. Clayton County). Register has Bostock v. Clayton County at 590 U.S. 644. Check the volume. In the register, 509 U.S. 644 is Shaw v. Reno. The case named in the document exists; this citation does not point to it. Register: https://www.courtlistener.com/opinion/4760997/bostock-v-clayton-county/
Found: 0 rows resolved to a case in the register.
Report id: r_1ff74051 (give it to render_report for a markdown report). Elapsed: 0.03 s.
Storage: Nothing you submit is stored. The document is processed in memory and discarded when this report is returned; only counts (citations, tiers, timing) are logged, never text.
開発
npm install
npm run build # tsc -> dist/
npm test # vitest, mocked fetch, no network
LIVE=1 npm test -- test/live.test.ts # three live calls against proofread.law (counts against the free tier)
node scripts/smoke-stdio.mjs # spawn the stdio server, initialize, tools/list, four live tool calls
node scripts/smoke-stdio.mjs --offline # the same without network
構成:src/client.ts は型付き HTTP クライアント(/verify、/render、/api/coverage、/v1/resolve の単件および一括処理、/v1/briefs、/v1/suggest)、src/format.ts はチェック用の簡潔なフォーマッター、src/resolve_format.ts はレジスターの回答用フォーマッター、src/briefs_format.ts は保存済みブリーフ(/v1/briefs)用フォーマッター、src/suggest_format.ts はケースの提案(/v1/suggest)用フォーマッター、src/tools/<name>.ts はツールごとのファイル、src/server.ts はそれらを登録し、src/cli.ts はトランスポートを選択します。残りのレジスターのルート(/v1/extract、/v1/case/{id}、レポーターごとの /v1/coverage)も同じ方法で追加します。クライアントにメソッドを 1 つ、src/tools/ にファイルを 1 つ用意します。
公開
RELEASE.md を参照してください。npm、MCP Registry(server.json はリポジトリ内にあります)、Claude Desktop 拡張バンドル(manifest.json、scripts/build-mcpb.sh。各 GitHub リリースに添付)および Anthropic のコネクターディレクトリについて説明しています。
ライセンス
MIT、Data Alchemy Labs。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。