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 个工具