Timebook MCP server
✓ 인증됨AI 클라이언트가 Timebook 계정에 직접 시간을 기록하고, 타이머를 관리하며, 로그 항목을 남길 수 있도록 지원합니다.
다른 이름 squidcode/timebook-cli, timebook-cli, @squidcode/timebook
- 스타
- 2
- Tools
- 10
- 다운로드, 30일
- —
- 최신 버전
- 0.6.0
- 마지막 커밋
- 2026년 6월 8일
- 라이선스
- MIT
Timebook MCP란?
Timebook은(는) MCP server입니다. AI 클라이언트가 Timebook 계정에 직접 시간을 기록하고, 타이머를 관리하며, 로그 항목을 남길 수 있도록 지원합니다. 10개 도구를 제공합니다. 예: whoami, list_projects, list_clients.
프로젝트 README에서 생성된 요약
Timebook MCP server 정보
Timebook은 개발자가 자신의 시간 추적 계정을 Claude, Cursor 또는 Codex와 같은 AI 에이전트에 연결할 수 있는 방법을 제공합니다. Model Context Protocol을 사용하여 AI 클라이언트가 Timebook 데이터와 직접 상호작용하며 일정과 로그를 관리할 수 있습니다. 명령줄을 사용하여 로컬 server로 설정하거나, claude.ai와 같은 웹 기반 클라이언트를 위해 원격 HTTP 엔드포인트를 통해 연결할 수 있습니다.
사용자는 start_timer, stop_timer, log_time과 같은 특정 도구를 통해 워크플로우를 관리할 수 있습니다. 이 server를 통해 AI는 프로젝트와 클라이언트 목록을 확인하고, 활성화된 타이머의 상태를 체크하며, 최근 기록을 조회할 수 있습니다. 또한 인증된 토큰에 필요한 권한이 있는 경우 항목을 수정하거나 삭제하는 것도 지원합니다. 이러한 설정을 통해 시간 추적 기능을 코딩 및 계획 환경과 통합된 상태로 유지할 수 있습니다.
시작하려면 login 명령을 사용하여 인증해야 하며, 이 과정에서 토큰이 로컬 머신에 저장됩니다. 원격 연결의 경우 시스템은 OAuth 2.0을 사용하여 권한을 안전하게 처리합니다. 이 server는 텔레메트리나 사용 분석 데이터를 수집하지 않으므로, 사용자의 활동은 로컬 머신과 Timebook 계정 내에서만 비공개로 유지됩니다.
활용 사례
- 1자동 타이머 관리AI 어시스턴트에게 특정 프로젝트의 타이머를 시작하거나 종료하도록 요청합니다.
- 2수동 시간 기록AI가 클라이언트 또는 프로젝트에 대해 특정 작업 시간을 기록하도록 합니다.
- 3작업 내역 검토최근 특정 프로젝트에 얼마나 많은 시간이 소요되었는지 AI에게 문의합니다.
- 4시간 기록 수정이전에 기록된 시간 항목의 오류를 수정하도록 AI에게 지시합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
Timebook MCP 설치 방법
형식 확인: 2026년 11월 10일Claude Code에 Timebook MCP 설치
$ claude mcp add timebook-cli -- npx -y @squidcode/timebookCursor에 Timebook MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"timebook-cli": {
"command": "npx",
"args": [
"-y",
"@squidcode/timebook"
]
}
}
}VS Code에 Timebook MCP 설치
.vscode/mcp.json
{
"servers": {
"timebook-cli": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@squidcode/timebook"
]
}
}
}Claude Desktop에 Timebook MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"timebook-cli": {
"command": "npx",
"args": [
"-y",
"@squidcode/timebook"
]
}
}
}Codex에 Timebook MCP 설치
~/.codex/config.toml
[mcp_servers.timebook-cli] command = "npx" args = ["-y", "@squidcode/timebook"]
Gemini CLI에 Timebook MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"timebook-cli": {
"command": "npx",
"args": [
"-y",
"@squidcode/timebook"
]
}
}
}Timebook MCP 도구 10
README에서 감지됨whoamilist_projectslist_clientsget_active_timerstart_timerstop_timerlog_timelist_entriesupdate_entrydelete_entry
| whoami | — | |
| list_projects | — | |
| list_clients | — | |
| get_active_timer | — | |
| start_timer | — | |
| stop_timer | — | |
| log_time | — | |
| list_entries | — | |
| update_entry | — | |
| delete_entry | — |
구성
TIMEBOOK_API_URLOverride the Timebook API base URL. Defaults to https://usetimebook.com.
TIMEBOOK_WEB_URLOverride the Timebook web URL used during `timebook login`. Defaults to https://usetimebook.com.
| 이름 | 설명 | 유형 |
|---|---|---|
| TIMEBOOK_API_URL | Override the Timebook API base URL. Defaults to https://usetimebook.com. | |
| TIMEBOOK_WEB_URL | Override the Timebook web URL used during `timebook login`. Defaults to https://usetimebook.com. |
자동 검사
2026년 11월 14일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식
- 소스 저장소 연결 및 접근 가능squidcode/timebook-cli is public and reachablegithub.com/squidcode/timebook-cli ↗통과
- 패키지가 이 저장소를 소스로 지정@squidcode/timebook names squidcode/timebook-cli as sourcenpmjs.com/package/@squidcode/timebook ↗통과
- 빌드 출처(Sigstore 증명)Sigstore attestation for @squidcode/timebooknpmjs.com/package/@squidcode/timebook/v/0.6.0#provenance ↗통과
- 오픈 소스 라이선스 (OSI)MITspdx.org/licenses/MIT.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-06-08github.com/squidcode/timebook-cli ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음No popular package one edit away from @squidcode/timebook통과
- 패키지와 의존성에 심각한 보안 권고 없음112 resolved dependencies checked; no critical advisoryosv.dev ↗통과
- 모델에 대한 숨겨진 지침 없음10 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 원격 endpoint가 MCP 핸드셰이크에 응답HTTPS endpoint answered 401 (sign-in required)통과
README
GitHub에서 보기Timebook CLI
Command-line client and MCP server for Timebook — track time, manage timers, and expose your Timebook account to AI agents (Claude, Codex, Cursor, …) over the Model Context Protocol.
Install
# one-off
npx @squidcode/timebook login
# globally
npm install -g @squidcode/timebook
timebook --help
Requires Node.js 18.17+.
Authenticate
timebook login opens your browser, you log into Timebook (or use an existing session) and pick a scope (which clients/projects this token can touch). The browser delivers the token back to a short-lived loopback HTTP listener, which the CLI then writes to a config file with 0600 permissions.
timebook login
The token is stored at:
- macOS:
~/Library/Preferences/timebook/config.json - Linux:
~/.config/timebook/config.json - Windows:
%APPDATA%\timebook\Config\config.json
The token never leaves your machine after login. To revoke it server-side, visit https://usetimebook.com/settings/api-tokens.
Use it as a CLI
timebook whoami
timebook projects # list projects
timebook clients # list clients
timebook start -p "Acme website" -d "Wireframes"
timebook status # show running timer
timebook stop
# manual entries
timebook log -p "Acme website" -t 1h30m -d "Code review"
timebook log -p PROJ_ID --start 2026-05-04T09:00 --end 2026-05-04T10:30
timebook entries --project "Acme website" -n 10
# edit / delete (any combination of fields; unset ones stay as-is)
timebook entries edit ENTRY_ID -t 2h -d "code review + tests"
timebook entries edit ENTRY_ID --start 2026-05-04T09:00 --end 2026-05-04T11:00
timebook entries edit ENTRY_ID -d "" # clear description
timebook entries delete ENTRY_ID
Duration formats accepted: 1h, 45m, 1h30m, 1.5h, 1:30, or a bare number (interpreted as minutes — e.g. 90 → 1h 30m).
Edit / delete authorization: an API token can only modify entries it created itself. JWT sessions (the web UI) and admin tokens bypass this rule. Invoiced entries are locked for everyone via the API. A 403 with a friendly message is returned on a denied attempt — fix the entry from the web UI or with the token that created it.
Use it as an MCP server
The same binary speaks MCP over stdio when invoked with timebook mcp. Drop it into any MCP-aware host (Claude Code, Claude Desktop, Codex, Cursor, …):
Claude Code / Claude Desktop
{
"mcpServers": {
"timebook": {
"command": "npx",
"args": ["-y", "@squidcode/timebook", "mcp"]
}
}
}
Or, if installed globally:
{
"mcpServers": {
"timebook": {
"command": "timebook",
"args": ["mcp"]
}
}
}
The MCP server reuses the token saved by timebook login — run timebook login once in a terminal before starting the agent.
Use it as a remote MCP (Claude.ai web)
Timebook also runs as a hosted Streamable-HTTP MCP server at https://usetimebook.com/mcp with full OAuth 2.0 (Dynamic Client Registration + PKCE + refresh-token rotation). No CLI install required — Claude.ai discovers it via the standard well-known endpoints:
- Auth-server metadata:
https://usetimebook.com/.well-known/oauth-authorization-server - Resource metadata:
https://usetimebook.com/.well-known/oauth-protected-resource/mcp
Connect from Claude.ai → Settings → Connectors → Add → paste https://usetimebook.com/mcp. You'll be redirected to Timebook's consent page once, then Claude can use all the same tools listed below. Same OAuth-style permissions you'd see for any first-class connector.
The HTTP endpoint also accepts Authorization: Bearer tbk_* (your existing API token) for any client that prefers token-paste over OAuth — including server-to-server use.
Tools exposed to the model
| Tool | What it does |
|---|---|
whoami |
Current authenticated user (read-only) |
list_projects |
All projects in scope (read-only) |
list_clients |
All clients in scope (read-only) |
get_active_timer |
The running timer, or null (read-only) |
start_timer |
Start a timer on a project |
stop_timer |
Stop the running timer |
log_time |
Log a manual entry (duration OR startTime+endTime) |
list_entries |
Recent entries (default 50, max 500), project + date filters |
update_entry |
Edit one or more fields on an entry (description, duration, startTime, endTime, project, rate). Token must own the entry. |
delete_entry |
Delete an entry. Token must own it. Invoiced entries are locked. |
Try it with prompts
Once the MCP server is connected, ask the model in plain English:
- "Start a timer on my Acme website project for landing-page wireframes."
- "How much time did I log on the Recycler project last week?"
- "Log 1 hour 30 minutes against ChatNexus from 9am this morning at the Software Development rate, with description 'code review of the auth refactor'."
- "What am I currently working on?" — invokes
get_active_timer. - "Stop my timer."
- "My last entry on Recycler should be 2 hours, not 1h45m. Fix it." — invokes
list_entriesthenupdate_entry. - "Delete the entry I just made by mistake." — invokes
delete_entry. Will 403 if the entry was created by a different token (web UI, another agent) — say so to the model so it doesn't keep retrying.
The model picks the right tool, asks list_projects first if it needs to disambiguate a name, and writes through start_timer / log_time / stop_timer.
Privacy
Timebook CLI runs on your machine and only talks to your Timebook account.
- Authentication:
timebook loginmints a personal API token via Timebook's OAuth-style consent screen. The token is stored locally with0600permissions (~/Library/Preferences/timebook/config.jsonon macOS,~/.config/timebook/config.jsonon Linux,%APPDATA%\timebook\Config\config.jsonon Windows). It is never transmitted anywhere excepthttps://usetimebook.com(or your override) on outgoing API calls. - Telemetry: none. Neither the CLI nor the MCP server reports usage, errors, or analytics anywhere.
- MCP host data: when you use
timebook mcpfrom inside Claude / Cursor / etc., the MCP host (not Timebook) controls what the model sees. Tool inputs and outputs flow through the host's normal model-context pipeline. - Revoking access: visit https://usetimebook.com/settings/api-tokens to revoke the token at any time.
For Timebook's product-level privacy policy, see https://usetimebook.com/privacy.
Configuration
Override the API/web hosts (useful for self-hosted Timebook or local dev):
TIMEBOOK_API_URL=https://api.example.com \
TIMEBOOK_WEB_URL=https://example.com \
timebook login
You can also pass --api-url and --web-url to timebook login once; subsequent commands re-use the saved values.
If timebook login errors with State mismatch or you want to see exactly which requests reach the loopback callback, run with --debug:
timebook login --debug
Develop
git clone https://github.com/squidcode/timebook-cli
cd timebook-cli
npm install
npm run dev -- --help # tsx-powered hot-loop
npm run build # emits dist/
npm run lint && npm run typecheck && npm run test
Pre-commit hooks (ESLint + Prettier via lint-staged) are wired up by husky on npm install.
Release
prepublishOnly runs lint + typecheck + tests + build, then:
npm publish --access public
License
MIT © Squidcode LLC. See LICENSE.
Timebook MCP 질문
Timebook MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add timebook-cli -- npx -y @squidcode/timebook를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
Timebook MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
Timebook MCP는 어떤 도구를 제공하나요?
10개 도구를 제공합니다. 예: whoami, list_projects, list_clients, get_active_timer, start_timer.
Timebook MCP server 인증은 어떻게 하나요?
터미널에서 timebook login을 한 번 실행하여 브라우저를 통해 인증하십시오. 이후 MCP server는 저장된 토큰을 재사용합니다.
AI가 제 시간 기록을 삭제하거나 수정할 수 있나요?
네, 가능합니다. 다만 API 토큰은 자신이 생성한 항목만 수정하거나 삭제할 수 있으며, 이미 청구된 항목은 수정할 수 없습니다.