Skip to main content
Glama
README.md
# 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.akshaykylas94/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
```

## 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
```

## License

See repository for license information.

TDQS

A4.3/5.0

Scored across 8 tools

Disambiguation4/5

Most tools have distinct purposes: create_lead, get_lead_field_instructions, search_leads, and search_idle_leads are clearly differentiated. However, the four lookup tools (lookup_pipelines, lookup_products, lookup_users, get_pipeline_stages) could cause confusion as they all serve similar 'lookup' functions but for different entities, requiring careful reading of descriptions to distinguish them.

Naming Consistency4/5

The naming follows a consistent verb_noun pattern (e.g., create_lead, lookup_pipelines, search_leads) with snake_case throughout. The only minor deviation is get_lead_field_instructions, which uses 'get' instead of 'lookup' or 'search', but it still fits the verb_noun style and is understandable.

Tool Count5/5

With 8 tools, the count is well-scoped for a CRM server, covering core operations like lead creation, field instructions, searching, and lookups for pipelines, products, and users. Each tool serves a specific purpose without bloat, aligning with typical CRM workflows.

Completeness4/5

The toolset provides strong coverage for lead management, including creation, searching (with filters and idle leads), and necessary lookups. A minor gap is the lack of update or delete operations for leads, which might limit full CRUD lifecycle management, but agents can still handle core tasks effectively with the available tools.

Maintenance

ActivityInactive
ResponsivenessNo issues