Koskamo

theluckystrike MCP Clause Library

The Clause Library MCP server allows users to maintain a personal library of reusable contract and proposal clauses. It supports searching clauses by jurisdiction or tag, managing clause variables, and assembling selected clauses into a structured Word (.docx) or Markdown document. The server ensures no values are invented, leaving missing facts as bracketed prompts for the user to fill.

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.

theluckystrike MCP Clause Library logo, by theluckystrikeCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by theluckystrike
You need:Get a free token with one request, then paste the URL into whatever asks for a remote MCP server.curl -X POST https://mcp.zovo.one/mcp/tokenIt returns a token shaped anon_<32 hex> . No account, no email, no OAuth.
MCP endpoint (Streamable HTTP)
https://mcp.zovo.one/mcp/clauses
Vendor documentation

What its tools do

12 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

12 of 12 have a description · 12 of 12 declare behavior hints · 7 of 11 with parameters document them all

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

  • Search for specific contract clauses by jurisdiction or tag
  • Save and manage reusable legal clauses with variables
  • Assemble multiple clauses into a Word or Markdown contract

Source and maintenance

Community listingRegistry 0.23.0
Maintenance checked

Protocol and capabilities

Server
mcp-clauses 0.22.6
MCP protocol negotiated in check
2025-11-25
Tools
12 advertised
Resources
2 advertised
Resource templates
0 advertised
Prompts
2 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "prompts": {
    "listChanged": true
  },
  "resources": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

A personal library of reusable contract and proposal clauses. It covers saving, editing and searching clauses by category, tags and jurisdiction, importing and exporting the library, the {{variables}} a selection of clauses needs, and contracts assembled as .docx or markdown where a missing variable stays a bracketed prompt rather than an invented value. The library is stored per user account on McpStamp's hosted service. The free tier holds 10 of the user's clauses and 8 clauses per contract; Pro adds version history, JSON import and export, and tag filtering. One lifetime key unlocks this server and all 58 others: https://mcp.zovo.one/buy/bundle?src=instr.clauses

Tools

12 advertised

clause_add — Add a clause
Advertised by the server during the last successful anonymous check.

Save a reusable contract or proposal clause to the library. Returns the stored clause id, title, category, tags and the variables detected in its body, plus how many clauses of your own the library now holds.

clause_add input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "title",
    "body",
    "category"
  ],
  "properties": {
    "body": {
      "type": "string",
      "minLength": 1,
      "description": "The clause text. Use {{variable}} placeholders for the facts that change per client, for example {{client}}, {{fee}} or {{late_fee_percent}}; contract_assemble fills them at assembly time. Free tier: 10 clauses of your own on top of the 25 starters"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "description": "Clause heading, for example 'Late Payment'"
    },
    "category": {
      "type": "string",
      "description": "Grouping. The known ones, in assembly order, are parties, scope, payment, expenses, ip, confidentiality, data, term, liability, warranty, disputes, general -- reuse one of these; any other name is accepted but sorts last in a category-based assembly"
    },
    "language": {
      "type": "string",
      "description": "ISO language code, default en"
    },
    "variables": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Declared variable names. Anything {{...}} in the body is detected anyway"
    },
    "jurisdiction": {
      "type": "string",
      "description": "Where the clause is meant to apply, for example 'PL' or 'England and Wales'"
    }
  },
  "additionalProperties": false
}
clause_add annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
clause_get — Read one clause
Advertised by the server during the last successful anonymous check.
Advertised read-only

Return one clause in full by id or title: body, category, tags, jurisdiction, variables and the revision count, which stays 0 on free. A partial title matching several is refused with the candidates.

clause_get input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "id": {
      "type": "string",
      "description": "Clause id, for example late-fees"
    },
    "title": {
      "type": "string",
      "description": "Clause title; a partial title matches too"
    }
  },
  "additionalProperties": false
}
clause_get annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
clause_update — Update a clause
Advertised by the server during the last successful anonymous check.

Change the text, category, tags, variables or jurisdiction of a clause. In Pro the previous text is kept as a version; in the free tier the change is applied without history.

clause_update input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Clause id or exact title"
    },
    "body": {
      "type": "string"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "title": {
      "type": "string"
    },
    "category": {
      "type": "string"
    },
    "language": {
      "type": "string"
    },
    "variables": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "jurisdiction": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
clause_update annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
clause_delete — Delete a clause
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete one clause by id or exact title and report how many are left. There is no undo, and a deleted starter clause is not re-seeded. Use clause_update to change one you want to keep.

clause_delete input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Clause id or exact title"
    }
  },
  "additionalProperties": false
}
clause_delete annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
clause_list — List clauses
Advertised by the server during the last successful anonymous check.
Advertised read-only

List the library as id, title, category, tags and variables, in contract order by category then title, which is the order contract_assemble uses. Narrow with category; use clause_search for words.

clause_list input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "category": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
clause_list annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
clause_search — Search clauses
Advertised by the server during the last successful anonymous check.
Advertised read-only

Ranked search over clause titles, tags, categories and bodies. Title and tag matches outrank body matches. Jurisdiction filtering is free; the tag filter is Pro and is skipped rather than refusing the search.

clause_search input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "query"
  ],
  "properties": {
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Pro: every tag listed must be present. On free the search still runs, without this filter"
    },
    "query": {
      "type": "string",
      "description": "Words to look for, for example 'late payment interest'"
    },
    "category": {
      "type": "string"
    },
    "jurisdiction": {
      "type": "string",
      "description": "Exact jurisdiction match. Free"
    }
  },
  "additionalProperties": false
}
clause_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
clause_import — Import clauses
Advertised by the server during the last successful anonymous check.

Call this tool to load clauses from a .md or .json file, reporting added, replaced, skipped and capped counts. A duplicate title is skipped unless overwrite. json is Pro. Free: 10 of your own.

clause_import input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "string",
      "description": "Path to a .md or .json file. Markdown form: '## Title', then optional 'category:' / 'tags:' / 'variables:' lines, a blank line, then the body. JSON form: an array of clauses. JSON import is a Pro feature; markdown import works in the free tier, within the free clause cap"
    },
    "overwrite": {
      "type": "boolean",
      "description": "Replace clauses whose title already exists instead of skipping them"
    }
  },
  "additionalProperties": false
}
clause_import annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
clause_export — Export clauses
Advertised by the server during the last successful anonymous check.
Advertised read-only

Call this tool to write the whole library to one file and return the path, format and count. It is written in contract order, so it re-imports the same way. markdown is free; json is Pro.

clause_export input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path",
    "format"
  ],
  "properties": {
    "path": {
      "type": "string",
      "description": "Destination file path. The clauses are written in assembly order, categories first"
    },
    "format": {
      "enum": [
        "json",
        "markdown"
      ],
      "type": "string",
      "description": "json (a Pro feature) or markdown (works in the free tier)"
    },
    "overwrite": {
      "type": "boolean",
      "description": "Replace the destination if a file is already there. Without it an existing file is never touched"
    }
  },
  "additionalProperties": false
}
clause_export annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
contract_assemble — Assemble a contract
Advertised by the server during the last successful anonymous check.

Call this tool to build a contract from library clauses as .docx or markdown. A variable you omit stays as a bracketed prompt, never invented. clause_ids order is document order. Free: 8 clauses.

contract_assemble input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "title"
  ],
  "properties": {
    "title": {
      "type": "string",
      "description": "Document title, for example 'Service Agreement - Beta Corp'"
    },
    "client": {
      "type": "string",
      "description": "Client name; also fills the {{client}} variable"
    },
    "format": {
      "enum": [
        "docx",
        "markdown"
      ],
      "type": "string",
      "description": "docx (default) or markdown; the document opens with the not-legal-advice line either way"
    },
    "values": {
      "type": "object",
      "description": "Values for the {{variables}} in the chosen clauses, for example {\"fee\":\"4500\",\"late_fee_percent\":\"2\"}. Any variable you leave out stays in the document as a bracketed prompt such as [late fee percent], never as an invented value",
      "additionalProperties": {
        "type": "string"
      }
    },
    "out_path": {
      "type": "string",
      "description": "Where to write the file. Default: the server data directory, under a name built from the client and the title"
    },
    "overwrite": {
      "type": "boolean",
      "description": "Replace out_path if a file is already there. Without it an existing file is never touched"
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Instead of ids: every clause in these categories, ordered by category. Free tier: up to 8 clauses per document"
    },
    "clause_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Clause ids in the order they should appear; this is the document order. Free tier: up to 8 clauses per document"
    }
  },
  "additionalProperties": false
}
contract_assemble annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
variables_list — List the variables a selection needs
Advertised by the server during the last successful anonymous check.
Advertised read-only

List every {{variable}} the clauses you name use, and which clause uses each, so the facts are gathered before contract_assemble leaves bracketed prompts. Reads only; a title matching several is refused.

variables_list input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "clause_ids"
  ],
  "properties": {
    "clause_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "description": "Clause ids or titles"
    }
  },
  "additionalProperties": false
}
variables_list annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
license_status — License status
Advertised by the server during the last successful anonymous check.
Advertised read-only

Report this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.

license_status input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
license_status annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
license_activate — Activate license
Advertised by the server during the last successful anonymous check.

Turn Pro on for this connection with key, an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.

license_activate input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "key"
  ],
  "properties": {
    "key": {
      "type": "string",
      "description": "License key from checkout, MCPL1.<payload>.<signature>"
    }
  },
  "additionalProperties": false
}
license_activate annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}

Prompts

2 advertised

draft_contract — Draft a contract from the library

Advertised by the server during the last successful anonymous check.

Pick the clauses that fit an engagement, assemble them, and report the facts still missing.

intent
What the contract is for, for example 'website redesign for a startup, fixed fee, 3 milestones' (required)
client
No description
upgrade_to_pro — Explain the upgrade

Advertised by the server during the last successful anonymous check.

Explain what Pro on the clauses server costs and exactly what the user has to do, without leaving the conversation.

feature
The capped feature that prompted this, if there was one

Resources

2 advertised

categories — Clause categories

Advertised by the server during the last successful anonymous check.

Every category in the library with its clause count, in assembly order.

categories URI
clauses://categories

MIME type: application/json

pricing — Pricing and upgrade

Advertised by the server during the last successful anonymous check.

What clauses costs, what Pro unlocks, the checkout link that carries this connection's token, and the one step a person has to take. Machine-readable; read it before telling a user how to lift a free-tier cap.

pricing URI
pricing://clauses

MIME type: application/json

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.

Too few checks for a percentage yet (1 of 1 answered).

  1. 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
1153 ms
95th percentile latency
1153 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1153 ms · metadata changed · 12 tool(s), 2 resource(s), 0 resource template(s), 2 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http mcp-clause-library https://mcp.zovo.one/mcp/clauses

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add mcp-clause-library --url https://mcp.zovo.one/mcp/clauses

Cursor

Merge this server into .cursor/mcp.json in your project, then enable mcp-clause-library in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "mcp-clause-library": {
      "url": "https://mcp.zovo.one/mcp/clauses"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "mcp-clause-library": {
      "type": "streamableHttp",
      "url": "https://mcp.zovo.one/mcp/clauses",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start mcp-clause-library and inspect its tools.
VS Code configuration
{
  "servers": {
    "mcp-clause-library": {
      "type": "http",
      "url": "https://mcp.zovo.one/mcp/clauses"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http mcp-clause-library https://mcp.zovo.one/mcp/clauses

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://mcp.zovo.one/mcp/clauses

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "mcp-clause-library": {
      "serverUrl": "https://mcp.zovo.one/mcp/clauses"
    }
  }
}

Let your agent find its tools

Find servers like theluckystrike MCP Clause Library from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.