Documentación

Tiska para desarrolladores y agentes de IA

Última actualización: 29 de agosto de 2026

Tiska es el software de agenda y turnos de los negocios de belleza de Argentina (usetiska.com). Esta página lista todo lo que Tiska publica en formato legible por máquinas: el servidor MCP, el archivo llms.txt, la negociación de contenido en markdown, los sitemaps y la forma de las URLs públicas.

Todo lo que hay acá es público: no hace falta clave, token ni registro. Las consultas son de solo lectura; la única operación que escribe es reservar un turno, y hace exactamente lo mismo que el formulario de la página del negocio.

1. Servidor MCP

Tiska expone un servidor Model Context Protocol con transporte Streamable HTTP, para que Claude, ChatGPT y cualquier agente compatible consulten los datos públicos de los negocios sin scrapear HTML.

Endpointhttps://usetiska.com/mcp
TransporteStreamable HTTP (JSON-RPC 2.0 por POST)
Versión de protocolo2025-06-18
AutenticaciónNinguna (datos públicos)
EstadoSin sesión (stateless)

Configuración

{
  "mcpServers": {
    "tiska": {
      "type": "http",
      "url": "https://usetiska.com/mcp"
    }
  }
}

En Claude Code: claude mcp add --transport http tiska https://usetiska.com/mcp

Tools disponibles

ToolParámetrosDevuelve
list_businesses query (opcional), limit (opcional) Negocios publicados con Tiska: slug y URL pública.
get_business slug, local (opcional) Nombre, descripción, dirección, servicios con precio y duración, equipo, horarios de atención, reseñas y URL para reservar.
get_availability slug, date (YYYY-MM-DD), local (opcional) Horario de atención de ese día y los bloques ya ocupados. No calcula los huecos libres: la disponibilidad real depende del servicio, del profesional y de las opciones elegidas, y la resuelve el formulario de reserva.
create_appointment slug, service_id, date, time, first_name, last_name, phone, email; opcionales staff_id, local, note Reserva un turno real. Devuelve el id del turno, el resumen y, si el negocio pide seña, el link de pago de Mercado Pago.
about_tiska — Qué es Tiska, para quién, planes y precios vigentes.

Reservar

create_appointment llama exactamente al mismo procedimiento que el formulario web, así que hereda sus reglas: tope de reservas por minuto, validación de teléfono y email, verificación de que el servicio y el profesional sean de ese negocio, control de superposición y cálculo de la seña en el servidor. Además chequea que la hora caiga dentro del horario de atención.

Antes de reservar, pedí get_business para obtener el id del servicio y get_availability para elegir un horario libre.

Ejemplo

curl -s https://usetiska.com/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

2. API REST

Los mismos datos que devuelve el MCP, por HTTP y en JSON, para cuando no hay un cliente MCP del otro lado. Es de sólo lectura y no pide clave ni registro.

operationIdEndpointDevuelve
listBusinesses GET /api/v1/businesses?query=&limit= Negocios publicados: slug, URL pública y URL de reserva.
getBusiness GET /api/v1/businesses/{slug}?local= Nombre, descripción, dirección, sucursales, servicios con id, precio y duración, equipo, horarios de atención, reseñas y booking_url.
getAvailability GET /api/v1/businesses/{slug}/availability?date=YYYY-MM-DD&local= Si el negocio abre ese día, su horario de atención y los tramos ya ocupados.

Especificación completa: usetiska.com/openapi.json (OpenAPI 3.1, con operationId únicos, parámetros tipados y esquemas de respuesta; se puede cargar tal cual como herramientas de function calling). El índice de la API vive en usetiska.com/api/v1.

Ejemplo

curl -s https://usetiska.com/api/v1/businesses?limit=5
curl -s https://usetiska.com/api/v1/businesses/<slug>
curl -s "https://usetiska.com/api/v1/businesses/<slug>/availability?date=2026-09-15"

Errores

Ninguna ruta bajo /api/ devuelve HTML: los errores siempre vienen con este sobre y el código HTTP que corresponde.

{
  "error": {
    "code": "business_not_found",
    "message": "No existe ningún negocio con el slug 'xxx' en Tiska.",
    "resolution": "Listá los slugs vigentes en GET https://usetiska.com/api/v1/businesses o en https://usetiska.com/sitemap-negocios.xml"
  }
}

Códigos posibles: invalid_parameter (400), not_found (404), business_not_found (404), method_not_allowed (405), rate_limited (429) y upstream_unavailable (503).

Autenticación y límites

Versionado y obsolescencia

La versión va en la ruta: /api/v1/.... La regla, para que se pueda integrar sin miedo:

Lo mismo vale para el servidor MCP: protocolVersion se negocia en el initialize y el spec de las tools se lee siempre de tools/list, nunca de una copia guardada.

Probar sin romper nada

No hay un entorno sandbox aparte, y no hace falta: la API es de sólo lectura, así que cualquier llamada contra producción es inofensiva. Para probar, tomá un slug real de GET /api/v1/businesses y usalo en los otros dos endpoints. Lo único que escribe en Tiska es create_appointment, que está sólo en el servidor MCP y crea un turno de verdad en la agenda de un negocio real: no lo llames para probar.

3. llms.txt

usetiska.com/llms.txt, en el formato de llmstxt.org: resumen del producto, precios, cuándo conviene usar Tiska y el índice completo de páginas y artículos.

4. Contenido en markdown

La home responde en markdown si se lo pedís por Accept, en la misma URL (acceptmarkdown.com):

curl -s -H "Accept: text/markdown" https://usetiska.com/

Devuelve Content-Type: text/markdown; charset=utf-8 y Vary: Accept. Con cualquier otro Accept, la misma URL devuelve el HTML de siempre.

5. Sitemaps y robots

6. URLs públicas de los negocios

Las páginas de negocios se sirven con noindex a propósito: existen para los clientes de cada salón, no para posicionar en buscadores.

7. Lo que no hay

8. Contacto

Dudas, integraciones o algo que falte en esta página: hola@usetiska.com.