mcp-daktela

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.

Category
Visit Server

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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured