jev-legal-clause-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@jev-legal-clause-mcpScan this contract clause and flag any high-risk items."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
jev-legal-clause-mcp
🇨🇳 中文文档
Let your agent flag contract-clause risks with calibrated-probability structured decisions instead of parsing free-form LLM text. Powered by TypeSafe Jev (System One decision model).
A single-purpose MCP tool that turns a contract excerpt into calibrated risk annotations — each of 10 default risk classes returns a presence probability (0..1), plus an overall risk level and a "suggest human review" flag. Your agent gets verifiable risk labels, not a legal opinion.
npm install && npm run build
node dist/index.js doctor # print dependency/mode diagnosticsConnect node dist/index.js in your MCP client and use the flag_clauses tool.
⚠️ This is not legal advice
This tool is a contract first-pass / triage aid. It uses a decision model to attach probability labels to clauses and cannot replace a lawyer. Always have a qualified human review any contract before signing. A high probability on one risk class does not mean the rest of the clauses are safe.
Related MCP server: safesign-mcp
Tool: flag_clauses
Input
Param | Type | Description |
| string | The contract excerpt to scan (a clause / a section / the whole thing) |
| string[]? | Optional, custom risk classes; defaults to the built-in 10 |
Default 10 risk classes
Class | Meaning |
| Indemnification / hold-harmless obligations |
| Non-compete / non-solicit |
| Confidentiality obligations |
| Early-termination penalty |
| Auto-renewal (renews unless notice given) |
| Missing liability cap (unlimited liability) |
| IP ownership / assignment |
| Governing law / dispute venue |
| Payment-term risk (terms / penalty interest) |
| Personal guarantee (joint & several liability) |
Output fields
Field | Meaning |
| Per class |
| Classes with |
| The highest-probability item in |
|
|
| Whether any flagged item exists or overall risk ≥ high |
| Whether running in mock mode |
Gate logic
Any class with
present_prob > 0.7→ entersflaggedflaggednon-empty oroverall_risk.score ≥ 2→review_recommended = true
Before any action, check review_recommended + overall_risk.confidence first.
Example
{
"clauses": [
{ "category": "indemnification", "label": "赔偿 / 补偿义务(hold harmless)", "present_prob": 0.92 },
{ "category": "governing_law", "label": "管辖法律 / 争议解决地", "present_prob": 0.81 },
{ "category": "non_compete", "label": "竞业限制", "present_prob": 0.12 },
"…"
],
"flagged": [
{ "category": "indemnification", "label": "赔偿 / 补偿义务(hold harmless)", "present_prob": 0.92 },
{ "category": "governing_law", "label": "管辖法律 / 争议解决地", "present_prob": 0.81 }
],
"highest_risk": { "category": "indemnification", "label": "赔偿 / 补偿义务(hold harmless)", "present_prob": 0.92 },
"overall_risk": { "score": 3, "label": "severe", "confidence": 0.83 },
"review_recommended": true,
"mocked": false
}Zero-key / local-first
No
TYPESAFE_API_KEYset → automatically enters mock mode (deterministic offline stub, zero-config for CI / demos)JEV_MCP_MOCK=1→ force mockSet
TYPESAFE_API_KEY→ call the real Jev API (defaultjev-latest@https://api.typesafe.ai/v1/systemone)
Environment variables
Variable | Default | Description |
| — | Required for real calls; blank falls back to mock |
|
| Model name |
| Official endpoint | Override for self-hosted / proxy |
|
|
|
|
| Per-request timeout |
Extremely low cost
A single decision is just one Jev call (10 noul + 1 score), state truncated at 60k characters, tens of thousands of tokens per call, with no LLM calls at all. Think of it as "one cheap gate in your contract pipeline".
Tests
npm test # smoke + MCP protocol handshake (mock mode, no key needed)License
MIT
Available Tools
1 toolflag_clausesA
Legal-risk clause flagger powered by Jev (System One decision model). Given a contract excerpt, returns calibrated presence probabilities for 10 default risk categories (indemnification / non-compete / confidentiality / termination penalty / auto-renewal / liability cap / IP assignment / governing law / payment terms / personal guarantee) plus an overall risk score and a review recommendation. This is a triage aid — NOT a legal opinion. Always have a human review before signing.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The contract excerpt to scan (a clause, section, or whole paragraph). | |
| types | No | Optional custom risk categories to scan. Defaults to the 10 built-in types. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no output schema, the description carries the full disclosure burden. It does well by stating outputs (probabilities, risk score, recommendation), the underlying model (Jev System One), and the operational caveat that this is triage, not legal advice. It could mention read-only behavior or input limits, but the key behavioral boundaries are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short, purposeful sentences. The first sentence identifies the tool, the second explains inputs and outputs, and the last two convey the critical limitation. No filler or redundant restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a triage/analysis tool with no output schema or annotations, the description adequately covers input, output categories, risk score, recommendation, and limitations. It stops short of specifying the exact response format or error conditions, but an agent has enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by enumerating the 10 default risk categories, which gives an agent concrete knowledge of what 'types' accepts even though no enum is provided. This goes beyond the schema's generic 'built-in types' phrasing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('flag') and resource ('clauses'), and describes exactly what it does: accepts a contract excerpt and returns calibrated probabilities for 10 named risk categories, an overall risk score, and a recommendation. The output behavior is specific enough that an agent can distinguish this from generic text-analysis tools even without siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly frames the tool as a triage aid to be used before signing, and explicitly warns it is not a legal opinion and requires human review. It lacks explicit when-not-to-use conditions or named alternatives, but with no sibling tools the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.1.0- First observed
flag_clauses
TDQS
Scored across 1 tool
With only a single tool, there is no possibility of confusing it with another tool. The purpose is unambiguous and clearly described.
The tool name flag_clauses follows a clear verb_noun convention. Even with only one tool, the name is descriptive, consistent, and easy to predict.
A single tool feels extremely thin for an MCP server. While specialized, the server would benefit from additional tools such as batch processing, clause list retrieval, or analysis history to justify its existence as a server.
The core flagging operation is present and functional, but the surface is minimal. There are notable gaps such as no way to retrieve past analyses, no configuration of risk categories, and no multi-clause or document-level handling, which limits agent workflows.
Maintenance
Related MCP Connectors
Review contracts for risks: summary, severity-rated flags, key terms, and clause coverage.
ContractOracle - 10 contract analysis tools: clause extraction, redlines, DORA mappings.
- ClmentOAuthcom.clment
Contract review that keeps your contracts: cited answers, Word redlines, key-date alerts.
Anonymous NDA risk analysis for AI agents. $9 per report. No signup, no data retention.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAnalyzes financial contract PDFs to extract clauses, flag risk terms, and compare contract versions, producing structured risk briefs for legal and risk teams.-
- FlicenseNot gradedqualityDmaintenanceAnalyzes contracts for safety score and risk assessment, identifying dangerous clauses and dispute patterns, with recommendations for improvements.-
- AlicenseNot gradedqualityCmaintenanceEnables 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
- FlicenseNot gradedqualityCmaintenanceEnables extracting explicitly stated contract metadata, clauses, and obligations from user-supplied contract text without storing or modifying the data.-