McpStamp Contract Clauses

io.github.theluckystrikePublished by GitHub account theluckystrikev0.23.0Updated Nov 3, 2026

Save reusable contract clauses, search them, and assemble a contract as .docx or markdown.

VerifiedStreamable HTTPWeb executableProductivity & WorkflowFiles & Storage

Overview

McpStamp Contract Clauses's hosted MCP server (mcp.zovo.one); no sign-in required; Streamable HTTP; 12 tools.

No AI overview yet: these facts come from the registry entry and the server itself.

Endpoint
mcp.zovo.one
Last checked

Installation

In SourceWeft

  1. Open McpStamp Contract Clauses in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.theluckystrike%2Fcontract-clause-library-proposal-template-docx/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "mcpstamp-contract-clauses": {
      "type": "http",
      "url": "https://mcp.zovo.one/mcp/clauses"
    }
  }
}

README

mcp-clauses

Say "draft a service agreement for Beta Corp, 4,500 EUR, 14-day terms" and get a real .docx built from your own clause library. This MCP server keeps the contract and proposal paragraphs you reuse, scope, payment terms, late fees, IP assignment, confidentiality, termination, liability cap and twenty more, as searchable clauses with {{variables}} in them. It ships with 25 generic freelance starters, finds the right ones by ranked search, fills the variables you supply, leaves every fact you did not supply as a visible bracketed prompt like [late fee percent], and writes the assembled document to Word or markdown. Every document opens with the line that it is a generic template and not legal advice. Everything runs locally: no upload, no account, no native dependency.

In the official MCP Registry (io.github.theluckystrike/contract-clause-library-proposal-template-docx).

[clauses demo]

Stop pasting last year's contract into a new file and hoping you changed every name.

60-second install

npm publish for @theluckystrike/mcp-clauses is pending. Until then, the .mcpb one-click bundle or a clone+build is the working path, both are verified below.

One-click (.mcpb): download clauses.mcpb from the latest release and double-click it in Claude Desktop: https://github.com/theluckystrike/mcp-servers/releases/latest

(claude_desktop_config.json):

json
{  "mcpServers": {    "clauses": {      "command": "npx",      "args": ["-y", "@theluckystrike/mcp-clauses"]    }  }}

Claude Code:

sh
claude mcp add clauses -- npx -y @theluckystrike/mcp-clauses

(.cursor/mcp.json):

json
{  "mcpServers": {    "clauses": {      "command": "npx",      "args": ["-y", "@theluckystrike/mcp-clauses"]    }  }}

The npx form above starts working the moment the package is published. Until then, use the .mcpb bundle above, or build from source with exactly these three commands:

sh
git clone https://github.com/theluckystrike/mcp-servers.git && cd mcp-serversnpm installnpm run build -w packages/mcp-license -w servers/docx -w servers/clauses

Then point your client's command at node with one arg: the absolute path to servers/clauses/dist/index.js.

To run in Pro mode set MCP_LICENSE_KEY in the same config block, or call license_activate once with your key.

This is not legal advice

The 25 starter clauses are generic freelance templates written in plain language. They are not drafted for your country, your trade or your deal, and no clause here has been reviewed by a lawyer. Every starter carries the note generic template, not legal advice, and every document contract_assemble writes opens with the same line. Treat the output as a first draft to take to a qualified lawyer, not as a contract to sign.

Tools

ToolWhat it does
clause_addSave a reusable clause: title, body with {{variables}}, category, tags, optional jurisdiction and language
clause_getReturn one clause in full, by id or by title (a partial title matches)
clause_updateChange the text, category, tags, variables or jurisdiction. In Pro the previous text is kept as a version
clause_deleteRemove a clause. A deleted starter is not re-seeded on the next call
clause_listList every clause, in assembly order, optionally narrowed to one category
clause_searchRanked search over titles, tags, categories and bodies. A title match outranks a body mention; a term matches on a real word boundary ("fee" never matches inside "coffee"), with plain substring containment kept only as a lower-ranked fallback. The jurisdiction filter is free (citing a clause from the wrong jurisdiction is the error this prevents); the tag filter is Pro and is skipped, never refusing the search
clause_importBulk-load from a markdown file (## Title, category: / tags: lines, blank line, body) or from JSON (Pro). Only short, field-shaped lines right after the title are read as metadata, so body prose that happens to open with a word like "note:" is kept as body, not swallowed
clause_exportWrite the whole library to markdown (free) or JSON (Pro). An existing destination is never replaced unless you pass overwrite: true
contract_assembleBuild a document from clause ids or whole categories: orders the clauses, numbers them, fills the variables, brackets what is missing, prepends the not-legal-advice line, writes .docx or .md. An existing out_path is never replaced unless you pass overwrite: true
variables_listEvery {{variable}} a selection of clauses needs, and which clause needs it, before you assemble
license_statusShow free or Pro mode
license_activateActivate a Pro key (verified offline)

Resource: clauses://categories returns every category in the library with its clause count, in assembly order. Prompt: draft_contract picks clauses that fit an engagement, assembles them, and reports the facts still missing.

The 25 starter clauses

CategoryClauses
scopeScope of Work, Revisions, Acceptance of Deliverables, Change Requests
paymentPayment Terms, Late Payment, Kill Fee, Rush Fee
expensesExpenses
ipIntellectual Property Assignment, Portfolio and Credit
confidentialityConfidentiality
dataData Protection
termTermination
liabilityLimitation of Liability
warrantyWarranty Disclaimer
disputesDispute Resolution
generalGoverning Law, Force Majeure, Independent Contractor, Non-Solicitation, Notices, Entire Agreement, Severability, Assignment

They use variables such as {{client}}, {{contractor}}, {{project}}, {{fee}}, {{currency}}, {{payment_days}}, {{deposit_percent}}, {{late_fee_percent}}, {{liability_cap}}, {{notice_days}}, {{revision_rounds}}, {{acceptance_days}}, {{kill_fee_percent}}, {{rush_fee_percent}} and {{jurisdiction}}. Call variables_list with the clauses you picked to see exactly which ones your document needs.

What you can say

You sayTool
"What clauses do I have about late payment?"clause_search
"Save this as a clause called Retainer, category payment."clause_add
"Draft a service agreement for Beta Corp: scope, payment, late fees, IP, termination. Fee 4,500 EUR, 14-day terms."contract_assemble
"What do I still need to fill in for those five clauses?"variables_list
"Import my old clauses from clauses.md."clause_import
"Export the whole library so I can keep a copy."clause_export

Free vs Pro

FreePro
25 starter clausesyesyes
Your own clauses10unlimited
Ranked search, category filteryesyes
Filter by jurisdiction or tagnoyes
Clauses per assembled document8unlimited
Markdown import and exportyesyes
JSON import and exportnoyes
Clause version history on clause_updatenoyes

Get Pro: https://mcp.zovo.one/buy/clauses, $19 one-time, or $39 for the whole collection.

Pairs with

  • mcp-docx, the document engine this server assembles through. Install both and the same conversation that picks clauses can also write the covering letter and read the client's own .docx back.
  • mcp-invoice, the payment terms you agreed in the contract are the terms you bill on.
  • mcp-recurring, once a retainer clause is signed, the schedule that raises its invoices.

Privacy

Every clause and every assembled document stays on your machine, in ${XDG_DATA_HOME:-~/.local/share}/mcp-servers/clauses/. The server makes no network calls at all. Your licence key is verified offline.

Built by theluckystrike. Support: [email protected]

One business profile for the whole suite

Your identity is stored once, at ${XDG_DATA_HOME:-~/.local/share}/mcp-servers/profile/business.json, and every server in the suite reads it: the invoice issuer, the docx letterhead, the recurring issuer, expense-tracker's default VAT rate, time-tracker's and timezone's home zone, and the resume and contract letterheads. Set it once with business_set (invoice or docx) - you never repeat it anywhere else. An email address is only ever taken from that profile or from an explicit argument; when none is stored, documents show [add: email] and the tool says so rather than letting anyone improvise an address.

Use these docs as an MCP server

Any MCP client (Claude, Cursor, Windsurf, VS Code) can read this repository's documentation directly via GitMCP - no install:

Source: servers/clauses/README.md at commit 6535b33

Tools

12

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.

Parametersbodyrequiredtagstitlerequiredcategoryrequiredlanguagevariablesjurisdiction

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.

Parametersidtitle

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.

Parametersidrequiredbodytagstitlecategorylanguagevariablesjurisdiction

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.

Parametersidrequired

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.

Parameterscategory

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.

Parameterspathrequiredoverwrite

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.

Parameterspathrequiredformatrequiredoverwrite

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.

Parameterstitlerequiredclientformatvaluesout_pathoverwritecategoriesclause_ids

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.

Parametersclause_idsrequired

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.

Takes no parameters.

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.

Parameterskeyrequired

Version history

4
  1. v0.23.0LatestNov 3, 2026
  2. v0.22.6Oct 14, 2026
  3. v0.22.0Sep 17, 2026
  4. v0.21.0Sep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts