Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Track time on usetimebook.com - start/stop timers, log entries, list projects/clients.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
TIMEBOOK_API_URL, TIMEBOOK_WEB_URLYou need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://usetimebook.com/mcpOpen Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"timebook": {
"command": "npx",
"args": [
"-y",
"@squidcode/timebook"
],
"env": {
"TIMEBOOK_API_URL": "your-value",
"TIMEBOOK_WEB_URL": "your-value"
}
}
}
}Run this in your terminal
claude mcp add --transport http timebook https://usetimebook.com/mcpclaude mcp add timebook --env TIMEBOOK_API_URL=your-value --env TIMEBOOK_WEB_URL=your-value -- npx -y @squidcode/timebookFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"timebook": {
"url": "https://usetimebook.com/mcp"
}
}
}Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"timebook": {
"command": "npx",
"args": [
"-y",
"@squidcode/timebook"
],
"env": {
"TIMEBOOK_API_URL": "your-value",
"TIMEBOOK_WEB_URL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"timebook": {
"type": "http",
"url": "https://usetimebook.com/mcp"
}
}
}Paste into .vscode/mcp.json in your project
{
"servers": {
"timebook": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@squidcode/timebook"
],
"env": {
"TIMEBOOK_API_URL": "your-value",
"TIMEBOOK_WEB_URL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
https://usetimebook.com/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
TIMEBOOK_API_URL envTIMEBOOK_WEB_URL envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
We have not read this server’s tool list yet; we check endpoints in rotation.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account squidcode, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Not checked yet; we check endpoints in rotation
Not checked yet; we check endpoints in rotation
Not checked yet; we read the tool list when we check the endpoint
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
Either way works: install it on your computer or connect to the cloud version.
The GitHub repo last changed –, and the latest version (0.6.0) reached the registry 5 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Spec Driven Development, Remote Desktop Commander, Detailing Manager
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Connect your auto detailing studio's tasks, cars, clients and revenue to Claude or ChatGPT.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
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.
# one-off
npx @squidcode/timebook login
npm install -g @squidcode/timebook timebook --help
Requires Node.js 18.17+.
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:
~/Library/Preferences/timebook/config.json~/.config/timebook/config.json%APPDATA%\timebook\Config\config.jsonThe token never leaves your machine after login. To revoke it server-side, visit https://usetimebook.com/settings/api-tokens.
timebook whoami
timebook projects # list projects timebook clients # list clients
timebook start -p "Acme website" -d "Wireframes" timebook status # show running timer timebook stop
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
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.
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, …):
{
"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.
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:
https://usetimebook.com/.well-known/oauth-authorization-serverhttps://usetimebook.com/.well-known/oauth-protected-resource/mcpConnect 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.
| 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. |
Once the MCP server is connected, ask the model in plain English:
get_active_timer.list_entries then update_entry.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.
Timebook CLI runs on your machine and only talks to your Timebook account.
timebook login mints a personal API token via Timebook's OAuth-style consent screen. The token is stored locally with 0600 permissions (~/Library/Preferences/timebook/config.json on macOS, ~/.config/timebook/config.json on Linux, %APPDATA%\timebook\Config\config.json on Windows). It is never transmitted anywhere except https://usetimebook.com (or your override) on outgoing API calls.timebook mcp from 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.For Timebook's product-level privacy policy, see https://usetimebook.com/privacy.
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
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.
prepublishOnly runs lint + typecheck + tests + build, then:
npm publish --access public
MIT © Squidcode LLC. See LICENSE.