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
- 01Ask one question about a lease
- 02Ground answers in lease content
- 03Flag topics the lease does not address
Use cases
- 01Check a lease's security deposit
- 02Verify a specific lease clause
- 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.
uvx leaseclear-mcpLEASECLEAR_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.
Tools
1Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| question | string | Yes |
Details
From the project READMEleaseclear-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
| Variable | Description | Default |
|---|---|---|
LEASECLEAR_API_KEY | Use the server with your own LeaseClear account | LeaseClear demo mode |
LEASECLEAR_API_URL | Override 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 httpxfor LeaseClear API calls- Pydantic and
pydantic-settingsfor schemas and config uvanduv_buildfor 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
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.