kintai-plus-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@kintai-plus-mcp出勤を打刻して、今日の勤務状況を確認して"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
kintai-plus-mcp
非公式 の MCP サーバーです。株式会社マネーフォワードとは関係がなく、同社による確認・保証は受けていません。 「マネーフォワード クラウド勤怠Plus」「AKASHI」などの名称・商標は、それぞれの権利者に帰属します。
マネーフォワード クラウド勤怠Plus(旧 AKASHI)の公開 API を、Claude などの AI アシスタントから使えるようにする Model Context Protocol サーバーです。
「出勤して」「今月の残業はどれくらい?」「昨日の工数を設計 2 時間・実装 5 時間で入れて」のように話しかけるだけで、打刻・勤務実績の確認・工数入力ができます。
手元の PC で動くローカルの stdio サーバーです(トークンを第三者のサーバーに預けません)
トークンは OS のキーチェーンに保存し、有効期限が近づくと自動で再発行します(環境変数で渡したトークンは、明示しない限り保存も再発行もしません)
打刻の位置情報・IP アドレスは、既定では AI に渡しません
公開 API の仕様(公式): マネーフォワード クラウド勤怠Plus 公開API 仕様
v0.1 は開発中です。主要な応答の形は実環境で確認済みです。まだ未確認の点は docs/api-notes.md の「未確認事項」にあります。
できること
ツール | 内容 |
| 自分の従業員情報と権限 |
| 今日の状況(未出勤/勤務中/休憩中/退勤済み)と、ここまでの勤務時間 |
| 打刻(出勤・退勤・直行・直帰・休憩入・休憩戻、テレワーク) |
| 打刻履歴(長い期間は自動で分割) |
| 勤務実績(労働区分・時刻・実働・休憩。31 日ごとに自動で分割) |
| 実働合計・出勤日数・休日出勤日数・法定時間外の目安(月ごとの内訳つき) |
| アラート(打刻忘れ、遅刻、36協定 など) |
| 打刻漏れチェック(退勤・出勤・休憩戻の打刻忘れ、12 時間超の日、勤務間インターバル 11 時間未満、休日出勤)。勤務実績にその時刻がある日は打刻漏れにしない。休憩が不明な経過時間は、12 時間超を情報にとどめる |
| プロジェクトとタスク |
| 工数(プロジェクト名・タスク名つき) |
| 工数の登録・更新・削除 |
管理者(企業管理者・一般管理者)には、次のツールも表示されます。一般の従業員には表示されません。
ツール | 内容 |
| 管理下の従業員の一覧(ID・氏名・社員番号・所属のみ) |
| 管理下の従業員の 1 日分の打刻と状況 |
| 勤務処理(欠勤・出張など) |
| プロジェクトのメンバー |
| 残業リスク検出(今月の法定時間外の目安と月末の着地予測。既定のしきい値は 45 時間) |
定型プロンプト
対応しているクライアントでは、メニューから次のプロンプトを呼び出せます(使うツールが公開されているときだけ表示)。
プロンプト | 内容 |
| 退勤前チェック(今日の勤務と工数を確認し、入力漏れを埋めてから退勤を打刻) |
| 工数を入力する(日付と、やったことを渡せる) |
| 月の振り返り(勤務時間・残業の目安・打刻漏れ・アラート) |
| 管理者向け: チームの今日の状況と残業リスク |
Related MCP server: AKIMCP
必要なもの
Node.js 22 以上
クラウド勤怠Plus の API トークン(下の「API トークンの発行」)
セットアップ
1. API トークンの発行
管理者が行うこと(一度だけ): 従業員設定 > 対象の従業員の「変更」 > 利用機能設定 で、「公開API利用可否」を「利用する」にします。
本人が行うこと: マイページ > APIトークン で発行します。トークンの有効期限は 1 ヶ月と 1 日です。login で登録したトークンは、登録時と、期限が近づいたときに再発行します。
loginで登録するトークンは、このツール専用にしてください。再発行すると、それまで使っていたトークンは使えなくなります。環境変数で渡すだけの場合は、既定では再発行しません(下の「環境変数でトークンを渡す」)。
2. ログイン
npx kintai-plus-mcp login次の 3 つを聞かれます。
ログイン企業ID
接続先: ログイン後のブラウザの URL のドメイン(
atnd.ak4.jpまたはatnd-awj.ak4.jp)APIトークン(入力は表示されません)
疎通を確認してから保存します。状態の確認と削除は次のとおりです。
npx kintai-plus-mcp status # 保存先・有効期限・権限(トークンは表示しません)
npx kintai-plus-mcp logout # 保存した認証情報を削除3. AI クライアントへの登録
claude_desktop_config.json に追加します。
{
"mcpServers": {
"kintai-plus": {
"command": "npx",
"args": ["-y", "kintai-plus-mcp"]
}
}
}claude mcp add kintai-plus -- npx -y kintai-plus-mcp~/.cursor/mcp.json(またはプロジェクトの .cursor/mcp.json):
{
"mcpServers": {
"kintai-plus": {
"command": "npx",
"args": ["-y", "kintai-plus-mcp"]
}
}
}.vscode/mcp.json:
{
"servers": {
"kintai-plus": {
"type": "stdio",
"command": "npx",
"args": ["-y", "kintai-plus-mcp"]
}
}
}~/.codex/config.toml:
[mcp_servers.kintai-plus]
command = "npx"
args = ["-y", "kintai-plus-mcp"]設定(環境変数)
変数 | 既定 | 内容 |
|
|
|
|
|
|
|
|
|
|
| 有効期限の残りがこの日数を切ったら再発行する(1〜30) |
|
|
|
|
|
|
|
| 保存先: |
|
| ファイル保存のパス(指定するとファイル保存になる) |
|
|
|
|
| API リクエストの最小間隔(ミリ秒) |
環境変数でトークンを渡す(ボットなど)
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 を付けたときだけです。有効にすると、環境変数に書いたトークンは使えなくなることがあります。保存先にすでに認証情報があるときは、環境変数より保存先を優先します。
制約
申請(残業・休暇・打刻修正など)とスケジュールには対応していません(公開 API にないため)
打刻はサーバーに届いた時刻で記録され、API からは修正・削除できません。 間違えた場合は Web 画面から申請してください。このため、その日の打刻と矛盾する打刻(出勤済みなのに出勤、など)は実行しません。どうしても必要なときは AI に「強制して」と伝えてください(
force)残業時間は API にないため、「法定時間外の目安」(労働日・所定休日は 1 日 8 時間超、法定休日は全時間)として計算します。週 40 時間・変形労働時間制・フレックスは考慮しません。正式な値は勤怠Plus や給与計算で確認してください
API の制約(勤務実績は 31 日、打刻は 6 ヶ月・1000 件、従業員一覧は 20 人/ページ、複数従業員の打刻は 1 日・50 人)は、サーバー側で分割・ページ送りします。1 回の呼び出しで取得できる期間には上限があります
タイムゾーンは日本時間(Asia/Tokyo)固定です
人事マスタの書き込み(従業員の登録・削除、権限、異動など)は扱いません
セキュリティとプライバシー
トークンは OS のキーチェーン(macOS キーチェーン、Windows 資格情報マネージャー、Linux の Secret Service)に保存します。Linux で Secret Service がない場合は、再起動で消えるカーネルのキーリングではなく、ファイル(600)に保存します
トークンは URL に載る API 仕様のため、ログ・エラーメッセージから必ず取り除きます
打刻の位置情報・IP は既定で AI に渡しません。従業員情報も ID・氏名・社員番号・所属に絞ります(メールアドレスは渡しません)
logoutは手元の認証情報を削除するだけです。トークン自体を無効にするには、マイページで操作してください
開発
pnpm install
pnpm test # Vitest(モックと架空のフィクスチャのみ)
pnpm lint # Biome
pnpm typecheck
pnpm build # tsdown
pnpm e2e # 実環境を叩く手動 E2E(読み取りのみ。手元でだけ実行)設計の決定事項は docs/design.md、背景は docs/adr/ にあります。
ライセンス
English
Unofficial MCP server for the public API of "Money Forward Cloud Kintai Plus" (formerly AKASHI), a Japanese attendance management service. This project is not affiliated with, endorsed by, or sponsored by Money Forward, Inc. All trademarks belong to their respective owners.
Punch in/out, check today's status, view punch history, working records, alerts, and man-hours, and record man-hours
Admin tools (staff list, team punches, working statuses, project members) are shown only to admins
Runs locally over stdio:
npx kintai-plus-mcp. Register your token first withnpx kintai-plus-mcp loginThe token is stored in the OS keychain (or a 600-permission file) and reissued automatically before it expires. A token passed only via
KINTAI_PLUS_TOKENis not stored or reissued unlessKINTAI_PLUS_PERSIST_ENV_TOKEN=true(reissue invalidates the previous token)Location and IP address of punches are not sent to the AI by default
Not supported: requests (申請) and schedules, because the public API does not provide them. Punches are recorded at the time the server receives them and cannot be edited via the API
Requires Node.js 22+ and an API token issued from your Kintai Plus "My Page" (an admin must enable "公開API利用可否" for you)
Official API reference (Japanese): https://akashi.zendesk.com/hc/ja/articles/115000475854
License: MIT
Available Tools
14 toolscheck_attendance_issuesCheck my attendance for issuesARead-only
Check your own punches and working records for issues (打刻漏れチェック): missing clock out/in (退勤・出勤の打刻忘れ), break not ended (休憩戻なし), no punches on a workday, days over 12 hours, rest interval under 11 hours (勤務間インターバル), and holiday work. A missing punch is not reported when the working record already has that start or end time (for example after a correction in the web UI). When break time is unknown, elapsed time over 12 hours is info unless it still exceeds 12 hours after a 1-hour break. Defaults to the 1st of this month through yesterday (on the 1st, the previous month). Max 93 days. Overnight shifts are recognized. Leave and requests are not visible via the API, so "no punches" may simply be a day off.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date, inclusive (YYYY-MM-DD). Defaults to yesterday. | |
| from | No | Start date (YYYY-MM-DD). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly and non-destructive annotations, the description discloses several non-obvious behaviors: missing punches are suppressed if the record already has that start/end time, unknown break time affects the 12-hour threshold logic, overnight shifts are recognized, and leave/requests are invisible via the API so 'no punches' may be a day off. These details materially affect how an agent interprets results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loads the issue list, then moves to caveats and date constraints. It is longer than typical, but the length is justified by the number of distinct checks and the need to explain suppression logic and date defaults; it could be more scannable but contains no obvious filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only checker with no output schema, the description is complete enough: it enumerates the issue categories, default date range, max span, overnight handling, and interpretation caveats such as invisible leave requests. An agent has what it needs to call the tool correctly and interpret the likely results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameters are already documented, but the description adds meaning beyond the schema: it specifies the default range as the 1st of this month through yesterday (with the 1st rolling to the previous month) and states a maximum span of 93 days. This clarifies edge-case date behavior not present in the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Check your own punches and working records for issues') and enumerates the exact issue types it detects, from missing punches to rest intervals. This clearly distinguishes it from siblings like get_working_records and get_alerts, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the issue-checking context, and the description gives useful default date range and max-days constraints. However, it does not explicitly state when to use this versus alternatives such as get_working_records or get_alerts, nor does it name exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_manhoursDelete my man-hoursADestructiveIdempotent
Delete your own man-hours (工数) for one day and project. If taskId is omitted, ALL tasks of that project on that day are deleted. Days that are closed (締め) or fixed (確定) cannot be changed.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date (YYYY-MM-DD). | |
| taskId | No | Task to delete. Omit to delete all tasks of the project. | |
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and idempotentHint=true, so the description's job is to add blast-radius detail, which it does well: omitting taskId wipes ALL tasks of the project for that day. It also discloses a precondition (closed/fixed days reject changes) that annotations cannot express. It stops short of saying whether deletes are recoverable or what a failure returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, and the critical bulk-delete warning is front-loaded immediately after the purpose statement. The precondition clause is correctly placed last as a secondary constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive three-parameter mutation with no output schema, the description covers purpose, blast radius, and blocking preconditions. Only the response/error shape and recoverability are unaddressed, which are minor given the annotation coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, and the description adds the most important semantic beyond the schema: the omitted-taskId case is a bulk delete across the whole project-day, not a no-op. projectId has no schema description but the description ties it to the day/task scope. Date format details remain in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Delete your own man-hours") plus the exact granularity of one day and one project, which cleanly separates it from siblings like save_manhours and get_manhours. The scope qualifier "your own" tells the agent whose data is affected.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear operative context: what happens when taskId is omitted, and that closed (締め) or fixed (確定) days cannot be changed. It does not explicitly name save_manhours as the alternative for corrections, but the usage conditions are unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_alertsGet my attendance alertsBRead-only
Get your own attendance alerts (アラート) from Kintai Plus, such as missing punches (打刻忘れ), suspected absence (欠勤疑い), late arrival (遅刻), early leave (早退), overtime threshold (残業時間閾値超え), 36 agreement (36協定), and missing man-hours (工数未入力). Optionally filter by month.
| Name | Required | Description | Default |
|---|---|---|---|
| month | No | Only alerts for this month (YYYY-MM). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds that results are scoped to the calling user, but says nothing about volume, ordering, or freshness of alerts, which would matter for a list-style read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence: verb + resource + scope first, then the alert-type examples and the optional filter. The bilingual parentheticals are long but carry domain meaning for Japanese HR terms; little else is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Safety is covered by annotations and the only parameter by the schema, but there is no output schema and the description never indicates what an alert record contains or how results are ordered. That leaves a real gap for an agent consuming the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single month parameter already carries a YYYY-MM pattern and description. The description's 'Optionally filter by month' merely confirms optionality, adding no format or edge-case detail beyond the schema — baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (Get) and resource (your own attendance alerts) and enumerates the concrete alert types (missing punches, suspected absence, lateness, 36 agreement, etc.), which is far more specific than the title alone. It stops short of differentiating from the nearby sibling check_attendance_issues, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Get your own' and 'Optionally filter by month' imply the scope and the one optional narrowing, but there is no explicit when-to-use vs check_attendance_issues or get_today_status, and no exclusions. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_manhoursGet my man-hoursARead-only
Get your own man-hour records (工数) per day, project, and task, in minutes, with project/task names. Defaults to this month. closed (締め) / fixed (確定) days cannot be changed. Max 93 days.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date, inclusive (YYYY-MM-DD). Defaults to the end of the month of `from`. | |
| from | No | Start date (YYYY-MM-DD). Defaults to the 1st of this month. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered; the description adds real operational context on top: the 93-day maximum range, the default date window, and the fact that closed (締め) / fixed (確定) days are locked. The return shape (per day/project/task, in minutes, names included) is also disclosed. It stops short of stating pagination or whether results are truncated at the 93-day cap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short, front-loaded sentences with no filler; the resource and output shape come first, constraints after. The closed/fixed-day sentence is slightly tangential for a read-only tool and reads as a caveat aimed at a write workflow, which costs a point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two fully documented optional parameters, no output schema, and annotations covering the safety profile, the description supplies everything an agent needs: default window, hard range limit, returned dimensions and units, and the immutability caveat for closed/fixed days.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description earns an extra point by adding the 93-day maximum span, a constraint the schema does not encode. The "Defaults to this month" line reinforces but largely restates the schema's default descriptions for `from`/`to`.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb plus resource ("Get your own man-hour records (工数)"), with the granularity stated (per day, project, task) and the unit of measure (minutes). It is immediately distinguishable from save_manhours/delete_manhours and from get_working_records, and the "your own" scope rules out multi-user lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: "your own" bounds the scope and "Defaults to this month" tells the agent what happens if it omits dates. But no alternative is named (e.g. summarize_working_hours for aggregates, get_working_records for a different record type) and no when-not condition is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_profileGet my profileARead-only
Get the signed-in employee's own profile (従業員情報): staff ID, name, organization (所属), and permission role (company_admin 企業管理者 / admin 一般管理者 / employee 従業員). Also returns today's date in Japan time.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a read-only, non-destructive operation. The description adds useful behavioral context by listing what is returned, including role values and Japan-time date information, though it does not discuss permissions, error behavior, or response shape beyond the field list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the core action first, then the returned fields and role values. Every sentence adds useful information without repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only tool with annotations covering safety, the description is complete. Since there is no output schema, it correctly explains the returned fields and includes the relevant role and timezone details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so there are no parameter semantics to document. The baseline for a zero-parameter tool is 4, and the description does not need to compensate for schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Get the signed-in employee's own profile.' It further clarifies the exact contents (staff ID, name, organization, permission role) and distinguishes the resource from siblings such as projects, status, stamps, and work records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that the tool is used to retrieve the current user's profile, but it gives no explicit when-to-use guidance, no exclusions, and no comparison to sibling tools such as get_today_status or get_my_projects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_projectsGet my projectsARead-only
List the projects you are a member of (参加プロジェクト), with names. Use these projectIds for man-hours.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered structurally. The description adds only that results carry project names and IDs suitable for man-hours; it says nothing about volume, ordering, or whether an empty membership list is possible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no filler, with the scope constraint and the actionable follow-up use front-loaded. Every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description carries the burden of describing the return, and it does so at a basic level (project names plus projectIds). Slightly more detail on the returned shape would make it fully self-sufficient, but nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing to disambiguate and the baseline of 4 applies. The description correctly does not waste words on inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List the projects') with a clear scope restriction ('you are a member of'), which implicitly separates it from the sibling list_projects. It also notes the returned names, so an agent knows what comes back. It stops short of explicitly naming the sibling it differs from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use these projectIds for man-hours' gives a downstream purpose, implying this is the lookup step before get_manhours/save_manhours. However, it never names an alternative tool or states an exclusion, so the agent must infer that list_projects is the wrong choice for member-scoped project IDs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stampsGet my punch historyARead-only
Get your own punch history (打刻履歴) for a period: clock in (出勤), clock out (退勤), direct in/out (直行/直帰), break start/end (休憩入/休憩戻). Defaults to today. Long periods are fetched in chunks automatically (max 366 days). Location and IP address are omitted by default.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date, inclusive (YYYY-MM-DD). Defaults to `from`. | |
| from | No | Start date (YYYY-MM-DD, Japan time). Defaults to today. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds genuinely non-obvious behavior beyond that: automatic chunked fetching for long periods, a hard 366-day ceiling, and default omission of location and IP fields — all of which affect how results should be interpreted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense paragraph, front-loaded with the core purpose and followed by behavior constraints in order of importance. The parenthetical Japanese terms add length but earn their place for matching against Japanese source data; only minor trimming is possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, 2-param date-range tool with no output schema, the description covers what is returned (stamp types), how far back it can go (366 days, chunked internally), and what is filtered out (location, IP). An agent has everything needed to call it correctly and interpret the response scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented with format patterns and defaults, which sets the baseline at 3. The description reinforces 'for a period', the today default, and the 366-day maximum, but adds no new semantics about the from/to relationship beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Get your own punch history') and immediately enumerates the stamp categories returned (clock in/out, direct in/out, break start/end) with Japanese labels. An agent can distinguish this from get_today_status or get_working_records by the explicit 'for a period' framing and the 'your own' scoping.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: 'Defaults to today' hints that the tool is for the current day when no args are given, and the 366-day cap signals planning considerations, but no sibling is named as an alternative or complement. Nothing tells the agent when to prefer get_today_status or get_working_records instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_today_statusGet today's work statusARead-only
Get today's work status (今日の勤務状況) in Japan time: not_started (未出勤), working (勤務中), on_break (休憩中), or finished (退勤済み), with time worked so far (excluding breaks), break time, and today's punches. Use this before punching.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a read-only, non-destructive operation, so the safety profile is covered. The description adds meaningful behavior beyond annotations by specifying Japan-time status values and that returned work time excludes breaks, along with break time and today's punches.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it leads with the purpose, then the status values, then the returned data, then the usage cue. Every clause adds useful information without repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description carries the return-value burden and does so adequately by naming the possible statuses and the data returned. The read-only safety profile is already covered by annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to explain. The schema is empty and the description correctly does not invent parameter guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: getting today's work status in Japan time. It also enumerates the exact status values and returned fields, so an agent can distinguish it from siblings like punch or get_working_records without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to use this before punching, which gives a clear invocation context. It does not name exclusions or alternative tools beyond that, so it falls short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_working_recordsGet my working recordsARead-only
Get your own daily working records (勤務実績): day category (労働日 / 所定休日 / 法定休日), start/end time, and punch times. The API does not return actual working minutes or breaks, so actual minutes are the elapsed time from start to end (breaks included) and break time is unknown. Defaults to the 1st of this month through today. Long periods are split into 31-day requests automatically (max 366 days). There is no overtime field; use summarize_working_hours for totals and an overtime estimate.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date, inclusive (YYYY-MM-DD). Defaults to today. | |
| from | No | Start date (YYYY-MM-DD). Defaults to the 1st of this month. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnly/openWorld; the description adds substantial behavior the agent could not otherwise know: the API omits actual working minutes and breaks, actual minutes equal elapsed start-to-end with breaks included, break time is unknown, there is no overtime field, long ranges are auto-split into 31-day requests, and the hard cap is 366 days. These are exactly the caveats that prevent misinterpreting results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with what is returned, then the interpretation caveat, then defaults and routing. Every sentence carries information the agent needs to call and interpret the tool correctly; nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, yet the description enumerates the return fields and explicitly flags the absent ones (working minutes, breaks, overtime), which is the critical completeness gap for this tool. Combined with the range limits and default window, an agent can call it and interpret the response without further help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the two date parameters and their defaults are already documented; the description reinforces the default window and adds constraints the schema lacks (automatic 31-day chunking, 366-day maximum). It stops short of format edge cases (inclusive/exclusive handling is only in the schema), so it is an enhancement rather than a replacement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Get your own daily working records') and enumerates the returned fields (day category, start/end time, punch times), so the agent knows exactly what data comes back. It is clearly distinguishable from get_today_status (single day) and summarize_working_hours (aggregates).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes aggregation/overtime needs to summarize_working_hours and states the default date window, giving the agent clear context for when this tool applies. It does not address the remaining adjacent siblings (get_stamps, get_today_status, punch) or when a narrower call would be preferable, so it stops short of full when/when-not coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsList projectsARead-only
List the company's projects (プロジェクト) used for man-hour tracking (工数). Optionally filter by name/code and by the date the project is active on. Use the projectId with list_tasks and save_manhours.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Case-insensitive text to match in name, short name, or code. | |
| activeOn | No | Only projects whose period includes this date (YYYY-MM-DD). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds that filtering is optional and that projectId is the join key for other tools, but says nothing about pagination, result size, or ordering — notable given openWorldHint=true.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: identity and scope first, filters second, downstream usage last. The Japanese glosses (プロジェクト, 工数) are the only extra tokens and they disambiguate domain terms.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should convey what a returned project record contains (id, name, code, active period). It implies projectId but never states the returned fields or result ordering, which is a real gap for an agent constructing follow-up calls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already fully documented. The description only restates them at a high level ("filter by name/code" and "date the project is active on") and adds the useful but minor point that both are optional. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("List the company's projects") and scopes it to man-hour tracking, which an agent can distinguish from task/attendance siblings. It does not explicitly contrast with the closest sibling, get_my_projects, leaving the company-wide vs. personal scope difference implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear downstream routing — "Use the projectId with list_tasks and save_manhours" — which tells the agent why it would call this first. It stops short of explicit exclusions (e.g., when to prefer get_my_projects over this list).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tasksList tasks of a projectARead-only
List the tasks (タスク) of a project for man-hour tracking. Finished tasks (終了) are excluded unless includeFinished is true. Estimated time (見積もり) is in minutes.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project ID from list_projects or get_my_projects. | |
| includeFinished | No | Include finished tasks. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the default result filter (finished tasks hidden) and that estimated time is in minutes, which is genuine context beyond the annotations. No contradiction with the read-only hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and followed by the two behavioral facts an agent needs. The includeFinished clause duplicates the schema's default note, a small redundancy that keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only tool with no output schema, the description covers the filtering rule and the units of a key returned field, which is enough to call it correctly. It says nothing about result ordering or volume, a minor gap given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented, including the includeFinished default. The description largely restates the includeFinished behavior and adds no new parameter-level detail; the minutes note refers to a returned value, not an input. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List the tasks of a project') plus the domain purpose (man-hour tracking), which clearly separates it from list_projects, get_manhours, and the punch/stamp tools. Sibling routing is implied by the resource rather than explicitly stated, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a useful default-scope rule (finished tasks excluded unless includeFinished is true) but never says when to pick this over alternatives like get_today_status, get_manhours, or summarize_working_hours. Usage is implied by the resource rather than guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
punchPunch the time clockADestructive
Record a punch (打刻) now: clock_in (出勤), clock_out (退勤), direct_in (直行), direct_out (直帰), break_start (休憩入), break_end (休憩戻). The type is required. The punch is recorded at the time Kintai Plus receives it and CANNOT be edited or deleted via the API (corrections need a request in the web UI), so confirm the type with the user if unsure. Punches that conflict with today's history (e.g. clock_in when already clocked in) are refused; pass force: true only if the user insists.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Punch type. | |
| force | No | Punch even if it conflicts with today's punch history. Use only when the user explicitly asks. | |
| telework | No | Mark as telework (テレワーク). Only valid with clock_in. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the destructiveHint annotation by disclosing that the timestamp is set at receipt time, that the record is immutable via the API and needs a web-UI correction request, and that conflicting punches are refused unless forced. These are exactly the consequences an agent needs before invoking a destructive write.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight paragraph front-loads the verb and the type enum, then moves to the immutability warning and the force escape hatch. No sentence is filler and the highest-risk information is placed early.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, output-schema-less write tool, it covers timing, immutability, conflict handling, and force semantics thoroughly. It leaves the telework parameter unmentioned and says nothing about what a successful call returns, both minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the enum, required flag, and force/telework meanings are already documented; the description repeats the type list and adds Japanese labels but no new syntax or format detail. It reinforces the force condition, but the baseline of 3 applies when the schema carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Record') and resource ('a punch') and enumerates every valid punch type, so the operation is unmistakable. It does not explicitly contrast itself with read-side siblings like get_stamps or get_today_status, which keeps it shy of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete decision rules: confirm the type with the user if unsure, and only pass force when the user insists after a conflict. It does not name alternative tools or say when to prefer a read tool first, so context is clear but exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_manhoursSave my man-hoursADestructiveIdempotent
Create or update your own man-hours (工数) for one day: minutes per project task. Only the listed tasks are overwritten; other tasks on that day are kept. To remove an entry, use delete_manhours. Use list_projects / get_my_projects and list_tasks to find IDs. Days that are closed (締め) or fixed (確定) cannot be changed.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date (YYYY-MM-DD). | |
| entries | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, but the description adds the crucial nuance that only listed tasks are overwritten while other tasks on that day are kept — i.e. a partial merge, not a full-day replace. It also discloses the closed/fixed period lock, which is a real failure condition an agent must anticipate; what it omits is error/response behavior for locked days or invalid task-project pairings.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with the mutation semantics, then the alternative tool, then ID discovery, then the lock constraint. Every sentence carries actionable information with no restatement of the name or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation tool with no output schema, it covers write semantics, sibling routing, ID sourcing, and the locked-period precondition. Remaining gaps are edge-case behavior — what happens when a projectId/taskId pair mismatches, or the exact failure signal on a closed day.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: date and minutes are documented in the schema, but projectId and taskId are not. The description compensates by saying these IDs come from list_projects/get_my_projects and list_tasks, and by framing the payload as 'minutes per project task', which clarifies why both IDs are paired per entry.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb pair (create or update) and resource (your own man-hours for one day), and further scopes the unit as 'minutes per project task.' It also names the sibling delete_manhours for the opposite operation, so an agent can distinguish it from get_manhours without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit routing: removal goes to delete_manhours, ID lookup goes to list_projects/get_my_projects and list_tasks, and days that are closed (締め) or fixed (確定) cannot be changed. That is when-to-use, when-not-to-use, and prerequisites all in one place.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
summarize_working_hoursSummarize my working hoursARead-only
Summarize your own working hours (勤務時間の集計) over a period: total actual working time (実働合計), work days (出勤日数), holiday work days (休日出勤日数), and an ESTIMATE of statutory overtime (法定時間外の目安), with a per-month breakdown. Defaults to the 1st of this month through today (max 366 days). Always tell the user the overtime figure is an estimate.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date, inclusive (YYYY-MM-DD). Defaults to today. | |
| from | No | Start date (YYYY-MM-DD). Defaults to the 1st of this month. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/openWorld annotations, it discloses that the overtime figure is an ESTIMATE (a correctness caveat the agent must relay), that results are scoped to the caller's own data, that output is broken down per month, and that the range is capped at 366 days. Auth requirements and empty-result behavior remain unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence front-loads the purpose and enumerates outputs, followed by a short defaults/limits clause and the estimate disclaimer. The bilingual parenthetical glosses add length but serve the Japanese-domain audience; nothing is redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two optional parameters, no output schema, and annotations already covering the safety profile, the description is fully sufficient: it names every returned metric, the per-month structure, the default window, the maximum range, and the mandatory caveat about the overtime estimate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description earns above that by adding a constraint not in the schema — the 366-day maximum span — and by reiterating the default range meaningfully against the 'summarize over a period' purpose. It adds no format hints beyond what the YYYY-MM-DD patterns already say.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('Summarize') on a specific resource ('your own working hours') and enumerates the exact aggregates returned: total actual working time, work days, holiday work days, overtime estimate, and per-month breakdown. The 'your own' scope implicitly separates it from team-level siblings like get_manhours or list_projects, but no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete operating context: defaults to the 1st of this month through today and caps the span at 366 days, plus an instruction to always disclose that overtime is an estimate. It never states when to prefer this over get_working_records or get_manhours (raw records vs aggregated summary), so no exclusion guidance is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
14 tool updates
v0.1.2- First observed
check_attendance_issues - First observed
delete_manhours - First observed
get_alerts - First observed
get_manhours - First observed
get_my_profile - First observed
get_my_projects - First observed
get_stamps - First observed
get_today_status - First observed
get_working_records - First observed
list_projects - First observed
list_tasks - First observed
punch - First observed
save_manhours - First observed
summarize_working_hours
TDQS
Scored across 14 tools
Most tools target clearly distinct resources: punches vs. working records vs. man-hours vs. projects/tasks vs. alerts. The closest overlap is between get_alerts (attendance alerts) and check_attendance_issues (problem detection), but descriptions distinguish them (server-side alerts vs. computed checks). get_stamps vs get_working_records is also close but described distinctly.
Nearly all tools follow a consistent verb_noun snake_case pattern (get_today_status, list_projects, save_manhours, check_attendance_issues). Minor deviations: 'punch' and 'get_stamps' use a bare noun rather than verb_noun, but overall highly predictable.
14 tools is well-scoped for an attendance/man-hour domain covering status, punching, records, summaries, alerts, projects, tasks, and man-hour CRUD. Slightly heavy but each tool earns its place; no filler tools.
Strong coverage: punch lifecycle, status, history, working records, summaries, alerts, issue checks, and full man-hour CRUD (get/save/delete) with project/task lookups. Minor gaps include no way to correct punches via API (explicitly noted as a domain constraint) and no request/leave operations, but core workflows are complete.
Maintenance
Related MCP Connectors
- mcp-serverOAuthio.klokin
MCP server exposing klokin time-tracking operations (employees, time entries, stores) to AI clients.
Hosted Airtable MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Hosted Slack MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
AI から使えるクラウドグループウェア Work Handler の MCP サーバー。組織・メンバーの参照、出退勤の共有、タイムカード、承認フロー等を本人の権限の範囲で操作できる。
Related MCP Servers
- AlicenseAqualityCmaintenanceA lightweight MCP server that connects AI assistants to Kintone applications for managing records and automating business workflows. It enables secure authentication and natural language interaction for performing CRUD operations and querying data within the Kintone platform.101MIT
- AlicenseNot gradedqualityAmaintenanceEnables web-based AI clients like Claude, ChatGPT, and Grok to securely operate a local machine through OAuth-gated MCP tools covering files, shell, Git, databases, browser automation, and background tasks.MIT
- AlicenseNot gradedqualityAmaintenanceExposes a governed suite of 38 tools over a single OAuth-gated MCP endpoint, letting web-based AI chat clients read and edit local files, run whitelisted shell commands, search, use Git, inspect SQLite databases, and drive browser, DevTools, clipboard, and background-task workflows. It requires no system-wide install or admin rights and restricts access to folders and commands approved from a local control panel.MIT
- AlicenseNot gradedqualityAmaintenanceEnables web-based AI clients like Claude, ChatGPT, and Grok to securely operate a local machine through an OAuth-gated MCP endpoint, covering files, shell commands, search, Git, SQLite, browser automation, DevTools, background tasks, ports, clipboard, notifications, and Postman. Exposes 38 governed tools with a strict command whitelist, folder allowlisting, and rate limiting so browser chats can build projects, inspect databases and local APIs, and manage long-running jobs without granting unrestricted shell access.MIT