Skip to main content
Glama
depper-IA

Kommo Kiro MCP

README.md
# kommo-kiro-power — Kommo CRM Power for Kiro

<p align="center">
  <img src="https://img.shields.io/badge/Kiro-Power-blue" alt="Kiro Power" />
  <img src="https://img.shields.io/badge/MCP-Compatible-green" alt="MCP Compatible" />
  <img src="https://img.shields.io/badge/Python-3.10%2B-yellow" alt="Python 3.10+" />
  <img src="https://img.shields.io/badge/License-MIT-lightgrey" alt="MIT License" />
</p>

Connect AI agents to your **Kommo CRM** (formerly amoCRM) using the [Model Context Protocol](https://modelcontextprotocol.io). Manage leads, contacts, pipelines, tasks, notes, tags, and companies — all from natural language in [Kiro](https://kiro.dev) or any MCP-compatible client.

## Features

| Category | Tools |
|----------|-------|
| **Leads** | list, get, create, update, delete, move stage, bulk update |
| **Contacts** | list, get, create, update |
| **Pipelines** | list, create, update |
| **Stages** | list, create, update |
| **Tags** | list, add, remove (auto-creates if needed) |
| **Tasks** | create, list (with overdue filter) |
| **Notes** | add note to lead |
| **Chat** | list templates, send message |
| **Companies** | create, list |
| **Custom Fields** | list, create (text, select, multiselect, date, etc.) |
| **Advanced** | create lead + contact + company in one call |

## Quick Start

### Install as Kiro Power

1. Open Kiro → Powers panel → **Add Custom Power**
2. Select **Import power from GitHub**
3. Paste: `https://github.com/depper-IA/kommo-kiro-power`
4. Follow the onboarding steps when activated

### Install as standalone MCP

```bash
git clone https://github.com/depper-IA/kommo-kiro-power.git
cd kommo-kiro-power
pip install -e .
```

## Setup

### 1. Create a Kommo Integration

1. Go to Kommo → **Settings** → **Integrations** → **Create integration**
2. Copy the **Client ID** and **Client Secret**
3. Set `http://localhost:8080/callback` as the **Redirect URI**

### 2. Configure Credentials

```bash
cp .env.example .env
# Edit .env with your Kommo integration details
```

### 3. Authenticate (OAuth)

```bash
python scripts/oauth_setup.py
```

A browser opens → sign in to Kommo → authorize → tokens saved automatically.

### 4. Run the MCP Server

```bash
python -m kommo_mcp
# or
kommo-mcp
```

## Usage with Kiro

Once installed as a Power, the server activates automatically when you mention keywords like "kommo", "leads", "pipeline", "crm", or "contacts" in your conversation.

```
"Show me all leads in the Sales pipeline"
"Create a lead for Maria from TechCorp with phone +57 310 543 6281"
"Move lead 12345 to the Negotiation stage"
"List all overdue tasks"
```

## Usage with Other MCP Clients

Add to your `claude_desktop_config.json`, `opencode.json`, or equivalent:

```json
{
  "mcpServers": {
    "kommo": {
      "command": "python",
      "args": ["-m", "kommo_mcp"]
    }
  }
}
```

## Architecture

```
kommo-kiro-power/
├── POWER.md              # Kiro Power metadata + onboarding
├── mcp.json              # MCP server config for Kiro
├── steering/             # Workflow guides loaded on-demand
│   ├── leads-workflow.md
│   ├── pipeline-management.md
│   └── automation-patterns.md
├── kommo_mcp/            # Python MCP server
│   ├── __main__.py       # Entry point (stdio transport)
│   ├── mcp_server.py     # Server + tool registration
│   ├── kommo_client.py   # HTTP client (OAuth, retry, cache)
│   └── tools/            # Tool definitions + handlers
│       ├── leads.py
│       ├── contacts.py
│       └── pipelines.py
├── scripts/
│   └── oauth_setup.py    # One-time OAuth authentication
├── pyproject.toml        # Package config
└── requirements.txt
```

## Security

- Credentials read from `.env` — never hardcoded
- `.env` is in `.gitignore` — never committed
- OAuth v4 with automatic token refresh
- Rate limiting: max 5 requests/second
- Exponential backoff with jitter on failures
- Response caching for pipelines/stages/fields (10 min TTL)

## Compatibility

- **Python**: 3.10, 3.11, 3.12, 3.13
- **MCP Clients**: Kiro, Claude Desktop, OpenCode, Cursor, Codex
- **Kommo API**: v4

## License

MIT

TDQS

A4.1/5.0

Scored across 30 tools

Disambiguation4/5

Each tool targets a distinct resource+action, and the descriptions explicitly steer callers between the overlapping pairs (update_lead vs move_lead_stage vs bulk_update_leads, create_lead vs create_lead_complex, add_note vs send_chat_message). A few tools legitimately overlap (bulk vs single update, complex vs simple create) but the descriptions disambiguate them well.

Naming Consistency5/5

Nearly all names follow a clean snake_case verb_noun pattern (list_leads, get_contact, create_pipeline, update_stage, delete_lead). Minor variants like move_lead_stage, create_lead_complex, and bulk_update_leads still fit the verb+noun shape and stay readable.

Tool Count4/5

30 tools is on the heavy side, but the surface spans many distinct entities (leads, contacts, companies, pipelines, stages, custom fields, tags, tasks, notes, chat), so the count is justified. Each tool earns its place rather than being redundant, though it sits just above the comfortable band.

Completeness3/5

Leads have full CRUD plus stage/tag/notes, but several entities are partial: no delete_contact, no delete_company/get_company/update_company, no update/delete for custom fields, and tasks can be created and listed but not updated or completed. These gaps will force workarounds for common lifecycle operations.

Maintenance

ActivityMaintained
ResponsivenessNo issues