Open Agreements

Fill standard legal agreement templates (NDAs, SAFEs, NVCA docs, employment) as DOCX files.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
98%
Naming quality
95%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~719Tokens (tool definitions)
~1.4 KBTypical response size
Moderate attention impact (0.56% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "open-agreements": {
      "command": "npx",
      "args": [
        "@open-agreements/contract-templates-mcp"
      ]
    }
  }
}

Runnable packages

npm@open-agreements/contract-templates-mcp0.10.2stdio

Remote endpoints

https://openagreements.org/api/mcpstreamable-http
https://openagreements.ai/api/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_templates(cursor, limit)

List all available legal agreement templates as a paginated compact catalog. Returns lightweight metadata for discovery — call get_template for full per-field detail. Templates are returned in stable lexicographic order by template_id. For finding templates by topic, jurisdiction, or source, use search_templates instead.

Input Schema

{
  "type": "object",
  "properties": {
    "cursor": {
      "type": "string",
      "description": "Opaque pagination cursor returned by a prior call. Omit on the first page."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Page size (default 25, max 100)."
    }
  },
  "additionalProperties": false
}
🟢search_templates(query, category, source, max_results)

Search for legal agreement templates by keyword. Uses BM25 ranking to find the most relevant templates matching your query. Searches across template names, descriptions, categories, sources, and field definitions. Use this instead of list_templates when you know what kind of agreement you need.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Search query. Examples: \"NDA\", \"employment offer letter\", \"NVCA stock purchase\", \"data processing GDPR\", \"non-compete Wyoming\"."
    },
    "category": {
      "type": "string",
      "description": "Optional category filter (exact, case-insensitive). Values: confidentiality, employment, sales-licensing, data-compliance, deals-partnerships, professional-services, venture-financing, other."
    },
    "source": {
      "type": "string",
      "description": "Optional source filter (exact, case-insensitive). Values: \"Common Paper\", \"Bonterms\", \"Y Combinator\", \"NVCA\", \"OpenAgreements\"."
    },
    "max_results": {
      "type": "number",
      "description": "Maximum results to return (1-50, default 10)."
    }
  },
  "required": [
    "query"
  ]
}
🟢get_template(template_id)

Fetch a single template definition with full field metadata.

Input Schema

{
  "type": "object",
  "properties": {
    "template_id": {
      "type": "string",
      "description": "Template ID, e.g. \"common-paper-mutual-nda\"."
    }
  },
  "required": [
    "template_id"
  ]
}
⚪fill_template(template, values, return_mode, include_redline, redline_base)

Fill a legal agreement template with field values and return a document via URL or MCP resource preview metadata. For field-selector templates (e.g. NVCA), also generates a redline (track-changes) document comparing the filled output against the standard form.

Input Schema

{
  "type": "object",
  "properties": {
    "template": {
      "type": "string",
      "description": "Template ID, e.g. \"common-paper-mutual-nda\"."
    },
    "values": {
      "type": "object",
      "description": "Field values to fill in the template.",
      "additionalProperties": true
    },
    "return_mode": {
      "type": "string",
      "enum": [
        "url",
        "mcp_resource"
      ],
      "description": "Artifact return mode. Defaults to \"url\"."
    },
    "include_redline": {
      "type": "boolean",
      "description": "Generate a redline (track-changes) document. Defaults to true for field-selectors."
    },
    "redline_base": {
      "type": "string",
      "enum": [
        "source",
        "clean"
      ],
      "description": "Base document for redline comparison. \"source\" = raw standard form (default), \"clean\" = cleaned intermediate."
    }
  },
  "required": [
    "template"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools
verifiedversion not recorded4 tools
verifiedversion not recorded4 tools
verifiedversion not recorded4 tools