@clicktime/mcp-server
v0.0.54
Published
ClickTime MCP Tech Demo for AI agents to interact with ClickTime API
Readme
ClickTime MCP Tech Demo
A Model Context Protocol (MCP) tech demo that lets AI agents – like Claude Desktop – securely interact with ClickTime's time‑tracking, project‑management, and expense‑management APIs.
⚠️ Demo Package Notice: This is a technical demonstration package. ClickTime is not currently providing official support for this package, but we will be updating it constantly as we continue development. Use at your own discretion and expect frequent changes.
What is Model Context Protocol?
MCP is a specification that gives AI tools a secure, structured way to call external services. For ClickTime, it means Claude can:
- Log time – "Log 8 h to Website Redesign → Development today."
- Manage projects & tasks – "What projects am I assigned to?"
- Handle expenses – "Add a $25.50 lunch expense for today."
- Request time off – "Request vacation Dec 24–26."
- Stay in context – Claude remembers your ClickTime workspace between requests.
Prerequisites
| Requirement | Notes | | --------------------------- | --------------------------------------------------------------------------------------------------------------------- | | Claude Desktop (v≥1.9) | macOS & Windows. Linux users can run the browser version or a VM – the setup script will error on non‑supported OSes. | | Node.js (v18 or higher) | Needed to run the MCP server. | | ClickTime API Token | Treat it like a password and rotate regularly. |
1. Install/Update Claude Desktop
Download from https://claude.ai/download and pick Check for Updates in the menu after install.
2. Check Node.js
Open Terminal / Command Prompt
- macOS Press
Cmd + Space, type Terminal, then press Enter - Windows Press
Windows + R, type cmd, then press Enter
In the window that appears, type:
node --versionYou should see something like v18.17.0.
If you see "command not found" (macOS) or "'node' is not recognized…" (Windows), install the LTS build from https://nodejs.org (v18 or newer).
3. Create / Locate Your ClickTime API Token
- Log in to ClickTime.
- Click Your Name → My Preferences → Authentication Token tab.
- Click Generate (if you haven't already) and Copy the token.
🔒 Keep this token secret – anyone with the string can act as you.
Quick Setup (Recommended) 🚀
Open Terminal / Command Prompt
- macOS Press
Cmd + Space, type Terminal, press Enter - Windows Press
Windows + R, type cmd, press Enter
Then copy‑paste the command below (replace <YOUR_CLICKTIME_API_TOKEN> with your real token) and press Enter:
npx @clicktime/mcp-server@latest setup:claude <YOUR_CLICKTIME_API_TOKEN>That's it! Restart Claude Desktop and start talking to ClickTime.
Privacy tip: Terminal/PowerShell keeps a history of commands you run. If you don't want the line that contains your ClickTime token to stick around, delete it afterwards (
history -don macOS/Linux,Clear-Historyin PowerShell) or, in bash/zsh, start the command with a space so it isn't recorded.
Alternative: Environment Variable
If you prefer not to include your token in the command line:
export CLICKTIME_API_TOKEN=<YOUR_CLICKTIME_API_TOKEN>
npx @clicktime/mcp-server@latest setup:claudeManual Setup
If you prefer full control:
- Open Claude Settings → Developer → Edit Config.
- Add the
clicktimeblock inside"mcpServers":
{
"mcpServers": {
"clicktime": {
"command": "npx",
"args": ["@clicktime/mcp-server", "-t", "<YOUR_CLICKTIME_API_TOKEN>"]
}
}
}- Save, then restart Claude Desktop.
Try It Out!
Examples Claude now understands:
- "Log 8 h to project ABC‑123 → Development today."
- "Show me my time entries for this week."
- "Create a new expense sheet called 'June 2025 – Trade‑show expenses'."
- "Add a $25.50 Lunch expense for today."
- "Request vacation Dec 24–26."
- "What projects do I have access to?"
💡 Receipt expenses – drag an image into Claude, then say "Create an expense from this receipt." Claude will ask for the file path and do the rest.
Core Features
Time Tracking
- Create entries – "Log 8 h to ABC‑123 → Development today."
- View history – "Show my time entries this week."
- Update entries – "Change yesterday's entry to 6 h."
Expense Management
Quick expenses – "Add $25.50 lunch expense for today."
Receipt upload
- Drag‑and‑drop a receipt image into Claude.
- Or type "Create an expense from /Users/john/receipt.jpg (≤ 2 MB)".
Expense sheets – "Create expense sheet 'Conference Travel – June 2025'. "
Projects & Time Off
- Projects – "What projects am I assigned to?"
- Time off – "Request vacation Dec 24–26."
Receipt Processing
Save the receipt image (JPG, PNG, GIF, BMP, or PDF ≤ 2 MB).
Drag & drop the image into Claude Desktop.
Ask: "Create an expense from this receipt."
When prompted, paste the full file path.
- macOS: Right‑click + Option → Copy as Pathname
- Windows: Shift + right‑click → Copy as path
Claude extracts the data and creates the expense in ClickTime.
Troubleshooting
| Symptom | Fix |
| ---------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| "Invalid API token" | Re‑copy token from ClickTime My Preferences. |
| "ClickTime API token is required" | Provide token as argument: npx @clicktime/mcp-server@latest setup:claude YOUR_TOKEN |
| "Unsupported platform" | Setup script supports macOS/Windows only. Linux users: configure manually or use VM. |
| "File too large / unsupported" | Ensure image ≤ 2 MB & is JPG/PNG/GIF/BMP/PDF. |
| "File not found / ENOENT" | Use the exact path (see path‑copy tips above). |
| Claude can't see ClickTime tools | Restart Claude; verify mcpServers JSON; check Node v18+. |
| Permission denied | Confirm your ClickTime account has Time Tracking, Expenses, and/or Time Off modules enabled. |
| "Failed to connect to ClickTime API" | Verify token and internet connection. |
Available Commands
Time Entries
add_time_entryget_recent_time_entriesupdate_time_entrydelete_time_entry
Expenses
add_expense_itemadd_expense_from_receiptcreate_expense_sheet✨get_my_expense_sheetslist_my_expense_types
Projects & Tasks
list_my_projectslist_my_tasksget_project_details
Time Off
create_time_off_request- Create a time off request (automatically handles both approval/non-approval types)remove_time_off- RECOMMENDED: Smart removal that automatically determines whether to delete an entry or cancel a requestget_time_off- Get time off entriesget_time_off_requests- List time off requestsget_time_off_request_details- Get detailed info about a specific requestget_time_off_request_actions- Get available actions for a requestget_time_off_balance- Check time off balancelist_time_off_types- List available time off types
How it works:
create_time_off_requestautomatically checks if approval is required and uses the correct endpointremove_time_offautomatically determines whether to delete an entry (non-approval) or cancel a request (approval-required)
Support
- GitHub Issues – https://github.com/clicktime/mcp-server/issues
- ClickTime API Docs – https://developer.clicktime.com/
- MCP Spec – https://modelcontextprotocol.io/ (or GitHub mirror)
License
MIT © ClickTime Team
