关于 Kintai Plus (unofficial)
Kintai Plus(非官方)是面向使用 Money Forward Cloud Kintai Plus(旧 AKASHI)的员工和管理员的 MCP 服务,可通过 AI 助手读取考勤并执行打卡、工时登记。它在本地通过 stdio 运行,并提供日/月汇总检查及凭据保护选项。
主要功能
- 01打卡及查看今日状态
- 02查询考勤记录与提醒
- 03单次汇总日/月待办
- 04登记、更新和删除工时
- 05管理员查看团队考勤
- 06本地运行并保护令牌
适用场景
- 01通过对话登记上班或下班
- 02检查本月加班时数估算
- 03退勤前核对打卡和工时缺项
- 04管理员查看团队打卡与加班风险
MCP 相关
这是一个通过本地 stdio 暴露 Money Forward Cloud Kintai Plus 公开 API 的 MCP 服务,向客户端提供考勤、工时和管理员工具。它还提供提示词和资源,用于读取今日状态、月度检查及考勤指南。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y kintai-plus-mcpKINTAI_PLUS_TOKEN密钥API token used only in this process. Not stored or reissued unless KINTAI_PLUS_PERSIST_ENV_TOKEN=true. Prefer `npx kintai-plus-mcp login`.KINTAI_PLUS_PERSIST_ENV_TOKEN密钥When true, store KINTAI_PLUS_TOKEN and reissue it if the expiry is unknown. Reissue invalidates the token in the environment.KINTAI_PLUS_COMPANY_IDLogin company ID (ログイン企業ID), used with KINTAI_PLUS_TOKENKINTAI_PLUS_HOSTAPI host (the domain of the URL after you sign in)KINTAI_PLUS_READ_ONLYExpose read-only tools onlyKINTAI_PLUS_CONFIRMWrite confirmation: always, destructive (deletes only; the default when unset), or never. Overrides the level saved at login.KINTAI_PLUS_CONFIRM_WRITESLegacy boolean. true means always, false means never. Ignored when KINTAI_PLUS_CONFIRM is set.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
14收录的工具列表 · 更新于 1 周前
此工具无需参数。
详细介绍
kintai-plus-mcp
非公式 の MCP サーバーです。株式会社マネーフォワードとは関係がなく、同社による確認・保証は受けていません。 「マネーフォワード クラウド勤怠Plus」「AKASHI」などの名称・商標は、それぞれの権利者に帰属します。
マネーフォワード クラウド勤怠Plus(旧 AKASHI)の公開 API を、Claude などの AI アシスタントから使えるようにする Model Context Protocol サーバーです。
「出勤して」「今月の残業はどれくらい?」「昨日の工数を設計 2 時間・実装 5 時間で入れて」のように話しかけるだけで、打刻・勤務実績の確認・工数入力ができます。
- 手元の PC で動くローカルの stdio サーバーです(トークンを第三者のサーバーに預けません)
- トークンは OS のキーチェーンに保存し、有効期限が近づくと自動で再発行します(環境変数で渡したトークンは、明示しない限り保存も再発行もしません)
- 打刻の位置情報・IP アドレスは、既定では AI に渡しません
公開 API の仕様(公式): マネーフォワード クラウド勤怠Plus 公開API 仕様
1.0 からは、ツール名・引数・プロンプト名を互換性の約束とします。これらを壊す変更は、メジャーバージョンを上げるときだけ行います。まだ未確認の API の点は docs/api-notes.md の「未確認事項」にあります。
0.1.x から 1.0 で、次の名前だけ変えます。旧名では呼べません。
| 0.1.x | 1.0 |
|---|---|
プロンプト monthly_review | end_of_month(end_of_day の月末版。close_out を案内する) |
ツール get_working_statuses | get_working_treatments(勤務処理のラベル。打刻の get_today_status とは別) |
できること
| ツール | 内容 |
|---|---|
get_my_profile | 自分の従業員情報と権限 |
get_today_status | 今日の状況(未出勤/勤務中/休憩中/退勤済み)と、ここまでの勤務時間 |
close_out | 1 日または月の締め。打刻漏れ・法定の休憩不足・工数の過不足・残業の目安・アラートを、優先度つきの残件として 1 回で返す |
get_attendance_guide | 就業ルール・法定休憩・打刻種別の説明(いまの勤務データではない) |
punch 【書き込み】 | 打刻(出勤・退勤・直行・直帰・休憩入・休憩戻、テレワーク) |
get_stamps | 打刻履歴(長い期間は自動で分割) |
get_working_records | 勤務実績(労働区分・時刻・実働・休憩。31 日ごとに自動で分割)。任意の staffIds で管理下の従業員も取れる。省略時は本人 |
summarize_working_hours | 実働合計・出勤日数・休日出勤日数・法定時間外の目安(月ごとの内訳つき) |
get_alerts | アラート(打刻忘れ、遅刻、36協定 など) |
check_attendance_issues | 打刻漏れチェック(退勤・出勤・休憩戻の打刻忘れ、12 時間超の日、勤務間インターバル 11 時間未満、休日出勤)。勤務実績にその時刻がある日は打刻漏れにしない。休憩が不明な経過時間は、12 時間超を情報にとどめる |
list_projects / list_tasks / get_my_projects | プロジェクトとタスク |
get_manhours | 工数(プロジェクト名・タスク名つき) |
save_manhours 【書き込み】 / delete_manhours 【書き込み】 | 工数の登録・更新・削除 |
管理者(企業管理者・一般管理者)には、次のツールも表示されます。一般の従業員には表示されません。
| ツール | 内容 |
|---|---|
list_staff | 管理下の従業員の一覧(ID・氏名・社員番号・所属のみ) |
get_team_stamps | 管理下の従業員の 1 日分の打刻と状況。過去日の退勤なしは「退勤打刻なし」で、その日の終わりまでは数えない |
team_close_out | 管理下の 1 日または月の締め。勤務実績を主に、打刻漏れ・出勤の重複・法定休憩・11 時間のインターバル・残業の目安(36 時間と 45 時間)を 1 回で返す。問題が無い人は人数だけ。実績も打刻も無い人は別。アラートと工数未入力は見ない |
get_working_treatments | 勤務処理のラベル(欠勤・出張など)。打刻の get_today_status とは別 |
get_project_members | プロジェクトのメンバー |
find_overtime_risks | 残業リスク検出(今月の法定時間外の目安と月末の着地予測。既定のしきい値は 45 時間) |
定型プロンプト
対応しているクライアントでは、メニューから次のプロンプトを呼び出せます(使うツールが公開されているときだけ表示)。
| プロンプト | 内容 |
|---|---|
end_of_day | 退勤前チェック(close_out で今日の残件を見て、工数を埋めてから退勤を打刻) |
log_manhours | 工数を入力する(日付と、やったことを渡せる) |
end_of_month | 月末の締め(close_out で残件と残業の目安を 1 回で確認。0.1.x の monthly_review) |
team_status | 管理者向け: チームの今日の状況と残業リスク |
team_end_of_month | 管理者向け: チームの月末締め(team_close_out を 1 回) |
リソース
対応しているクライアントでは、次の URI をコンテキストとして読めます。中身はツールと同じです。リソースが無いクライアントは、右のツールを使ってください。
| URI | 同じ内容のツール |
|---|---|
kintai://today | get_today_status(今日の状態) |
kintai://close-out/month | close_out(scope=month、今月) |
kintai://guide | get_attendance_guide(就業ルール、法定休憩、打刻種別) |
必要なもの
- Node.js 22 以上
- クラウド勤怠Plus の API トークン(下の「API トークンの発行」)
セットアップ
1. API トークンの発行
管理者が行うこと(一度だけ): 従業員設定 > 対象の従業員の「変更」 > 利用機能設定 で、「公開API利用可否」を「利用する」にします。
本人が行うこと: マイページ > APIトークン で発行します。トークンの有効期限は 1 ヶ月と 1 日です。login で登録したトークンは、登録時と、期限が近づいたときに再発行します。
loginで登録するトークンは、このツール専用にしてください。再発行すると、それまで使っていたトークンは使えなくなります。環境変数で渡すだけの場合は、既定では再発行しません(下の「環境変数でトークンを渡す」)。
2. ログイン
npx kintai-plus-mcp login
次を聞かれます。
-
ログイン企業ID
-
接続先: ログイン後のブラウザの URL のドメインを、↑/↓ で選んで Enter で決めます。最初に選ばれているのは
atnd.ak4.jpです。atnd.ak4.jp(既定。https://atnd.ak4.jp/でログインしている)atnd-awj.ak4.jp(https://atnd-awj.ak4.jp/でログインしている)
-
書き込み前の確認(接続先と同じ ↑/↓ と Enter。最初に選ばれているのは「削除だけ」)
- 毎回確認する(すべての書き込み)
- 打刻は確認なし、削除だけ確認(既定。工数の保存も確認しません)
- 確認しない
-
APIトークン(入力は表示されません)
端末でない入力(パイプなど)では、接続先は矢印ではなくドメインかその URL を 1 行で渡します。空行は atnd.ak4.jp です。--host で指定したときは接続先を聞きません。確認レベルは聞きません(保存してある値はそのまま。変えるときは下の環境変数か、対話の login)。Ctrl+C で選択を中断します。
疎通を確認してから保存します。状態の確認と削除は次のとおりです。
npx kintai-plus-mcp status # 保存先・有効期限・権限(トークンは表示しません)
npx kintai-plus-mcp logout # 保存した認証情報を削除
3. AI クライアントへの登録
Claude Desktop
claude_desktop_config.json に追加します。
{
"mcpServers": {
"kintai-plus": {
"command": "npx",
"args": ["-y", "kintai-plus-mcp"]
}
}
}
Claude Code
claude mcp add kintai-plus -- npx -y kintai-plus-mcp
Cursor
~/.cursor/mcp.json(またはプロジェクトの .cursor/mcp.json):
{
"mcpServers": {
"kintai-plus": {
"command": "npx",
"args": ["-y", "kintai-plus-mcp"]
}
}
}
VS Code(GitHub Copilot)
.vscode/mcp.json:
{
"servers": {
"kintai-plus": {
"type": "stdio",
"command": "npx",
"args": ["-y", "kintai-plus-mcp"]
}
}
}
Codex CLI
~/.codex/config.toml:
[mcp_servers.kintai-plus]
command = "npx"
args = ["-y", "kintai-plus-mcp"]
設定(環境変数)
| 変数 | 既定 | 内容 |
|---|---|---|
KINTAI_PLUS_READ_ONLY | false | true で書き込みツール(打刻・工数)を出さない |
KINTAI_PLUS_CONFIRM | (下を参照) | 書き込み前の確認。always(毎回)/ destructive(削除だけ。未設定時の既定)/ never(確認しない)。設定してあると、login で保存した値より優先します |
KINTAI_PLUS_INCLUDE_LOCATION | false | true で打刻の位置情報・IP を返す |
KINTAI_PLUS_REFRESH_DAYS | 15 | 有効期限の残りがこの日数を切ったら再発行する(1〜30) |
KINTAI_PLUS_AUTO_REFRESH | true | false で自動の再発行を止める |
KINTAI_PLUS_PERSIST_ENV_TOKEN | false | true で、環境変数のトークンを保存し、期限が不明なら再発行する。環境変数の値は使えなくなることがある |
KINTAI_PLUS_CREDENTIAL_STORE | auto | 保存先: auto(キーチェーン → ファイル)/ keychain / file |
KINTAI_PLUS_CREDENTIALS_FILE | ~/.config/kintai-plus-mcp/credentials.json | ファイル保存のパス(指定するとファイル保存になる) |
KINTAI_PLUS_LOG_LEVEL | info | debug / info / warn / error / silent(ログは stderr のみ) |
KINTAI_PLUS_MIN_INTERVAL_MS | 300 | API リクエストの最小間隔(ミリ秒) |
書き込み前の確認
既定は 打刻は確認なし、削除だけ確認 です。打刻と工数の保存はそのまま実行し、工数の削除だけ止めます。login で選んだ値は、認証情報とは別に保存します。
| 値 | 動き |
|---|---|
always | 打刻・工数の保存・削除の前に確認する |
destructive | 削除だけ確認する(既定) |
never | 確認しない |
確認が必要なとき:
- クライアントが確認ダイアログ(Elicitation)に対応していれば、何をいつ登録・削除するかを示して承認をもらいます。断る、またはキャンセルすると、何も変えません。
- 対応していないクライアントでは、実行せずにプレビューを返します。同じツールを
confirm: trueで呼び直すと実行します。
KINTAI_PLUS_READ_ONLY=true のときは書き込みツール自体を出しません。打刻が今日の履歴と矛盾するときは、確認の前に拒否します(force: true はこれまでどおり)。
以前の KINTAI_PLUS_CONFIRM_WRITES(と、さらに古い CONFIRM_WRITES)は、KINTAI_PLUS_CONFIRM が無いときだけ読みます。true は always、false は never です。
環境変数でトークンを渡す(ボットなど)
login が使えないときは、環境変数だけで起動できます。既定では保存せず、再発行 API も呼びません。
KINTAI_PLUS_TOKEN=... KINTAI_PLUS_COMPANY_ID=... KINTAI_PLUS_HOST=atnd.ak4.jp npx kintai-plus-mcp
再発行 API は、渡したトークンを無効にして新しいトークンを返します。環境変数の値を自動で再発行すると、その値を共有している他のプロセスが突然使えなくなります。このサーバーは、明示しない限りそれをしません。
自動更新(期限が近づいたら再発行して保存)が必要なときは、このサーバー専用のトークンを npx kintai-plus-mcp login で登録してください。キーチェーンが使えない環境では、本人だけが読み書きできるファイル(パーミッション 600)に保存します。
環境変数のトークンを保存して再発行する動作は、KINTAI_PLUS_PERSIST_ENV_TOKEN=true を付けたときだけです。有効にすると、環境変数に書いたトークンは使えなくなることがあります。保存先にすでに認証情報があるときは、環境変数より保存先を優先します。
1 日・月末の締め(close_out)
「退勤前に見て」「今月締められる?」は close_out が 1 回で答えます。個別の確認ツールを順に呼ぶ必要はありません。scope は day(既定・今日)か month(既定・今月)です。日付は日本時間です。
残件が無い日は、こう返します(抜粋。実際には overtime や disclaimer も付きます)。
{
"scope": "day",
"ok": true,
"readyToClose": true,
"headline": "2026-10-27 は締められます。対応は不要です。",
"counts": { "error": 0, "warning": 0, "info": 0 },
"items": []
}
昼休みを打刻し忘れて休憩が 3 分しかない日(実働 8 時間 57 分)は、最初の項目が次のようになります。過去の打刻は API で直せないので、案内は Web の修正申請です。
{
"ok": false,
"headline": "先に 1 件対応してください。items を priority 順に処理してください。",
"items": [
{
"priority": 1,
"severity": "error",
"code": "short_break",
"date": "2026-10-26",
"title": "休憩が 3 分しかありません",
"detail": "打刻上の休憩は 3 分、実働は 8:57。労働基準法: 労働時間が 6 時間を超えたら休憩 45 分以上、8 時間を超えたら 60 分以上(ちょうど 6 時間・8 時間は含まない)。必要 60 分、あと 57 分足りません。",
"action": "この日はすでに終わっているので、今 punch しても休憩は増えません。この打刻は API では修正できません。勤怠Plus の Web 画面から修正申請(打刻修正)をしてください。punch は呼ばないでください(今の時刻で新しい打刻が増えるだけです)。"
}
]
}
今日がまだ休憩中なら、code は open_break で、次の操作は punch(type=break_end)です。修正申請ではありません。
限制
- 不支持申请(加班、休假、打卡修正等)和日程安排(因为公开 API 不提供这些功能)
- 打卡记录的时间以服务器收到请求的时间为准,且无法通过 API 修改或删除。 如果打卡有误,请通过网页申请更正。因此,不会执行与当天打卡状态矛盾的打卡操作(例如,已经打过上班卡却再次打上班卡)。确实需要时,请告诉 AI“强制执行”(
force) - API 不提供加班时间,因此会按“法定工时之外的参考值”(工作日和规定休息日超过每天 8 小时,法定休息日为全部工时)进行计算。不考虑每周 40 小时、弹性工时制度和弹性工作制。请通过勤怠Plus 或工资计算确认正式数值
- API 的限制(工作实绩为 31 天,打卡记录为 6 个月、1000 条,员工列表为每页 20 人,多名员工的打卡记录为每天 50 人)由服务端分批处理并分页获取。单次调用可获取的时间范围有限
- 时区固定为日本时间(Asia/Tokyo)
- 不处理人事主数据的写入操作(员工注册、删除、权限、调动等)
MCP 客户端支持情况(截至 2026-11)
以下为调查所得。“未确认”不代表不支持。
| 功能 | Claude Code | Cursor | VS Code | ChatGPT | Gemini CLI |
|---|---|---|---|---|---|
| 工具注释(只读 / 破坏性 / 幂等 / 外部) | 支持 | 未确认 | 支持 | 支持 | 未确认 |
| 写入前确认(Elicitation) | 支持 | 支持 | 支持 | 未确认 | 未确认 |
资源(kintai://...) | 支持 | 支持 | 支持 | 未确认 | 部分支持 |
| structuredContent | 未确认 | 未确认 | 未确认 | 支持 | 未确认 |
所有工具都带有注释。打卡属于写入操作,但不具破坏性(之后可通过更正申请修正)。删除工时属于破坏性操作。成功的对象会同时以 JSON 文本和 structuredContent 返回。
安全与隐私
- 令牌会保存在 OS 密钥链(macOS 钥匙串、Windows 凭据管理器、Linux Secret Service)中。如果 Linux 上没有 Secret Service,则会保存到文件(600),而不是重启后会清除的内核密钥环
- 由于 API 规范要求在 URL 中传递令牌,因此会从日志和错误消息中将其彻底删除
- 默认不会向 AI 传递打卡位置和 IP。员工信息也仅限于 ID、姓名、员工编号和所属部门(不会传递电子邮件地址)
logout只会删除本地凭据。若要使令牌失效,请在个人页面中操作
开发
pnpm install
pnpm test # Vitest(モックと架空のフィクスチャのみ)
pnpm lint # Biome
pnpm typecheck
pnpm build # tsdown
pnpm e2e # 実環境を叩く手動 E2E(読み取りのみ。手元でだけ実行)
设计决策见 docs/design.md,背景信息见 docs/adr/。
许可证
English
非官方 MCP 服务,用于访问日本考勤管理服务“Money Forward Cloud Kintai Plus”(原 AKASHI)的公开 API。 本项目与 Money Forward, Inc. 无关联,也未获其认可或赞助。所有商标均属于各自所有者。
- 打上班卡/下班卡,查看今天的状态,一次调用即可完成每日或每月结算(
close_out),查看打卡历史、工作记录、提醒和工时,并记录工时 - 管理员工具(员工列表、团队打卡记录、通过
team_close_out进行团队结算、通过get_working_treatments获取勤務処理标签、项目成员)仅对管理员显示。get_working_treatments不是今天的打卡状态(get_today_status) - 在本地通过 stdio 运行:
npx kintai-plus-mcp。请先使用npx kintai-plus-mcp login注册令牌 - 令牌会保存在 OS 密钥链(或权限为 600 的文件)中,并在到期前自动重新签发。仅通过
KINTAI_PLUS_TOKEN传入的令牌不会被保存或重新签发,除非设置KINTAI_PLUS_PERSIST_ENV_TOKEN=true(重新签发会使先前的令牌失效) - 写入确认分为三个级别。默认仅在删除工时前询问。打卡和保存工时不会弹出对话框。不支持 elicitation 的客户端会先显示预览,直到再次调用工具并传入
confirm: true kintai://today、kintai://close-out/month和kintai://guide分别对应get_today_status、本月的close_out和get_attendance_guide- 默认不会向 AI 传递打卡的位置和 IP 地址
- 不支持申请和日程安排,因为公开 API 不提供这些功能。打卡记录的时间以服务器收到请求的时间为准,且无法通过 API 修改
- 需要 Node.js 22+ 和从 Kintai Plus 的“个人页面”签发的 API 令牌(管理员必须为你启用“公开API利用可否”)
- 官方 API 参考(日语):https://akashi.zendesk.com/hc/ja/articles/115000475854
- 许可证:MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。