freshbooks-time-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@freshbooks-time-mcplog 1.5 hours to Acme Corp for design work today"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
freshbooks-time-mcp
A remote MCP server for managing FreshBooks time tracking from Claude (claude.ai, Claude desktop and mobile, Claude Code) or any MCP client that supports OAuth.
Tested and Deployed on gangway.
Tools
Tool | What it does |
| Entries for a date range or period, filtered by client, project, service, billable or billed |
| One entry by id |
| Log time ( |
| Change only the fields given |
| Delete an entry |
| The running or paused timer and its elapsed time |
| Start or resume, stop and log, or throw away the timer |
| Hours by day, week, client, project or service, with billable and unbilled totals |
| List or search |
| The connected FreshBooks identity and business |
Related MCP server: mcp-freshbooks
How auth works
The server is its own OAuth 2.1 authorization server (dynamic client registration and PKCE, per the MCP spec). When a client connects, you sign in with FreshBooks. Only emails on the allowlist get in. Each user's FreshBooks tokens are stored separately in Postgres and refreshed automatically.
Configuration
Variable | |
| Postgres; migrations run at startup |
| From a FreshBooks developer app |
| Comma-separated emails, or |
| Optional; defaults to the user's first business |
| Optional; default |
| Optional; derived from the request if unset |
| Default |
Create a FreshBooks app with redirect URI https://<your-host>/oauth/callback and these scopes: user:profile:read, user:time_entries:read, user:time_entries:write, user:projects:read, user:clients:read and user:billable_items:read.
Running
npm ci
npm run build
npm startnpm test runs the unit tests. The Postgres store tests also run when TEST_DATABASE_URL is set.
Connecting
Claude Code:
claude mcp add --transport http --scope user freshbooks-time https://<your-host>/mcpThen authenticate it from /mcp. In claude.ai, add https://<your-host>/mcp as a custom connector.
Notes
FreshBooks doesn't document its timers API. The timer tools follow the endpoints used by FreshBooks' own older clients.
This server cannot be deployed
Maintenance
Related MCP Connectors
Track time, manage clients and projects, review timesheets, and create invoices with OAuth.
1Read time entries, projects, clients, tasks and invoices; log and update tracked time.
Manage Timequip projects, tasks, comments, members, and dashboards through MCP.
Track time on usetimebook.com - start/stop timers, log entries, list projects/clients.
Related MCP Servers
- AlicenseAqualityDmaintenanceA Claude MCP server that allows Claude to interact with your FreeAgent account to track time, manage timers, and handle timeslip operations.76MIT
- AlicenseBqualityDmaintenanceProduction-grade MCP server for FreshBooks. 25 tools for invoices, clients, expenses, payments, time tracking, projects, estimates, and financial reports. OAuth2 with automatic token refresh.253MIT
- FlicenseNot gradedqualityAmaintenanceMCP server for Timely time tracking API. Connects Claude Code to your Timely account for reading and creating time entries, projects, tasks, and users.5-
- FlicenseNot gradedqualityAmaintenanceAn MCP server that connects Claude to FreshBooks, enabling reading and management of invoices, clients, expenses, projects, and time entries via natural language.1-