Lanten MCP Server
by lanten-ai
README.md
# @lanten-ai/mcp-server
An [MCP](https://modelcontextprotocol.io) server that connects AI assistants to the [Lanten](https://lanten.co) property management API. Use it with Claude, Cursor, Zed, or any MCP-compatible client to manage tenants, units, and work orders using natural language.
## Quick start
1. **Get an API key** — in your Lanten dashboard go to **Settings → Developers** and create a key.
2. **Add to your MCP client config:**
```json
{
"mcpServers": {
"lanten": {
"command": "npx",
"args": ["-y", "@lanten-ai/mcp-server"],
"env": {
"LANTEN_API_KEY": "lk_your_api_key_here"
}
}
}
}
```
For **Claude Desktop** this file lives at:
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
For **Claude Code** run: `claude mcp add lanten -e LANTEN_API_KEY=lk_your_key -- npx -y @lanten-ai/mcp-server`
3. **Restart your client** and start chatting:
> *"List all open work orders for Flat 4, 12 Oak Street"*
> *"Create a new tenant: Jane Smith, jane@example.com, assign her to unit abc-123"*
> *"Mark work order WO-214 as completed"*
---
## Available tools
### Tenants
| Tool | Description |
|---|---|
| `list_tenants` | List tenants with optional search and pagination |
| `get_tenant` | Get a single tenant by ID |
| `create_tenant` | Create a tenant, optionally linked to a unit |
| `update_tenant` | Update tenant fields (partial update) |
| `delete_tenant` | Permanently delete a tenant |
### Units
| Tool | Description |
|---|---|
| `list_units` | List property units with optional address search |
| `get_unit` | Get a single unit by ID |
| `create_unit` | Create a property unit |
| `update_unit` | Update unit fields (partial update) |
| `delete_unit` | Permanently delete a unit |
### Work Orders
| Tool | Description |
|---|---|
| `list_work_orders` | List work orders; filter by status, priority, tenant, or unit |
| `get_work_order` | Get a single work order by ID |
| `create_work_order` | Create a work order linked to a tenant/unit |
| `update_work_order` | Update a work order (status, priority, etc.) |
| `delete_work_order` | Permanently delete a work order |
**Priority levels:** `0` Emergency · `1` High · `2` Medium · `3` Low
**Statuses:** `reported` · `in_progress` · `completed` · `cancelled`
---
## Environment variables
| Variable | Required | Description |
|---|---|---|
| `LANTEN_API_KEY` | ✅ | Your API key from Settings → Developers |
| `LANTEN_API_URL` | — | Override the base URL (e.g. for self-hosted instances). Defaults to `https://app.lanten.ai/api/open/v1` |
---
## Developing locally
```bash
git clone https://github.com/lanten/mcp-server
cd mcp-server
npm install
npm run build
# Test with the MCP Inspector
LANTEN_API_KEY=lk_your_key npm run inspector
```
TDQS
A4/5.0
Scored across 15 tools
Disambiguation5/5
Each tool targets a specific resource and action (create, get, list, update, delete) with no overlap. Tenants, units, and work orders are clearly separated.
Naming Consistency5/5
All tools follow a consistent verb_noun pattern using snake_case (e.g., create_tenant, list_work_orders). No deviations.
Tool Count5/5
15 tools cover exactly the CRUD operations for three entities, which is within the ideal 3-15 range. No tool feels superfluous.
Completeness5/5
Full CRUD for tenants, units, and work orders, plus search and filtering in list operations. No obvious gaps in the property management domain.
Maintenance
ActivityInactive
ResponsivenessNo issues