Liminate Authoring MCP
The Liminate Authoring MCP server helps AI agents author, validate, test, and understand Liminate Agreements — structured governance documents that control what agents are permitted to do.
validate_agreement: Parse and semantically check a Liminate Agreement, returning parse/semantic errors, unbound evidence references, and a per-rule deontic analysis (permit/forbid/require/define).explain_clause: Break down each clause into plain English, detailing the verb, condition, rationale, temporal window (active/expired/future/unbounded), and any exceptions.draft_agreement: Assemble a new Agreement from structured rules (verb, condition, reason, unless, starting, until) or retrieve a vendored template by ID. Output is always validated before being returned.test_agreement: Run an Agreement against sample evidence to get a decision:blocked,incomplete(missing evidence),needs_review, orpassed.list_templates: Discover available vendored templates (e.g., EDGAR revenue check, quarterly earnings brief, publication review, student assignment review, vendor invoice review), including their source and sample evidence.translate(paid, requiresLIMINATE_API_KEY): Convert a compliance document (plain text, markdown, or URL) into an Agreement draft via the Liminate platform API, returning a fidelity manifest for human review before any installation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Liminate Authoring MCPvalidate my agreement file agreement.limn"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Liminate Authoring MCP
Help your AI agent author the Agreements that govern it.
Part of the Liminate family — trust infrastructure for autonomous AI, built on a 61-word prose-as-syntax language.
liminate-mcp is a standalone MCP server that lets AI agents validate, explain, draft, and test Liminate Agreements — and translate compliance documents into Agreement drafts via the Liminate platform. It never installs an Agreement. Installation onto an enforcement surface (like ~/.seshat/agreement.limn) is always a human or Seshat-governed action, never this server's.
Built by Liminate
Repo | What it does | |
Local agent harness. Enforces Agreements deny-by-default. | ||
The language and interpreter. 61 words, deterministic execution, domain packs. | ||
Semantic verification harness. Deterministic claim-verification correction loop. | ||
← this repo | Authoring MCP server. Helps an agent write the Agreements that govern it. |
Related MCP server: AgentContract MCP Server
Tools
Five tools run entirely on your machine, against the local liminate interpreter — no network calls, no account required:
Tool | Cost | What it does |
| free | Parse and semantically check an Agreement. Errors vs. unbound evidence references, annotated separately. |
| free | Plain-English explanation per clause: verb, condition, rationale, temporal window, exception. |
| free | Assemble an Agreement from structured rules, or return a vendored template. Always validates its own output. |
| free | Run an Agreement against sample evidence; returns a decision ( |
| free | The five vendored Agreement templates: EDGAR revenue check, quarterly earnings brief, publication review, student assignment review, vendor invoice review. |
One tool calls the platform:
Tool | Cost | What it does |
| paid | Converts a compliance document (text/markdown/url) into an Agreement draft via the |
Install
Requires Python 3.11+.
pip install liminate-mcpOr from source:
git clone https://github.com/rmichaelthomas/liminate-mcp.git
cd liminate-mcp
pip install -e ".[dev]"
pytestMCP client config
{
"mcpServers": {
"liminate-authoring": {
"command": "liminate-mcp"
}
}
}Set LIMINATE_API_KEY in your environment (or the MCP client's env block) to use translate. The five local tools work with no key and no network access.
License
Apache 2.0. See LICENSE.
The interpreter is the trust root. Every draft is validated before it's handed back — never installed, never assumed.
Available Tools
6 toolsdraft_agreementA
Assemble a Liminate Agreement from structured rules (verb/condition/ reason/unless/starting/until), or return a vendored template by template_id. Always validates the drafted source against the interpreter before returning — never claims a draft is valid without confirming it.
| Name | Required | Description | Default |
|---|---|---|---|
| about | No | ||
| rules | No | ||
| template_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the critical validation behavior (always validates, never claims validity without confirmation) and the structured rule format. While it doesn't mention error handling or permissions, the core behavioral traits are well communicated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundancy. The description is front-loaded with the primary action and includes a critical behavioral guarantee. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the optional parameters, no output schema, and no annotations, the description covers the tool's functionality and safety guarantee. It could optionally mention the output format or errors, but it is adequate for an agent to understand its use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description adds meaning: it specifies that 'rules' is an array of objects with fields verb/condition/reason/unless/starting/until, and that 'template_id' returns a vendored template. The 'about' parameter remains undefined but is optional; overall, the description compensates significantly for the schema's lack of detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool assembles a Liminate Agreement from structured rules or returns a vendored template, with validation guarantee. This action verb and resource are specific and distinguish from sibling tools like validate_agreement or explain_clause.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use cases (drafting from rules or template), but lacks explicit guidance on when to use this tool versus alternatives like validate_agreement or test_agreement. No when-not or exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_clauseB
Explain each clause of a Liminate Agreement in plain English: verb, condition, rationale, temporal window (active/expired/future/unbounded), and any unless-exception.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states it explains without disclosing behavioral traits like read-only, authentication needs, or side effects. Major gap given annotation absence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, concise and front-loaded with main action. However, lacks necessary detail, making it efficient but incomplete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema or return format described; parameter semantics missing; description incomplete for agent to reliably invoke despite simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single parameter 'source' has no description in schema (0% coverage) and tool description does not define its meaning or format, leaving agent unsure what to provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it explains clauses of a Liminate Agreement in plain English, listing specific aspects covered (verb, condition, rationale, temporal window, unless-exception). This distinguishes it from sibling tools like draft_agreement or validate_agreement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly suggests use when clause explanation is needed, but no explicit guidance on when not to use or comparison with alternatives. Lack of when-not or alternative references reduces clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_templatesA
List the four vendored Liminate Agreement templates (id, name, purpose, agreement source, and sample evidence).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the fields returned, which adds transparency. However, it does not mention that the operation is read-only, idempotent, or any potential side effects. For a simple list tool, this is adequate but not exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the essential information without any fluff. Every word serves a purpose, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters and no output schema, the description covers the main purpose and return fields. It lacks mention of error handling or empty states, but these are minor given the tool's simplicity. Overall, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and schema description coverage is 100%. According to guidelines, 0 parameters warrant a baseline of 4. The description does not need to explain parameters since there are none, but it also does not add any param-related info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists the four vendored Liminate Agreement templates and specifies the fields returned (id, name, purpose, agreement source, sample evidence). It uses a specific verb and resource, and the purpose is distinct from sibling tools which focus on drafting, explaining, testing, translating, or validating agreements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage guidelines are implied by the tool name and description, but there is no explicit when-to-use or when-not-to-use guidance. The siblings are different actions, so context suggests using this to view available templates, but alternatives are not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_agreementB
Run a Liminate Agreement against sample evidence and return the decision: blocked, incomplete (missing evidence), needs_review, or passed.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | ||
| evidence | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the output decisions without disclosing side effects, authentication needs, rate limits, or how the evidence is processed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the action and result. It is front-loaded and contains no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and low schema coverage, the description fails to explain input parameters or provide examples, leaving significant gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the purpose or format of the 'source' and 'evidence' parameters. The agent gets no guidance beyond the schema structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs a Liminate Agreement against evidence and returns one of four specific decisions. It distinguishes from sibling tools like draft_agreement or validate_agreement by focusing on testing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have sample evidence to test an agreement, but does not explicitly state when to use this tool over alternatives or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
translateA
PAID — convert a compliance document (source_kind: text/markdown/url) into a Liminate Agreement draft via the liminate.dev Translate API. Requires LIMINATE_API_KEY (get one at liminate.dev/keys); bills against that account. Always present the returned fidelity manifest to the user and warn them to review the draft before installing it — it controls what agents can do on their machine.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| text | No | ||
| source_kind | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully explains behavioral traits: it's a paid operation that bills against the account by consuming the API key, and it returns a fidelity manifest that controls agent actions, requiring user review. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, front-loaded with the core purpose and paid nature, and adds critical usage instructions in the second sentence. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains the return type (fidelity manifest) and post-processing steps. It covers prerequisites, input types, and behavioral requirements. It is mostly complete, though the exact format of the manifest could be elaborated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. It explains that source_kind can be text/markdown/url, but does not clarify how source_kind relates to the url and text parameters (e.g., which parameter to use for each source_kind). Meaning is partially added but leaves ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts a compliance document into a Liminate Agreement draft, specifying input types (text/markdown/url) and distinguishing it from siblings like draft_agreement by mentioning the use of an external API.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: paid service, requires API key, and instructs to present the manifest and warn the user. However, it does not explicitly state when not to use this tool or mention alternative siblings like draft_agreement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_agreementA
Parse and semantically check a Liminate Agreement. Returns parse/semantic errors and a per-rule deontic analysis (permit/forbid/require/define), annotating unbound evidence references separately from genuine errors.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It explains the tool returns parse/semantic errors, deontic analysis, and annotates unbound evidence separately. This transparently describes behavior, though side effects and auth requirements are not mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is extremely concise—two sentences—with no filler. Every word adds value, clearly conveying purpose and output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (validation with detailed output), the description covers key aspects: parsing, semantic checking, return types. No output schema, but description explains output structure. Parameter explanation is weak, but overall complete for context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter 'source' (string) with 0% schema coverage. The description does not elaborate on what 'source' represents (e.g., URL, file, text), leaving its meaning ambiguous. The tool's purpose implies source is the agreement text, but explicit clarification is missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool validates a Liminate Agreement by parsing and performing semantic checks, returning errors and deontic analysis. It distinguishes from sibling tools like draft_agreement (drafting) and test_agreement (testing).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for validation but does not provide explicit when-to-use or when-not-to-use guidance. Sibling tool names offer context, but no direct exclusions or alternatives are mentioned.
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. Dates show when Glama detected each change.
6 tool updates
v0.1.0- First observed
draft_agreement - First observed
explain_clause - First observed
list_templates - First observed
test_agreement - First observed
translate - First observed
validate_agreement
TDQS
Each tool has a distinct purpose: drafting, explaining, listing templates, testing, translating, and validating. There is no overlap or ambiguity in their functions.
Most tools follow a verb_noun pattern (e.g., draft_agreement, explain_clause), but 'translate' is a single verb without a noun, deviating slightly from the convention.
With 6 tools covering creation, validation, testing, explanation, template listing, and document translation, the count is well-scoped for an authoring server.
The set covers core authoring operations but lacks tools for retrieving or managing existing agreements (e.g., list_agreements, get_agreement), leaving a notable gap in the lifecycle.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Deterministic compliance and vertical knowledge bases for autonomous agents. Free 24hr trial.
Pre-execution governance for AI agents. Deterministic PASS/FAIL/REVIEW verdicts, replayable proof.
Public agentic AI doctrine tools plus authenticated architecture, design, and spec validators.
Compliance lint for AI, scraping, and privacy law. Cited findings in 200 or more jurisdictions.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables EU AI Act compliance assessment by classifying AI systems, listing obligations, computing deadlines, and scanning repos for required documentation, all running locally.42MIT
- AlicenseNot gradedqualityFmaintenanceEnables AI agents to create, sign, and enforce binding agreements with deliverables, deadlines, penalties, and a full lifecycle state machine.2MIT

Legalithmofficial
AlicenseAqualityAmaintenanceEU AI Act compliance in your editor.Classify risk, cite obligations, draft Article 50 disclosures. Offline, no API key.27MIT- AlicenseNot gradedqualityAmaintenanceLocal-first AI agent for approval-gated automation and verifiable LLM workflows.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rmichaelthomas/liminate-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server