mcpField
L
leaseclear-mcp

leaseclear-mcp

Local
github.com/amadeuserrasLegal & Government0Updated 10w ago

About leaseclear-mcp

leaseclear-mcp is an MCP server for AI assistants that need to answer questions about lease terms. It uses LeaseClear to ground answers in lease documents and indicates when a lease is silent.

Key features

  1. 01Ask one question about a lease
  2. 02Ground answers in lease content
  3. 03Flag topics the lease does not address

Use cases

  1. 01Check a lease's security deposit
  2. 02Verify a specific lease clause
  3. 03Find out whether a topic is covered

MCP support

Exposes the `lease_qa` tool to MCP clients, accepting a question and optional document IDs for lease queries. It communicates over stdio.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"amadeuserras-leaseclear": {
"command": "uvx",
"args": [
"leaseclear-mcp"
],
"env": {
"LEASECLEAR_API_KEY": "<LEASECLEAR_API_KEY>",
"LEASECLEAR_API_URL": "<LEASECLEAR_API_URL>"
}
}
}
}
Run commanduvx leaseclear-mcp
Environment variables to set
LEASECLEAR_API_KEYSecretYour LeaseClear API key. Omit for demo mode.
LEASECLEAR_API_URLOverride the LeaseClear API URL.

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypileaseclear-mcp0.1.3

Tools

1

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
questionstringYes

Details

From the project README

leaseclear-mcp

A Model Context Protocol server that exposes LeaseClear lease Q&A.

Listed in the official MCP Registry as io.github.amadeuserras/leaseclear-mcp.

Tools

  • lease_qa — ask one question about lease terms; returns an answer grounded in the lease, or states that the lease is silent

Usage

Add this to your MCP client config (e.g. claude_desktop_config.json or Cursor mcp.json):

{
  "mcpServers": {
    "lease-qa": {
      "command": "uvx",
      "args": ["leaseclear-mcp"]
    }
  }
}

The package is on PyPI. uvx fetches and runs it as a local subprocess, communicating over stdio. uv required.

Optional environment variables
VariableDescriptionDefault
LEASECLEAR_API_KEYUse the server with your own LeaseClear accountLeaseClear demo mode
LEASECLEAR_API_URLOverride the API endpoint (local or private instances)LeaseClear production backend
{
  "mcpServers": {
    "lease-qa": {
      "command": "uvx",
      "args": ["leaseclear-mcp"],
      "env": {
        "LEASECLEAR_API_KEY": "lc_...",
        "LEASECLEAR_API_URL": "https://..."
      }
    }
  }
}

lease_qa usage

Argument

  • question (string, required) — one question about the lease

_meta

  • document_ids (string[], optional) — UUIDs of the documents to query. Omitted means all.

Security: The _meta field is used to pass metadata to the tool call that the model doesn't see. Having document_ids there is intentional: it prevents cross-document prompt injection because the model is never able to choose which documents it has access to. See a real-world example in LeaseOps: prompt injection and the tenants table.

MCP Python SDK example

Tool call:

result = await session.call_tool(
    name="lease_qa",
    arguments={
        "question": "How much is the security deposit for Yuna Kim?"
    },
    meta={
        "document_ids": [
            "a1b2c3d4-e5f..."
        ]
    }
)

Output:

{
  "answer": "The security deposit is $6,400.00. This deposit is held in Owner's Broker's trust account [california-johnson-kim §4]."
}

Tech stack

  • Python 3.12
  • Model Context Protocol Python SDK (mcp[cli]) over stdio
  • httpx for LeaseClear API calls
  • Pydantic and pydantic-settings for schemas and config
  • uv and uv_build for running and packaging
  • pytest, Ruff, and Pyright for tests, linting, and type checking

Project structure

leaseclear-mcp/
├── src/leaseclear_mcp/
│   ├── server.py        # MCP server + lease_qa
│   ├── leaseclear.py    # LeaseClear HTTP client
│   ├── schemas.py
│   └── config.py
├── tests/
├── pyproject.toml
├── .env.example
└── README.md

Local Development

git clone https://github.com/you/leaseclear-mcp.git
cd leaseclear-mcp
uv sync
cp .env.example .env
uv run pytest
uv run ruff check .
uv run pyright
Debugging

Use the MCP Inspector to test the server interactively:

npx @modelcontextprotocol/inspector uvx leaseclear-mcp

From a checkout, use uv run leaseclear-mcp instead of uvx leaseclear-mcp.

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.