Skip to main content

ktalk-mcp

PyPI Python

MCP сервер для доступа к записям Контур.Толк (KTalk) из Claude Code.

Предоставляет доступ к:

  • Списку записей конференций
  • Деталям записи
  • Транскриптам (распознанная речь по спикерам)
  • Саммари и протоколам встреч

Установка

Требуется Python 3.12+ и uv.

uv tool install ktalk-mcp

Или через pip:

pip install ktalk-mcp

Получение session token

KTalk использует session token для авторизации API-запросов. Токен передаётся как query parameter.

  1. Откройте https://your-domain.ktalk.ru в браузере
  2. Войдите в свой аккаунт
  3. Откройте DevTools: нажмите F12 (или Cmd+Option+I на Mac)
  4. Перейдите во вкладку ApplicationCookieshttps://your-domain.ktalk.ru
  5. Найдите cookie с именем sessionToken
  6. Скопируйте его значение

Важно: session token имеет ограниченный срок жизни. Если MCP tool возвращает ошибку авторизации, получите новый токен по инструкции выше.

Подключение к Claude Code

Добавьте в файл ~/.claude/.mcp.json (глобально) или .mcp.json (в проекте):

{
  "mcpServers": {
    "ktalk": {
      "command": "uvx",
      "args": ["ktalk-mcp"],
      "env": {
        "KTALK_SESSION_TOKEN": "ваш_session_token",
        "KTALK_BASE_URL": "https://your-domain.ktalk.ru"
      }
    }
  }
}

Альтернативная конфигурация

Переменные окружения можно задать отдельно:

export KTALK_SESSION_TOKEN="ваш_session_token"
export KTALK_BASE_URL="https://your-domain.ktalk.ru"

Также поддерживается файл .env в рабочей директории:

KTALK_SESSION_TOKEN=ваш_session_token
KTALK_BASE_URL=https://your-domain.ktalk.ru

Доступные MCP Tools

ktalk_list_recordings

Список записей конференций.

Параметр Тип Default Описание
query str Поиск по названию, комнате, автору
start_from str Начало периода (ISO 8601)
start_to str Конец периода
top int 30 Количество записей (1–1000)
order str byTimeNewFirst Сортировка: byTimeNewFirst, byTimeOldFirst, byTitle, bySizeBigFirst, bySizeSmallFirst
page_token str Токен пагинации
format str markdown raw / markdown

ktalk_get_recording

Детали одной записи — автор, дата, длительность, список участников.

Параметр Тип Default Описание
recording_key str Ключ (ID) записи
format str markdown raw / markdown

ktalk_get_transcript

Транскрипт записи — распознанная речь по спикерам с таймкодами.

Поддерживает чанкинг для длинных транскриптов: при превышении chunk_size ответ автоматически разбивается на части по границам реплик (не в середине фразы). Каждый чанк содержит метаданные для постраничного чтения.

Параметр Тип Default Описание
recording_key str Ключ (ID) записи
format str markdown raw / markdown
chunk int 0 Номер чанка. 0 = авто (целиком если маленький, первый чанк если большой). 1+ = конкретный чанк
chunk_size int 30000 Макс. символов в чанке (~7500 токенов). Мягкий лимит — разрез по границам реплик

ktalk_get_summary

Полное саммари записи (краткое резюме + протокол).

Параметр Тип Default Описание
recording_key str Ключ (ID) записи
format str markdown raw / markdown

ktalk_get_summary_by_type

Саммари конкретного типа.

Параметр Тип Default Описание
recording_key str Ключ (ID) записи
summary_type str shortSummary / protocol
format str markdown raw / markdown

API

Сервер работает с KTalk Web API. Авторизация — через sessionToken query parameter.

Эндпоинт Описание
GET /api/recordings Список записей
GET /api/recordings/{id} Детали записи
GET /api/recordings/{id}/transcript Транскрипт
GET /api/recordings/v2/{id}/summary Полное саммари (v2)
GET /api/recordings/{id}/summary/{type} Саммари по типу

OpenAPI спецификация talk.public.api-api-2.json включена как справочник, но содержит расхождения с реальным API (пути, формат авторизации, структура ответов).

CLI реестра (ktalk)

Тот же пакет ставит вторую команду — ktalk, операционный реестр записей на SQLite. Вся детерминированная механика (синхронизация списка записей, дедуп, экспирация, смена статусов, рендер дашборда и markdown-зеркала, разовая миграция) живёт в коде, а не в рассуждениях модели.

SQLite — операционный source of truth. Markdown-файл registry.md — генерируемое read-only зеркало для git (ktalk export), руками не редактируется.

Путь к базе: флаг --db PATH > переменная KTALK_REGISTRY_DB > дефолт 95_TRANSCRIPTS/.registry.db (относительно текущего каталога). Бинарную БД нужно добавить в .gitignore (.registry.db, .registry.db-wal, .registry.db-shm).

Команда Назначение
ktalk sync [--days 7] [--json] Загрузить записи из KTalk, upsert новых (new), экспирировать new старше N дней → skipped, показать дашборд. Идемпотентно.
ktalk dashboard [--json] Дашборд: новые записи, статистика по статусам.
ktalk list [--status S] [--json] Список записей с фильтром по статусу.
ktalk show <id> [--json] Детали записи: участники, статус, пути, длительность.
ktalk mark-processing <id> Перевести в processing.
ktalk mark-done <id> --transcript P --protocol P [--type T] Завершить, проставить пути и processed_at.
ktalk mark-partial <id> [--transcript P] [--protocol P] Частичная обработка.
ktalk mark-skipped <id> Пропустить вручную.
ktalk set-vault-id <id> <ktalk_id> <vault_id> Привязать профиль к участнику.
ktalk export [--out PATH] [--full] Сгенерировать markdown-зеркало.
ktalk migrate <vault> [--dry-run] [--json] Разовый импорт из markdown-реестров.

Все команды поддерживают --json (валидный JSON в stdout; ошибки — в stderr с ненулевым кодом возврата). Несколько фоновых агентов могут безопасно писать параллельно (WAL + busy_timeout + транзакция на операцию).

Разработка

git clone https://github.com/mdemyanov/ktalk-mcp.git
cd ktalk-mcp
uv sync

# Запуск тестов
uv run pytest -v

# Линтинг
uv run ruff check .

# Локальный запуск сервера
KTALK_SESSION_TOKEN=... KTALK_BASE_URL=... uv run ktalk-mcp

Лицензия

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ktalk_mcp-0.4.0.tar.gz (180.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ktalk_mcp-0.4.0-py3-none-any.whl (22.4 kB view details)

Uploaded Python 3

File details

Details for the file ktalk_mcp-0.4.0.tar.gz.

File metadata

  • Download URL: ktalk_mcp-0.4.0.tar.gz
  • Upload date:
  • Size: 180.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for ktalk_mcp-0.4.0.tar.gz
Algorithm Hash digest
SHA256 e321e7a13b05687b91c245753d1b16223cb988f8830ad028120a697ecc0125e3
MD5 7d78721f601c27cbe5e3dbe57d3fdd8d
BLAKE2b-256 11bcc9febe5e524bb4711dc553aca2dfc20f9503b6593b3cc90de263999a6c99

See more details on using hashes here.

File details

Details for the file ktalk_mcp-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: ktalk_mcp-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 22.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for ktalk_mcp-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 87a1767cca375f8004d5e14091cf747d89b86aada064ae47333c165c3d88b0f5
MD5 b7da7aca105b7a61b759cf8905a4889e
BLAKE2b-256 3479e2976a52d51a53759ce39190bd3ea9479e1190e6177947596bc217d82dad

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page