MCP (Model Context Protocol) server for Nexus Legal — exposes 27 specialised legal capabilities (analyze, consulta, draft, audit, consensus, monte_carlo, doctrina, opinion, redteam, adversarial, cross_border, jurisprudencia_search, verify_cita, verificacion, plazos, cruce, box_analyze, playbook, compare_versions, conflict_check, inbox, chat, normativa_search, normativa_articulo, normativa_pyramid, corpus_coverage, normativa_coverage) to Claude Desktop / Claude Code / Cursor and other MCP clients.
Nexus Legal exposes 27 tools with highly specialized legal domain semantics. Naming is domain-specific but inconsistent: nexus_analyze, nexus_audit, nexus_adversarial follow verb_noun patterns, but nexus_consulta, nexus_doctrina, nexus_cruce use Spanish nouns without action verbs, violating pattern:tool naming conventions. Tool descriptions are present and detailed (100-300 chars), explaining WHEN to use each tool and cost in credits, above baseline. However, 15 of 27 tools (nexus_consulta, nexus_monte_carlo, nexus_doctrina, nexus_opinion, nexus_redteam, nexus_cross_border, nexus_jurisprudencia_search, nexus_verify_cita, nexus_verificacion, nexus_plazos_calcular, nexus_cruce, nexus_playbook, nexus_inbox, nexus_normativa_search, nexus_normativa_articulo, nexus_normativa_pyramid, nexus_corpus_coverage, nexus_normativa_coverage) have NO visible input schemas in the provided source code, only file references. Only 4 tools (nexus_analyze, nexus_audit, nexus_adversarial, box_analyze, nexus_compare_versions, nexus_conflict_check, nexus_chat) show explicit Zod schemas with typed parameters and descriptions. Error handling is present in server.ts (NexusHttpError class, actionable error messages), but tool-level validation and recovery guidance are not visible. Output schemas are not documented in tool definitions.
Analyze a legal document that lives in the user's Box account WITHOUT downloading it: pass the Box file_id and Nexus retrieves the user's Box token (OAuth), downloads the binary, extracts text (Gemini OCR for PDF/DOCX), runs the legal analysis (Node A) and — by default — writes the result back to the Box file as metadata. Requires the user behind the API key to have an active Box connection. Charges 1 credit only on success (2 for 'auditoria' mode). Max file size 50 MB. USE WHEN: the user wants to analyse a file they already hold in Box and refers to it by file_id.
ADVERSARIAL ARGUMENT (Node C — opposing-party mode). For each conclusion of the Node A analysis, builds the strongest argument the other side would run. Useful to prepare litigation or to anticipate objections in negotiation. Different from `nexus_redteam`: adversarial DEBATES the conclusions (prose), redteam DESTROYS clauses (structured JSON). USE WHEN: the client needs to anticipate the other side. Cost: 2-3 credits.
PRIMARY LEGAL ANALYSIS (Node A — ISO 31000). Reads a document in full: extracts parties, risks, clauses, time limits, applicable law and relevant case law. Applies the jurisdiction (ES/CO/GB/etc.) and the corresponding branch of law. Returns a structured report with certainty locks [L1]/[L2-J]/[L3-NV]/[L4] and blocking signals [L5-C]/[L5-P]. Ends with a NEXUS-AUDIT-TRAIL block for later audit. Cost: ~1-3 credits depending on size and model tier. USE WHEN: the user supplies a legal document and asks for analysis of risk, viability, critical clauses, or a defence at trial.
15 of 27 tools have NO visible input schemas in source code. Only file references exist (e.g., src/tools/consulta.ts). This violates pattern:constrained-input and pattern:tool-description, LLMs cannot infer parameter types, constraints, or valid values.
Tool naming inconsistency: nexus_consulta, nexus_doctrina, nexus_cruce, nexus_verificacion use Spanish nouns without action verbs. Baseline shows 90% of A+ tools start with action verbs (get_, create_, search_, etc.). This violates pattern:tool naming and forces LLMs to guess intent.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
CROSS-AUDIT OF THE NODE A ANALYSIS (Node B — adversarial control). Checks the previous analysis against the original document: detects unsupported assertions, misapplied certainty locks, omissions, internal contradictions, and produces the V-XX verification block. Returns a confidence score 0-100. USE WHEN: the user wants a second layer of validation before putting the analysis in front of a client or a court. Requires `nexus_analyze` to have run first. Cost: 1-2 credits.
CASE-FILE RAG CHAT (interactive auditor). Multi-turn conversational Q&A over a document and its Node A/B analysis supplied in `context` (BYOD, no persisted case file). Returns the answer with deterministic citation verification annotated. USE WHEN: you want to interrogate a contract that has already been analysed ('which clause caps my liability?', 'what happens if I miss the deadline?'). Cost: 1 credit.
VERSION COMPARISON V1↔V2 (Node B — dual audit). Analyses two versions of the same document (V1 original vs V2 returned by the other side) and reports: alarms resolved, new vulnerabilities introduced, and an executive view of the commercial impact, with deterministic citation verification. With `jurisdictionB` it activates the bilateral checks (governing law / forum altered between versions). USE WHEN: the other side returns a redline and you need to know what improved and what traps went in. Cost: 2 credits.
CONFLICT CHECK (conflicts of interest). Deterministic check BEFORE opening a case file: compares the parties given against the parties of the firm's existing case files (pattern matching + trigram similarity + shared tokens). Returns `{ clean, conflicts[] }`. Consumes NO credits. USE WHEN: you are about to open a case and need descartar un conflicto de intereses antes de aceptarlo.
Output schemas are not documented in any tool definition. LLMs cannot plan downstream tool calls or extract required fields without knowing what each tool returns. Violates pattern:tool and pattern:response-shaper.
No tool-level error handling or recovery guidance visible. server.ts has generic NexusHttpError handling, but individual tools do not document what errors they can raise, whether they are retryable, or what the LLM should do next. Violates pattern:recovery-guide.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. Tools marked WRITE (nexus_draft, box_analyze) are not annotated as destructive. Violates current MCP spec (2026-07-28) which rewards tool annotations for agent safety.