mcpField
K
Kintai Plus (unofficial)

Kintai Plus (unofficial)

本地服务
github.com/atzzCokeK生产力01 周前更新

关于 Kintai Plus (unofficial)

Kintai Plus(非官方)是面向使用 Money Forward Cloud Kintai Plus(旧 AKASHI)的员工和管理员的 MCP 服务,可通过 AI 助手读取考勤并执行打卡、工时登记。它在本地通过 stdio 运行,并提供日/月汇总检查及凭据保护选项。

主要功能

  1. 01打卡及查看今日状态
  2. 02查询考勤记录与提醒
  3. 03单次汇总日/月待办
  4. 04登记、更新和删除工时
  5. 05管理员查看团队考勤
  6. 06本地运行并保护令牌

适用场景

  1. 01通过对话登记上班或下班
  2. 02检查本月加班时数估算
  3. 03退勤前核对打卡和工时缺项
  4. 04管理员查看团队打卡与加班风险

MCP 相关

这是一个通过本地 stdio 暴露 Money Forward Cloud Kintai Plus 公开 API 的 MCP 服务,向客户端提供考勤、工时和管理员工具。它还提供提示词和资源,用于读取今日状态、月度检查及考勤指南。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"atzzcokek-kintai-plus": {
"command": "npx",
"args": [
"-y",
"kintai-plus-mcp"
],
"env": {
"KINTAI_PLUS_TOKEN": "<KINTAI_PLUS_TOKEN>",
"KINTAI_PLUS_PERSIST_ENV_TOKEN": "<KINTAI_PLUS_PERSIST_ENV_TOKEN>",
"KINTAI_PLUS_COMPANY_ID": "<KINTAI_PLUS_COMPANY_ID>",
"KINTAI_PLUS_HOST": "<KINTAI_PLUS_HOST>",
"KINTAI_PLUS_READ_ONLY": "<KINTAI_PLUS_READ_ONLY>",
"KINTAI_PLUS_CONFIRM": "<KINTAI_PLUS_CONFIRM>",
"KINTAI_PLUS_CONFIRM_WRITES": "<KINTAI_PLUS_CONFIRM_WRITES>"
}
}
}
}
启动命令npx -y kintai-plus-mcp
需要配置的环境变量
KINTAI_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_TOKEN
KINTAI_PLUS_HOSTAPI host (the domain of the URL after you sign in)
KINTAI_PLUS_READ_ONLYExpose read-only tools only
KINTAI_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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmkintai-plus-mcp1.1.0

工具

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.x1.0
プロンプト monthly_reviewend_of_month(end_of_day の月末版。close_out を案内する)
ツール get_working_statusesget_working_treatments(勤務処理のラベル。打刻の get_today_status とは別)

できること

ツール内容
get_my_profile自分の従業員情報と権限
get_today_status今日の状況(未出勤/勤務中/休憩中/退勤済み)と、ここまでの勤務時間
close_out1 日または月の締め。打刻漏れ・法定の休憩不足・工数の過不足・残業の目安・アラートを、優先度つきの残件として 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://todayget_today_status(今日の状態)
kintai://close-out/monthclose_out(scope=month、今月)
kintai://guideget_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_ONLYfalsetrue で書き込みツール(打刻・工数)を出さない
KINTAI_PLUS_CONFIRM(下を参照)書き込み前の確認。always(毎回)/ destructive(削除だけ。未設定時の既定)/ never(確認しない)。設定してあると、login で保存した値より優先します
KINTAI_PLUS_INCLUDE_LOCATIONfalsetrue で打刻の位置情報・IP を返す
KINTAI_PLUS_REFRESH_DAYS15有効期限の残りがこの日数を切ったら再発行する(1〜30)
KINTAI_PLUS_AUTO_REFRESHtruefalse で自動の再発行を止める
KINTAI_PLUS_PERSIST_ENV_TOKENfalsetrue で、環境変数のトークンを保存し、期限が不明なら再発行する。環境変数の値は使えなくなることがある
KINTAI_PLUS_CREDENTIAL_STOREauto保存先: auto(キーチェーン → ファイル)/ keychain / file
KINTAI_PLUS_CREDENTIALS_FILE~/.config/kintai-plus-mcp/credentials.jsonファイル保存のパス(指定するとファイル保存になる)
KINTAI_PLUS_LOG_LEVELinfodebug / info / warn / error / silent(ログは stderr のみ)
KINTAI_PLUS_MIN_INTERVAL_MS300API リクエストの最小間隔(ミリ秒)
書き込み前の確認

既定は 打刻は確認なし、削除だけ確認 です。打刻と工数の保存はそのまま実行し、工数の削除だけ止めます。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 CodeCursorVS CodeChatGPTGemini 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/。

许可证

MIT


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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。