TimeTracker RX MCP
Exposes TimeTracker RX REST API as an MCP server, enabling AI tools like Claude and Cursor to manage time entries, projects, work items, and analytics with a security policy that restricts write operations to owned resources.
README
TimeTracker RX MCP サーバー
TimeTracker RX(デンソークリエイト社)の REST API を MCP(Model Context Protocol)サーバーとして公開するツールです。 Claude Code / Claude Desktop / Cursor 等の AI ツールから工数管理・プロジェクト管理・分析を直接操作できます。
セキュリティポリシー: 「人のものを壊さない」 — 自分が管理するリソースのみ書き込みを許可し、他者のプロジェクト・ワークアイテムの破壊を防ぎます。
バージョン履歴
最新版: Ver1.09 (2026-06-26)
| Ver | 日付 | 主要変更 |
|---|---|---|
| Ver1.09 | 2026-06-26 | update_work_item を日付更新・clearSchedule 対応に拡張(planned_start_date/planned_finish_date/fields/clear_schedule/move_schedule_days/field_calc_types/assignment_change/propagate_to_children 追加)、work_item_id→work_item_ids リネームで複数ID一括更新・クリア対応 |
| Ver1.08 | 2026-06-26 | create_project/update_project を公式API準拠に引数拡張(plannedStartDate/plannedFinishDate/managerId/members/projectCategories/memberChange 等)、copy_project 追加、get_project に includes 追加 |
| Ver1.07 | 2026-05-08 | master 系: skip→offset 命名統一 + レスポンス data[] アンラップ。time_entries 一覧に日付・プロジェクト等のサーバ側フィルタ追加 |
| Ver1.06 | 2026-05-08 | acl の引数を公式 ace/aceChange 構造に再設計、analytics の body を公式 filterBy/groups 構造に再設計 |
| Ver1.05 | 2026-05-07 | update_work_item の status_id → status_type_id リネーム + actual_progress 引数追加 |
| Ver1.04 | 2026-04-27 | write 系 body を {fields:{...}} ラッパに統一 |
| Ver1.01〜1.02 | 2026-04-27 | OwnershipChecker のレスポンス形式対応 |
| Ver1.00 | 2026-04-20 | Python + FastMCP 初版リリース |
互換性ポリシー: 公式 API 仕様準拠を最優先するため、minor bump (Ver1.0X) でも引数 rename・必須化等の破壊変更を含みます。引数の差分は
tests/test_contract.pyで自動検知されます。
機能一覧
認証(1)
| ツール名 | 説明 |
|---|---|
get_me |
自分のユーザー情報取得 |
ユーザー参照(2)
| ツール名 | 説明 |
|---|---|
list_users |
ユーザー一覧取得(読み取り専用) |
get_user |
ユーザー取得(読み取り専用) |
タイムシート — 自分の工数操作(5)
| ツール名 | 説明 |
|---|---|
list_time_entries |
自分の実績工数一覧取得 |
get_time_entry |
自分の実績工数取得 |
add_time_entry |
自分の実績工数追加(他人のプロジェクトへの工数登録も可) |
update_time_entry |
自分の実績工数更新 |
delete_time_entry |
自分の実績工数削除 |
タイムシート — 任意ユーザー参照(2)
| ツール名 | 説明 |
|---|---|
list_user_time_entries |
任意ユーザーの実績工数一覧取得(読み取り専用) |
get_user_time_entry |
任意ユーザーの実績工数取得(読み取り専用) |
プロジェクト(7)
| ツール名 | 説明 |
|---|---|
list_projects |
プロジェクト一覧取得(全プロジェクト閲覧可) |
get_project |
プロジェクト取得(includes で Members/UserGroups/WorkCalendar を指定可) |
create_project |
プロジェクト作成(plannedStartDate/plannedFinishDate 等の公式項目・メンバー対応、管理者は未指定で自分) |
update_project |
プロジェクト更新(日付・メンバー変更等の公式項目対応、自分が管理者のPJのみ) |
copy_project |
既存プロジェクトの設定・メンバーをコピーして新規作成 |
get_project_calendar |
プロジェクトカレンダー取得 |
get_project_profile |
プロジェクトプロファイル取得 |
ワークアイテム(6)
| ツール名 | 説明 |
|---|---|
list_sub_items |
サブアイテム一覧取得 |
get_work_item |
ワークアイテム取得 |
create_work_item |
ワークアイテム追加(自分が管理者のプロジェクトのみ) |
update_work_item |
ワークアイテム更新(予定日更新・clearSchedule によるクリア・複数ID一括対応、自分が管理者のプロジェクトのみ) |
delete_work_item |
ワークアイテム削除(自分が管理者のプロジェクトのみ、アトミック拒否) |
duplicate_work_item |
ワークアイテム複製(自分が管理者のプロジェクトのみ) |
ACL — プロジェクト権限(4)
| ツール名 | 説明 |
|---|---|
get_project_acl |
プロジェクト権限取得(全プロジェクト閲覧可) |
add_project_acl |
プロジェクト権限追加(自分が管理者のプロジェクトのみ) |
update_project_acl |
プロジェクト権限更新(自分が管理者のプロジェクトのみ) |
delete_project_acl |
プロジェクト権限削除(自分が管理者のプロジェクトのみ) |
マスタ参照(7)
| ツール名 | 説明 |
|---|---|
list_item_types |
アイテムタイプ一覧 |
list_status_types |
ステータスタイプ一覧 |
list_process_categories |
工程分類一覧 |
list_time_entry_categories |
作業分類一覧 |
list_field_types |
フィールドタイプ一覧 |
list_organizations |
組織一覧 |
list_profiles |
プロファイル一覧 |
分析(3)
| ツール名 | 説明 |
|---|---|
analyze_time |
工数分析(全ユーザー対象可) |
analyze_item_counts |
アイテム件数分析(全ユーザー対象可) |
export_time_entries |
実績工数エクスポート |
セットアップ
前提条件
- Python 3.12 以上
- uv(
curl -LsSf https://astral.sh/uv/install.sh | shなどでインストール) - TimeTracker RX の API キー(管理画面のユーザー設定から発行)
インストール
MCP クライアントごとに最適な方式を使い分けます。
| 環境 | 方式 | 理由 |
|---|---|---|
| Claude Code (WSL/Linux/macOS) | uvx (on-demand) | 事前インストール不要、タグ変更即反映 |
| Cursor (Windows / macOS) | uvx (on-demand) | 同上 |
| Claude Desktop / Cowork (Windows MSIX) | pre-install | MSIX sandbox が spawn 子プロセスからの git fetch を拒否するため |
uvx 方式(Claude Code / Cursor):
# 動作確認
TIMETRACKER_BASE_URL=https://your-server/TimeTrackerRX/ \
TIMETRACKER_API_KEY=your-key \
uvx --from git+https://github.com/nori1173-ops/timetracker-rx-mcp@Ver1.09 timetracker-rx-mcp
pre-install 方式(Claude Desktop):
Windows PowerShell で事前にインストール:
uv tool install git+https://github.com/nori1173-ops/timetracker-rx-mcp@Ver1.09 --force
インストール先: %USERPROFILE%\.local\bin\timetracker-rx-mcp.exe。以降は timetracker-rx-mcp コマンドとして実行可能。
バージョン指定:
- 本番利用:
@Ver1.09のようにタグ固定を推奨(破壊変更から保護される) - 開発版:
@masterで常に最新を追う(破壊変更の可能性あり)
更新:
- uvx 方式:
uv cache cleanで再取得 - pre-install 方式:
uv tool upgrade timetracker-rx-mcp --force
環境変数
MCP 設定ファイルの env セクションで環境変数を指定します。
| 変数名 | 必須 | 説明 | 例 |
|---|---|---|---|
TIMETRACKER_BASE_URL |
必 | TimeTracker RX の API ベース URL | https://your-server/TimeTrackerRX/ |
TIMETRACKER_API_KEY |
必 | ユーザーの API キー | your-api-key |
TIMETRACKER_TIMEOUT_MS |
任 | リクエストタイムアウト(ミリ秒、既定 30000) | 60000 |
TIMETRACKER_SKIP_TLS_VERIFY |
任 | 自己署名証明書向け TLS 検証スキップ(既定 false) | true |
MCP 設定
全環境共通で uvx --from git+https://github.com/nori1173-ops/timetracker-rx-mcp@Ver1.09 timetracker-rx-mcp を呼び出します。
Claude Code(WSL/Linux/macOS)
~/.claude.json の mcpServers に追記します。
{
"mcpServers": {
"timetracker-rx": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/nori1173-ops/timetracker-rx-mcp@Ver1.09",
"timetracker-rx-mcp"
],
"env": {
"TIMETRACKER_BASE_URL": "https://your-server/TimeTrackerRX/",
"TIMETRACKER_API_KEY": "your-api-key"
}
}
}
}
Claude Desktop / Cowork(Windows MSIX 環境)
MSIX sandbox で git fetch が失敗するため pre-install 方式を使います。事前に uv tool install を実行しておく必要があります(上記「インストール」参照)。
%APPDATA%\Claude\claude_desktop_config.json の mcpServers に追記:
{
"mcpServers": {
"timetracker-rx": {
"command": "timetracker-rx-mcp",
"env": {
"TIMETRACKER_BASE_URL": "https://your-server/TimeTrackerRX/",
"TIMETRACKER_API_KEY": "your-api-key"
}
}
}
}
新バージョン(Ver1.01 等)リリース時は
uv tool upgrade timetracker-rx-mcp --forceを PowerShell で別途実行してください(Claude Desktop は自動更新されません)。
Cursor(Windows / macOS)
{
"mcpServers": {
"timetracker-rx": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/nori1173-ops/timetracker-rx-mcp@Ver1.09",
"timetracker-rx-mcp"
],
"env": {
"TIMETRACKER_BASE_URL": "https://your-server/TimeTrackerRX/",
"TIMETRACKER_API_KEY": "your-api-key"
}
}
}
}
自己署名証明書の環境では
envに"TIMETRACKER_SKIP_TLS_VERIFY": "true"を追加してください。
セキュリティポリシー
「人のものを壊さない」 — このルールはすべての実装に優先します。
| 操作 | 制限 |
|---|---|
| 閲覧(GET) | 全て許可。他者のリソースも読み取り可 |
| プロジェクト作成 | 管理者(managerId)は自分に自動設定 |
| プロジェクト更新 | 自分が管理者のプロジェクトのみ |
| ワークアイテム CRUD | 自分が管理者のプロジェクトのみ |
| ACL 変更 | 自分が管理者のプロジェクトのみ |
| タイムシート操作 | 自分のユーザー ID のみ(他者分は閲覧のみ可) |
| 分析(読み取り) | 全ユーザーのデータを含めて許可 |
| ユーザー管理 | 一覧・取得のみ実装(作成・更新・削除は除外) |
複数 ID の一括操作では、1 つでも権限のない対象が含まれる場合は操作全体を拒否します(アトミック拒否)。
開発
セットアップ
uv sync --extra dev
テスト
uv run pytest # 全テスト
uv run pytest --cov # カバレッジ付き
uv run pytest tests/test_ownership.py -v # 単一ファイル
lint / format
uv run ruff check src/ tests/
uv run ruff format src/ tests/
ローカル実行
export TIMETRACKER_BASE_URL=https://your-server/TimeTrackerRX/
export TIMETRACKER_API_KEY=your-key
uv run timetracker-rx-mcp
技術スタック
- Python 3.12+
- mcp(FastMCP)
- httpx(HTTP クライアント、コネクションプール)
- pydantic(バリデーション)
- uv(パッケージ管理)
- ruff(lint + format)
- pytest / pytest-asyncio / respx(テスト)
アーキテクチャ
詳細は Documents/DESIGN.md を参照してください。
ライセンス
MIT
免責事項
- 本プロジェクトはデンソークリエイト社とは無関係の非公式ツールです。
- TimeTracker RX の正規ライセンスが別途必要です。
- API の仕様変更により動作しなくなる可能性があります。
- 本ツールの使用により発生した損害について開発者は責任を負いません。
商標
「TimeTracker」はデンソークリエイト株式会社の登録商標です。
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。