Yoya Booking

Book meetings on a host's real availability. No auth - mirrors their public Yoya page.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
81%
Calidad de los nombres
94%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~2,873Tokens (definiciones de herramientas)
~3.1 KBTamaño de respuesta típico
Impacto significativo en la atención (2.24% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "yoya-booking": {
      "url": "https://yoya.ai/api/mcp/book"
    }
  }
}

Puntos de conexión remotos

https://yoya.ai/api/mcp/bookstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (7)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢get_booking_page(slug)

Read a public Yoya booking link or slug. Includes required guest fields and meeting options. No host account access.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "syncStatus": {
      "type": "string",
      "enum": [
        "pending",
        "ready",
        "attention"
      ]
    },
    "nextCursor": {
      "type": [
        "string",
        "null"
      ]
    },
    "nextOffset": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "ok"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢list_available_times(slug, timezone, timeOfDay, from, to, ...)

Find up to 10 times (max 50), labeled in the guest's IANA timezone. Filter by inclusive from/exclusive to datetimes and morning (06–12), afternoon (12–18) or evening (18–24) in the guest timezone. Pass nextCursor unchanged to continue with the same filters. Slots are suggestions; preview then book rechecks availability. Never invent slot IDs.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048
    },
    "timezone": {
      "type": "string",
      "maxLength": 100
    },
    "timeOfDay": {
      "type": "string",
      "enum": [
        "morning",
        "afternoon",
        "evening"
      ]
    },
    "from": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    },
    "to": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    },
    "limit": {
      "default": 10,
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "cursor": {
      "type": "string",
      "pattern": "^s_\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}Z$"
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "syncStatus": {
      "type": "string",
      "enum": [
        "pending",
        "ready",
        "attention"
      ]
    },
    "nextCursor": {
      "type": [
        "string",
        "null"
      ]
    },
    "nextOffset": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "ok"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢preview_booking(meetingFormat, requestId, slug, name, email, ...)

Validate guest details and the selected time without booking or sending email. Show the returned summary to the guest and ask for explicit approval. Then call book_meeting with the returned normalized booking, requestId and confirmationToken.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "meetingFormat": {
      "description": "Copy the value from preview_booking unchanged.",
      "type": "string",
      "maxLength": 1000
    },
    "requestId": {
      "description": "Reuse the ID returned by preview_booking for retries.",
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "slug": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "email": {
      "type": "string",
      "maxLength": 320
    },
    "slotId": {
      "type": "string",
      "pattern": "^s_\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}Z$"
    },
    "purpose": {
      "default": "",
      "type": "string",
      "maxLength": 2000
    },
    "meetingType": {
      "type": "string",
      "enum": [
        "google_meet",
        "zoom",
        "in_person"
      ]
    },
    "timezone": {
      "type": "string",
      "maxLength": 100
    },
    "fieldAnswers": {
      "type": "object",
      "propertyNames": {
        "type": "string",
        "minLength": 1,
        "maxLength": 60
      },
      "additionalProperties": {
        "type": "string",
        "maxLength": 2000
      }
    }
  },
  "required": [
    "slug",
    "name",
    "email",
    "slotId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "syncStatus": {
      "type": "string",
      "enum": [
        "pending",
        "ready",
        "attention"
      ]
    },
    "nextCursor": {
      "type": [
        "string",
        "null"
      ]
    },
    "nextOffset": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "ok"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🔴book_meeting(meetingFormat, requestId, slug, name, email, ...)

Creates a free booking or returns PAYMENT_REQUIRED with a secure payment URL for paid meetings. Paid meetings are not booked until payment succeeds; show the link and never claim confirmation before that. Only call after the guest explicitly approves preview_booking. Copy the preview's booking fields and confirmationToken unchanged. Reuse requestId and token on network retries; never claim notifications are delivered until syncStatus is ready.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "meetingFormat": {
      "description": "Copy the value from preview_booking unchanged.",
      "type": "string",
      "maxLength": 1000
    },
    "requestId": {
      "description": "Reuse the ID returned by preview_booking for retries.",
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "slug": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "email": {
      "type": "string",
      "maxLength": 320
    },
    "slotId": {
      "type": "string",
      "pattern": "^s_\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}Z$"
    },
    "purpose": {
      "default": "",
      "type": "string",
      "maxLength": 2000
    },
    "meetingType": {
      "type": "string",
      "enum": [
        "google_meet",
        "zoom",
        "in_person"
      ]
    },
    "timezone": {
      "type": "string",
      "maxLength": 100
    },
    "fieldAnswers": {
      "type": "object",
      "propertyNames": {
        "type": "string",
        "minLength": 1,
        "maxLength": 60
      },
      "additionalProperties": {
        "type": "string",
        "maxLength": 2000
      }
    },
    "confirmationToken": {
      "type": "string",
      "maxLength": 1000
    },
    "confirmed": {
      "type": "boolean",
      "const": true
    }
  },
  "required": [
    "slug",
    "name",
    "email",
    "slotId",
    "confirmationToken",
    "confirmed"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "syncStatus": {
      "type": "string",
      "enum": [
        "pending",
        "ready",
        "attention"
      ]
    },
    "nextCursor": {
      "type": [
        "string",
        "null"
      ]
    },
    "nextOffset": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "ok"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢get_booking(token)

Read a booking using its private manage-link token. Includes meeting-link synchronization status. Treat this token as a password; do not share it publicly.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "token": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    }
  },
  "required": [
    "token"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "syncStatus": {
      "type": "string",
      "enum": [
        "pending",
        "ready",
        "attention"
      ]
    },
    "nextCursor": {
      "type": [
        "string",
        "null"
      ]
    },
    "nextOffset": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "ok"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🔴cancel_booking(token, confirmed, reason)

Cancel using a private manage token. Ask the guest for explicit approval first; this sends cancellation notifications.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "token": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "confirmed": {
      "type": "boolean",
      "const": true
    },
    "reason": {
      "type": "string",
      "maxLength": 500
    }
  },
  "required": [
    "token",
    "confirmed"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "syncStatus": {
      "type": "string",
      "enum": [
        "pending",
        "ready",
        "attention"
      ]
    },
    "nextCursor": {
      "type": [
        "string",
        "null"
      ]
    },
    "nextOffset": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "ok"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🔴reschedule_booking(token, slotId, confirmed, reason)

Move a booking using its private manage token and a fresh slot ID from list_available_times. Ask for explicit approval first. The original booking stays intact if the new time cannot be reserved.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "token": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "slotId": {
      "type": "string",
      "pattern": "^s_\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}Z$"
    },
    "confirmed": {
      "type": "boolean",
      "const": true
    },
    "reason": {
      "type": "string",
      "maxLength": 500
    }
  },
  "required": [
    "token",
    "slotId",
    "confirmed"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "syncStatus": {
      "type": "string",
      "enum": [
        "pending",
        "ready",
        "attention"
      ]
    },
    "nextCursor": {
      "type": [
        "string",
        "null"
      ]
    },
    "nextOffset": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "ok"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada7 herramientas
verificadoversión no registrada7 herramientas