Clockify Time Tracking について
Clockify Time Tracking は Clockify の時間追跡 API 向け MCP サーバーで、AI アシスタントによるワークスペース情報の参照、レポート作成、工数記録に使えます。読み取り専用を初期設定とし、段階的なアクセスモードで書き込みを有効にできます。
主な機能
- 01ワークスペースと時間記録の検索
- 02レポートの作成とエクスポート
- 03請求書、スケジュール、休暇などの管理
- 04読み書きモードによる権限制御
- 05OpenTelemetry による可観測性
活用シーン
- 01自然言語でプロジェクトや工数を検索
- 02週次または詳細レポートの作成
- 03選択したアクセスモードで工数を記録・編集
- 04請求書、休暇、スケジュール情報の管理
MCP 対応
Clockify API の操作を MCP ツールとして公開します。初期状態では読み取り専用ツールを登録し、時間記録の書き込みまたは全書き込みを任意で有効にできます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx clockify-mcpCLOCKIFY_API_KEYシークレットClockify API key (Profile Settings -> API).CLOCKIFY_ACCESS_MODEWrite access mode: read (default, read-only) | time-tracking (time-entry writes only) | full (all writes)CLOCKIFY_DEFAULT_WORKSPACE_IDDefault workspace id used when a tool call omits workspace_id.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
clockify-mcp
Clockify の 時間追跡 API に対応する Model Context Protocol サーバーです。
AI アシスタントから Clockify のデータにアクセスできます。ワークスペース、プロジェクト、時間記録を照会し、レポートを生成したり、作業時間を記録したり、クライアントや請求書などを管理したりできます。すべて自然言語で操作できます。
18 のドメインにまたがる 112 個のツールを備えています。デフォルトでは読み取り専用で、書き込み操作は明示的に有効にした場合のみ利用できます。
ワンクリックでインストール
Claude Desktop(およびその他の MCPB 対応クライアント)でこのサーバーを使う最も簡単な方法は、ビルド済みバンドルを利用することです。
➡️ clockify-mcp.mcpb をダウンロード — ダウンロードしたファイルをダブルクリックしてください。Claude Desktop がインストーラーを開き、Clockify API キーの入力を求めます。これで完了です。Python も、npx/uvx も、設定ファイルも必要ありません。
.mcpb はすべての GitHub Release に添付され、Smithery にもミラーされています。パッケージマネージャーやコンテナーを使いたい場合は、以下のクイックスタートをご覧ください。
どのようなことができますか?
現在、48 個の読み取り専用ツールを利用できます(フェーズ 0~8b、18 のドメイン)。64 個の書き込みツール(クライアント、プロジェクト、タスク、タグ、時間記録、休日、経費、経費カテゴリの作成/更新/削除に加え、休暇ポリシー/申請の管理、承認の送信/再送信/更新、カスタムフィールドの作成/更新/削除とプロジェクトへの割り当て、スケジュール割り当ての管理、請求書と支払いの管理、共有レポートの管理、Webhook の作成/更新/削除/トークン)は、CLOCKIFY_ACCESS_MODE=full(または後方互換性のある CLOCKIFY_ENABLE_WRITES=true)を設定すると登録されます。中間の time-tracking モードでは、作業時間を記録するための時間記録関連の書き込みツールのみが公開されます。詳しくはアクセスモードをご覧ください。
| ドメイン | ツール数 | ツール名 |
|---|---|---|
| ワークスペース | 3 | get_current_user, list_workspaces, get_workspace |
| ユーザー | 3 | list_users, get_user_member_profile, find_user_team_manager |
| グループ | 1 | list_user_groups |
| クライアント | 2 | list_clients, get_client |
| プロジェクト | 2 | list_projects, get_project |
| タスク | 2 | list_tasks, get_task |
| タグ | 2 | list_tags, get_tag |
| 時間記録 | 2 | list_time_entries, get_time_entry |
| レポート | 6 | generate_detailed_report, generate_summary_report, generate_weekly_report, generate_attendance_report‡, generate_expense_report‡, export_report(PDF/CSV/XLSX をファイルに出力) |
| 共有レポート | 2 | list_shared_reports, get_shared_report |
| 休暇† | 5 | list_time_off_policies, get_time_off_policy, list_time_off_balances_by_policy, list_time_off_balances_by_user, list_time_off_requests |
| 休日† | 2 | list_holidays, list_holidays_in_period |
| 経費† | 4 | list_expenses, get_expense, list_expense_categories, download_expense_receipt |
| 承認† | 1 | list_approval_requests |
| カスタムフィールド† | 2 | list_workspace_custom_fields, list_project_custom_fields |
| スケジュール管理† | 3 | list_scheduled_assignments, get_project_scheduling_totals, get_user_scheduling_totals |
| 請求書† | 3 | list_invoices, get_invoice, get_invoice_payments |
| ウェブフック† | 3 | list_webhooks, get_webhook, get_webhook_logs |
† 休暇、休日、経費、承認、カスタムフィールド、スケジュール管理、請求書、ウェブフックは Clockify の有料機能です。これらの機能がないプランでは、これらのツールはエラー(HTTP 402/403/404)を返します。
‡ generate_attendance_report と generate_expense_report(およびこれら 2 種類の export_report)には、ワークスペースの勤怠/経費アドオンが必要です。時間ベースのレポート(詳細/概要/週次)と共有レポートは無料プランで利用できます。
書き込みツール(オプトイン — CLOCKIFY_ACCESS_MODE=full を設定):
| ドメイン | ツール数 | ツール名 |
|---|---|---|
| クライアント | 3 | create_client, update_client, delete_client |
| プロジェクト | 3 | create_project, update_project, delete_project |
| タスク | 3 | create_task, update_task, delete_task |
| タグ | 3 | create_tag, update_tag, delete_tag |
| 時間記録 | 7 | create_time_entry, update_time_entry, delete_time_entry, duplicate_time_entry, bulk_update_time_entries, create_time_entry_for_user, stop_running_timer |
| 共有レポート | 3 | create_shared_report, update_shared_report, delete_shared_report |
| 休暇† | 5 | create_time_off_policy, create_time_off_request, approve_time_off_request, reject_time_off_request, withdraw_time_off_request |
| 休日† | 3 | create_holiday, update_holiday, delete_holiday |
| 経費† | 7 | create_expense, update_expense, delete_expense, create_expense_category, update_expense_category, delete_expense_category, archive_expense_category |
| 承認† | 4 | submit_approval_request, submit_approval_request_for_user, resubmit_approval_entries, update_approval_request |
| カスタムフィールド† | 5 | create_workspace_custom_field, update_workspace_custom_field, delete_workspace_custom_field, set_project_custom_field, remove_project_custom_field |
| スケジュール管理† | 5 | create_scheduled_assignment, update_scheduled_assignment, delete_scheduled_assignment, publish_scheduled_assignment, copy_scheduled_assignment |
| 請求書† | 9 | create_invoice, update_invoice, change_invoice_status, duplicate_invoice, delete_invoice, create_invoice_item, update_invoice_item, delete_invoice_item, create_invoice_payment |
| ウェブフック† | 4 | create_webhook, update_webhook, delete_webhook, generate_webhook_token |
| † 休暇、祝日、経費、承認、カスタムフィールド、スケジュール設定、請求書、Webhooksは、Clockifyの有料機能です。これらのツールは、該当機能のないプランではエラー(HTTP 402/403/404)になります。 |
create_expenseとupdate_expenseでは、任意でローカルの領収書ファイルを指定できます。ファイルはmultipartでアップロードされます。
クイックスタート
1. インストール
pip install clockify-mcp
または、インストールせずに実行します(uvが必要です)。
uvx clockify-mcp
または、コンテナイメージを使用します(リリースごとにGHCRに公開されます)。
docker run --rm -i -e CLOCKIFY_API_KEY=your-key ghcr.io/tracegazer/clockify-mcp:latest
2. Claude Desktopに接続
claude_desktop_config.jsonに以下を追加します。
{
"mcpServers": {
"clockify": {
"command": "uvx",
"args": ["clockify-mcp"],
"env": {
"CLOCKIFY_API_KEY": "your-api-key"
}
}
}
}
Claude Desktopを再起動します。「Clockifyにはどのワークスペースがありますか?」と尋ねてみましょう。
uvxの代わりにpip installを使用する
{
"mcpServers": {
"clockify": {
"command": "clockify-mcp",
"env": {
"CLOCKIFY_API_KEY": "your-api-key"
}
}
}
}
書き込み操作を有効にする
デフォルトでは、サーバーは読み取り専用です。書き込みを有効にするには、CLOCKIFY_ACCESS_MODEを設定します。
| モード | 読み取り | 書き込み |
|---|---|---|
read(デフォルト) | すべて | なし |
time-tracking | すべて | 時間エントリの書き込みのみ(時間の記録と編集) |
full | すべて | すべての書き込みツール(クライアント、プロジェクト、請求書など) |
{
"mcpServers": {
"clockify": {
"command": "uvx",
"args": ["clockify-mcp"],
"env": {
"CLOCKIFY_API_KEY": "your-api-key",
"CLOCKIFY_ACCESS_MODE": "full"
}
}
}
}
互換性: 従来の
CLOCKIFY_ENABLE_WRITES=trueも引き続き使用でき、fullにマッピングされます。 両方が設定されている場合は、CLOCKIFY_ACCESS_MODEが優先されます。time-trackingモードでは、duplicate/bulkは常に認証済みユーザーに対して実行されます。また、IDによるupdate/deleteでは、他のユーザーに属する可能性があるエントリを操作する前に確認するよう、アシスタントに指示されます。
警告: 書き込みモードでは、接続されたエージェントがClockifyの認証情報を使って実データを作成、変更、削除できます。
delete_*ツールとwithdraw_time_off_requestによる操作は取り消せません。
3. APIキーを取得
Clockifyにログインし、Profile Settings → APIに移動して、APIキーをコピーします。
設定
設定は次の優先順位で適用されます(上が最優先)。
- 環境変数(常に優先)
~/.config/clockify-mcp/config.tomlのTOML設定
| 環境変数 | TOMLキー | 説明 |
|---|---|---|
CLOCKIFY_API_KEY | api_key | ClockifyのAPIキー(必須) |
CLOCKIFY_REGION | region | global(デフォルト) | euc1(EU) | use2(米国) | euw2(英国) | apse2(豪州) |
CLOCKIFY_BASE_URL | base_url | サブドメインのワークスペース用オーバーライド。例:https://acme.clockify.me |
CLOCKIFY_DEFAULT_WORKSPACE_ID | default_workspace_id | ツール呼び出しでworkspace_idが省略された場合のフォールバックワークスペース |
CLOCKIFY_ACCESS_MODE | access_mode | read(デフォルト) | time-tracking(読み取り+時間の記録) | full(すべての書き込み) |
CLOCKIFY_ENABLE_WRITES | enable_writes | 後方互換用エイリアス:true = access_mode=full。CLOCKIFY_ACCESS_MODEが優先されます。 |
CLOCKIFY_TELEMETRY | telemetry_enabled | OpenTelemetryを有効化します。デフォルトはfalseです。 |
CLOCKIFY_TELEMETRY_DETAIL | telemetry_detail | スパンの詳細度:metadata(デフォルト)、ids、またはfull |
アクセスモード: readでは読み取りツールのみが公開されます。time-trackingでは、時間を記録するための時間エントリ書き込みツール(create/update/delete/duplicate/bulk)が追加され、それ以外は追加されません。duplicate/bulkは常に認証済みユーザーに対して実行されます。また、IDによるupdate/deleteでは、他のユーザーに属する可能性があるエントリを操作する前に確認するよう、アシスタントに指示されます。fullではすべての書き込みツールが公開されます。この設定で制御されるのはサーバーが登録するMCPツールであり、APIキー自体の権限を置き換えるものではありません。
コピーして使えるテンプレートについては、config.toml.exampleを参照してください。
# ~/.config/clockify-mcp/config.toml
api_key = "your-clockify-api-key"
# region = "global"
# default_workspace_id = ""
# access_mode = "read" # read | time-tracking | full
ヒント: 先に設定ディレクトリを作成してください:
mkdir -p ~/.config/clockify-mcp
サーバーの実行
clockify-mcp # STDIO transport (default)
clockify-mcp --transport sse # SSE/HTTP transport
セキュリティに関する注意: デフォルトのSTDIOでは、すべての処理がローカルで行われます。
sseおよびstreamable-httpトランスポートには認証機能が組み込まれていないため、ループバックにバインドするか、認証済みのリバースプロキシの背後でのみ使用してください。
注意事項
- ワークスペースの範囲: Clockify のほぼすべての操作は、ワークスペース(
/workspaces/{workspaceId}/...)を対象とします。ツールでは省略可能なworkspace_idを指定できます。省略した場合はCLOCKIFY_DEFAULT_WORKSPACE_IDが使用されます。どちらも設定されていない場合、ツールはまずlist_workspacesでワークスペースを特定するよう求めます。 - ページネーション: リスト取得ツールは省略可能な
page/page_sizeを受け取り、1 ページ分を返します。大量データを扱うリスト(list_time_entries、list_projects、list_clients、list_tasks、list_tags、list_users)ではfetch_all=trueも指定できます。ページネーションをたどり、すべてのページを連結して返します(複数回 API を呼び出す場合があります)。 - エラー: 失敗にはカテゴリ(
PLAN_REQUIRED、ACCESS_DENIED、AUTH)が付与されるため、アシスタントはプランのアップグレード、モジュールの有効化、キーの修正のいずれが必要か判断できます。Clockify での有料機能と有効化方法をご覧ください。
Clockify での有料機能と有効化方法
多くの機能領域は、互いに独立した 2 つの条件によって制限されており、ツールを動作させるには両方を満たす必要があります。
1. ワークスペースのプランに機能が含まれている必要があります。 含まれていない場合、API は 402(または「subscription」メッセージ)を返し、サーバーはカテゴリ PLAN_REQUIRED の ClockifyAPIError を発生させます。
| 機能 | 最低プラン |
|---|---|
| レポート(詳細/概要/週次)、共有レポート | Free |
| Webhook | Free(最大 3 件)— 追加分は有料 |
| 休暇、休日、請求書、承認 | Standard |
| 経費(経費レポートを含む)、カスタムフィールド、スケジュール管理 | Pro |
| 出勤状況レポート | Pro(出勤状況/時間追跡アドオン) |
2. ワークスペースでモジュールを有効にする必要があります。 適切なプランであっても、管理者が Clockify → Workspace Settings で次の項目を有効にする必要があります:Time off、Expenses、Approval、Invoicing、Scheduling。有効になるまでは、API は 403 "Access Denied" を返し、サーバーはカテゴリ ACCESS_DENIED の ClockifyAPIError を発生させます。(カスタムフィールド、Webhook、レポートには個別の切り替え設定は不要です。)
操作に失敗した場合は、エラーカテゴリに対処方法が示されます。
PLAN_REQUIRED— ワークスペースのプランをアップグレードします(Standard/Pro)。ACCESS_DENIED— Workspace Settings で機能を有効にするか、API キーユーザーのロール/権限を確認します。AUTH— API キーがない、無効、または取り消されています。
オブザーバビリティ(任意)
サーバーは OpenTelemetry のトレース、メトリクス、ログを出力できます。利用は完全に任意で、ベンダーにも依存しません。OTLP 互換のバックエンド(Dynatrace、Grafana、Datadog、Jaeger など)にエクスポートできます。無効の場合、opentelemetry がインポートされることはありません。
pip install "clockify-mcp[telemetry]"
export CLOCKIFY_TELEMETRY=1
OTLP エンドポイントとヘッダーは、標準の OpenTelemetry 環境変数で設定します(TOML ファイルでは設定しません)。CLOCKIFY_TELEMETRY_DETAIL は、付加する引数/ペイロードデータの量を制御します(既定値は metadata → ids → full)。API キーは常に秘匿されます。
Dynatrace のセットアップ
export OTEL_EXPORTER_OTLP_ENDPOINT="https://<your-env>.live.dynatrace.com/api/v2/otlp"
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Api-Token <YOUR_DT_TOKEN>"
export OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=delta
export OTEL_SERVICE_NAME=clockify-mcp
必要なトークンスコープ:openTelemetryTrace.ingest、metrics.ingest、logs.ingest。Dynatrace の OTLP メトリクス取り込みには delta のテンポラリティが必要です。この環境変数がないと、メトリクスのエクスポートは 400 Bad Request で失敗します。
汎用 OTLP コレクター
export OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:4318"
export OTEL_SERVICE_NAME=clockify-mcp
出力されるシグナル:
- トレース — MCP ツール呼び出し(
execute_tool <name>)ごと、および Clockify API リクエストごとのスパン - メトリクス —
mcp.tool.duration、mcp.tool.errors、および Clockify クライアントのリクエスト所要時間 - ログ — ツールエラーと予期しない API レスポンス形式。トレースと関連付けられます(OTLP のみ。標準出力には出力されません)
開発
git clone https://github.com/tracegazer/clockify-mcp
cd clockify-mcp
uv sync --extra dev
CLOCKIFY_API_KEY=dummy uv run clockify-mcp --help
uv run pytest -q
uv run ruff check src/ tests/
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。