Contract Ops Mcp

io.github.DrBaherPublished by GitHub account DrBaherv0.3.0Updated Oct 24, 2026

One MCP server for the contract-ops suite: all nine local-first CLIs as agent tools.

Overview

AI-generated overview

Local MCP server that exposes nine contract-ops command-line tools to an assistant for extracting, linting, comparing, drafting and reviewing contracts.

What you can do
Extract contract files (.md, .txt, .html, .docx, .pdf) into structured JSON with parties, dates and clauses, and lint them for placeholders, broken references and numbering or date defects. Compare two contract versions clause by clause to show substantive, cosmetic or moved changes. Fill template placeholders with typed parameters and convert DOCX files to PDF. Score an NDA against a house playbook with supporting evidence. Search and resolve versioned templates, and query a signed-contract register for renewals, notice deadlines and renewal exposure. Verify signed PDFs and receipt bundles, walk the audit log, list installed CLIs, and run any suite CLI through a catalog and raw-argument pas
When to use it
Useful when you work with contracts in an agent and want extraction, consistency checks, version comparison, NDA review or template filling without leaving the chat. Also suited to teams already using the contract-ops CLIs who want an assistant to drive them.
Requirements
Runs locally over stdio, typically launched with npx. The nine contract-ops CLIs must already be installed on the machine, since the server shells out to them. PDF conversion needs a PDF backend such as LibreOffice. File paths are confined to CONTRACT_OPS_MCP_BASE_DIR, which defaults to the working directory.
Before you install
The raw-argument run tool can execute suite CLIs, though signing subcommands are rejected by an allowlist and signing stays human-gated. File-path arguments are sandboxed to CONTRACT_OPS_MCP_BASE_DIR unless you widen it. The README suggests installing CLIs with a curl-to-shell script, which runs remote code; review it first. Some tools write output files such as PDFs.

Installation

In SourceWeft

  1. Open Contract Ops Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

contract-ops-mcp

One MCP server for the whole contract-ops CLI suite — wire it up once and an agent (Claude, Cursor, Codex, …) gets all nine local-first CLIs as tools: extract, draft, lint, compare, convert, review, and the template + signed-contract vaults. Signing stays human-gated.

Run this

jsonc
// e.g. Claude Desktop / Cursor MCP config{  "mcpServers": {    "contract-ops": { "command": "npx", "args": ["-y", "contract-ops-mcp"] }  }}

The CLIs themselves must be installed (the server shells out to them). Fastest way to get all nine:

bash
curl -fsSL https://cli.drbaher.com/install.sh | sh     # local# …or run the server + CLIs in one container: ghcr.io/drbaher/contract-ops

Call suite_status any time to see which CLIs are present and how to install any that aren't.

Prefer a ready-made agent? contract-ops-agent is a terminal agent that already wraps this server in an enclosure — the model's only tools are the contract-ops tools, no shell/filesystem/signing by construction. Bring your own model (Claude, OpenAI, or any OpenAI-compatible endpoint): npm i -g contract-ops-agent.

Tools

Curated, ergonomic tools (typed inputs, JSON out) for the common operations, plus two escape hatches for the long tail:

ToolWhat it does
extract_contractAny contract (.md/.txt/.html/.docx/.pdf) → structured JSON (parties, dates, clauses, …)
lint_contractInternal-consistency findings (placeholders, broken refs, defined-term/numbering/date defects)
compare_versionsClause-aware drift between two versions (exit 0 clean · 2 substantive · 3 cosmetic · 4 moved)
fill_templateFill a template's placeholders with typed params (deterministic)
convert_to_pdfDOCX → PDF (needs a PDF backend, e.g. LibreOffice)
review_ndaScore an NDA against a house playbook, with evidence
template_vault_find / template_vault_getSearch / resolve versioned templates (read-only)
contract_vault_query / contract_vault_due / contract_vault_riskQuery the signed-contract register; project renewal/notice deadlines; renewal-exposure (read-only)
verify_signature / verify_receipt / audit_showVerify a signed PDF / a receipt bundle / walk the audit log (read-only)
catalog(cli)Return any CLI's full --catalog json — discover the long tail
run(cli, args)Escape hatch: run any suite CLI with raw args (no shell)
suite_statusWhich CLIs are installed (+ versions) and how to install the rest

The curated set and catalog/run are discovery-driven — they ride the suite's uniform --catalog json contract, so they stay in sync as the CLIs evolve.

Safety

  • Signing is human-gated. Only sign-cli's read/verify operations are exposed (verify_signature, verify_receipt, audit_show) — never request-create or sign. This is enforced: the run/catalog escape hatches reject any sign subcommand outside a read-only allowlist, so request-create/send/sign/approve can't be reached here. Those stay behind sign-cli's own MCP server with its per-signer approval tokens, so this server can't become an unguarded signing path.
  • Filesystem lockdown. File-path arguments to the curated tools are confined to CONTRACT_OPS_MCP_BASE_DIR (default: the working directory). Set it to widen the sandbox.
  • No shell. CLIs are invoked with execFile (no shell interpolation).

License

MIT. Part of the contract-ops CLI suite. See AGENTS.md for the agent contract.

Source: README.md at commit c1817d1

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.3.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts