TimeTap MCP by usefulapi
Review business details, scheduling staff, locations, services and appointment schedules.
Should I use this
Quality & Safety
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": {
"timetap": {
"url": "https://timetap.usefulapi.io/mcp"
}
}
}Remote endpoints
https://timetap.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (9)
🟢timetap_get_business
Read the authenticated business ID, name and selected scheduling settings. Excludes billing tokens and payment configuration.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢timetap_list_staff(acceptAppointments, locationId)
GET /staff. Read staff IDs, names and scheduling flags. No contact details, user logins or profiles. Vendor route is unpaginated, bounded here to 5,000 rows/2 MiB. locationId values are sent comma-separated as documented.
Input Schema
{
"type": "object",
"properties": {
"acceptAppointments": {
"type": "boolean"
},
"locationId": {
"minItems": 1,
"maxItems": 25,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢timetap_list_locations(pageNumber, pageSize, staffId, locationGroupId, working)
Read one page of scheduling locations. Continue pageNumber while the returned page is full; vendor provides no total on this route. Excludes private scheduling links, embed codes, email and tax IDs.
Input Schema
{
"type": "object",
"properties": {
"pageNumber": {
"default": 1,
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"pageSize": {
"default": 25,
"type": "integer",
"minimum": 1,
"maximum": 50
},
"staffId": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"locationGroupId": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"working": {
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢timetap_list_services(locationId, staffId, inactive, classesOnly)
GET /services. Read service/reason IDs, names, duration and pricing; private PERSONAL reasons are excluded via includePersonal=0. Vendor route is unpaginated, bounded to 5,000 rows/2 MiB. Results reflect the credential's permissions and scheduling filters.
Input Schema
{
"type": "object",
"properties": {
"locationId": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"staffId": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"inactive": {
"type": "boolean"
},
"classesOnly": {
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢timetap_get_staff(id)
Read one scheduling staff member by its numeric professionalId. Selected scheduling fields only; clients, notes, form answers, private URLs and other unselected fields are omitted.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢timetap_get_location(id)
Read one scheduling location by its numeric locationId. Selected scheduling fields only; clients, notes, form answers, private URLs and other unselected fields are omitted.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢timetap_get_service(id)
Read one service by its numeric reasonId. Selected scheduling fields only; clients, notes, form answers, private URLs and other unselected fields are omitted.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢timetap_get_appointment(id)
Read one appointment by its numeric calendarId. Selected scheduling fields only; clients, notes, form answers, private URLs and other unselected fields are omitted.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢timetap_list_appointments(startDate, endDate, pageNumber, pageSize, staffIdList, ...)
Read one page from GET /appointmentList/reportWithCount using an ordered YYYY-MM-DD date range (up to 93 days). Client records/contact, subject/notes, forms/custom fields, payment and appointment management links are omitted. PERSONAL time-off is excluded. Local wall-clock numbers are TimeTap HHmm values, not decimal hours; UTC epoch fields are milliseconds. Count is the vendor total; request the next page until exhausted.
Input Schema
{
"type": "object",
"properties": {
"startDate": {
"type": "string"
},
"endDate": {
"type": "string"
},
"pageNumber": {
"default": 1,
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"pageSize": {
"default": 25,
"type": "integer",
"minimum": 1,
"maximum": 50
},
"staffIdList": {
"minItems": 1,
"maxItems": 25,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"locationIdList": {
"minItems": 1,
"maxItems": 25,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"reasonIdList": {
"minItems": 1,
"maxItems": 25,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"statusList": {
"minItems": 1,
"maxItems": 11,
"type": "array",
"items": {
"type": "string",
"enum": [
"OPEN",
"CLOSED",
"INPROGRESS",
"COMPLETED",
"READ_ONLY",
"PENDING",
"PENDING_CONFIRMATION",
"PENDING_WAITLIST",
"CHECKEDIN",
"CANCELLED",
"CONFIRMED"
]
}
}
},
"required": [
"startDate",
"endDate"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence