Saltar al contenido
golfdata.online

Uso de golfdata.online con agentes y aplicaciones de IA

golfdata.online es un directorio verificado de clubes y campos de golf de toda Europa: datos, enlaces de reserva y solicitudes de reserva cuando el club las ha activado. Cada dato enlaza a sus fuentes y lleva una fecha last_verified. No tiene relación con golfdata.co, un catálogo de precios de equipamiento de golf. Esta página explica las puertas creadas para personas y agentes de IA: un servidor MCP, un feed JSON por club, llms.txt, una tarjeta de descubrimiento MCP y el JSON-LD de schema.org en cada página de club. No hace falta clave; todo es de solo lectura salvo request_booking, que reenvía una solicitud de reserva a los clubes que la han activado.

Servidor MCP (de solo lectura salvo request_booking, sin clave)

Un servidor MCP sin estado sobre Streamable HTTP (JSON-RPC 2.0, HTTP POST), protocolo 2025-06-18. Sin autenticación.

  • Endpoint: https://golfdata.online/mcp
  • Nombre en el MCP Registry: online.golfdata/golf-clubs
  • Tarjeta de descubrimiento: /.well-known/mcp.json

Herramientas

  • search_clubs (solo lectura)

    Search approved golf clubs and courses across Europe by a free-text fragment (matches name, island, municipality or region), and/or ISO country code, island, region and municipality filters. Returns summary records (with last_verified) only; fetch provenance with get_club or list_sources_for before citing.

    Argumentos: query, country, island, region, municipality, question, limit

  • get_club (solo lectura)

    Get one approved club by UUID or slug, with all facts, sources[] and club_facts (what the club itself published from its verified account), or found: false.

    Argumentos: id_or_slug (obligatorio), question, topic

  • list_sources_for (solo lectura)

    List provenance (source URL, publisher, trust level, field, retrieved_at) for a club.

    Argumentos: entity_type (obligatorio), entity_id (obligatorio)

  • request_booking (escribe — reenvía una solicitud de reserva al club)

    Send a booking request to a club whose card says booking.requests_enabled is true. golfdata only forwards the request to the club (by email or a WhatsApp link); it does not confirm the booking. Returns a request id and, for the WhatsApp channel, a tracked link. Only works for enabled clubs; get the golfer's consent before sending their personal data. The golfer's details are forwarded to the club and kept for 24 months, then anonymized; a golfer can ask to erase them sooner via hello@golfdata.online.

    Argumentos: club_id (obligatorio), date (obligatorio), time, players (obligatorio), holes, name (obligatorio), email (obligatorio), phone, message, channel

Cada herramienta declara un outputSchema en tools/list; los resultados llegan como structuredContent más el mismo JSON en texto en content[0].text. get_club devuelve además la tarjeta de club completa en structuredContent.card (véase «La tarjeta de club» más abajo).

Límites

20 unidades por minuto por client IP. get_club cuesta 4 unidades; las demás llamadas 1. search_clubs acepta limit <= 10 (un límite mayor se rechaza con el error JSON-RPC -32011; reinténtalo con un límite menor). Al superar el presupuesto: HTTP 429 con una cabecera Retry-After.

search_clubs y get_club aceptan un question opcional (la pregunta del golfista, tal como la formula) y get_club un topic opcional. Se almacenan para mostrar a los clubes qué preguntan los golfistas —se eliminan los datos personales al llegar y el texto en bruto se borra a los 30 días— y nunca cambian la respuesta. Pásalos cuando los tengas.

Los resultados de get_club y search_clubs (y el feed por club y las páginas de club) incluyen un objeto links con URLs de reserva, web y teléfono con seguimiento en golfdata.online. Ofrece a los usuarios links.* para que el club vea la demanda; los clics se cuentan por club, sin IPs. Los valores en bruto booking_url, website y phone no cambian y siguen siendo citables.

Feed JSON por club

https://golfdata.online/api/clubs/{slug} devuelve un club como JSON: la fila verificada, los datos que el club ha publicado desde su cuenta verificada y cada fuente con su URL y nivel de confianza. Cacheable durante una hora, CORS abierto, sin clave.

La misma página de club también está disponible en Markdown en https://golfdata.online/{en|es|de}/clubs/{slug}.md: los mismos datos y la misma procedencia, para agentes que prefieren Markdown.

llms.txt y la tarjeta de descubrimiento

/llms.txt es un mapa del sitio en texto plano para agentes: el servidor MCP, los puntos de entrada, la procedencia de los datos y el uso. /.well-known/mcp.json es la tarjeta del servidor MCP legible por máquina, con el mismo endpoint, herramientas y límites. /llms-full.txt es la versión ampliada: el llms.txt completo más documentación por herramienta más detallada, el esquema del feed y de la tarjeta, las reglas de citación y un índice por país y región.

JSON-LD de schema.org en las páginas de club

Cada página de club lleva un bloque JSON-LD de schema.org: un WebPage (con dateModified = last_verified) cuyo mainEntity es un GolfCourse — hoyos, par, horarios, normas para visitantes, green fee como oferta, acción de reserva, idiomas. Solo se incluyen datos verificados y no nulos.

La tarjeta de club

Cada club tiene un único objeto canónico card_version: "1.2": identidad, ubicación, contacto, campo, juego (green fees con su base), reserva (canales, proveedor, antelación, cancelación, respuesta prevista), horarios, instalaciones, estado, procedencia por campo y licencia. Obtenlo desde get_club (structuredContent.card) o desde el feed (card); el JSON-LD de la página de arriba es una proyección suya. JSON Schema: /schema/card-v1.json.

  • La provenance de cada campo indica quién lo confirmó (verified_by: directorio, club o agencia) y cómo (origin).
  • status.claimed = una cuenta verificada ha reclamado el club (nunca se expone a quien lo reclama); verified_by_club = el club publicó esos campos. Ambos son independientes.
  • Ausente ≠ falso: los datos desconocidos son null. currency siempre está presente cuando hay un importe. expected_response es la declaración del club; requests_enabled es false.

Cómo citar golfdata

  • Al repetir un dato, cita las URLs de su fuente y la fecha last_verified. Los resultados de búsqueda son pistas, no datos citables: obtén primero la procedencia con get_club o list_sources_for.
  • Los campos en los que las fuentes no coinciden se dejan vacíos («No verificado») en lugar de adivinarse.
  • Datos del mapa © colaboradores de OpenStreetMap; no hagas scraping de las teselas del mapa.

Sobre los datos y los niveles de confianza