Kylas CRM MCP Server
Official# Kylas CRM MCP Server (Lead Only)
Model Context Protocol server for **Kylas CRM** lead operations. Use it from Cursor, Claude Desktop, or any MCP client to create leads, search and filter leads, and look up users, products, and pipelines.
<!-- mcp-name: io.github.kylastech/kylas-crm -->
## Features
- **get_lead_field_instructions** – Get lead schema (standard + custom fields, picklist IDs)
- **create_lead** – Create a lead with dynamic fields from user context
- **search_leads** – Search/filter leads by multiple criteria
- **lookup_users** – Resolve user names to IDs (for owner, created by, etc.)
- **lookup_products** – Resolve product names to IDs
- **lookup_pipelines** / **get_pipeline_stages** – Resolve pipeline and stage for open/closed/won leads
- **search_idle_leads** – Find leads with no activity for N days
## Requirements
- Python 3.10+
- [Kylas](https://kylas.io) account and API key
## Installation
```bash
pip install -e .
# or from PyPI (after publish): pip install kylas-crm-mcp-server
```
## Configuration
Set environment variables (or use a `.env` file):
| Variable | Required | Description |
|------------------|----------|--------------------------------------|
| `KYLAS_API_KEY` | Yes | Your Kylas API key |
| `KYLAS_BASE_URL` | No | API base URL (default: https://api.kylas.io/v1) |
## Running the server
The server uses **stdio** transport (default for MCP). Run:
```bash
python -m kylas_crm_mcp
# or: python main.py (when developing from repo root)
```
MCP clients (e.g. Cursor) typically start this process and communicate via stdin/stdout.
## Docker
```bash
docker build -t kylas-crm-mcp .
docker run -e KYLAS_API_KEY=your_key -i kylas-crm-mcp
```
## Development
```bash
pip install -e ".[dev]"
pytest
```
## Publishing to the MCP Marketplace
To publish this server to the **official MCP Registry** (so it appears in Cursor and other MCP clients):
1. Publish the package to [PyPI](https://pypi.org) (the registry verifies ownership via your README).
2. Install [mcp-publisher](https://modelcontextprotocol.io/registry/quickstart) and run `mcp-publisher login github`, then `mcp-publisher publish`.
See **[PUBLISHING.md](PUBLISHING.md)** for the full step-by-step guide.
## License
See repository for license information.
TDQS
Scored across 14 tools
All tools have distinct and clearly defined purposes. There is no overlap; even search tools are differentiated by search term vs. filter-based search, and pipeline tools are separated by granularity. An agent can easily select the correct tool.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_lead, get_current_user, search_leads). Even longer names like parse_datetime_to_utc_iso_tool adhere to the pattern. No mixing of styles.
With 14 tools, the server is well-scoped for a CRM. It provides sufficient coverage of lead management, search, pipeline stages, and utility functions without being bloated. Each tool serves a necessary purpose.
The tool surface covers core lead lifecycle (create, get, update, search) and supporting operations (pipeline lookup, user/product lookup, datetime parsing). The only noticeable gap is the absence of a delete_lead tool, which agents would need for full CRUD. Otherwise, completeness is strong.