youcanbookme

Manage YouCanBook.me bookings, booking pages, appointment types, team members and locations.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
95%
Qualität der Benennung
99%
Risiko der Vergiftung
80%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (2)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains suspicious base64-like encoded stringin update_booking

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~3,985Tokens (Tool-Definitionen)
~1.5 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (3.11% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "youcanbookme": {
      "url": "https://youcanbookme.usefulapi.io/mcp"
    }
  }
}

Remote-Endpunkte

https://youcanbookme.usefulapi.io/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (18)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢list_bookings(profileId, after, before, cancelled, searchText, ...)

List bookings (appointments) on the YouCanBookMe account. YCBM API: GET /v1/bookings. Filter by profileId (booking page), an after/before time window, cancelled status, and a free-text searchText; select fields with `fields`. Paginated via page (0-based) + maxResults. Returns a JSON array of bookings.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "profileId": {
      "description": "Restrict to bookings on this profile (booking page) id.",
      "type": "string"
    },
    "after": {
      "description": "Only bookings starting AFTER this time (ISO 8601, e.g. 2026-07-01T00:00:00Z).",
      "type": "string"
    },
    "before": {
      "description": "Only bookings starting BEFORE this time (ISO 8601).",
      "type": "string"
    },
    "cancelled": {
      "description": "Filter by cancelled status: true = only cancelled, false = only active. Omit for all.",
      "type": "boolean"
    },
    "searchText": {
      "description": "Free-text search across booking fields (e.g. attendee name/email).",
      "type": "string"
    },
    "fields": {
      "description": "Comma-separated field paths to return (e.g. \"id,title,startsAt\"). Supports dotted paths for nested objects. Omit to get the default field set.",
      "type": "string"
    },
    "page": {
      "description": "Pagination page number, 0-based (offset-based paging). Use with maxResults.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "maxResults": {
      "description": "Maximum records per page (page size). Defaults to the API's own default when omitted.",
      "type": "integer",
      "minimum": 1,
      "maximum": 1000
    },
    "params": {
      "description": "Additional documented query-string filters to send verbatim (merged with the typed params above).",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          }
        ]
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_booking(bookingId, fields)

Fetch a single booking (appointment) by id. YCBM API: GET /v1/bookings/{bookingId}. Use `fields` to select which fields to return. Returns the booking object.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "bookingId": {
      "type": "string",
      "description": "The booking id."
    },
    "fields": {
      "description": "Comma-separated field paths to return (e.g. \"id,title,startsAt\"). Supports dotted paths for nested objects. Omit to get the default field set.",
      "type": "string"
    }
  },
  "required": [
    "bookingId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_profiles(fields, page, maxResults, params)

List all profiles (booking pages) on the account. YCBM API: GET /v1/profiles. A profile is a bookable page with its own subdomain, appointment types, team members, and locations. Use `fields` to select fields (e.g. "id,title,subdomain"). Paginated via page (0-based) + maxResults. Returns a JSON array of profiles.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "fields": {
      "description": "Comma-separated field paths to return (e.g. \"id,title,startsAt\"). Supports dotted paths for nested objects. Omit to get the default field set.",
      "type": "string"
    },
    "page": {
      "description": "Pagination page number, 0-based (offset-based paging). Use with maxResults.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "maxResults": {
      "description": "Maximum records per page (page size). Defaults to the API's own default when omitted.",
      "type": "integer",
      "minimum": 1,
      "maximum": 1000
    },
    "params": {
      "description": "Additional documented query-string filters to send verbatim (merged with the typed params above).",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          }
        ]
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_profile(profileId, fields)

Fetch a single profile (booking page) by id. YCBM API: GET /v1/profiles/{profileId}. Use `fields` to select fields, including nested sub-resources (appointmentTypes, teamMembers, locations). Returns the profile object.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "profileId": {
      "type": "string",
      "description": "The profile (booking page) id."
    },
    "fields": {
      "description": "Comma-separated field paths to return (e.g. \"id,title,startsAt\"). Supports dotted paths for nested objects. Omit to get the default field set.",
      "type": "string"
    }
  },
  "required": [
    "profileId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_team_members(profileId)

List the team members configured on a profile (booking page). YCBM API: GET /v1/profiles/{profileId} with a teamMembers field selection. Returns the profile's teamMembers block (each member has id, name, email, description, pic, calendarId).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "profileId": {
      "type": "string",
      "description": "The profile (booking page) id."
    }
  },
  "required": [
    "profileId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_appointment_types(profileId)

List the appointment types configured on a profile (booking page). YCBM API: GET /v1/profiles/{profileId} with an appointmentTypes field selection. Returns the profile's appointmentTypes block (each with id, name, description, slotLength, price).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "profileId": {
      "type": "string",
      "description": "The profile (booking page) id."
    }
  },
  "required": [
    "profileId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_locations(profileId)

List the locations configured on a profile (booking page). YCBM API: GET /v1/profiles/{profileId} with a locations field selection. Returns the profile's locations block (each with id, kind, value, notes, strategy).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "profileId": {
      "type": "string",
      "description": "The profile (booking page) id."
    }
  },
  "required": [
    "profileId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_available_accounts

List the accounts/calendars available to your account — used to find the calendarId for a team member. YCBM API: GET /v1/{accountId}/availableAccounts (accountId is taken from your configured credentials). Returns a JSON array.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢youcanbookme_request(path)

Power-user escape hatch: GET any YCBM API path not wrapped by a dedicated tool. READ-ONLY — only GET is allowed. Pass the FULL API path after the origin, starting with a slash, INCLUDING any query string, e.g. "/v1/bookings?maxResults=5" or "/v1/profiles". Returns the parsed JSON.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "Full API path after the origin, starting with \"/\", e.g. \"/v1/bookings?maxResults=5\"."
    }
  },
  "required": [
    "path"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴create_booking(profileId, startsAt, endsAt, title, timeZone, ...)

MUTATES YouCanBookMe data: creates a booking (appointment) on a profile. YCBM API: POST /v1/bookings (JSON). Required: profileId, startsAt, endsAt (ISO 8601 times). Optional: title, timeZone, locale, units. Complex fields like `answers` (form-field answers) and `linkFields` should be passed via the `fields` passthrough. Returns the created booking.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "profileId": {
      "type": "string",
      "description": "The profile (booking page) id to book on (required)."
    },
    "startsAt": {
      "type": "string",
      "description": "Booking start time, ISO 8601 (required)."
    },
    "endsAt": {
      "type": "string",
      "description": "Booking end time, ISO 8601 (required)."
    },
    "title": {
      "description": "Booking title.",
      "type": "string"
    },
    "timeZone": {
      "description": "IANA time zone for the booking (e.g. Europe/London).",
      "type": "string"
    },
    "locale": {
      "description": "Locale for the booking (e.g. en-GB).",
      "type": "string"
    },
    "units": {
      "description": "Number of slot units to book.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "fields": {
      "description": "Additional documented YCBM fields to send in the JSON write body — merged OVER the typed fields above.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "profileId",
    "startsAt",
    "endsAt"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴update_booking(bookingId, title, startsAt, endsAt, cancelled, ...)

MUTATES YouCanBookMe data: updates an existing booking (reschedule, rename, mark cancelled/no-show). YCBM API: PATCH /v1/bookings/{bookingId} (JSON, partial update). Set any of title/startsAt/endsAt/cancelled/noShow/timeZone/locale/units; use the `fields` passthrough for answers/linkFields or other documented fields. The path id is never sent in the body.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "bookingId": {
      "type": "string",
      "description": "The booking id to update (path only; required)."
    },
    "title": {
      "description": "New booking title.",
      "type": "string"
    },
    "startsAt": {
      "description": "New start time, ISO 8601 (reschedule).",
      "type": "string"
    },
    "endsAt": {
      "description": "New end time, ISO 8601 (reschedule).",
      "type": "string"
    },
    "cancelled": {
      "description": "Set true to cancel the booking, false to un-cancel.",
      "type": "boolean"
    },
    "noShow": {
      "description": "Mark the attendee as a no-show (true) or not (false).",
      "type": "boolean"
    },
    "timeZone": {
      "description": "New IANA time zone.",
      "type": "string"
    },
    "locale": {
      "description": "New locale.",
      "type": "string"
    },
    "units": {
      "description": "New number of slot units.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "fields": {
      "description": "Additional documented YCBM fields to send in the JSON write body — merged OVER the typed fields above.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "bookingId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴cancel_booking(bookingId)

MUTATES YouCanBookMe data: cancels a booking. Convenience wrapper for PATCH /v1/bookings/{bookingId} with { cancelled: true } — safer and reversible (re-activate via update_booking cancelled=false) versus deleting. Returns the updated booking.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "bookingId": {
      "type": "string",
      "description": "The booking id to cancel (path only; required)."
    }
  },
  "required": [
    "bookingId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴update_profile(profileId, fields)

MUTATES YouCanBookMe data: updates a profile's (booking page) configuration. YCBM API: PATCH /v1/profiles/{profileId} (JSON, partial update). Pass the fields to change via the `fields` passthrough (e.g. { title, subdomain, ... }) — profile fields are numerous and use YCBM's own names. The path id is never sent in the body.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "profileId": {
      "type": "string",
      "description": "The profile (booking page) id to update (path only; required)."
    },
    "fields": {
      "description": "Additional documented YCBM fields to send in the JSON write body — merged OVER the typed fields above.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "profileId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴create_appointment_type(profileId, name, fields)

MUTATES YouCanBookMe data: adds an appointment type to a profile. YCBM API: POST /v1/profiles/{profileId}/appointmenttypes/items (JSON). Required: name; use the `fields` passthrough for description, slotLength, price, etc. The path profileId is never sent in the body.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "profileId": {
      "type": "string",
      "description": "The profile (booking page) id (path only; required)."
    },
    "name": {
      "type": "string",
      "description": "The appointment type name (required)."
    },
    "fields": {
      "description": "Additional documented YCBM fields to send in the JSON write body — merged OVER the typed fields above.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "profileId",
    "name"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴update_appointment_type(profileId, appointmentTypeId, fields)

MUTATES YouCanBookMe data: updates an appointment type on a profile. YCBM API: PATCH /v1/profiles/{profileId}/appointmenttypes/items/{appointmentTypeId} (JSON, partial update). Pass changed fields (name, description, slotLength, price, ...) via the `fields` passthrough. Path ids are never sent in the body.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "profileId": {
      "type": "string",
      "description": "The profile (booking page) id (path only; required)."
    },
    "appointmentTypeId": {
      "type": "string",
      "description": "The appointment type id to update (path only; required)."
    },
    "fields": {
      "description": "Additional documented YCBM fields to send in the JSON write body — merged OVER the typed fields above.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "profileId",
    "appointmentTypeId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴create_team_member(profileId, name, calendarId, fields)

MUTATES YouCanBookMe data: adds a team member to a profile. YCBM API: POST /v1/profiles/{profileId}/teammembers/items (JSON). Required: name; calendarId links the member to a calendar (find it via list_available_accounts). Use the `fields` passthrough for email, description, pic, etc. The path profileId is never sent in the body.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "profileId": {
      "type": "string",
      "description": "The profile (booking page) id (path only; required)."
    },
    "name": {
      "type": "string",
      "description": "The team member's display name (required)."
    },
    "calendarId": {
      "description": "The calendar id to link (see list_available_accounts).",
      "type": "string"
    },
    "fields": {
      "description": "Additional documented YCBM fields to send in the JSON write body — merged OVER the typed fields above.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "profileId",
    "name"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴update_team_member(profileId, teamMemberId, fields)

MUTATES YouCanBookMe data: updates a team member on a profile. YCBM API: PATCH /v1/profiles/{profileId}/teammembers/items/{teamMemberId} (JSON, partial update). Pass changed fields (name, email, description, calendarId, ...) via the `fields` passthrough. Path ids are never sent in the body.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "profileId": {
      "type": "string",
      "description": "The profile (booking page) id (path only; required)."
    },
    "teamMemberId": {
      "type": "string",
      "description": "The team member id to update (path only; required)."
    },
    "fields": {
      "description": "Additional documented YCBM fields to send in the JSON write body — merged OVER the typed fields above.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "profileId",
    "teamMemberId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴create_location(profileId, kind, strategy, value, notes, ...)

MUTATES YouCanBookMe data: adds a location to a profile. YCBM API: POST /v1/profiles/{profileId}/locations (JSON). Required: kind (location type) and strategy (how it is assigned). Use the `fields` passthrough for value, notes, and other documented fields. The path profileId is never sent in the body.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "profileId": {
      "type": "string",
      "description": "The profile (booking page) id (path only; required)."
    },
    "kind": {
      "type": "string",
      "description": "The location kind/type (required)."
    },
    "strategy": {
      "type": "string",
      "description": "The location assignment strategy (required)."
    },
    "value": {
      "description": "The location value (e.g. an address or link).",
      "type": "string"
    },
    "notes": {
      "description": "Notes shown with the location.",
      "type": "string"
    },
    "fields": {
      "description": "Additional documented YCBM fields to send in the JSON write body — merged OVER the typed fields above.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "profileId",
    "kind",
    "strategy"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Empfohlene Prompts

retrieve_data
Get details about [item] from youcanbookme
Erwartete Tools: get_booking
fetch_info
Fetch [information type] using youcanbookme
Erwartete Tools: get_booking
list_items
List all [items] available in youcanbookme
Erwartete Tools: list_bookings
browse_collection
Show me the [collection] from youcanbookme
Erwartete Tools: list_bookings
explore_workflow
List available [items], then get details for each one using youcanbookme
Erwartete Tools: list_bookingsget_booking

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet18 Tools