legal-doc-intelligence
README.md
# Legal Doc Intelligence — Pay-Per-Call MCP Server
An MCP server that exposes 8 AI-powered legal document analysis tools, each billed per call in USDC on Base via the [x402 payment protocol](https://x402.org). No accounts, no subscriptions — agents pay only for what they use.
**Live endpoint:** `https://income-machine-production.up.railway.app/mcp`
**Health check:** `https://income-machine-production.up.railway.app/health`
**Transport:** HTTP (Streamable HTTP / MCP 2025-11-25)
---
## Tools & Pricing
| Tool | Description | Price |
|------|-------------|-------|
| `extract_clauses` | Extract and categorize all clauses from a contract | $0.02 USDC |
| `identify_risks` | Identify legal risks, red flags, and unfavorable terms | $0.05 USDC |
| `compare_contracts` | Compare two contracts and highlight differences | $0.05 USDC |
| `extract_parties` | Extract all parties, roles, and contact info | $0.01 USDC |
| `summarize_contract` | Generate an executive summary for non-lawyers | $0.02 USDC |
| `check_compliance` | Check compliance with GDPR, CCPA, SOX, and others | $0.05 USDC |
| `extract_obligations` | Extract all obligations, deadlines, and deliverables | $0.02 USDC |
| `calculate_penalty_exposure` | Calculate maximum financial penalty exposure | $0.05 USDC |
Prices auto-adjust downward if call volume drops below the 7-day average.
---
## Payment Protocol (x402)
Payments use the [x402](https://x402.org) HTTP payment standard:
1. Call any tool without a `payment_header` → server returns a `402 Payment Required` response with `PaymentRequirements`
2. Client constructs a USDC payment on **Base** to `0xF4641f6AF6cc32c588Fa948ff64dBC0974F7D290`
3. Client encodes the signed payment as a base64 `payment_header` and retries the call
4. Server verifies and settles on-chain, then returns the result
**Network:** Base (Coinbase L2)
**Token:** USDC (`0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913`)
**Receiver:** `0xF4641f6AF6cc32c588Fa948ff64dBC0974F7D290`
---
## Quick Start — Claude Desktop
Add to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"legal-doc-intelligence": {
"url": "https://income-machine-production.up.railway.app/mcp",
"transport": "http"
}
}
}
```
You will need a Base wallet with USDC to pay for tool calls. Compatible wallets: [Coinbase Wallet](https://wallet.coinbase.com), MetaMask with Base network.
---
## Quick Start — Programmatic (Node.js)
```js
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const client = new Client({ name: "my-agent", version: "1.0.0" });
await client.connect(
new StreamableHTTPClientTransport(
new URL("https://income-machine-production.up.railway.app/mcp")
)
);
// First call returns payment requirements
const result = await client.callTool("identify_risks", {
contract_text: "...",
jurisdiction: "EU",
});
// If result contains x402: true, construct payment and retry with payment_header
```
---
## Self-Hosting
### Requirements
- Node.js 20+
- A Base wallet with ETH (gas) and USDC
- Railway / Fly.io / any Node.js host
### Environment Variables
```env
ANTHROPIC_API_KEY= # Claude API key for AI processing
CDP_PRIVATE_KEY= # Private key of the Base wallet (0x...)
WALLET_ADDRESS= # Public address of the same wallet
KRAKEN_API_KEY= # Optional: auto-convert USDC → EUR via Kraken
KRAKEN_API_SECRET= # Optional
KRAKEN_DEPOSIT_ADDRESS= # Optional: your Kraken USDC deposit address on Base
TELEGRAM_BOT_TOKEN= # Optional: alerts
TELEGRAM_CHAT_ID= # Optional
DASHBOARD_PASSWORD= # Password for the private /dashboard endpoint
PORT=3000
BASE_URL= # Your public URL, e.g. https://your-app.railway.app
```
### Run
```bash
npm install
npm run build
npm start
```
---
## Architecture
- **MCP server** — Express + `@modelcontextprotocol/sdk`, HTTP transport
- **Payment layer** — `x402` npm package for verify + settle on Base
- **Auto-conversion** — Kraken API polls USDC balance and converts to EUR when threshold is met
- **Autopilot** — cron job scans HN for new MCP marketplaces weekly and adjusts prices nightly
- **Alerts** — Telegram bot notifies on payments, errors, and conversions
---
## License
MIT
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues