
Keeping Mcp
io.github.Red-Square-Software由 GitHub 帳號 Red-Square-Software 發布v1.0.1更新於 Oct 24, 2026
MCP server for the Keeping time-tracking API
概覽
一個本機 MCP 伺服器,把 AI 助理連接到 Keeping 工時記錄 API,可讀取專案、任務與工時項目,並記錄或修改計費工時。
- 可以做什麼
- 查詢目前使用者、組織、專案與任務,決定記錄工時的位置。列出既有工時項目,並查看計時器是否在運作。新增、修改或刪除工時項目,除非明確確認,否則只回傳預覽。啟動、停止與恢復計時器,同樣需要確認步驟。
- 適用情境
- 適合在 Keeping 記錄計費工時的獨立開發者或自由工作者,希望由助理在工作階段結束時登記本次工作,而不必手動輸入,同時保留 Keeping 原有的開票整合。
- 執行需求
- 透過 stdio 在本機執行,由 npx(需 Node.js 22 或更新版本)或全域 npm 安裝啟動。需要 Keeping 個人存取權杖,透過 KEEPING_TOKEN 環境變數提供,權杖需在 Keeping 偏好設定中開啟開發者功能後產生。選用變數可固定組織(KEEPING_ORG_ID)、設定日誌等級(KEEPING_LOG_LEVEL)與控制確認機制(KEEPING_REQUIRE_CONFIRM)。需要連線至 Keeping API 的網路存取。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Keeping Mcp,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
keeping-mcp
Open-source Model Context Protocol (MCP) server that exposes the Keeping (api.keeping.nl) time-tracking API as tools an AI coding assistant can call. Built for solo developers who use Claude Code (or any MCP-capable client) and want their billable hours logged into Keeping at the end of a session instead of typed in by hand, while keeping Keeping's existing native Jortt invoicing integration intact. Every write tool is dry-run by default — your hours never reach Keeping until you explicitly confirm.
⚠ Writes are dry-run BY DEFAULT
Every write tool (
keeping_add_entry,keeping_update_entry,keeping_delete_entry,keeping_start_timer,keeping_stop_timer,keeping_resume_timer) returns a preview unless you passconfirm: truein the tool call.Setting
KEEPING_REQUIRE_CONFIRM=falsein your environment disables this gate. Writes then happen on the first call — there is no second chance.Recommendation: never disable this gate unless you are running the server in a non-interactive automation context and have explicitly accepted the loss of the confirmation step.
Install
From npm
No install required — npx fetches the package on first run:
The server speaks the MCP stdio protocol and stays in the foreground waiting for JSON-RPC frames on stdin — exit with Ctrl+C. In practice you do not run it by hand; an MCP-capable client (Claude Code, Claude Desktop, Cursor, etc.) spawns it for you using the config snippets below.
Optional — install globally so keeping-mcp is on your PATH:
Requires Node.js >=22. The package is published to npmjs.com/package/keeping-mcp with sigstore provenance attestations.
Claude Code on Windows 11
Add to %APPDATA%\Claude\claude_desktop_config.json or to your project's .mcp.json file.
The cmd /c wrapper is required on Windows — npx resolves to npx.cmd, and Claude Code's process spawn does not search PATHEXT extensions (see anthropics/claude-code#58510).
Claude Code on macOS / Linux
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or ~/.config/Claude/claude_desktop_config.json (Linux), or your project's .mcp.json.
Other MCP clients
Any MCP-capable client that supports the stdio transport works. The server is started by npx -y keeping-mcp and reads KEEPING_TOKEN from its environment. Discoverable in the MCP Registry as io.github.Red-Square-Software/keeping-mcp.
Get a Keeping access token
- Sign in to your Keeping account.
- Open Preferences (top-right menu).
- Find the section Show features for developers and enable it.
- A new Personal access tokens section appears.
- Click Generate new token, name it (e.g. "Claude Code"), and copy the value.
- Store it as
KEEPING_TOKENin your shell environment OR in your Claude Code configenvblock.
The token has full read+write access to your time entries — treat it like a password. Never commit it to git, never paste it into a chat, never read it back from a tool response (keeping-mcp never echoes it).
Configuration
⚠ Writes are dry-run BY DEFAULT
Every write tool (
keeping_add_entry,keeping_update_entry,keeping_delete_entry,keeping_start_timer,keeping_stop_timer,keeping_resume_timer) returns a preview unless you passconfirm: truein the tool call.Setting
KEEPING_REQUIRE_CONFIRM=falsein your environment disables this gate. Writes then happen on the first call — there is no second chance.Recommendation: never disable this gate unless you are running the server in a non-interactive automation context and have explicitly accepted the loss of the confirmation step.
Tools
keeping-mcp registers 12 tools when the server starts. Read tools (keeping_me, keeping_organisations, keeping_projects, keeping_tasks, keeping_list_entries, keeping_timer_status) call Keeping's API without confirmation. Write tools (keeping_add_entry, keeping_update_entry, keeping_delete_entry, keeping_start_timer, keeping_stop_timer, keeping_resume_timer) return a dry-run preview unless invoked with confirm: true (default behavior controlled by KEEPING_REQUIRE_CONFIRM).
Dry-run workflow (example transcript)
Write tools follow a two-step pattern: propose-then-confirm. The first call returns a preview of the HTTP request the server would send; the second call (with confirm: true) actually sends it.
Step 1 — preview (no confirm, no API call made). Illustrative; actual field names match Keeping's OpenAPI (see https://developer.keeping.nl).
Step 2 — confirm (confirm: true added, request is sent to Keeping). Illustrative; actual response shape mirrors Keeping's OpenAPI.
Verifying provenance
Releases are published via GitHub Actions OIDC trusted publishing (no long-lived npm tokens). Every release carries an npm provenance attestation linking the published tarball to a specific commit in this repository.
Local development
All server output goes to stderr — stdout is reserved for MCP JSON-RPC framing. Never write diagnostic output to stdout; use console.error for logging.
License
MIT — see LICENSE.
來源:README.md,提交 41e964a
工具
0版本歷史
1- v1.0.1最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分