tlc-portal-mcp
tlc-portal-mcp
Это MCP-сервер на базе stdio, позволяющий использовать функции отпусков и расписания портала TwolineCloud в MCP-клиентах, таких как Claude Code и Codex.
При запуске пакета через npx вы можете использовать инструменты MCP для входа в систему через браузер, просмотра/подачи заявлений на отпуск, просмотра/ввода данных в расписание и проверки версий.
Текущие поддерживаемые функции
Вход на портал и проверка статуса аутентификации
Просмотр типов отпусков, остатков отпусков и истории заявок
Подача и отмена заявлений на отпуск
Управление информацией о расписании, доступные периоды ввода, детальный просмотр по дням
Просмотр списка проектов для расписания
Расчет доступного времени ввода по дням с учетом отпусков
Подготовка и отправка данных в расписание (единичные записи или периоды)
Полное удаление данных расписания за день
Проверка текущей версии сервера и сравнение с последней версией в npm
Требования
Node.js
18+Браузерное окружение, поддерживающее вход на портал
Установка и регистрация
Claude Code
# 사용자 전역 등록
claude mcp add tlc-portal-mcp --scope user -- npx -y tlc-portal-mcp
# 현재 프로젝트에만 등록
claude mcp add tlc-portal-mcp -- npx -y tlc-portal-mcpCodex CLI
# 사용자 전역 등록
codex mcp add tlc-portal-mcp -- npx -y tlc-portal-mcpПоскольку в Codex на данный момент нет отдельной команды add для конкретного проекта, при необходимости вы можете добавить его вручную в файл .codex/config.toml в корне проекта.
[mcp_servers.tlc-portal-mcp]
command = "npx"
args = ["-y", "tlc-portal-mcp"]Заметки о способе запуска
mcp add ... -- npx -y tlc-portal-mcp— это не глобальная установка, а регистрация команды запуска.Фактическая загрузка пакета происходит при первом запуске сервера клиентом.
Пакет не переустанавливается каждый раз; в зависимости от среды выполнения может использоваться кэшированная версия.
Поэтому сервер содержит инструменты
system.*для проверки текущей и последней версий.
Способы аутентификации
Рекомендуемый: auth.login
При открытии браузера и входе пользователя в систему JWT из localStorage['vuex'] сохраняется автоматически.
Запустите
auth.loginВыполните вход на портал и MFA в браузере
После успешного входа токен будет сохранен автоматически
Проверьте статус аутентификации с помощью
auth.status
После успешного входа в браузере отобразится информационное наложение.
Альтернативный: auth.import_vuex
Если автоматический поток входа затруднен, можно вручную скопировать и вставить значение vuex из браузера.
Войдите на портал в браузере
В DevTools перейдите в
Application > Local Storage > https://portal.twolinecloud.comСкопируйте значение
vuexЗапустите
auth.import_vuexи вставьте значение
Список инструментов
Система
Инструмент | Описание |
| Возвращает имя запущенного сервера, версию и список зарегистрированных инструментов |
| Сравнивает последнюю версию в npm с текущей |
Аутентификация
Инструмент | Описание |
| Автоматическое сохранение JWT после входа через браузер |
| Аутентификация путем вставки |
| Проверка текущего статуса аутентификации |
| Удаление локальной сессии |
Отпуск
Инструмент | Описание |
| Просмотр поддерживаемых типов отпусков |
| Просмотр остатков отпусков |
| Просмотр истории заявок на отпуск |
| Подготовка полезной нагрузки (payload) для заявки на отпуск |
| Отправка подготовленной заявки на отпуск |
| Отмена существующей заявки на отпуск |
Расписание
Инструмент | Описание |
| Просмотр информации об управлении/закрытии расписания |
| Просмотр текущего состояния расписания пользователя |
| Просмотр доступных периодов ввода |
| Детальный просмотр расписания на конкретную дату |
| Сводка по диапазону дат вместе с праздниками/отпусками и вместимостью |
| Просмотр списка проектов, доступных для ввода в расписание |
| Расчет доступного времени ввода на дату с учетом отпусков |
| Подготовка ввода расписания на один день |
| Отправка подготовленного ввода на один день |
| Подготовка массового ввода по периоду |
| Отправка подготовленного массового ввода |
| Полное удаление расписания на конкретную дату |
Правила расписания
Стандартное доступное время ввода — 8 часов в день.
При наличии отпуска на полдня (
AM,PM,admitAm,admitPm) можно записать максимум 4 часа.При наличии отпуска на весь день (
allDay,admit) запись на этот день невозможна.Государственные праздники Южной Кореи по умолчанию запрашиваются через API Nager.Date, в случае сбоя используются встроенные резервные данные.
Выходные и общие корпоративные выходные дни (
PORTAL_COMPANY_HOLIDAYS) также считаются недоступными для ввода.Наложение личных отпусков рассчитывается на основе результатов сортировки
requestDtизvacation-svc/request/secureв соответствии с правилами обзора портала.workDateиtaskTypeтребуются всегда.projectIdтребуется по умолчанию.Однако, если
taskType === NORMAL, можно вводить данные безprojectId.Операции записи следуют потоку
prepare -> submit.
Рекомендуемый порядок использования
Начальная диагностика
system.infosystem.check_updateauth.statusПри необходимости
auth.login
Поток работы с отпусками
leave.get_balancesleave.list_requestsleave.prepare_requestleave.submit_prepared_request
Поток работы с расписанием
timetable.get_available_rangetimetable.get_range_overviewtimetable.list_projectstimetable.get_day_capacitytimetable.prepare_day_entryилиtimetable.prepare_bulk_entriestimetable.submit_prepared_day_entryилиtimetable.submit_prepared_bulk_entries
Примеры использования
"현재 서버 버전이랑 최신 버전 비교해줘"
-> system.check_update
"내 휴가 잔여 일수 보여줘"
-> leave.get_balances
"이번 달 휴가 신청 이력 보여줘"
-> leave.list_requests
"4월 30일 오전 반차 신청 준비해줘"
-> leave.prepare_request
"오늘 입력 가능한 타임테이블 시간 계산해줘"
-> timetable.get_day_capacity
"2026년 2월 타임테이블 전체를 공휴일 포함해서 요약해줘"
-> timetable.get_range_overview
"2026-04-05에 프로젝트 274로 4시간, taskType EXECUTE로 입력 준비해줘"
-> timetable.prepare_day_entry
"오늘 일반업무 2시간, taskType NORMAL로 입력 준비해줘"
-> timetable.prepare_day_entry
"4월 1일부터 4월 3일까지 같은 내용으로 일괄 입력 준비해줘"
-> timetable.prepare_bulk_entriesПеременные окружения
Переменная | Значение по умолчанию | Описание |
|
| Базовый адрес портала |
|
| Путь входа в систему |
|
| URL после успешного входа |
|
| Файл локального сохранения сессии |
|
| Тайм-аут запроса API в секундах |
| `` | Список общих корпоративных выходных через запятую ( |
|
| Базовый URL API для запроса праздников Южной Кореи |
Ограничения
Срок действия JWT на данный момент составляет около 2 часов.
Если токен истек, необходимо снова запустить
auth.loginилиauth.import_vuex.Refresh token не используется.
Файл сессии сохраняется только локально и не загружается на сервер.
system.check_updateможет проверить версию только в среде с доступом к реестру npm.Если API для запроса праздников недоступно, используются встроенные резервные данные.
Комбинация
NORMAL+ отсутствиеprojectIdв расписании реализована как допустимый поток согласно документации, но фактическая поддержка бэкендом портала требует проверки в рабочей среде.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mingovvv/tlc-portal-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server