Metadata-Version: 2.4
Name: liminate-mcp
Version: 0.1.0
Summary: Help your AI agent author the Agreements that govern it.
Project-URL: Homepage, https://github.com/rmichaelthomas/liminate-mcp
License-Expression: Apache-2.0
License-File: LICENSE
Requires-Python: >=3.11
Requires-Dist: httpx>=0.27.0
Requires-Dist: liminate<0.17,>=0.16.0
Requires-Dist: mcp>=1.0.0
Provides-Extra: dev
Requires-Dist: pytest>=8; extra == 'dev'
Description-Content-Type: text/markdown

# 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 [62-word prose-as-syntax language](https://github.com/rmichaelthomas/liminate).*

`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](https://github.com/rmichaelthomas/seshat-app) | Local agent harness. Enforces Agreements deny-by-default. |
| | [liminate](https://github.com/rmichaelthomas/liminate) | The language and interpreter. 62 words, deterministic execution, domain packs. |
| | [liminate-invariant](https://github.com/rmichaelthomas/liminate-invariant) | Semantic verification harness. Deterministic claim-verification correction loop. |
| **← this repo** | [**liminate-mcp**](https://github.com/rmichaelthomas/liminate-mcp) | **Authoring MCP server. Helps an agent write the Agreements that govern it.** |

→ [liminate.dev](https://liminate.dev)

## 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 four vendored Agreement templates (quarterly earnings brief, publication review, student assignment review, vendor invoice review). A fifth platform template, EDGAR revenue check, is excluded pending a rewrite to use the interpreter's arithmetic operators natively instead of platform-side derived evidence. |

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](https://liminate.dev/keys)); bills against that account. Always returns a fidelity manifest — review it before installing the draft anywhere. |

## Install

Requires Python 3.11+.

```bash
pip install liminate-mcp
```

Or from source:

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

### MCP client config

```json
{
  "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](LICENSE).

---

*The interpreter is the trust root. Every draft is validated before it's handed back — never installed, never assumed.*
