Go2Clock MCP by usefulapi
Read clock records, timesheets and rotas; change employees and rotas, add clock records in Go2Clock.
Should I use this
Quality & Safety
Findings (1)
- LOWin go2clock_list_clock_records_range
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"go2clock": {
"url": "https://go2clock.usefulapi.io/mcp"
}
}
}Remote endpoints
https://go2clock.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (10)
🟢go2clock_list_users
List every clock user with id, name, department, shift, payroll number and manager flag. Clock PINs are removed. Go2Clock API: POST /api/users/.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢go2clock_list_employees
List employee details: contact, department, trade, pay rates, roles, start and termination dates. Go2Clock API: POST /api/employees/.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢go2clock_list_clock_records(punch_date)
List every clocking record (punch) for one date. Go2Clock API: POST /api/punches/ with punch_date.
Input Schema
{
"type": "object",
"properties": {
"punch_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date to read, yyyy-mm-dd."
}
},
"required": [
"punch_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢go2clock_list_clock_records_range(start_date, end_date, userid)
List clocking records between two dates, optionally for one employee. Keep the range to 7 days or fewer per call; Go2Clock advises against larger pulls. Go2Clock API: POST /api/punches_range/.
Input Schema
{
"type": "object",
"properties": {
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First date, yyyy-mm-dd."
},
"end_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Last date, yyyy-mm-dd."
},
"userid": {
"type": "string",
"pattern": "^\\d+$",
"description": "Employee ID (userid), numeric."
}
},
"required": [
"start_date",
"end_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢go2clock_get_timesheet_csv(start_date, nodays, dept, userid)
Generate the timesheet report as CSV for up to 7 days, optionally for one department or one employee. Returns the CSV text. Go2Clock API: POST /api/timesheet_csv_v1.
Input Schema
{
"type": "object",
"properties": {
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First day of the report, yyyy-mm-dd."
},
"nodays": {
"type": "integer",
"minimum": 1,
"maximum": 7,
"description": "Number of days, 1 to 7."
},
"dept": {
"description": "Department name to filter by (default: all departments).",
"type": "string"
},
"userid": {
"type": "string",
"pattern": "^\\d+$",
"description": "Employee ID (userid), numeric."
}
},
"required": [
"start_date",
"nodays"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢go2clock_get_rota(userid, start_date, end_date)
Read an employee's rota (shift schedule) between two dates: shift name, colour and planned hours per day. Go2Clock API: GET /api/employee_rota.
Input Schema
{
"type": "object",
"properties": {
"userid": {
"type": "string",
"pattern": "^\\d+$",
"description": "Employee ID (userid), numeric."
},
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First date, yyyy-mm-dd."
},
"end_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Last date, yyyy-mm-dd."
}
},
"required": [
"userid",
"start_date",
"end_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴go2clock_update_employee(userid, name, email, mobilenumber, deptname, ...)
Change some details of one existing employee. Send only the fields to change. Go2Clock API: PUT /api/employee_update. Does not change sign-in passwords or roles.
Input Schema
{
"type": "object",
"properties": {
"userid": {
"type": "string",
"pattern": "^\\d+$",
"description": "Employee ID (userid), numeric."
},
"name": {
"type": "string",
"maxLength": 255
},
"email": {
"type": "string",
"maxLength": 100
},
"mobilenumber": {
"type": "string",
"maxLength": 20
},
"deptname": {
"type": "string",
"maxLength": 255
},
"tradename": {
"type": "string",
"maxLength": 255
},
"payrollno": {
"type": "string",
"maxLength": 50
},
"payrate": {
"type": [
"string",
"number"
]
},
"hourlypay": {
"type": [
"string",
"number"
]
},
"max_hours_week": {
"type": [
"string",
"number"
]
},
"max_hours_day": {
"type": [
"string",
"number"
]
},
"holiday_total_allowed": {
"type": [
"string",
"number"
]
},
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"termination_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"termination_reason": {
"type": "string"
},
"home_phone": {
"type": "string"
},
"home_address": {
"type": "string"
},
"peoplehr_employeeid": {
"type": "string"
},
"sagehr_employeeno": {
"type": "string"
}
},
"required": [
"userid"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴go2clock_upload_employees(employees)
Upload a list of employees (new or changed). Go2Clock keys each record on userid. Sends a JSON array. Go2Clock API: PUT /api/employees/. Does not set passwords or roles.
Input Schema
{
"type": "object",
"properties": {
"employees": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"userid": {
"type": "string",
"pattern": "^\\d+$",
"description": "Employee ID (userid), numeric."
},
"name": {
"type": "string",
"maxLength": 255
},
"email": {
"type": "string",
"maxLength": 100
},
"mobilenumber": {
"type": "string",
"maxLength": 20
},
"deptname": {
"type": "string",
"maxLength": 255
},
"tradename": {
"type": "string",
"maxLength": 255
},
"payrollno": {
"type": "string",
"maxLength": 50
},
"peoplehr_employeeid": {
"type": "string"
},
"shiftmon": {
"type": "string",
"maxLength": 255
},
"shifttue": {
"type": "string",
"maxLength": 255
},
"shiftwed": {
"type": "string",
"maxLength": 255
},
"shiftthu": {
"type": "string",
"maxLength": 255
},
"shiftfri": {
"type": "string",
"maxLength": 255
},
"shiftsat": {
"type": "string",
"maxLength": 255
},
"shiftsun": {
"type": "string",
"maxLength": 255
},
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"termination_date": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"userid",
"name"
]
},
"description": "Employees to create or update."
}
},
"required": [
"employees"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴go2clock_upload_clock_record(userid, checktime, checktype, sensorid, worktype, ...)
Add one clocking record (punch) for an employee. Go2Clock refuses a duplicate record. Go2Clock API: PUT /api/punches/.
Input Schema
{
"type": "object",
"properties": {
"userid": {
"type": "string",
"pattern": "^\\d+$",
"description": "Employee ID (userid), numeric."
},
"checktime": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}$",
"description": "When the employee clocked, yyyy-mm-ddThh:mm:ss."
},
"checktype": {
"description": "0 = in, 1 = out, or another number your instance uses.",
"type": [
"string",
"number"
]
},
"sensorid": {
"type": [
"string",
"number"
]
},
"worktype": {
"description": "Job code number.",
"type": [
"string",
"number"
]
},
"latitude": {
"type": [
"string",
"number"
]
},
"longitude": {
"type": [
"string",
"number"
]
},
"eventdescription": {
"type": "string"
},
"deviceserial": {
"type": "string"
}
},
"required": [
"userid",
"checktime",
"checktype"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴go2clock_create_rota(userid, start_date, shift_name, nodays)
Put a named shift on an employee's rota for one or more days from a start date. An existing rota entry on the same date is replaced. The shift name must match a shift in Go2Clock's shift settings. Go2Clock API: POST /api/employee_rota.
Input Schema
{
"type": "object",
"properties": {
"userid": {
"type": "string",
"pattern": "^\\d+$",
"description": "Employee ID (userid), numeric."
},
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First day of the shift, yyyy-mm-dd."
},
"shift_name": {
"type": "string",
"minLength": 1,
"description": "Shift name exactly as set in Go2Clock shift settings."
},
"nodays": {
"description": "Consecutive days from the start date (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"userid",
"start_date",
"shift_name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence