TimeTap MCP by usefulapi

Review business details, scheduling staff, locations, services and appointment schedules.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
71%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,410Tokens (tool definitions)
~919 BTypical response size
Moderate attention impact (1.10% of 128k context)

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-http

What it can do

Tool inventory

Tools (9)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded9 tools