- Home
- MCP servers
- TimeChimp
TimeChimp
- javascript
0
GitHub Stars
javascript
Language
4 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
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.
How to use
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.
How to install
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 dev
Configuration and usage notes
Configure 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-here
Claude Desktop integration (example configuration)
If 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"
}
}
}
}
Running the server and tools overview
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.
Troubleshooting and tips
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.
Notes on security and best practices
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.
Available tools
get_projects
Retrieve a list of projects with optional top, skip, count, expand, active_only, filter, and orderby parameters.
get_project_by_id
Fetch a single project by its ID with optional expansion of related data.
create_project
Create a new project with detailed invoicing, budget, customers, managers, tags, tasks, and users configuration.
update_project
Update an existing project with full invoicing and budget options, and linked tasks/users.
delete_project
Delete a project by its ID.
get_project_insights
Retrieve insights for a specific project, including hours, budget, costs, and revenue.
get_users
Retrieve a list of users with optional filtering, expansion, and sorting.
get_user_by_id
Fetch a single user by ID with related data expansion.
create_user
Create a new user with optional contracts and role assignments.
update_user
Update an existing user including contracts, roles, and tags.
get_time_entries
Retrieve time entries with date ranges and optional user/project filters.
get_time_entry_by_id
Fetch a specific time entry by ID.
get_contacts
Retrieve contacts with optional expansion and filters.
get_contact_by_id
Fetch a single contact by ID.
create_contact
Create a new contact with related customer links.
update_contact
Update an existing contact and its linked customers.
delete_contact
Delete a contact by ID.
get_customers
Retrieve customers with optional expansion and filtering.
get_customer_by_id
Fetch a single customer by ID with related data expansion.
create_customer
Create a new customer with address, payment terms, and linked tags/contacts.
update_customer
Update an existing customer and its related data.
delete_customer
Delete a customer by ID.
get_tasks
Retrieve tasks with optional project filtering and expansion.
get_task_by_id
Fetch a task by ID with optional expansions.
get_invoices
Retrieve invoices with customer and date filtering.
get_invoice_by_id
Fetch a single invoice by ID with optional expansion.
get_expenses
Retrieve expenses with date filters and related links.
get_expense_by_id
Fetch a single expense by ID with optional expansion.
create_expense
Create a new expense with linked customer/project/user and VAT rate.
update_expense
Update an existing expense with details and linked entities.
delete_expense
Delete an expense by ID.
update_expense_status
Update internal expense status for approval/invoicing.
update_expense_client_status
Update external client status for expenses in client portal workflows.
get_expense_status_history
Query status history records for a given expense.
get_mileage
Retrieve mileage entries with filters and expansions.
get_mileage_by_id
Fetch a mileage entry by ID.
create_mileage
Create a mileage entry linked to customer, project, vehicle, and user.
update_mileage
Update an existing mileage entry.
delete_mileage
Delete a mileage entry by ID.
update_mileage_status
Update internal mileage status for approval/invoicing.
update_mileage_client_status
Update external mileage client status in client portal scenarios.
get_mileage_status_history
Query mileage status history records.
get_mileage_vehicles
Retrieve mileage vehicles with optional expansion.
get_mileage_vehicle_by_id
Fetch a mileage vehicle by ID with optional expansions.
get_tags
Retrieve tags for organization and categorization.
get_tag_by_id
Fetch a single tag by ID with optional expansion.