ClauseAI MCP
ClauseAI MCP allows agents to generate startup legal documents like NDAs, MSAs, and DPAs from attorney-drafted templates. It supports downloading outputs in PDF, Word, ODT, or Markdown formats via Streamable HTTP without requiring user registration.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://clauseai.exe.xyz/mcpWhat its tools do
4 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (2)
Can change data (2)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Generate mutual or one-way NDAs
- Create Master Services Agreements (MSA)
- Draft Data Processing Addendums (DPA)
- Produce privacy policies and offer letters
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- ClauseAI 1.0.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 4 advertised
- Resources
- 0 advertised
- Resource templates
- 0 advertised
- Prompts
- 0 advertised
{
"tools": {
"listChanged": true
},
"logging": {},
"prompts": {
"listChanged": true
},
"resources": {
"subscribe": false,
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
4 advertised
list_templates — List templates
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.
{
"type": "object",
"properties": {},
"additionalProperties": false
}{
"type": "object",
"required": [
"templates"
],
"properties": {
"templates": {
"type": "array",
"items": {
"type": "object",
"required": [
"slug",
"title",
"category",
"description",
"when_needed",
"source_url",
"field_count"
],
"properties": {
"slug": {
"type": "string"
},
"title": {
"type": "string"
},
"category": {
"type": "string"
},
"source_url": {
"type": "string"
},
"description": {
"type": "string"
},
"field_count": {
"type": "integer"
},
"when_needed": {
"type": "string"
}
},
"description": "One template in the public catalog."
}
}
},
"description": "Templates the user can draft."
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_template_fields — Get template fields
Use this after choosing a template slug, to read the fill-in fields before generating a document.
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "Template slug from list_templates."
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"slug",
"title",
"category",
"description",
"when_needed",
"source_url",
"fields"
],
"properties": {
"slug": {
"type": "string"
},
"title": {
"type": "string"
},
"fields": {
"type": "array",
"items": {
"type": "object",
"required": [
"key",
"label",
"question",
"type",
"required"
],
"properties": {
"key": {
"type": "string"
},
"type": {
"type": "string"
},
"label": {
"type": "string"
},
"marks": {
"type": "array",
"items": {
"type": "integer"
}
},
"options": {
"type": "array",
"items": {
"type": "string"
}
},
"question": {
"type": "string"
},
"replaces": {
"type": "string",
"default": ""
},
"required": {
"type": "boolean"
},
"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."
}
},
"description": "One fill-in field on a template."
}
},
"category": {
"type": "string"
},
"source_url": {
"type": "string"
},
"description": {
"type": "string"
},
"when_needed": {
"type": "string"
}
},
"description": "Field schema for one template."
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}generate_document — Generate document
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.
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "Template slug from list_templates."
},
"format": {
"type": "string",
"default": "pdf",
"description": "pdf, docx, odt, or markdown. The download link uses this\nformat."
},
"answers": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
],
"default": null,
"description": "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."
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"slug",
"title",
"format",
"filename",
"markdown",
"download_url",
"editable_download_url",
"answers"
],
"properties": {
"slug": {
"type": "string"
},
"title": {
"type": "string"
},
"format": {
"type": "string"
},
"answers": {
"type": "object",
"description": "Answers as printed. ISO dates are written out in full.",
"additionalProperties": {
"type": "string"
}
},
"filename": {
"type": "string"
},
"markdown": {
"type": "string",
"description": "Filled template text for summarization. The file the user downloads is at download_url."
},
"warnings": {
"type": "array",
"items": {
"type": "string"
},
"description": "Answers that were accepted but look wrong. Fix and regenerate, or pass each warning on to the user."
},
"download_url": {
"type": "string",
"description": "Absolute URL that downloads the rendered PDF, Word, ODT, or Markdown file."
},
"unfilled_fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "Field keys still shown as placeholders in the document. Tell the user these need completing before the document is used."
},
"editable_download_url": {
"type": "string",
"description": "Absolute URL for a Word (.docx) copy the user can edit before signing. Give it to the user with download_url."
}
},
"description": "Filled template text plus a link to the rendered file."
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}send_feedback — Send feedback
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.
{
"type": "object",
"required": [
"message"
],
"properties": {
"slug": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Template slug the feedback is about, if any."
},
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional email address for a reply. Only pass one the user\ngave you."
},
"phone": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional phone number for a reply. Only pass one the user\ngave you."
},
"message": {
"type": "string",
"description": "What you were trying to do and what was wrong or missing.\nUp to 4000 characters."
},
"category": {
"type": "string",
"default": "other",
"description": "bug, missing_field, template_request, or other."
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"status",
"detail"
],
"properties": {
"detail": {
"type": "string"
},
"status": {
"type": "string"
}
},
"description": "Confirmation that feedback reached the ClauseAI operator."
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}Prompts
0 advertised
Resources
0 advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 324 ms
- 95th percentile latency
- 324 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 324 ms · metadata changed · 4 tool(s), 0 resource(s), 0 resource template(s), 0 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http clauseai-mcp https://clauseai.exe.xyz/mcpCodex
codex mcp add clauseai-mcp --url https://clauseai.exe.xyz/mcpCursor
{
"mcpServers": {
"clauseai-mcp": {
"url": "https://clauseai.exe.xyz/mcp"
}
}
}Cline
{
"mcpServers": {
"clauseai-mcp": {
"type": "streamableHttp",
"url": "https://clauseai.exe.xyz/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"clauseai-mcp": {
"type": "http",
"url": "https://clauseai.exe.xyz/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http clauseai-mcp https://clauseai.exe.xyz/mcpClaude Desktop
https://clauseai.exe.xyz/mcpWindsurf
{
"mcpServers": {
"clauseai-mcp": {
"serverUrl": "https://clauseai.exe.xyz/mcp"
}
}
}Let your agent find its tools
Find servers like ClauseAI MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.