Ourway – Camino de Santiago

Plan, quote & book the Camino de Santiago: routes, stages, live hotels, one package price, FAQ.

我該用這個嗎

品質與安全性

A
說明品質
98%
結構描述完整度
68%
命名品質
83%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~5,098Token(工具定義)
~2.1 KB典型回應大小
顯著的注意力影響(128k 上下文的 3.98%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "camino-de-santiago": {
      "url": "https://mcp.ourway.travel/mcp"
    }
  }
}

遠端端點

https://mcp.ourway.travel/mcpstreamable-http

它能做什麼

工具清單

工具(12)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢camino_de_santiago_info(question, idioma)

Practical, up-to-date answers about the Camino de Santiago from Ourway's specialist team — use it for ANY Camino question even when the user is not booking: pilgrim credential (credencial), the Compostela certificate and the 100 km / 200 km rule, best time of year and weather, which route to choose (Camino Francés, Portugués Central or Coastal from Porto/Tui, Norte, Primitivo, Inglés from Ferrol, Vía de la Plata, Finisterre-Muxía), how many days from Sarria / Tui / Porto / Roncesvalles / Saint-Jean-Pied-de-Port / Oviedo, daily distances and difficulty, luggage & backpack transfer, what to pack, walking with kids or seniors, cycling the Camino, pets, accommodation types (albergues, hostales, hotels, casas rurales), budget, how far ahead to book, getting to the start and back from Santiago, safety, food (pilgrim menu) and etiquette. `question`: free text in any language; `idioma`: es | en (auto-detected if omitted). Cheap and instant (no availability check). / Respuestas prácticas del equipo Ourway sobre el Camino de Santiago: credencial, Compostela, 100 km, mejor época, qué ruta elegir, etapas, mochila, niños, bici, mascotas, presupuesto… Úsala ante cualquier duda sobre el Camino aunque el usuario no quiera reservar. (es: info_camino)

輸入結構描述

{
  "type": "object",
  "properties": {
    "question": {
      "title": "Question",
      "type": "string"
    },
    "idioma": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Idioma"
    }
  },
  "required": [
    "question"
  ],
  "title": "camino_de_santiago_infoArguments"
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "camino_de_santiago_infoDictOutput"
}
🟢list_camino_routes(tipo)

List the Camino de Santiago routes Ourway sells and can book: Camino Francés (French Way), Camino Portugués (Central & Coastal), Camino del Norte, Camino Primitivo, Camino Inglés, Vía de la Plata / Sanabrés, Finisterre-Muxía and more, with slug, name and total km. Start here for any Camino de Santiago trip question ("which Camino should I walk?", "routes from Porto / Sarria / Tui"). `tipo`: a_pie (walking) | en_bicicleta (cycling) | a_caballo. / Lista los Caminos de Santiago que Ourway comercializa: solo estos son reservables. El itinerario reservable lo construye plan_camino_itinerary. (es: listar_caminos)

輸入結構描述

{
  "type": "object",
  "properties": {
    "tipo": {
      "default": "a_pie",
      "title": "Tipo",
      "type": "string"
    }
  },
  "title": "list_camino_routesArguments"
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "list_camino_routesDictOutput"
}
🟢camino_route_towns(camino_slug)

Towns along a Camino de Santiago route in trail order (Sarria, Portomarín, O Cebreiro, Tui, Porto, Roncesvalles, Ferrol…), with id, name, cumulative km and GPS coordinates. Use it to pick the starting town (`poblacion_inicio_id` for plan_camino_itinerary), to check where the 100 km Compostela threshold falls, and to validate overnight stops. / Poblaciones de un camino en orden de trazado con km acumulados y coordenadas. Las etapas reservables las construye plan_camino_itinerary. (es: poblaciones_ruta)

輸入結構描述

{
  "type": "object",
  "properties": {
    "camino_slug": {
      "title": "Camino Slug",
      "type": "string"
    }
  },
  "required": [
    "camino_slug"
  ],
  "title": "camino_route_townsArguments"
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "camino_route_townsDictOutput"
}
🟢plan_camino_itinerary(camino_slug, poblacion_inicio_id, fecha_inicio, ritmo, num_noches, ...)

Build a day-by-day Camino de Santiago itinerary (walking stages, km per day, overnight towns, dates, route map image) following the camino's OFFICIAL stages adapted to the pilgrim's daily pace. Use it for any Camino itinerary, stage plan or "how many days from Sarria/Tui/Porto/Roncesvalles" question: it is the itinerary Ourway books. `ritmo`: tranquilo (18-22 km/day) | medio (22-28) | experimentado (28-35); use `km_max_etapa` instead for an explicit km cap or cycling (~2x). `fecha_inicio` (YYYY-MM-DD, first night) is optional: without it dates come back "to be confirmed" — call it anyway. Only pass `num_noches` when the client fixes the number of nights. Returns `mapa_url`: a real PNG map of the route with numbered overnight stops — show it in the chat right after the stage table (`![Mapa](mapa_url)`). / Fuente del itinerario reservable: úsala para proponer o revisar etapas, aunque el cliente aún no tenga fecha. Presenta el itinerario y pide confirmación ANTES de cotizar. (es: proponer_itinerario)

輸入結構描述

{
  "type": "object",
  "properties": {
    "camino_slug": {
      "title": "Camino Slug",
      "type": "string"
    },
    "poblacion_inicio_id": {
      "title": "Poblacion Inicio Id",
      "type": "integer"
    },
    "fecha_inicio": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Fecha Inicio"
    },
    "ritmo": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Ritmo"
    },
    "num_noches": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Num Noches"
    },
    "poblacion_destino_id": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Poblacion Destino Id"
    },
    "km_max_etapa": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Km Max Etapa"
    }
  },
  "required": [
    "camino_slug",
    "poblacion_inicio_id"
  ],
  "title": "plan_camino_itineraryArguments"
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "plan_camino_itineraryDictOutput"
}
🟢quote_camino_package(etapas, habitaciones, presupuesto, meal_plan, categoria_alojamiento, ...)

Quote a complete Camino de Santiago trip as ONE all-in package price (hotels night by night with LIVE availability + pilgrim extras) — the source of the official Ourway package price. Use it whenever the user asks how much a Camino costs, wants a quote, or approves an itinerary from plan_camino_itinerary. It auto-selects the best accommodation for each night (Ourway quality filters: verified meal plan, close to the centre, guest rating) and returns a single `total_paquete_eur`. NEVER returns per-hotel, per-night or per-extra prices. `presupuesto` is REQUIRED (per person, whole trip, EUR): sin_preferencia | lt_500 | 500_1000 | 1000_1500 | gt_1500. `meal_plan`: RO | BB | HB | FB. `categoria_alojamiento`: recomendado | hoteles_encanto | casas_rurales | albergues. `extras_ids` from camino_extras_catalog (default: pilgrim credential + insurance; luggage transfer if incluir_mochila=true). ALWAYS pass `nacionalidad` (or `residente_espana`): it sets the insurance. `mascotas=true` when travelling with a pet. If a category has no availability one night the best alternative category is chosen (see `avisos`). Keep `oferta_paquete_firmada` verbatim for create_camino_booking_proposal. Usually 20-45 s (live checks hotel by hotel): tell the user it takes a moment. If your client times out, call it again with the SAME parameters: the result is cached and comes back instantly. / Fuente del precio oficial Ourway: un solo importe total del paquete, nunca precios parciales. Sin presupuesto no se cotiza. Si tu cliente corta por timeout, repite la llamada con los mismos parámetros: el resultado está en caché. (es: cotizar_paquete)

輸入結構描述

{
  "type": "object",
  "properties": {
    "etapas": {
      "items": {
        "$ref": "#/$defs/EtapaPaquete"
      },
      "title": "Etapas",
      "type": "array"
    },
    "habitaciones": {
      "items": {
        "$ref": "#/$defs/HabitacionOcupacion"
      },
      "title": "Habitaciones",
      "type": "array"
    },
    "presupuesto": {
      "title": "Presupuesto",
      "type": "string"
    },
    "meal_plan": {
      "default": "BB",
      "title": "Meal Plan",
      "type": "string"
    },
    "categoria_alojamiento": {
      "default": "recomendado",
      "title": "Categoria Alojamiento",
      "type": "string"
    },
    "extras_ids": {
      "anyOf": [
        {
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Extras Ids"
    },
    "nacionalidad": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Nacionalidad"
    },
    "incluir_mochila": {
      "default": false,
      "title": "Incluir Mochila",
      "type": "boolean"
    },
    "residente_espana": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Residente Espana"
    },
    "mascotas": {
      "default": false,
      "title": "Mascotas",
      "type": "boolean"
    }
  },
  "required": [
    "etapas",
    "habitaciones",
    "presupuesto"
  ],
  "$defs": {
    "EtapaPaquete": {
      "properties": {
        "noche_num": {
          "minimum": 1,
          "title": "Noche Num",
          "type": "integer"
        },
        "poblacion_id": {
          "description": "ID de la población de pernocta (de camino_route_towns / plan_camino_itinerary)",
          "title": "Poblacion Id",
          "type": "integer"
        },
        "fecha_entrada": {
          "description": "YYYY-MM-DD",
          "title": "Fecha Entrada",
          "type": "string"
        },
        "fecha_salida": {
          "description": "YYYY-MM-DD (normalmente el día siguiente)",
          "title": "Fecha Salida",
          "type": "string"
        }
      },
      "required": [
        "noche_num",
        "poblacion_id",
        "fecha_entrada",
        "fecha_salida"
      ],
      "title": "EtapaPaquete",
      "type": "object"
    },
    "HabitacionOcupacion": {
      "description": "Ocupación de UNA habitación.",
      "properties": {
        "adults": {
          "description": "Adultos en esta habitación",
          "maximum": 6,
          "minimum": 1,
          "title": "Adults",
          "type": "integer"
        },
        "children_ages": {
          "description": "Edades de los niños en esta habitación, ej [5, 8]",
          "items": {
            "type": "integer"
          },
          "title": "Children Ages",
          "type": "array"
        }
      },
      "required": [
        "adults"
      ],
      "title": "HabitacionOcupacion",
      "type": "object"
    }
  },
  "title": "quote_camino_packageArguments"
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "quote_camino_packageDictOutput"
}
🟢camino_hotel_alternatives(oferta_paquete_firmada, noche_num)

Up to 3 alternative hotels for ONE night of a quoted Camino de Santiago package, each with the change in the package total (`variacion_total_eur`), room, meal plan and distance to the centre. Use it when the client wants a different hotel in a town — do NOT re-quote the whole trip. Then apply the choice with swap_camino_hotel (`alternativa_id`). / Alternativas para una noche a partir de la disponibilidad ya consultada; nunca precios por noche. (es: alternativas_alojamiento)

輸入結構描述

{
  "type": "object",
  "properties": {
    "oferta_paquete_firmada": {
      "title": "Oferta Paquete Firmada",
      "type": "string"
    },
    "noche_num": {
      "title": "Noche Num",
      "type": "integer"
    }
  },
  "required": [
    "oferta_paquete_firmada",
    "noche_num"
  ],
  "title": "camino_hotel_alternativesArguments"
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "camino_hotel_alternativesDictOutput"
}
🟢adjust_camino_package(oferta_paquete_firmada, objetivo, noche_num)

Propose per-night hotel swaps on a quoted Camino de Santiago package to reach a goal: cheaper, higher category, closer to the town centre or with breakfast. `objetivo`: bajar_precio | subir_categoria | mas_centrico | con_desayuno; optional `noche_num` to limit to one night. Use it when the client asks to LOWER THE PRICE, UPGRADE, sleep MORE CENTRAL or ADD BREAKFAST — do not re-quote. Returns each proposal with its change in the total and the total if all are applied; apply accepted ones one by one with swap_camino_hotel, chaining the new offer. If there are no proposals, offer to re-quote with another category/itinerary. (es: ajustar_paquete)

輸入結構描述

{
  "type": "object",
  "properties": {
    "oferta_paquete_firmada": {
      "title": "Oferta Paquete Firmada",
      "type": "string"
    },
    "objetivo": {
      "title": "Objetivo",
      "type": "string"
    },
    "noche_num": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Noche Num"
    }
  },
  "required": [
    "oferta_paquete_firmada",
    "objetivo"
  ],
  "title": "adjust_camino_packageArguments"
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "adjust_camino_packageDictOutput"
}
🟡swap_camino_hotel(oferta_paquete_firmada, noche_num, alternativa_id)

Apply one alternative from camino_hotel_alternatives or adjust_camino_package to a quoted Camino de Santiago package and get a NEW signed offer (`oferta_paquete_firmada`) with the new package total. Always use the most recent offer for create_camino_booking_proposal. / Sustituye el hotel de esa noche y devuelve una nueva oferta firmada con el nuevo total. (es: cambiar_alojamiento)

輸入結構描述

{
  "type": "object",
  "properties": {
    "oferta_paquete_firmada": {
      "title": "Oferta Paquete Firmada",
      "type": "string"
    },
    "noche_num": {
      "title": "Noche Num",
      "type": "integer"
    },
    "alternativa_id": {
      "title": "Alternativa Id",
      "type": "string"
    }
  },
  "required": [
    "oferta_paquete_firmada",
    "noche_num",
    "alternativa_id"
  ],
  "title": "swap_camino_hotelArguments"
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "swap_camino_hotelDictOutput"
}
🟢camino_extras_catalog(nacionalidad)

Official Ourway catalog of pilgrim extras for the Camino de Santiago: pilgrim credential (credencial), travel insurance, luggage / backpack transfer between stages, guided visits and activities. No unit prices (extras are folded into the package total via quote_camino_package(extras_ids=…)). `preseleccionado` marks the defaults (credential + insurance by nationality). The ONLY extras that may be offered. / Extras oficiales del catálogo, sin precio unitario y sin mostrar IDs. (es: catalogo_extras)

輸入結構描述

{
  "type": "object",
  "properties": {
    "nacionalidad": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Nacionalidad"
    }
  },
  "title": "camino_extras_catalogArguments"
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "camino_extras_catalogDictOutput"
}
🟢camino_trip_intake_form

Intake form contract for a tailor-made Camino de Santiago trip: the fields to collect conversationally from the customer BEFORE quoting anything (rooms with children's ages, nationality/residence, start date and nights, walking or cycling, route and starting town, daily pace, accommodation category, meal plan, luggage transfer, pets, budget per person, comments). Call it at the start of any planning request. / Espejo del formulario 'Camino a medida' de ourway.travel. No llames a quote_camino_package sin `presupuesto` ni a create_camino_booking_proposal sin los datos de contacto. (es: iniciar_peticion_medida)

輸入結構描述

{
  "type": "object",
  "properties": {},
  "title": "camino_trip_intake_formArguments"
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "camino_trip_intake_formDictOutput"
}
🟡create_camino_booking_proposal(cliente, idioma_codigo, camino_slug, oferta_paquete_firmada, formulario, ...)

Create the Ourway booking request for a quoted Camino de Santiago package and return the customer's personal proposal link (valid 7 days) where they review the trip day by day, confirm and pay securely. ONLY call it after the customer explicitly approves the itinerary and the package total and gives real contact details (full name, email, phone, nationality). Accepts no prices: only the signed offer from quote_camino_package / swap_camino_hotel. / Crea la petición en Ourway y devuelve el enlace de la propuesta (única llamada a la acción). (es: crear_propuesta)

輸入結構描述

{
  "type": "object",
  "properties": {
    "cliente": {
      "$ref": "#/$defs/DatosCliente"
    },
    "idioma_codigo": {
      "title": "Idioma Codigo",
      "type": "string"
    },
    "camino_slug": {
      "title": "Camino Slug",
      "type": "string"
    },
    "oferta_paquete_firmada": {
      "title": "Oferta Paquete Firmada",
      "type": "string"
    },
    "formulario": {
      "$ref": "#/$defs/FormularioMedida"
    },
    "poblacion_inicio_id": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Poblacion Inicio Id"
    },
    "poblacion_inicio_nombre": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Poblacion Inicio Nombre"
    }
  },
  "required": [
    "cliente",
    "idioma_codigo",
    "camino_slug",
    "oferta_paquete_firmada",
    "formulario"
  ],
  "$defs": {
    "DatosCliente": {
      "properties": {
        "nombre_completo": {
          "description": "Nombre y apellidos del cliente",
          "minLength": 5,
          "title": "Nombre Completo",
          "type": "string"
        },
        "email": {
          "description": "Email real del cliente (recibirá la propuesta)",
          "title": "Email",
          "type": "string"
        },
        "telefono": {
          "description": "Teléfono con prefijo internacional",
          "title": "Telefono",
          "type": "string"
        },
        "nacionalidad": {
          "description": "Nacionalidad del cliente (determina el seguro)",
          "title": "Nacionalidad",
          "type": "string"
        }
      },
      "required": [
        "nombre_completo",
        "email",
        "telefono",
        "nacionalidad"
      ],
      "title": "DatosCliente",
      "type": "object"
    },
    "FormularioMedida": {
      "description": "Espejo del bloque MEDIDA del formulario 'Camino a medida' de la web\n(api/procesar_solicitud_medida.php). Se serializa tal cual en\npeticiones_adicionales para que el CRS y su cotizador lo lean igual.",
      "properties": {
        "lodging_mode": {
          "default": "rooms",
          "enum": [
            "rooms",
            "shared"
          ],
          "title": "Lodging Mode",
          "type": "string"
        },
        "rooms": {
          "description": "Distribución por habitación",
          "items": {
            "$ref": "#/$defs/HabitacionFormulario"
          },
          "title": "Rooms",
          "type": "array"
        },
        "travel_type": {
          "default": "a_pie",
          "enum": [
            "a_pie",
            "en_bicicleta"
          ],
          "title": "Travel Type",
          "type": "string"
        },
        "itinerary": {
          "default": "experto",
          "enum": [
            "experto",
            "propio"
          ],
          "title": "Itinerary",
          "type": "string"
        },
        "accommodation": {
          "default": "recomendado",
          "enum": [
            "recomendado",
            "hoteles_encanto",
            "casas_rurales",
            "albergues"
          ],
          "title": "Accommodation",
          "type": "string"
        },
        "board": {
          "default": "BB",
          "enum": [
            "RO",
            "BB",
            "HB",
            "FB"
          ],
          "title": "Board",
          "type": "string"
        },
        "budget": {
          "enum": [
            "sin_preferencia",
            "lt_500",
            "500_1000",
            "1000_1500",
            "gt_1500"
          ],
          "title": "Budget",
          "type": "string"
        },
        "luggage": {
          "default": "no_seguro",
          "enum": [
            "si",
            "no",
            "no_seguro"
          ],
          "title": "Luggage",
          "type": "string"
        },
        "contact_preference": {
          "anyOf": [
            {
              "enum": [
                "whatsapp",
                "telefono",
                "email"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Contact Preference"
        },
        "observations": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Observations"
        }
      },
      "required": [
        "rooms",
        "budget"
      ],
      "title": "FormularioMedida",
      "type": "object"
    },
    "HabitacionFormulario": {
      "properties": {
        "adults": {
          "maximum": 6,
          "minimum": 1,
          "title": "Adults",
          "type": "integer"
        },
        "child_ages": {
          "items": {
            "type": "integer"
          },
          "title": "Child Ages",
          "type": "array"
        }
      },
      "required": [
        "adults"
      ],
      "title": "HabitacionFormulario",
      "type": "object"
    }
  },
  "title": "create_camino_booking_proposalArguments"
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "create_camino_booking_proposalDictOutput"
}
🟢camino_proposal_status(codigo)

Check the status of a Camino de Santiago booking proposal created through this channel (code PET-123): active / confirmed / expired, plus its link and deadline. Use it when the customer comes back asking about "my proposal", "my booking" or gives a PET code. / Estado de una propuesta creada por este canal. (es: estado_propuesta)

輸入結構描述

{
  "type": "object",
  "properties": {
    "codigo": {
      "title": "Codigo",
      "type": "string"
    }
  },
  "required": [
    "codigo"
  ],
  "title": "camino_proposal_statusArguments"
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "camino_proposal_statusDictOutput"
}

建議的提示詞

list_items
List all [items] available in Ourway – Camino de Santiago
預期的工具: list_camino_routes
browse_collection
Show me the [collection] from Ourway – Camino de Santiago
預期的工具: list_camino_routes

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本12 個工具
已驗證未記錄版本12 個工具