Skip to main content
Glama
rmichaelthomas

Liminate Authoring MCP

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

seshat-app

Local agent harness. Enforces Agreements deny-by-default.

liminate

The language and interpreter. 61 words, deterministic execution, domain packs.

liminate-invariant

Semantic verification harness. Deterministic claim-verification correction loop.

← this repo

liminate-mcp

Authoring MCP server. Helps an agent write the Agreements that govern it.

liminate.dev

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

validate_agreement

free

Parse and semantically check an Agreement. Errors vs. unbound evidence references, annotated separately.

explain_clause

free

Plain-English explanation per clause: verb, condition, rationale, temporal window, exception.

draft_agreement

free

Assemble an Agreement from structured rules, or return a vendored template. Always validates its own output.

test_agreement

free

Run an Agreement against sample evidence; returns a decision (blocked / incomplete / needs_review / passed).

list_templates

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

translate

paid

Converts a compliance document (text/markdown/url) into an Agreement draft via the liminate.dev Translate API. Requires LIMINATE_API_KEY (liminate.dev/keys); bills against that account. Always returns a fidelity manifest — review it before installing the draft anywhere.

Install

Requires Python 3.11+.

pip install liminate-mcp

Or from source:

git clone https://github.com/rmichaelthomas/liminate-mcp.git
cd liminate-mcp
pip install -e ".[dev]"
pytest

MCP 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 tools
draft_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
aboutNo
rulesNo
template_idNo

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYes

TDQS

B3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYes
evidenceYes

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo
textNo
source_kindYes

TDQS

A4.4/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYes

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 6 tool updatesv0.1.0
    • First observeddraft_agreement
    • First observedexplain_clause
    • First observedlist_templates
    • First observedtest_agreement
    • First observedtranslate
    • First observedvalidate_agreement

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a distinct purpose: drafting, explaining, listing templates, testing, translating, and validating. There is no overlap or ambiguity in their functions.

Naming Consistency4/5

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.

Tool Count5/5

With 6 tools covering creation, validation, testing, explanation, template listing, and document translation, the count is well-scoped for an authoring server.

Completeness3/5

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

ActivitySlowing
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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