Skip to main content
Glama

Server Details

Generate attorney-drafted NDAs, MSAs, DPAs, and more as PDF, ODT, or Markdown. No account required.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 42 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
wasauce/clauseai
GitHub Stars
1
Server Listing
ClauseAI

TDQS

A4.2/5.0

Scored across 4 tools

Disambiguation5/5

Each tool occupies a distinct slot in a clear pipeline: list_templates (discover), get_template_fields (inspect schema), generate_document (produce output), and send_feedback (escape hatch). Descriptions even specify ordering cues ('use this after choosing a template slug'), so an agent cannot easily misselect.

Naming Consistency5/5

All four names follow a strict verb_noun snake_case pattern (list_templates, get_template_fields, generate_document, send_feedback). Verbs are conventional and unchanging across the set.

Tool Count5/5

Four tools is well-scoped for a template-driven document generator: one discovery call, one schema read, one generation call, plus a feedback channel. Nothing appears redundant and no obvious operation is crammed in.

Completeness4/5

The discover-inspect-generate lifecycle is fully covered with a feedback path for gaps. Minor omissions exist: no way to list generated documents or supported output formats, and generate_document forbids a second call, so revisions must be handled outside the surface.

Available Tools

4 tools
generate_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, download_url is the file in the requested format, and editable_download_url is a Word copy the user can edit. 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.

NameRequiredDescriptionDefault
slugYesTemplate slug from list_templates.
formatNopdf, docx, odt, or markdown. The download link uses this format.pdf
answersNoMap 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

NameRequiredDescription
slugYes
titleYes
formatYes
answersYesAnswers as printed. ISO dates are written out in full.
filenameYes
markdownYesFilled template text for summarization. The file the user downloads is at download_url.
warningsNoAnswers that were accepted but look wrong. Fix and regenerate, or pass each warning on to the user.
download_urlYesAbsolute URL that downloads the rendered PDF, Word, ODT, or Markdown file.
unfilled_fieldsNoField keys still shown as placeholders in the document. Tell the user these need completing before the document is used.
editable_download_urlYesAbsolute URL for a Word (.docx) copy the user can edit before signing. Give it to the user with download_url.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the safety profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false); the description adds substantial context beyond them: the return payloads (markdown, download_url, editable_download_url) and their meaning, and the validation behavior (unknown keys, overlong values, and out-of-option choices are rejected with fix instructions). The 'once per document' note is also consistent with idempotentHint=false, giving the agent a reason for that annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the primary purpose and prerequisite, then layers the no-invention rule, cardinality, and return shape. The final sentence on validation is dense but earns its place by warning the agent about failure modes; nothing is padding, though the output descriptions are slightly redundant given an output schema exists.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter generation tool with an output schema and annotations, the description covers prerequisite ordering, required input shape, validation failure behavior, and the identity of each returned artifact. An agent has everything needed to invoke it correctly on the first attempt.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds genuine constraint semantics not in the schema: answers must be 'short values for the published fields', and invalid keys/values are rejected with remediation instructions. It doesn't restate format enum details already covered by the schema, which is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ('fill published fields and return markdown plus a download link') and explicitly positions the tool after 'reading the field schema', which distinguishes it from the sibling get_template_fields. An agent can tell immediately this is the terminal generation step, not a lookup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states sequencing ('use this after reading the field schema') and a cardinality rule ('call it once per document'), plus a negative instruction ('do not invent clause text'). What is missing is any explicit statement of when NOT to use it or which sibling to prefer under ambiguous conditions, but the ordering guidance is clear.

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 fieldsA
Read-onlyIdempotent
Inspect

Use this after choosing a template slug, to read the fill-in fields before generating a document.

NameRequiredDescriptionDefault
slugYesTemplate slug from list_templates.

Output Schema

NameRequiredDescription
slugYes
titleYes
fieldsYes
categoryYes
source_urlYes
descriptionYes
when_neededYes

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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 templatesA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
templatesYes

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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, except an email or phone number the user offers for a reply.

NameRequiredDescriptionDefault
slugNoTemplate slug the feedback is about, if any.
emailNoOptional email address for a reply. Only pass one the user gave you.
phoneNoOptional phone number for a reply. Only pass one the user gave you.
messageYesWhat you were trying to do and what was wrong or missing. Up to 4000 characters.
categoryNobug, missing_field, template_request, or other.other

Output Schema

NameRequiredDescription
detailYes
statusYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description usefully discloses that the message goes to the ClauseAI operator and that document text or personal details should not be included except user-provided reply contact details. This adds meaningful context for a write/open-world operation, though it does not discuss retention or confirmation behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences and front-loads the usage conditions before stating the destination and privacy constraint. Every sentence adds useful information without repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema and annotations covering its write and open-world nature, so return values and safety traits are already documented. The description fills the remaining gaps by explaining when to use it, where the feedback goes, and what must be excluded.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all five parameters. The description still adds value by constraining what may go into the feedback message and by clarifying that reply contact details should only be included when the user offers them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description makes clear that this tool sends feedback to the ClauseAI operator, and it lists specific triggering situations such as a missing template field or an incorrect tool result. This distinguishes it from sibling tools like generate_document and list_templates, which handle document generation and template discovery.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use conditions: when a template lacks a needed field or clause, no template fits, a tool result was wrong, or the user wants to tell the ClauseAI team something. It also includes privacy guidance about what not to include, though it does not explicitly state when not to use the tool or name alternative paths.

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.

  1. 1 tool update
    • Changedsend_feedback2 fields changed
      • changedInput schema / properties / email / description
        Previous value: -"Optional address for a reply. Only pass one the user gave you."New value: +"Optional email address for a reply. Only pass one the user\ngave you."
      • addedInput schema / properties / phone
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional phone number for a reply. Only pass one the user\ngave you."
        +}
  2. 1 tool update
    • Changedgenerate_document5 fields changed
      • removedInput schema / properties / email
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Optional contact email recorded with the generation."
        -}
      • changedInput schema / properties / format / description
        Previous value: -"pdf, odt, or markdown. The download link uses this format."New value: +"pdf, docx, odt, or markdown. The download link uses this\nformat."
      • changedOutput schema / properties / download_url / description
        Previous value: -"Absolute URL that downloads the rendered PDF, ODT, or Markdown file."New value: +"Absolute URL that downloads the rendered PDF, Word, ODT, or Markdown file."
      • addedOutput schema / properties / editable_download_url
        Added value: +{
        +  "description": "Absolute URL for a Word (.docx) copy the user can edit before signing. Give it to the user with download_url.",
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "slug",
        -  "title",
        -  "format",
        -  "filename",
        -  "markdown",
        -  "download_url",
        -  "answers"
        -]New value: +[
        +  "slug",
        +  "title",
        +  "format",
        +  "filename",
        +  "markdown",
        +  "download_url",
        +  "editable_download_url",
        +  "answers"
        +]
  3. 4 tool updates
    • Changedgenerate_document6 fields changed
      • changedInput schema / properties / answers / description
        Previous 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."
      • changedInput schema / properties / format / description
        Previous value: -"pdf, odt, or markdown."New value: +"pdf, odt, or markdown. The download link uses this format."
      • removedOutput schema / additionalProperties
        Removed value: -true
      • addedOutput schema / description
        Added value: +"Filled template text plus a link to the rendered file."
      • addedOutput schema / properties
        Added 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"
        +  }
        +}
      • addedOutput schema / required
        Added value: +[
        +  "slug",
        +  "title",
        +  "format",
        +  "filename",
        +  "markdown",
        +  "download_url",
        +  "answers"
        +]
    • Changedget_template_fields5 fields changed
      • addedInput schema / properties / slug / description
        Added value: +"Template slug from list_templates."
      • removedOutput schema / additionalProperties
        Removed value: -true
      • addedOutput schema / description
        Added value: +"Field schema for one template."
      • addedOutput schema / properties
        Added 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"
        +  }
        +}
      • addedOutput schema / required
        Added value: +[
        +  "slug",
        +  "title",
        +  "category",
        +  "description",
        +  "when_needed",
        +  "source_url",
        +  "fields"
        +]
    • Changedlist_templates5 fields changed
      • addedOutput schema / description
        Added value: +"Templates the user can draft."
      • removedOutput schema / properties / result
        Removed value: -{
        -  "items": {
        -    "additionalProperties": true,
        -    "type": "object"
        -  },
        -  "type": "array"
        -}
      • addedOutput schema / properties / templates
        Added 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"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "result"
        -]New value: +[
        +  "templates"
        +]
      • removedOutput schema / x-fastmcp-wrap-result
        Removed value: -true
    • Addedsend_feedback
  4. 3 tool updates
    • First observedgenerate_document
    • First observedget_template_fields
    • First observedlist_templates

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.