tlc-portal-mcp
tlc-portal-mcp
TwolineCloudポータルの休暇およびタイムテーブル機能を、Claude CodeやCodexなどのMCPクライアントから利用できるようにしたstdioベースのMCPサーバーです。
パッケージを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-mcpCodexには現在プロジェクト専用の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
ブラウザを開いてユーザーが直接ログインすると、localStorage['vuex']のJWTが自動的に保存されます。
auth.loginを実行ブラウザでポータルログインとMFAを完了
ログイン成功後にトークンを自動保存
auth.statusで認証状態を確認
ログイン成功後、ブラウザには案内オーバーレイが表示されます。
代替: auth.import_vuex
自動ログインフローの使用が難しい場合は、ブラウザからvuexの値を直接取得して貼り付けることができます。
ブラウザでポータルログイン
DevToolsで
Application > Local Storage > https://portal.twolinecloud.comに移動vuexの値をコピーauth.import_vuexを実行後に貼り付け
ツール一覧
システム
ツール | 説明 |
| 現在実行中のサーバー名、バージョン、登録済みツール一覧を返却 |
| npmの最新バージョンと現在のバージョンを比較 |
認証
ツール | 説明 |
| ブラウザログイン後にJWTを自動保存 |
|
|
| 現在の認証状態を確認 |
| ローカルセッションを削除 |
休暇
ツール | 説明 |
| サポートされている休暇タイプを照会 |
| 休暇残高を照会 |
| 休暇申請履歴を照会 |
| 休暇申請payloadを準備 |
| 準備された休暇申請を提出 |
| 既存の休暇申請を取り消し |
タイムテーブル
ツール | 説明 |
| タイムテーブル管理/締め切り情報を照会 |
| 現在のユーザーのタイムテーブル状況を照会 |
| 入力可能期間を照会 |
| 特定の日付のタイムテーブル詳細を照会 |
| 日付範囲全体をタイムテーブル + 祝日/休暇capacityと共に要約 |
| タイムテーブルに入力可能なプロジェクト一覧を照会 |
| 休暇を反映した該当日の入力可能時間を計算 |
| 単一日のタイムテーブル入力を準備 |
| 準備された単一日の入力を提出 |
| 期間基準の一括入力を準備 |
| 準備された一括入力を提出 |
| 特定の日付のタイムテーブルを全削除 |
タイムテーブルのルール
基本の入力可能時間は1日8時間です。
半休(
AM,PM,admitAm,admitPm)がある場合は、最大4時間まで記録可能です。全日休暇(
allDay,admit)がある場合は、その日付には記録できません。韓国の祝日は基本的にNager.Date APIから照会し、失敗した場合は内蔵のフォールバックデータを使用します。
週末と会社の共通休日(
PORTAL_COMPANY_HOLIDAYS)も入力不可として処理します。個人の休暇オーバーレイは、ポータルの概要ルールに合わせて
vacation-svc/request/secureのrequestDtソート結果を基準に計算されます。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 |
|
| ログイン進入パス |
|
| ログイン成功後の到達URL |
|
| ローカルセッション保存ファイル |
|
| APIリクエストのタイムアウト秒数 |
| `` | カンマ区切りの会社共通休日リスト ( |
|
| 韓国の祝日照会APIのベースURL |
制限事項
JWTの有効時間は現在基準で約2時間です。
トークンが期限切れになった場合は、
auth.loginまたはauth.import_vuexを再度実行する必要があります。リフレッシュトークンは使用しません。
セッションファイルはローカルにのみ保存され、サーバーにはアップロードされません。
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