ClauseAI
Server Details
Generate attorney-drafted NDAs, MSAs, DPAs, and more as PDF, ODT, or Markdown. No account required.
- Status
- Healthy
- Uptime
- 100.0% over 23 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- wasauce/clauseai
- GitHub Stars
- 1
- Server Listing
- ClauseAI
TDQS
Scored across 4 tools
Each tool targets a distinct step in the workflow: list_templates (discover), get_template_fields (inspect schema), generate_document (produce output), and send_feedback (report issues). There is no overlap in purpose, and the descriptions explicitly state the correct sequence, preventing misselection.
All four names follow a clean verb_noun snake_case pattern (list_templates, get_template_fields, generate_document, send_feedback). The convention is fully consistent and immediately readable.
Four tools is well-scoped for a document generation workflow: discover, inspect, generate, plus an escape hatch for feedback. Each tool is necessary and none is redundant.
The core lifecycle (find template, read fields, generate document, report gaps) is fully covered, including a feedback path for missing templates/clauses. Minor gaps exist, such as no way to retrieve or list previously generated documents, but agents can work around these.
Available Tools
4 toolsgenerate_documentGenerate documentAInspect
Use this after reading the field schema, to fill published fields and return markdown plus a download link. Do not invent clause text. Call it once per document: the result always includes the markdown text, and download_url is the file in the requested format. Answers are short values for the published fields; unknown keys, overlong values, and choices outside a field's options are rejected with instructions for fixing them.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Template slug from list_templates. | |
| No | Optional contact email recorded with the generation. | ||
| format | No | pdf, odt, or markdown. The download link uses this format. | |
| answers | No | Map of field keys to values, using only keys from get_template_fields. Leave out keys you cannot answer; they stay as placeholders. Do not send placeholder text. Dates are YYYY-MM-DD. Use __omit__ to remove a placeholder. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| title | Yes | |
| format | Yes | |
| answers | Yes | Answers as printed. ISO dates are written out in full. |
| filename | Yes | |
| markdown | Yes | Filled template text for summarization. The file the user downloads is at download_url. |
| warnings | No | Answers that were accepted but look wrong. Fix and regenerate, or pass each warning on to the user. |
| download_url | Yes | Absolute URL that downloads the rendered PDF, ODT, or Markdown file. |
| unfilled_fields | No | Field keys still shown as placeholders in the document. Tell the user these need completing before the document is used. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With destructiveHint=false and idempotentHint=false already declared, the description adds substantial context: it warns against inventing clause text, states the result always contains markdown, explains what download_url points to, and discloses validation behavior (unknown keys, overlong values, invalid options are rejected with fix instructions). That is behavior well beyond the annotation set.
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 sentences, front-loaded with the usage prerequisite before the output and validation details. Dense and mostly earning its place, though the output description slightly overlaps the output schema.
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?
Prerequisite, invocation frequency, inputs, validation failure modes, and outputs are all covered; the output schema further covers return shape, so nothing material is missing for correct invocation.
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 baseline is 3; the description rises above it by adding validation semantics for 'answers' (short values only, rejected keys/values) and pointing to get_template_fields for valid keys, plus confirming format drives the download link.
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 and artifact: fills published fields in a template and returns markdown plus a download link. The phrase 'after reading the field schema' ties it to list_templates/get_template_fields, so an agent can place it in the workflow without opening either schema.
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?
Gives clear sequencing ('use this after reading the field schema') and an invocation constraint ('call it once per document'). It does not explicitly name the alternative siblings or state when not to call it, but the prerequisite context is concrete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_template_fieldsGet template fieldsARead-onlyIdempotentInspect
Use this after choosing a template slug, to read the fill-in fields before generating a document.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Template slug from list_templates. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| title | Yes | |
| fields | Yes | |
| category | Yes | |
| source_url | Yes | |
| description | Yes | |
| when_needed | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds only workflow context, not behavioral traits like rate limits or what the returned fields look like. An output schema exists, so return-format detail is not required here.
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?
A single sentence with zero filler, front-loaded with the trigger ('after choosing a template slug') and ending with the purpose. Every clause earns its place.
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 simple, read-only, one-parameter tool with a full output schema and complete annotations, the description covers placement in the workflow adequately. Nothing an agent needs to invoke it correctly is missing, though it is minimal.
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?
With a single parameter at 100% schema description coverage, the schema already explains that 'slug' is a template slug from list_templates. The description reinforces the source of the slug but adds no format, syntax, or validation detail beyond the schema, matching the baseline for fully documented parameters.
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+resource ('read the fill-in fields') scoped to a template slug, so an agent knows exactly what it returns. It also implicitly distinguishes itself from siblings by referencing the slug source (list_templates) and the follow-up (generating a document). It stops short of explicitly contrasting itself with any sibling by name.
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?
Gives clear sequencing guidance: use it 'after choosing a template slug' and 'before generating a document.' This effectively tells the agent when in the workflow to call it relative to list_templates and generate_document. No when-not conditions or edge cases are mentioned, keeping it below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_templatesList templatesARead-onlyIdempotentInspect
Use this when the user wants a startup legal document and you need to choose a template such as an NDA, MSA, DPA, privacy policy, terms of use, cookie notice, offer letter, advisor agreement, or business associate agreement.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| templates | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is fully covered by structured data. The description adds domain context but nothing behavioral beyond that — no note on whether the list is static or dynamic, or how it relates to subsequent generation. With annotations carrying the safety profile, a 3 is appropriate.
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?
A single sentence that front-loads the usage condition before the template enumeration. The long list of document types is the only slightly padded element, though it does usefully scope the domain.
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 zero-parameter, read-only list tool with an output schema available to describe returns, the description supplies the one thing an agent needs: when this lookup is the right call. Nothing essential is missing.
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?
The tool takes zero parameters, so there is no parameter semantics for the description to explain. Baseline 4 applies; no gaps in this dimension.
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?
The description frames the tool as the one to reach for when selecting among startup legal templates and enumerates concrete examples (NDA, MSA, DPA, privacy policy, etc.), which makes the resource specific. It never states outright that the tool returns the available template list, so the verb is inferred from the name rather than declared in the text.
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?
It gives a clear triggering condition — the user wants a startup legal document and a template must be chosen — which implies this is the pre-generation lookup step. It does not name the sibling alternatives (e.g. generate_document, get_template_fields) or explicitly state that generation should follow, so routing is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_feedbackSend feedbackAInspect
Use this when a template lacks a field or clause the user needs, no template fits the request, a tool result was wrong, or the user wants to tell the ClauseAI team something. The message goes to the ClauseAI operator. Do not include document text or personal details.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Template slug the feedback is about, if any. | |
| No | Optional address for a reply. Only pass one the user gave you. | ||
| message | Yes | What you were trying to do and what was wrong or missing. Up to 4000 characters. | |
| category | No | bug, missing_field, template_request, or other. | other |
Output Schema
| Name | Required | Description |
|---|---|---|
| detail | Yes | |
| status | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-read-only, non-destructive, non-idempotent write with no open-world effects, and the description adds genuinely useful context the annotations lack: the message is routed to the ClauseAI operator and must be kept free of document text and PII. It stops short of stating limits such as the 4000-character cap or reply behavior.
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?
Two sentences, no redundancy. The triggering conditions are front-loaded and the privacy constraint closes as a clear prohibition; every sentence earns its place.
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?
With an output schema present, return values need no explanation, and the annotations plus full schema coverage carry the mechanical details. The description covers the remaining decision-relevant points (when to send, where it goes, what to omit), leaving only minor gaps like rate limits or expected turnaround.
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 description coverage is 100%, so all four parameters are already documented in the schema (slug, email, message length, category values). The description adds no syntax, format, or selection detail beyond that, so the baseline 3 applies.
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?
The description states a specific action (sending a message) and resource (the ClauseAI operator), and lists the triggering situations. It is clearly distinct from generate_document and list_templates, though it does not name those siblings explicitly.
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?
It enumerates four concrete when-to-use conditions (missing template field, no fitting template, wrong tool result, general commentary) and adds an explicit exclusion: do not include document text or personal details. This is about as complete as routing guidance gets.
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.
4 tool updates
- Changed
generate_document6 fields changed- changed
Input schema / properties / answers / descriptionPrevious value: -"Map of field keys to values. Missing keys stay as\nplaceholders."New value: +"Map of field keys to values, using only keys from\nget_template_fields. Leave out keys you cannot answer; they\nstay as placeholders. Do not send placeholder text. Dates\nare YYYY-MM-DD. Use __omit__ to remove a placeholder." - changed
Input schema / properties / format / descriptionPrevious value: -"pdf, odt, or markdown."New value: +"pdf, odt, or markdown. The download link uses this format." - removed
Output schema / additionalPropertiesRemoved value: -true - added
Output schema / descriptionAdded value: +"Filled template text plus a link to the rendered file." - added
Output schema / propertiesAdded value: +{ + "answers": { + "additionalProperties": { + "type": "string" + }, + "description": "Answers as printed. ISO dates are written out in full.", + "type": "object" + }, + "download_url": { + "description": "Absolute URL that downloads the rendered PDF, ODT, or Markdown file.", + "type": "string" + }, + "filename": { + "type": "string" + }, + "format": { + "type": "string" + }, + "markdown": { + "description": "Filled template text for summarization. The file the user downloads is at download_url.", + "type": "string" + }, + "slug": { + "type": "string" + }, + "title": { + "type": "string" + }, + "unfilled_fields": { + "description": "Field keys still shown as placeholders in the document. Tell the user these need completing before the document is used.", + "items": { + "type": "string" + }, + "type": "array" + }, + "warnings": { + "description": "Answers that were accepted but look wrong. Fix and regenerate, or pass each warning on to the user.", + "items": { + "type": "string" + }, + "type": "array" + } +} - added
Output schema / requiredAdded value: +[ + "slug", + "title", + "format", + "filename", + "markdown", + "download_url", + "answers" +]
- Changed
get_template_fields5 fields changed- added
Input schema / properties / slug / descriptionAdded value: +"Template slug from list_templates." - removed
Output schema / additionalPropertiesRemoved value: -true - added
Output schema / descriptionAdded value: +"Field schema for one template." - added
Output schema / propertiesAdded value: +{ + "category": { + "type": "string" + }, + "description": { + "type": "string" + }, + "fields": { + "items": { + "description": "One fill-in field on a template.", + "properties": { + "key": { + "type": "string" + }, + "label": { + "type": "string" + }, + "marks": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "max_length": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Longest answer accepted, in characters. Null for choice fields, which must match one of options exactly." + }, + "options": { + "items": { + "type": "string" + }, + "type": "array" + }, + "question": { + "type": "string" + }, + "replaces": { + "default": "", + "type": "string" + }, + "required": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "required": [ + "key", + "label", + "question", + "type", + "required" + ], + "type": "object" + }, + "type": "array" + }, + "slug": { + "type": "string" + }, + "source_url": { + "type": "string" + }, + "title": { + "type": "string" + }, + "when_needed": { + "type": "string" + } +} - added
Output schema / requiredAdded value: +[ + "slug", + "title", + "category", + "description", + "when_needed", + "source_url", + "fields" +]
- Changed
list_templates5 fields changed- added
Output schema / descriptionAdded value: +"Templates the user can draft." - removed
Output schema / properties / resultRemoved value: -{ - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array" -} - added
Output schema / properties / templatesAdded value: +{ + "items": { + "description": "One template in the public catalog.", + "properties": { + "category": { + "type": "string" + }, + "description": { + "type": "string" + }, + "field_count": { + "type": "integer" + }, + "slug": { + "type": "string" + }, + "source_url": { + "type": "string" + }, + "title": { + "type": "string" + }, + "when_needed": { + "type": "string" + } + }, + "required": [ + "slug", + "title", + "category", + "description", + "when_needed", + "source_url", + "field_count" + ], + "type": "object" + }, + "type": "array" +} - changed
Output schema / requiredPrevious value: -[ - "result" -]New value: +[ + "templates" +] - removed
Output schema / x-fastmcp-wrap-resultRemoved value: -true
- Added
send_feedback
3 tool updates
- First observed
generate_document - First observed
get_template_fields - First observed
list_templates
Related MCP Connectors
E-signatures for contracts and NDAs. Draft with AI, review, and send for signature.
Fill in 1,000+ legal PDF templates in many languages, get a signed PDF back. Free, no API key.
Fill standard legal agreement templates (NDAs, SAFEs, NVCA docs, employment) as DOCX files.
Compliant legal documents from your AI assistant: 1,100+ templates, 15 countries, free preview.
Related MCP Servers
- AlicenseAqualityBmaintenanceFill standard legal agreement templates (NDAs, SAFEs, NVCA docs, employment, cloud terms) and produce DOCX files.312,356 npm59Apache 2.0
- FlicenseNot gradedqualityNot gradedmaintenanceGenerate NDAs, contracts, tenancy agreements, and 24 more document types — directly from Claude Desktop, Cursor, or any MCP-compatible AI assistant.38 npm-
- AlicenseNot gradedqualityDmaintenanceAnswer a few questions. Get clean, jurisdiction-aware privacy policies and terms of service.MIT
- FlicenseBqualityNot gradedmaintenanceEnables the generation of professional, jurisdiction-specific legal documents like privacy policies, terms of service, and cookie policies. It allows users to produce structured HTML legal content by providing specific parties, terms, and service configurations to an AI-driven tool.1-
Glama MCP Gateway
Add one secure layer between your agents and this server.