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.
https://mcp.zovo.one/mcp/clausesWhat its tools do
12 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
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
- 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
{
"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.
Tools
12 advertised
clause_add — Add a clause
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.
{
"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
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}clause_get — Read one clause
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.
{
"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
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}clause_update — Update a clause
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.
{
"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
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}clause_delete — Delete a clause
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Clause id or exact title"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}clause_list — List clauses
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"category": {
"type": "string"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}clause_search — Search clauses
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.
{
"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
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}clause_import — Import clauses
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.
{
"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
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}clause_export — Export clauses
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.
{
"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
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}contract_assemble — Assemble a contract
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.
{
"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
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}variables_list — List the variables a selection needs
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.
{
"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
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}license_status — License status
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}license_activate — Activate license
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.
{
"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
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}Prompts
2 advertised
draft_contract — Draft a contract from the library
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
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
Every category in the library with its clause count, in assembly order.
clauses://categoriespricing — Pricing and upgrade
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://clauses90-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
- 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.
Claude Code
claude mcp add --transport http mcp-clause-library https://mcp.zovo.one/mcp/clausesCodex
codex mcp add mcp-clause-library --url https://mcp.zovo.one/mcp/clausesCursor
{
"mcpServers": {
"mcp-clause-library": {
"url": "https://mcp.zovo.one/mcp/clauses"
}
}
}Cline
{
"mcpServers": {
"mcp-clause-library": {
"type": "streamableHttp",
"url": "https://mcp.zovo.one/mcp/clauses",
"disabled": false
}
}
}VS Code
{
"servers": {
"mcp-clause-library": {
"type": "http",
"url": "https://mcp.zovo.one/mcp/clauses"
}
}
}Gemini CLI
gemini mcp add --transport http mcp-clause-library https://mcp.zovo.one/mcp/clausesClaude Desktop
https://mcp.zovo.one/mcp/clausesWindsurf
{
"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.