qb-time
A Message Control Protocol (MCP) server that provides unified access to QuickBooks Time API functionality. Developed with AI assistance.
claude mcp add --transport stdio aallsbury-qb-time-mcp-server python ./qb-time-mcp-server/main.py \ --env QB_TIME_ACCESS_TOKEN="your_quickbooks_time_access_token_here"
How to use
This MCP server consolidates QuickBooks Time API functionality into a single interface, exposing four primary tool sets: JobCode Tools, Timesheet Tools, User Tools, and Project Management Tools. With these tools, you can query and manage job codes, retrieve and filter timesheets, fetch user and group information, and access project-related data and activities. The server is designed to be used by external clients (such as Claude Desktop integrations or other automation) via the provided CLI entry point and environment configuration. To use it, provide your QuickBooks Time access token through the QB_TIME_ACCESS_TOKEN environment variable and run the server wrapper, which exposes the combined endpoints under the qb-time-tools namespace. The available methods cover common QuickBooks Time workflows, including filtering job codes by type or hierarchy, querying timesheets with date ranges and user filters, listing users and groups with various filters, and pulling project data along with related activities and settings.
How to install
Prerequisites:
- Python 3.8+ installed on your system
- Access to the project repository with the qb-time-mcp-server code
Step-by-step installation:
-
Create and activate a Python virtual environment (optional but recommended): python -m venv venv source venv/bin/activate # on macOS/Linux venv\Scripts\activate # on Windows
-
Install Python dependencies: pip install -r requirements.txt
-
Create a .env file with your QuickBooks Time access token: QB_TIME_ACCESS_TOKEN=your_access_token_here NODE_ENV=development
-
Run the MCP server (as configured in mcp_config):
Example command if running directly; use your MCP runner tooling as appropriate
python ./qb-time-mcp-server/main.py
-
Verify the server is running and reachable by your MCP runner or client tooling, using the QB_TIME_ACCESS_TOKEN for authentication.
Additional notes
Notes and tips:
- Ensure QB_TIME_ACCESS_TOKEN is kept secure and not committed to version control.
- If you are integrating with Claude Desktop or other clients, configure the global settings to reference the qb-time-tools server with the correct Python path and environment variable.
- The available tools (JobCode Tools, Timesheet Tools, User Tools, and Project Management Tools) include multiple filters and options described in the README; leverage these to minimize API calls and tailor responses to your use case.
- If you encounter token-related authentication errors, regenerate a token in QuickBooks Time and update QB_TIME_ACCESS_TOKEN.
- When testing locally, you can set NODE_ENV=development to enable verbose logging if the server supports it.
Related MCP Servers
mcp-vegalite
MCP server from isaacwasserman/mcp-vegalite-server
github-chat
A Model Context Protocol (MCP) for analyzing and querying GitHub repositories using the GitHub Chat API.
nautex
MCP server for guiding Coding Agents via end-to-end requirements to implementation plan pipeline
pagerduty
PagerDuty's official local MCP (Model Context Protocol) server which provides tools to interact with your PagerDuty account directly from your MCP-enabled client.
futu-stock
mcp server for futuniuniu stock
mcp -boilerplate
Boilerplate using one of the 'better' ways to build MCP Servers. Written using FastMCP