contract-risk-analyzer
contract-risk-analyzer
Contract Risk Analyzerは、FastMCPサーバーとLangGraphワークフローを組み合わせたツールです。金融契約のPDFを取り込み、主要な条項や義務を抽出し、既知のリスク用語を重要度とともにフラグ立てし、契約バージョンを比較します。そして、迅速かつ説明可能な契約トリアージを必要とする弁護士、リスク管理チーム、運用担当者のために、すべてを構造化されたリスク概要にまとめます。
MCPツールは、ローカルの file_path またはリモートの pdf_url のいずれかを受け付けます。Railwayなどのホスト型デプロイメントの場合は、サーバーが分析前にPDFを一時ストレージにダウンロードできるよう pdf_url を使用してください。
アーキテクチャ(概要)
PDF
|
v
FastMCP_Server
|
+--> extract_clauses
+--> flag_risk_terms
+--> summarize_obligations
+--> compare_contracts
|
v
LangGraph_Agent (orchestrates tools)
|
v
RiskBrief (Pydantic structured output)Related MCP server: legal-impact-mapper
セットアップ(ローカル)
cd contract-risk-analyzer
cp .env.example .env
source .venv/bin/activate # if you already created the project virtualenv
pip install -e ".[dev]"
python -m contract_risk_analyzer.serverMCPエンドポイント:
http://localhost:8000/mcpヘルスチェック:
http://localhost:8000/health.envファイルにはOPENAI_API_KEYが含まれている必要があります。
Claude Desktop(MCPクライアント)からの接続
オプションA: ローカルのSTDIOサーバーとして実行(Claude Desktopが起動)
Claude Desktopで、以下のようなMCPサーバーエントリを追加します:
{
"mcpServers": {
"contract-risk-analyzer": {
"command": "python",
"args": ["-m", "contract_risk_analyzer.server"],
"env": {
"OPENAI_API_KEY": "YOUR_KEY_HERE"
}
}
}
}オプションB: ローカルのHTTPサーバーに接続
サーバーを自身で実行している場合(python -m contract_risk_analyzer.server)、mcp-remote を使用してClaude DesktopをローカルのMCP HTTPエンドポイントにブリッジします:
{
"mcpServers": {
"contract-risk-analyzer": {
"command": "npx",
"args": [
"mcp-remote",
"http://127.0.0.1:8000/mcp",
"--allow-http"
]
}
}
}オプションC: デプロイ済みのRailwayサーバーに接続
デプロイ済みのサーバーは以下から利用可能です:
ヘルスチェック:
https://contract-risk-analyzer-production-410a.up.railway.app/healthMCPエンドポイント:
https://contract-risk-analyzer-production-410a.up.railway.app/mcp
Claude Desktopの設定:
{
"mcpServers": {
"contract-risk-analyzer": {
"command": "npx",
"args": [
"mcp-remote",
"https://contract-risk-analyzer-production-410a.up.railway.app/mcp"
]
}
}
}ツール呼び出しの例
入力ソースのルール
単一契約ツールの場合、以下のいずれかを正確に1つ指定してください:
{
"file_path": "/app/samples/contract.pdf"
}または:
{
"pdf_url": "https://example.com/contracts/contract.pdf"
}compare_contracts の場合、各側に対してソースを1つずつ指定してください:
{
"pdf_url_a": "https://example.com/contracts/v1.pdf",
"pdf_url_b": "https://example.com/contracts/v2.pdf"
}リモートPDFは一時ストレージにダウンロードされます(PDFあたり最大50MB)。各ツール呼び出し後に削除されます。
extract_clauses
入力:
{
"pdf_url": "https://example.com/contracts/isda.pdf",
"clause_type": "termination events"
}出力例:
[
{
"section_name": "ARTICLE_VII TERMINATION",
"clause_type": "termination events",
"raw_text": "…",
"plain_english": "…",
"page_references": [12, 13]
}
]flag_risk_terms
入力:
{ "pdf_url": "https://example.com/contracts/isda.pdf" }出力例:
[
{
"term": "cross-default",
"context": "…",
"risk_explanation": "…",
"severity": "high",
"page_reference": 9
}
]summarize_obligations
入力:
{ "pdf_url": "https://example.com/contracts/isda.pdf" }出力例:
[
{
"party": "Borrower",
"obligations": ["Deliver monthly financial statements…"],
"key_deadlines": ["Within 30 days after month-end…"],
"conditions": ["So long as no Event of Default has occurred…"]
}
]compare_contracts
入力:
{
"pdf_url_a": "https://example.com/contracts/v1.pdf",
"pdf_url_b": "https://example.com/contracts/v2.pdf"
}出力例:
{
"added_clauses": ["New collateral top-up requirement…"],
"removed_clauses": ["Removed cure period for payment default…"],
"materially_changed_clauses": [
{
"section_name": "ARTICLE_IV EVENTS_OF_DEFAULT",
"change_summary": "Acceleration now triggers immediately…",
"risk_note": "Increases lender leverage; reduces borrower flexibility."
}
],
"risk_delta": "Overall risk increased for Borrower due to tighter default/acceleration terms."
}デプロイメント(Railway)
ビルド: Railwayは
Dockerfileからコンテナをビルドします。実行: コンテナは
python -m contract_risk_analyzer.serverを実行し、$PORT(デフォルトは8000)にバインドします。ヘルスチェック:
GET /healthは{"status":"ok"}を返します。環境変数: Railwayのサービス変数に
OPENAI_API_KEYを設定してください。現在のデプロイメント:
https://contract-risk-analyzer-production-410a.up.railway.app
技術スタック
FastMCP
OpenAI GPT-4o (
openaiSDK経由)PyMuPDF (
pymupdf)Pydantic
LangGraph
Docker
Railway
This server cannot be deployed
Maintenance
Related MCP Connectors
Review contracts for risks: summary, severity-rated flags, key terms, and clause coverage.
- ClmentOAuthcom.clment
Contract review that keeps your contracts: cited answers, Word redlines, key-date alerts.
ContractOracle - 10 contract analysis tools: clause extraction, redlines, DORA mappings.
Contract drafting, statute-cited US state law requirements, non-compete checks, risk analysis.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAnalyzes contracts for safety score and risk assessment, identifying dangerous clauses and dispute patterns, with recommendations for improvements.-
- FlicenseAqualityDmaintenanceEnables analysis of legal document changes by constructing a dependency graph and simulating impact propagation, with risk level assessment.3-
- AlicenseNot gradedqualityDmaintenanceEnables users to paste contracts, leases, terms of service, and other documents to receive a plain-English summary of key risks, deadlines, rights, and negotiation points.MIT
- AlicenseAqualityCmaintenanceEnables agents to analyze contract excerpts and receive calibrated risk annotations across 10 default risk classes, including presence probabilities, overall risk levels, and human review recommendations.1MIT