leaseclear-mcp
A Model Context Protocol server that exposes LeaseClear lease Q&A.
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
Argument
question(string, required) — one question about the lease
_meta (client / server only)
document_ids(string[], optional) — UUIDs of the documents to query. Omitted means all.
_meta is MCP's reserved field for additional metadata on a request that the model can't see or set. That's a deliberate anti-prompt injection choice: the host app decides which lease(s) are in scope, and the model can only ask the question.
[!WARNING] Without
document_ids, a model can query any document the LeaseClear account can access. See a real-world example in LeaseOps: prompt injection and the tenants table.
Python ClientSession.call_tool example:
result = await session.call_tool(
name="lease_qa",
arguments={
"question": "How much is the security deposit for Yuna Kim?"
},
meta={
"document_ids": [
"a1b2c3d4-e5f..."
]
}
)
Example output:
{
"answer": "The security deposit is $6,400.00. This deposit is held in Owner's Broker's trust account [california-johnson-kim §4]."
}
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
Metadata
Release files for leaseclear-mcp 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| leaseclear_mcp-0.1.2.tar.gz | 5.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| leaseclear_mcp-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.6 kB
Release files / leaseclear_mcp-0.1.2.tar.gz
| Download URL | leaseclear_mcp-0.1.2.tar.gz |
|---|---|
| Size | 5.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b3212c7b913e29ab24423fb25514d4ed7011a0d93a5c549581e0f3bc7020ee01
|
|
BLAKE2b-256 checksum How to use checksums |
2afd6d04c678ca58b9cb76b2105984cf014c35d3635692f04af407bd7d116c81
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / leaseclear_mcp-0.1.2-py3-none-any.whl
| Download URL | leaseclear_mcp-0.1.2-py3-none-any.whl |
|---|---|
| Size | 7.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d50ddc2be836cb805878a9194b6b786b080689db3d722616774d5c9af7f40132
|
|
BLAKE2b-256 checksum How to use checksums |
d256e5fd133bc4fda99dabc7eedd29d5f7477e61ae87372beb61177af470daaf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|