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

已验证STDIO仅桌面效率与工作流开发者工具

概览

AI 生成的概览

一个本地 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 的网络连接。
安装前请注意
该令牌对工时条目拥有完整读写权限,应像密码一样保管,不要提交到 git 或粘贴到聊天中。写入工具会改动真实数据:新增、修改、删除条目以及启动、停止、恢复计时器。默认仅做试运行,但将 KEEPING_REQUIRE_CONFIRM 设为 false 会取消预览,首次调用即写入。工时数据会发送到 Keeping API。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Keeping Mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

keeping-mcp

[CI]

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 pass confirm: true in the tool call.

Setting KEEPING_REQUIRE_CONFIRM=false in 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:

bash
KEEPING_TOKEN=kp_live_your_token_here npx -y keeping-mcp

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:

bash
npm install -g keeping-mcpKEEPING_TOKEN=kp_live_your_token_here keeping-mcp

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.

json
{  "mcpServers": {    "keeping-mcp": {      "command": "cmd",      "args": ["/c", "npx", "-y", "keeping-mcp"],      "env": {        "KEEPING_TOKEN": "kp_live_your_token_here"      }    }  }}

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.

json
{  "mcpServers": {    "keeping-mcp": {      "command": "npx",      "args": ["-y", "keeping-mcp"],      "env": {        "KEEPING_TOKEN": "kp_live_your_token_here"      }    }  }}

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

  1. Sign in to your Keeping account.
  2. Open Preferences (top-right menu).
  3. Find the section Show features for developers and enable it.
  4. A new Personal access tokens section appears.
  5. Click Generate new token, name it (e.g. "Claude Code"), and copy the value.
  6. Store it as KEEPING_TOKEN in your shell environment OR in your Claude Code config env block.

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

VariableRequiredDefaultPurpose
KEEPING_TOKENyes—Keeping personal access token (created via the section above).
KEEPING_REQUIRE_CONFIRMnotrueWhen true, write tools return a preview unless called with confirm: true. Setting to false disables the gate entirely — see warning below.
KEEPING_ORG_IDno—Pin all calls to one organisation id. When unset and the token has access to multiple orgs, write tools require explicit organisation_id input per call.
KEEPING_LOG_LEVELnoinfoServer stderr log verbosity. Accepts: debug, info, warn, error.

⚠ 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 pass confirm: true in the tool call.

Setting KEEPING_REQUIRE_CONFIRM=false in 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).

json
{  "tool": "keeping_add_entry",  "input": {    "description": "Phase 4 release prep",    "hours": 1.5,    "project_id": 123  },  "response": {    "would_post": {      "method": "POST",      "url": "https://api.keeping.nl/v1/456/time-entries",      "body": {        "description": "Phase 4 release prep",        "hours": 1.5,        "project_id": 123,        "date": "2026-06-12",        "purpose": "work"      }    }  }}

Step 2 — confirm (confirm: true added, request is sent to Keeping). Illustrative; actual response shape mirrors Keeping's OpenAPI.

json
{  "tool": "keeping_add_entry",  "input": {    "description": "Phase 4 release prep",    "hours": 1.5,    "project_id": 123,    "confirm": true  },  "response": {    "id": 98765,    "day": "2026-06-12",    "hours": 1.5,    "description": "Phase 4 release prep",    "project_id": 123,    "purpose": "work"  }}

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.

bash
npm audit signatures# or, for a single package:npm view keeping-mcp --json | jq '.dist.attestations'

Local development

bash
git clone https://github.com/red-square-software/keeping-mcp.gitcd keeping-mcpnpm cinpm testnpm run buildKEEPING_TOKEN=kp_live_your_token_here node dist/bin/keeping-mcp.js

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
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v1.0.1最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分