home / mcp / timechimp mcp server
Provides a dedicated MCP server to interact with TimeChimp API v2, supporting CRUD operations and OData querying across projects, users, time entries, contacts, customers, tasks, invoices, expenses, mileage, and tags.
Configuration
View docs{
"mcpServers": {
"armandswirc-timechimpmcp": {
"command": "node",
"args": [
"timechimp-mcp-server.js"
],
"env": {
"TIMECHIMP_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}You can run a TimeChimp MCP Server to interact with TimeChimp API v2, enabling you to manage projects, users, time entries, contacts, customers, tasks, invoices, expenses, mileage, mileage vehicles, and tags through a single, deployable JavaScript file with robust error handling and full OData support.
You connect to the MCP server using a compatible MCP client. The server exposes a wide range of tools that let you perform CRUD operations, fetch data with date ranges and filters, and expand related data using OData query parameters. You can retrieve lists of resources, fetch individual items by ID, create new records, update existing ones, and delete entries. All requests are authenticated with an API key and support $expand, $count, and other OData features for flexible querying.
Follow these concrete steps to install and run the TimeChimp MCP Server locally.
# Prerequisites
- Node.js 18.0.0 or higher
- TimeChimp account with API access
- TimeChimp API key
# Step 1: Clone the project
git clone <repository-url>
cd TimeJS
# Step 2: Install dependencies
npm install
# Step 3: Make the server executable (if you will run it directly)
chmod +x timechimp-mcp-server.js
# Step 4: Start the server (direct start)
node timechimp-mcp-server.js
# Optional: Development with debugging
npm run devConfigure the API key as an environment variable to authorize calls to TimeChimp API v2. The server expects the TIMECHIMP_API_KEY variable. You can set it in your shell or place it in a .env file.
export TIMECHIMP_API_KEY="your-api-key-here"
```
Or in a .env file:
```
TIMECHIMP_API_KEY=your-api-key-hereIf you want to use Claude Desktop with this MCP server, configure Claude to run the MCP server as a local process. The following example shows a complete configuration that runs the server via Node and passes the API key through the environment.
{
"mcpServers": {
"timechimp": {
"command": "node",
"args": ["timechimp-mcp-server.js"],
"cwd": "/path/to/your/TimeJS",
"env": {
"TIMECHIMP_API_KEY": "your-actual-api-key-here"
}
}
}
}To run the server, start with the command shown in the installation steps. Once running, you can invoke a wide range of tools such as get_projects, get_project_by_id, create_project, update_project, delete_project, get_users, get_time_entries, get_contacts, get_customers, get_tasks, get_invoices, get_expenses, get_mileage, and more. Each tool accepts OData-like filters, expansions, and sorting to tailor queries to your needs.
If you encounter authentication errors, verify that TIMECHIMP_API_KEY is set correctly and has API access. For API rate limits, wait and retry, or implement client-side throttling. Ensure Node.js is installed and the server process has permission to execute. Validate JSON schemas and OData expressions for proper syntax.
Protect your API key and avoid exposing it in client-side code or logs. Use a secure environment to store credentials and rotate keys periodically. When deploying publicly, limit access to the MCP server and monitor usage to prevent unauthorized operations.
Retrieve a list of projects with optional top, skip, count, expand, active_only, filter, and orderby parameters.
Fetch a single project by its ID with optional expansion of related data.
Create a new project with detailed invoicing, budget, customers, managers, tags, tasks, and users configuration.
Update an existing project with full invoicing and budget options, and linked tasks/users.
Delete a project by its ID.
Retrieve insights for a specific project, including hours, budget, costs, and revenue.
Retrieve a list of users with optional filtering, expansion, and sorting.
Fetch a single user by ID with related data expansion.
Create a new user with optional contracts and role assignments.
Update an existing user including contracts, roles, and tags.
Retrieve time entries with date ranges and optional user/project filters.
Fetch a specific time entry by ID.
Retrieve contacts with optional expansion and filters.
Fetch a single contact by ID.
Create a new contact with related customer links.
Update an existing contact and its linked customers.
Delete a contact by ID.
Retrieve customers with optional expansion and filtering.
Fetch a single customer by ID with related data expansion.
Create a new customer with address, payment terms, and linked tags/contacts.
Update an existing customer and its related data.
Delete a customer by ID.
Retrieve tasks with optional project filtering and expansion.
Fetch a task by ID with optional expansions.
Retrieve invoices with customer and date filtering.
Fetch a single invoice by ID with optional expansion.
Retrieve expenses with date filters and related links.
Fetch a single expense by ID with optional expansion.
Create a new expense with linked customer/project/user and VAT rate.
Update an existing expense with details and linked entities.
Delete an expense by ID.
Update internal expense status for approval/invoicing.
Update external client status for expenses in client portal workflows.
Query status history records for a given expense.
Retrieve mileage entries with filters and expansions.
Fetch a mileage entry by ID.
Create a mileage entry linked to customer, project, vehicle, and user.
Update an existing mileage entry.
Delete a mileage entry by ID.
Update internal mileage status for approval/invoicing.
Update external mileage client status in client portal scenarios.
Query mileage status history records.
Retrieve mileage vehicles with optional expansion.
Fetch a mileage vehicle by ID with optional expansions.
Retrieve tags for organization and categorization.
Fetch a single tag by ID with optional expansion.