time-messenger-mcp-server
MCP (Model Context Protocol) сервер для корпоративного мессенджера Time Messenger (на базе Mattermost) от Т-Банка.
Позволяет AI-ассистентам (Claude, OpenCode и др.) работать с Time Messenger: читать и отправлять сообщения, управлять тредами, искать каналы и пользователей, отслеживать непрочитанные сообщения.
Установка
Вариант 1: npx (без установки)
npx time-messenger-mcp-server
Вариант 2: глобальная установка
npm install -g time-messenger-mcp-server
time-messenger-mcp-server
Вариант 3: из исходников
git clone https://github.com/anomalyco/time-messenger-mcp-server.git
cd time-messenger-mcp-server
npm install
npm run build
node dist/index.js
Настройка
Переменные окружения
| Переменная | Описание | Обязательно |
|---|---|---|
TIME_URL |
URL вашего экземпляра Time Messenger | Да |
TIME_TOKEN |
Personal Access Token | Один из способов |
TIME_LOGIN_ID |
Email или логин | Один из способов |
TIME_PASSWORD |
Пароль | Вместе с LOGIN_ID |
Способ 1: Personal Access Token (рекомендуется)
Personal Access Token — постоянный токен, который не истекает.
Как получить:
- Откройте Time Messenger в браузере
- Аватарка → Настройки аккаунта → Безопасность → Персональные токены доступа
- Создайте токен с описанием "MCP Server"
- Скопируйте токен (показывается только один раз!)
Способ 2: Логин и пароль
Токен сессии получается автоматически. Если включена MFA — потребуется ввести код через tool login_with_mfa.
Способ 3: OAuth2
Только для веб-приложений (требует браузерный редирект). Документация
Интеграция с AI-клиентами
Claude Desktop
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
С токеном:
{
"mcpServers": {
"time": {
"command": "npx",
"args": ["-y", "time-messenger-mcp-server"],
"env": {
"TIME_URL": "https://your-instance.time-messenger.ru",
"TIME_TOKEN": "your_token_here"
}
}
}
}
С логином/паролем:
{
"mcpServers": {
"time": {
"command": "npx",
"args": ["-y", "time-messenger-mcp-server"],
"env": {
"TIME_URL": "https://your-instance.time-messenger.ru",
"TIME_LOGIN_ID": "your@email.com",
"TIME_PASSWORD": "your_password"
}
}
}
}
OpenCode
~/.config/opencode/opencode.json:
{
"mcp": {
"time": {
"type": "local",
"command": ["npx", "-y", "time-messenger-mcp-server"],
"enabled": true,
"environment": {
"TIME_URL": "https://your-instance.time-messenger.ru",
"TIME_TOKEN": "your_token_here"
}
}
}
}
Любой MCP-совместимый клиент
npx time-messenger-mcp-server
Сервер использует stdio transport — стандартный для MCP.
Доступные инструменты
Аутентификация
| Инструмент | Описание |
|---|---|
login_with_mfa |
Ввести MFA код при двухфакторной авторизации |
Сообщения
| Инструмент | Описание |
|---|---|
send_message |
Отправить сообщение в канал или ответить в треде |
get_channel_messages |
Получить сообщения из канала (с пагинацией) |
get_thread_messages |
Получить все сообщения в треде |
search_messages |
Поиск сообщений в команде |
Треды
| Инструмент | Описание |
|---|---|
list_threads |
Список отслеживаемых тредов в команде |
get_thread_stats |
Статистика непрочитанных тредов |
get_thread |
Информация о конкретном треде |
follow_thread |
Начать отслеживание треда |
unfollow_thread |
Прекратить отслеживание треда |
mark_thread_read |
Отметить тред как прочитанный |
Каналы
| Инструмент | Описание |
|---|---|
list_channels |
Список каналов в команде |
get_channel |
Информация о канале |
search_channels |
Поиск каналов |
get_channel_unread |
Непрочитанные сообщения в канале |
Команды
| Инструмент | Описание |
|---|---|
list_teams |
Список команд пользователя |
get_team |
Информация о команде |
get_teams_unread |
Непрочитанные во всех командах |
get_team_unread |
Непрочитанные в конкретной команде |
Пользователи
| Инструмент | Описание |
|---|---|
get_me |
Информация о текущем пользователе |
get_user |
Информация о пользователе по ID |
search_users |
Поиск пользователей |
MFA (двухфакторная аутентификация)
Если на вашем аккаунте включена MFA:
- При первом запросе получите ошибку:
MFA verification required - Используйте инструмент
login_with_mfaс 6-значным кодом из аутентификатора - После успешного ввода все инструменты будут работать до конца сессии
Разработка
# Установка зависимостей
npm install
# Сборка
npm run build
# Разработка
npm run dev
# Проверка типов
npm run typecheck
Структура проекта
src/
├── index.ts # MCP сервер
├── client/
│ └── time-client.ts # Time API клиент
├── tools/
│ ├── auth.ts # MFA аутентификация
│ ├── messages.ts # Сообщения
│ ├── threads.ts # Треды
│ ├── channels.ts # Каналы
│ ├── teams.ts # Команды
│ ├── users.ts # Пользователи
│ └── types.ts # Типы инструментов
└── types/
└── time-api.ts # TypeScript типы для Time API
API документация
Требования
- Node.js 18+
Лицензия
MIT