mcpField
O
open-agreements

open-agreements

github.com/open-agreementsDocuments6191 installsUpdated 5d ago
Repository

About open-agreements

open-agreements is an agent skill for navigating legal reference content and drafting agreements, including lawyer-reviewed guides, checklists, law surveys, and templates. It routes focused requests to narrower skills and can fill signable DOCX files through a local CLI.

Key features

  1. 01Lawyer-reviewed practice guides
  2. 02Agreement review checklists and law surveys
  3. 03Discover and fill agreement templates
  4. 04Generate formatted DOCX files
  5. 05Local CLI filling workflow

Use cases

  1. 01Find source-cited legal guidance
  2. 02Compare laws across U.S. states
  3. 03Review a draft against a checklist
  4. 04Fill a standard form as a DOCX

MCP support

The skill does not install or start an MCP server. With a separately configured Open Agreements MCP server, clients can search templates, read field definitions, and generate DOCX files; the hosted service receives template contents and field values.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/open-agreements/open-agreements --skill open-agreements

After installing, type/open-agreementsin Claude Code to confirm it loaded.

Bundled filesCONNECTORS.mdtemplate-filling-execution.md

Details

From the project README

open-agreements

OpenAgreements is a legal content library with four kinds of first-class content: practice guides, review checklists, law surveys, and fill-ready agreement templates. This skill makes an agent aware of all four and able to navigate them. Filling a template into a signable DOCX is one of those capabilities — see the fill workflow below.

Route to the narrowest skill

Treat open-agreements as the flagship hub. Keep using it when a request spans content types, starts with template discovery, or does not yet identify a specific agreement. When the request is precise, route to the narrowest spoke; those skills carry focused triggers, template choices, and safety instructions.

User's taskRoute to
NDA, confidentiality agreement, mutual or one-way NDAnda
SaaS agreement, MSA, cloud contract, order form, pilot agreementcloud-service-agreement
Consulting contract, contractor agreement, services agreement, SOWservices-agreement
Offer letter, employment agreement, PIIA, employee onboarding documentsemployment-contract
DPA, GDPR addendum, HIPAA BAA, data-processing or AI addendumdata-privacy-agreement
YC SAFE, valuation cap, discount, MFN, or pro-rata side lettersafe
NVCA or Series A financing documentsventure-financing
Explain non-compete or restrictive-covenant lawnon-compete-contract-explainer
Explain U.S. state consumer-privacy lawdata-privacy-law-explainer

The spoke names are routing targets, not separate brands. They install from the same open-agreements/open-agreements bundle, and this hub remains the fallback for mixed or ambiguous agreement work.

Lawyer-reviewed practice guides

OpenAgreements practice guides are lawyer-reviewed. Learn about the editors at https://openagreements.org/editors. Third-party standard forms retain their own authorship and license provenance.

What's in OpenAgreements

ContentWhat it isHow to read it
Practice guidesSource-cited, state-by-state explanations of what the law says (e.g. non-compete, consumer privacy, AI in hiring).Append .md or .json to a guide's canonical URL on openagreements.org. Browse as plain markdown under practice-guides/.
Review checklistsRequirement-by-requirement checklists for reviewing an agreement against a standard form (e.g. the YC SAFE).Append .md or .json to a checklist's canonical URL.
Law surveys50-state comparison tables for a topic.Append .json or .csv (spreadsheet import) to a survey's canonical URL; surveys have no .md twin.
Agreement templatesStandard forms (Common Paper, Bonterms, Y Combinator, OpenAgreements) you can fill into signable DOCX.Use the MCP or CLI fill workflow below.

For deep, jurisdiction-specific legal research, the data-privacy-law-explainer and non-compete-contract-explainer skills wrap the practice-guide content, bundling a per-jurisdiction snapshot offline.

Fill a template (one capability)

The rest of this skill documents the template-filling capability, discovering a standard form and filling it into a signable DOCX. Use the local CLI by default. The other three content kinds above are read-only reference content: fetch their machine-readable twins or browse the repo directly.

Activation

Use this skill when the user wants to:

  • Find a source-cited legal practice guide
  • Compare a legal rule across U.S. states
  • Review a draft against a requirement-by-requirement checklist
  • Draft an NDA, confidentiality agreement, or cloud service agreement
  • Generate a SAFE (Simple Agreement for Future Equity) for a startup investment
  • Fill a legal template with their company details
  • Generate a filled DOCX from a standard form

Execution — MCP Tools (Optional, Not Bundled)

The Claude plugin does not install or start an MCP server. If the user has separately configured the Open Agreements MCP server, you may use these tools. For the hosted server, disclose that field values are sent to openagreements.org before using fill_template.

Remote MCP URL: https://openagreements.org/api/mcp

Available MCP Tools
ToolPurpose
list_templatesList available templates as a paginated compact catalog (template_id, display_name, category, description, field_count, priority_field_count). Pages with cursor + limit (default 25, max 100).
search_templatesSearch the catalog by topic when the desired agreement type is known
get_templateGet full field metadata for a specific template
fill_templateFill a template with values and return a downloadable DOCX
MCP Workflow
  1. Discover templates: Call list_templates (returns a compact, paginated catalog — page with cursor + limit until next_cursor is null). If you know the topic ahead of time, prefer search_templates over a full catalog walk. If user asked for a specific type (e.g. "NDA"), identify the right template from the list.
  2. Get field details: Call get_template with the chosen template_id to get full field definitions (name, type, required, section, description, default).
  3. Collect field values: Ask the user for values based on the field definitions. Use defaults where the user doesn't specify.
  4. Fill template: Call fill_template with the template ID and values. Returns a download URL for the DOCX.
  5. User reviews document: Present the download link. Wait for the user to confirm the document looks good.

Confirm-before-signing fields (statutory compliance representations)

A few templates have boolean fields that recite a past statutory-compliance fact someone must actually have performed (e.g. "the required advance notice was given before signing"). Their get_template description begins with CONFIRM-BEFORE-SIGNING, and they default to false.

  • You MUST ask the human to confirm the fact actually happened before setting one of these fields to true. Setting it true asserts a real-world fact; do not infer it from context.
  • When such a field is left false (unconfirmed) and the clause applies, the filled DOCX is not broken — the recital renders followed by a yellow [CONFIRM before signing: …] bracket, and a matching yellow notice appears on page one listing each item still needing confirmation. Tell the user these yellow brackets must be confirmed and deleted before the agreement is signed.
  • Once the human confirms, set the field to true and the document renders clean (no bracket, no page-one notice).

Execution — Local CLI (Default for Template Filling)

Use the CLI unless the user has already chosen a separately configured MCP server.

Step 1: Detect runtime
if command -v open-agreements >/dev/null 2>&1 &&
  test "$(open-agreements --version 2>/dev/null)" = "0.8.0"
then
  echo "GLOBAL"
elif command -v node >/dev/null 2>&1; then
  echo "NPX"
else
  echo "PREVIEW_ONLY"
fi
  • GLOBAL: Use open-agreements directly only after its installed package version has been verified as 0.8.0.
  • NPX: Use npx -y [email protected] as prefix. Always pin the version — never use @latest to avoid pulling unexpected updates.
  • PREVIEW_ONLY: No Node.js. Generate markdown preview only.
Step 2: Discover templates
open-agreements list --json

Parse the items array. Each item has name, description, license, source_url, source, and fields.

Step 3: Help user choose, collect values, fill

Same as MCP workflow steps 2-5. Keep the collected values in memory until the user confirms them. Then create, use, and delete the values file in one shell invocation:

(
  set -eu
  VALUES_FILE="$(mktemp "${TMPDIR:-/tmp}/oa-values.XXXXXX")"
  chmod 600 "$VALUES_FILE"
  trap 'rm -f "$VALUES_FILE"' EXIT HUP INT TERM

  cat > "$VALUES_FILE" <<'FIELDS'
{
  "field_name": "confirmed value"
}
FIELDS

  if command -v open-agreements >/dev/null 2>&1 &&
    test "$(open-agreements --version 2>/dev/null)" = "0.8.0"
  then
    open-agreements fill <template-name> -d "$VALUES_FILE" -o <output-name>.docx
  else
    npx -y [email protected] fill <template-name> -d "$VALUES_FILE" -o <output-name>.docx
  fi
)

The restrictive permissions and cleanup trap keep confidential field values out of a predictable shared path and remove them even if filling fails.

Source Code and Audit

Open Agreements is fully open source (Apache-2.0 license). Review the complete source before installing:

All template field definitions and fill logic are auditable in the repository.

A note on versions

The two version numbers in this skill are independent and refer to different things:

  • Skill version (in this file's frontmatter, currently 0.4.0) — versions the skill documentation itself.
  • npm package version (currently 0.8.0) — the version of the upstream open-agreements npm package this skill recommends pinning. Check npm view open-agreements version for the latest.

A newer skill version means the documentation was updated. A newer npm package version means the underlying tool was updated. They are not synchronized.

Install-Time vs Runtime Network Behavior

Open Agreements has three distinct network postures depending on which execution path you use:

PathInstall-time networkRuntime network
Pinned global install (npm install -g [email protected])One-time fetch from registry.npmjs.orgNone for list/fill.
Pinned npx (npx -y [email protected])Fetch from registry.npmjs.org on first run, cached afterwardSame as above
Remote MCP (https://openagreements.org/api/mcp)NoneTemplate contents and any field values are sent to openagreements.org. Use only if you accept transmitting these values to the hosted service.

Use the local CLI path (global or npx) if you need guaranteed offline behavior with no third-party data transfer.

Offline / Pinned Installation

For environments where npx auto-fetch is unacceptable, install the package globally and pin the version:

# Install a specific pinned version globally (one-time)
npm install -g [email protected]

# Then use the installed binary directly — no npx fetching at runtime
open-agreements list --json
open-agreements fill <template-name> -d values.json -o output.docx

Before upgrading, review the changelog: https://github.com/open-agreements/open-agreements/blob/main/CHANGELOG.md

Pin the version even when using npx

Even with npx, always pin the version:

npx -y [email protected] list --json

Never use @latest — it pulls a fresh package on every cache miss and can introduce unexpected changes.

Shared Execution Reference

For the full template-filling workflow (applicable to all agreement skills), see template-filling-execution.md.

Notes

  • All templates produce Word DOCX files that preserve original formatting
  • Templates are licensed by their respective authors (CC BY 4.0, CC0, or CC BY-ND 4.0)
  • External templates (CC BY-ND 4.0, e.g. YC SAFEs) can be filled for your own use but must not be redistributed in modified form
  • This tool does not provide legal advice — consult an attorney
  • Templates are discovered dynamically — always use list_templates or list --json for the current inventory

Feedback

If this skill helped, star us on GitHub: https://github.com/open-agreements/open-agreements On ClawHub: clawhub star open-agreements/open-agreements

Comments

Markdown supported