mcp-daktela
Read-only MCP server for the Daktela contact center REST API, providing 40 tools to access tickets, calls, emails, chats, contacts, CRM records, campaigns, and real-time agent status.
README
mcp-daktela
Read-only MCP server for the Daktela contact center REST API v6. Gives any MCP-compatible LLM client (Claude, Cursor, etc.) full read access to tickets, calls, emails, chats, contacts, CRM records, campaigns, and real-time agent status.
Why
A contact center generates thousands of interactions daily — calls, emails, chats across multiple channels. The raw data is all in Daktela, but extracting insight from it requires either manual review or custom reporting. This server bridges Daktela to an LLM, letting you run analysis that would be impractical to do by hand:
Email quality audit — "Analyze all emails from the last 72 hours. Flag any interactions with negative customer sentiment, lost deals where the customer chose a competitor, or unprofessional agent tone. For each flagged email, show metadata, a link to the ticket, and a description of the issue."
Call transcript analysis — "Review call transcripts from the last week. Identify calls where the customer escalated, the agent struggled with product knowledge, or a commitment was made but not followed up. Summarize each with the agent name, customer, and recommended action."
Sales pipeline review — "Look at all open sales tickets in S1-Discovery and S2-Qualification stages. For each lead, read the latest email thread and assess whether the deal is progressing, stalled, or at risk. Rank by MRR and recommend which ones need attention this week."
The LLM reads the actual conversation content — email bodies, chat messages, call transcripts — and applies judgment that no dashboard or filter can replicate.
Tools
40 read-only tools organized by domain:
| Category | Tools |
|---|---|
| Tickets | list_tickets, count_tickets, get_ticket, get_ticket_detail, list_account_tickets, list_ticket_categories |
| Activities | list_activities, get_activity |
| Calls | list_calls, get_call, get_call_transcript, list_call_transcripts |
| Emails | list_emails, get_email |
| Messaging | list_web_chats, get_web_chat, list_sms_chats, get_sms, list_messenger_chats, get_messenger_chat, list_instagram_chats, get_instagram_chat, list_whatsapp_chats, get_whatsapp_chat, list_viber_chats, get_viber_chat |
| Contacts & CRM | list_contacts, get_contact, list_accounts, get_account, list_crm_records |
| Campaigns | list_campaign_records, list_campaign_types |
| Reference data | list_queues, list_users, list_groups, list_pauses, list_statuses, list_templates |
| Real-time | list_realtime_sessions |
All list tools support pagination (skip, take), sorting, and contextual filters (stage, priority, date range, user, queue, etc.). The server includes detailed instructions metadata that teaches the LLM how to use filters, resolve entity names, and navigate relationships between tickets, contacts, and accounts.
Getting started
Prerequisites
- Python 3.12+
- A Daktela instance with a user account that has API access
- uv (recommended) or pip
Install
git clone https://github.com/hajekd/mcp-daktela.git
cd mcp-daktela
uv venv && uv pip install -e ".[dev]"
Run locally with Claude Desktop
Set your Daktela credentials and point Claude Desktop at the server:
{
"mcpServers": {
"daktela": {
"command": "python",
"args": ["-m", "mcp_daktela"],
"env": {
"DAKTELA_URL": "https://your-instance.daktela.com",
"DAKTELA_USERNAME": "your-username",
"DAKTELA_PASSWORD": "your-password"
}
}
}
}
That's it. The server authenticates against your Daktela instance using the same credentials you use to log in. You can also use DAKTELA_ACCESS_TOKEN instead of username/password if you have a static API token.
Deploy as HTTP server
For shared or remote deployments (e.g., Cloud Run), the server runs in streamable-http mode where each client passes credentials via HTTP headers:
gcloud run deploy mcp-daktela \
--source . \
--region europe-west1 \
--allow-unauthenticated \
--memory 1Gi
The server also includes a built-in OAuth 2.0 provider for use as a remote MCP server on Claude.ai.
Architecture
src/mcp_daktela/
├── server.py MCP tool definitions (40 tools)
├── formatting.py Format API records into readable markdown
├── client.py Async HTTP client for Daktela REST API
├── filters.py Build query parameters (filter/sort/pagination)
├── oauth.py OAuth 2.0 provider for Claude.ai remote MCP
├── auth.py Per-request credential middleware
├── config.py Credential resolution (ContextVar → env vars)
├── cache.py In-process TTL cache for reference data
├── logging_middleware.py Structured JSON logging for tool calls
└── __main__.py Entry point
Configuration
| Environment variable | Default | Description |
|---|---|---|
DAKTELA_URL |
— | Daktela instance URL |
DAKTELA_USERNAME |
— | Daktela username |
DAKTELA_PASSWORD |
— | Daktela password |
DAKTELA_ACCESS_TOKEN |
— | Static API token (alternative to username/password) |
MCP_TRANSPORT |
stdio |
Transport: stdio or streamable-http |
PORT |
8080 |
HTTP port (streamable-http mode) |
CACHE_ENABLED |
true |
Enable reference data cache |
CACHE_TTL_SECONDS |
3600 |
Cache TTL in seconds |
Development
# Unit tests (333 tests, ~1s)
.venv/bin/python -m pytest
# Lint
.venv/bin/python -m ruff check src/ tests/
Integration tests run every tool against a live Daktela instance via the deployed server:
.venv/bin/python scripts/integration_test.py \
--url https://your-instance.daktela.com \
--username your-user \
--password your-password
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。