Legalis MCP Server
ブラジルの弁護士向けAI法律アシスタント
ポルトガル語で読む
Legalis 向けのMCP(Model Context Protocol)サーバーです。ブラジルの弁護士向け法律文書AIを提供します。
Claude(またはMCP対応の任意のクライアント)をLegalisアカウントに接続すると、自然言語で案件を操作したり、法律文書を作成したり、法令を検索したりできます。
クイックスタート
1. インストール
pip install legalis-mcp
# or with uv:
uv tool install legalis-mcp
2. 認証
legalis-mcp auth
ブラウザーが開きます。通常どおりLegalisにログインしてください。トークンは ~/.legalis/credentials.json に保存されます(所有者のみ読み取り可能)。
3. Claudeを設定
Claudeの設定ファイル(Claude Desktopの場合は ~/.claude/claude_desktop_config.json、Claude Codeの場合は claude_code_config.json)に追加します。
{
"mcpServers": {
"legalis": {
"command": "legalis-mcp",
"args": ["serve"]
}
}
}
4. 使用する
Claudeで次のように試してみてください。
- 「Legalisの自分の案件を一覧表示して」
- 「João Silvaの間接解雇の案件を作成して」
- 「案件Yの文書Xの法的根拠のセクションを生成して」
- 「正当な理由による解雇に関する労働法を検索して」
- 「今月はあと何回生成できますか?」
利用可能なツール
案件
| ツール | 説明 |
|---|
list_cases | 案件を一覧表示します(ページネーション対応、ステータスで絞り込み可能) |
get_case | IDで案件の詳細を取得します |
create_case | 新しい案件を作成します |
update_case | 案件の項目を更新します |
search_cases | 案件を全文検索します |
delete_case | 案件を完全に削除します |
法律文書
| ツール | 説明 |
|---|
list_legal_documents | 案件の訴訟書類を一覧表示します |
get_legal_document | すべてのセクションを含む文書を取得します |
create_legal_document | 新しい法律文書を作成します |
generate_section | 文書のセクション(事実、法的根拠、請求など)をAIで生成します |
update_section_text | 文書のセクションを手動で編集します |
get_case_context | 案件のコンテキスト(事実、当事者、証拠)を取得します |
update_case_context | 案件のコンテキストを更新します |
delete_legal_document | 法律文書を削除します |
export_legal_document_docx | 文書をDOCX形式でエクスポートします |
イベントとタスク
| ツール | 説明 |
|---|
create_case_event | 案件にイベントを作成します(内部向けまたはクライアントに表示) |
list_case_events | 案件のイベントを一覧表示します |
delete_case_event | 案件のイベントを削除します |
create_case_task | 期限と優先度を指定してタスクを作成します |
list_case_tasks | 案件のタスクを一覧表示します |
update_case_task | タスクの項目を更新します |
complete_case_task | タスクを完了としてマークします |
delete_case_task | タスクを削除します |
list_upcoming_tasks | すべての案件の今後のタスクを一覧表示します |
list_overdue_tasks | 期限超過のタスクをすべて一覧表示します |
その他
| ツール | 説明 |
|---|
run_interview | AIガイド付きの案件受付インタビュー |
list_templates | 利用可能な文書テンプレートを一覧表示します |
get_template | テンプレートの詳細とセクションを取得します |
search_legislation | ブラジルの法令を検索します(LexML) |
get_my_usage | AIの利用枠と請求期間中の使用状況を確認します |
APIの対応状況
以下の表では、Legalisのバックエンドエンドポイントと対応するMCPツール(利用可能な場合)を示しています。
案件
| エンドポイント | メソッド | MCPツール |
|---|
/api/cases | GET | list_cases ✅ |
/api/cases | POST | create_case ✅ |
/api/cases/{id} | GET | get_case ✅ |
/api/cases/{id} | PUT | update_case ✅ |
/api/cases/{id} | DELETE | delete_case ✅ |
/api/cases/search | GET | search_cases ✅ |
/api/cases/{id}/overview | GET | — |
/api/cases/{id}/portal-token | POST / DELETE | — |
法的文書
| エンドポイント | メソッド | MCP ツール |
|---|
/api/cases/{id}/legal-documents | GET | list_legal_documents ✅ |
/api/cases/{id}/legal-documents | POST | create_legal_document ✅ |
/api/cases/{id}/legal-documents/{doc} | GET | get_legal_document ✅ |
/api/cases/{id}/legal-documents/{doc} | DELETE | delete_legal_document ✅ |
/api/cases/{id}/legal-documents/{doc}/sections/{key}/generate | POST | generate_section ✅ |
/api/cases/{id}/legal-documents/{doc}/sections/{key}/text | PUT | update_section_text ✅ |
/api/cases/{id}/legal-documents/{doc}/export/docx | GET | export_legal_document_docx ✅ |
事件コンテキスト
| エンドポイント | メソッド | MCP ツール |
|---|
/api/cases/{id}/context | GET | get_case_context ✅ |
/api/cases/{id}/context | PUT | update_case_context ✅ |
/api/cases/{id}/context/history | GET | — |
タスク
| エンドポイント | メソッド | MCP ツール |
|---|
/api/cases/{id}/tasks | GET | list_case_tasks ✅ |
/api/cases/{id}/tasks | POST | create_case_task ✅ |
/api/cases/{id}/tasks/{task} | PUT | update_case_task ✅ |
/api/cases/{id}/tasks/{task} | DELETE | delete_case_task ✅ |
/api/cases/{id}/tasks/{task}/complete | POST | complete_case_task ✅ |
/api/tasks/upcoming | GET | list_upcoming_tasks ✅ |
/api/tasks/overdue | GET | list_overdue_tasks ✅ |
イベント
| エンドポイント | メソッド | MCP ツール |
|---|
/api/cases/{id}/events | GET | list_case_events ✅ |
/api/cases/{id}/events | POST | create_case_event ✅ |
/api/cases/{id}/events/{event} | DELETE | delete_case_event ✅ |
テンプレートと法令
| エンドポイント | メソッド | MCP ツール |
|---|
/api/templates | GET | list_templates ✅ |
/api/templates/{id} | GET | get_template ✅ |
/api/legislacao | GET | search_legislation ✅ |
使用状況
| エンドポイント | メソッド | MCP ツール |
|---|
/api/plans/my-usage | GET | get_my_usage ✅ |
未対応
| エンドポイント | 備考 |
|---|
/api/cases/{id}/overview | BFF エンドポイント — 事件、タスク、イベントを1回の呼び出しで取得 |
/api/cases/{id}/portal-token | 公開リンクを使って、クライアントと事件の状況を共有 |
/api/cases/{id}/context/history | コンテキストのバージョン履歴 |
/api/users/me | ユーザープロフィールの読み取り/更新 |
/api/users/settings | 通知と UI の設定 |
/api/users/documents | アップロード済み文書(生成されたものを除く) |
/api/voice-agent/* | 音声アシスタント(プランで利用が制限される機能) |
/api/corporates/{id}/users | チームメンバーの管理 |
/api/subordinates/invite | チームメンバーの招待 |
CLI コマンド
legalis-mcp auth # Authenticate via browser
legalis-mcp serve # Start MCP server (stdio)
legalis-mcp status # Verify authentication
legalis-mcp logout # Remove stored credentials
開発
git clone <repo>
cd mcp
pip install -e ".[test]"
# Run unit tests (no external services needed)
pytest tests/unit/ -v
# Run integration tests (requires Docker)
cd ../integration && docker-compose up -d
cd ../mcp
LEGALIS_API_URL=http://localhost:8000 \
LEGALIS_ACCESS_TOKEN=<token> \
LEGALIS_REFRESH_TOKEN=<refresh> \
pytest tests/integration/ -v
環境変数
| 変数 | デフォルト | 説明 |
|---|
LEGALIS_API_URL | https://hai-production-612f.up.railway.app | バックエンド URL |
LEGALIS_ACCESS_TOKEN | — | 発行済みトークン(CI/テスト専用) |
LEGALIS_REFRESH_TOKEN | — | リフレッシュトークン(CI/テスト専用) |
LEGALIS_CREDENTIALS_FILE | ~/.legalis/credentials.json | 認証情報ファイルのパス |
LEGALIS_OAUTH_PORT | 3742 | ローカル OAuth コールバックポート |
セキュリティ
- 認証情報は
600 のパーミッション(所有者のみ読み取り/書き込み可能)で ~/.legalis/credentials.json に保存されます。
- OAuth リダイレクトは
http://localhost に制限されており、オープンリダイレクト攻撃はバックエンドでブロックされます。
- トークンが MCP 設定ファイルに保存されることはありません。
- すべての API 呼び出しは既存の Legalis バックエンドを経由するため、RBAC、レート制限、クォータが通常どおり適用されます。
公開
# PyPI
pip install build twine
python -m build
twine upload dist/*
# Then register at:
# - smithery.ai (MCP marketplace)
# - mcp.so (community directory)
# - github.com/modelcontextprotocol/servers (official list)