concierge

Search Africa safari destinations, generate day-by-day itineraries, and price expert travel work.

使うべきか

品質と安全性

A
説明の品質
96%
スキーマの完全性
84%
命名の品質
97%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

検出事項(1)

  • LOWTool 'add_day' description lacks action verbadd_day 内

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~6,056トークン数(ツール定義)
~2.1 KB一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 4.73%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "concierge": {
      "url": "https://concierge.iconic-expeditions.com/mcp"
    }
  }
}

リモートエンドポイント

https://concierge.iconic-expeditions.com/mcpstreamable-http

できること

ツール一覧

ツール(23)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢search_content(type, search, per_page)

Search Iconic Expeditions content across itineraries, activities, destinations, and posts. Flows through the content chain (WordPress -> local cache -> AI fallback), so gaps WordPress doesn't cover are filled with clearly-labeled AI-synthesized results. Each item includes a `source` field (wordpress | cache | ai).

入力スキーマ

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "itinerary",
        "activity",
        "destination",
        "post"
      ],
      "description": "Content type to search"
    },
    "search": {
      "description": "Search keyword",
      "type": "string"
    },
    "per_page": {
      "default": 10,
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    }
  },
  "required": [
    "type"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢search_wp_content(type, search, per_page)

Alias of search_content, kept for backwards compatibility. Prefer search_content.

入力スキーマ

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "itinerary",
        "activity",
        "destination",
        "post"
      ],
      "description": "Content type to search"
    },
    "search": {
      "description": "Search keyword",
      "type": "string"
    },
    "per_page": {
      "default": 10,
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    }
  },
  "required": [
    "type"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_content(type, id)

Fetch a single content item by type and id, walking the content chain (WordPress -> cache). Returns the item with its `source`.

入力スキーマ

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "itinerary",
        "activity",
        "destination",
        "post"
      ]
    },
    "id": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Source content id (WordPress post id)"
    }
  },
  "required": [
    "type",
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_wp_content(type, id)

Alias of get_content, kept for backwards compatibility. Prefer get_content.

入力スキーマ

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "itinerary",
        "activity",
        "destination",
        "post"
      ]
    },
    "id": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Source content id (WordPress post id)"
    }
  },
  "required": [
    "type",
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_destinations(region, category, limit)

List destinations from the database, optionally filtered by region or category.

入力スキーマ

{
  "type": "object",
  "properties": {
    "region": {
      "description": "Filter by region name, e.g. 'Matabeleland North'",
      "type": "string"
    },
    "category": {
      "description": "Filter by category, e.g. 'National Park'",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_destination(identifier)

Get full details for a single destination by slug or id.

入力スキーマ

{
  "type": "object",
  "properties": {
    "identifier": {
      "type": "string",
      "description": "Either a destination id or its URL slug"
    }
  },
  "required": [
    "identifier"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_itinerary(itinerary_id)

Get a full itinerary with all days and activities, sorted by day number and time slot. Public itineraries are readable without a token; private ones require the owning token.

入力スキーマ

{
  "type": "object",
  "properties": {
    "itinerary_id": {
      "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)$",
      "description": "The UUID of the itinerary"
    }
  },
  "required": [
    "itinerary_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_itineraries

List itineraries created by the Iconic Expeditions concierge, most recent first. Requires a bearer token.

入力スキーマ

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡create_itinerary(title, num_days, description, start_date)

Create a new (empty) itinerary attributed to the Iconic Expeditions concierge, made public and returned with its share link. Days are created automatically. Requires a bearer token.

入力スキーマ

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "minLength": 1,
      "description": "Itinerary title, e.g. '7-Day Hwange Safari'"
    },
    "num_days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 30,
      "description": "Number of days"
    },
    "description": {
      "description": "Optional short description",
      "type": "string"
    },
    "start_date": {
      "description": "Optional ISO date string for day 1, e.g. '2025-06-01'",
      "type": "string"
    }
  },
  "required": [
    "title",
    "num_days"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢generate_itinerary_from_places(title, places, num_days, preferences, language)

Give at least 3 places plus optional traveller preferences and let the AI concierge build a full, bespoke day-by-day itinerary. It mines Iconic Expeditions content for real detail and synthesizes an ORIGINAL plan tailored to the guest (never a copy of a published itinerary). Attributed to the Iconic Expeditions account and made public. Returns immediately with the itinerary id + share link; poll get_itinerary for progress (generation_status: pending -> building -> complete). Requires a bearer token.

入力スキーマ

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "minLength": 1,
      "description": "Itinerary title, e.g. 'Highlights of Zimbabwe'"
    },
    "places": {
      "minItems": 3,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      },
      "description": "At least 3 place names, e.g. ['Victoria Falls', 'Hwange', 'Mana Pools']"
    },
    "num_days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 30,
      "description": "Number of days for the trip"
    },
    "preferences": {
      "description": "Traveller preferences that should shape the plan: pace, interests, budget, travel style",
      "type": "string"
    },
    "language": {
      "description": "Language for day titles, notes, and activity text: 'en' (English), 'ru' (Russian), or 'zh' (Chinese). Defaults to English.",
      "type": "string",
      "enum": [
        "en",
        "ru",
        "zh"
      ]
    }
  },
  "required": [
    "title",
    "places",
    "num_days"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡update_itinerary(itinerary_id, title, description, start_date, is_public)

Update metadata (title, description, dates, public status) on a concierge itinerary. Requires a bearer token.

入力スキーマ

{
  "type": "object",
  "properties": {
    "itinerary_id": {
      "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)$"
    },
    "title": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "start_date": {
      "type": "string"
    },
    "is_public": {
      "description": "Set false to unpublish the shareable link",
      "type": "boolean"
    }
  },
  "required": [
    "itinerary_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴delete_itinerary(itinerary_id)

Permanently delete a concierge itinerary and all its days and activities. Requires a bearer token.

入力スキーマ

{
  "type": "object",
  "properties": {
    "itinerary_id": {
      "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)$"
    }
  },
  "required": [
    "itinerary_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡add_day(itinerary_id, title, notes)

Append an extra day to a concierge itinerary and increment num_days. Requires a bearer token.

入力スキーマ

{
  "type": "object",
  "properties": {
    "itinerary_id": {
      "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)$"
    },
    "title": {
      "description": "Optional day label, e.g. 'Drive to Hwange'",
      "type": "string"
    },
    "notes": {
      "type": "string"
    }
  },
  "required": [
    "itinerary_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_itinerary_dossier(itinerary_id)

Read an itinerary's planning dossier: its legs, month-by-month seasonality, cost model, booking order, field notes and open choices. Public — no token needed. Returns nulls for blocks the itinerary doesn't have; older itineraries have none of them.

入力スキーマ

{
  "type": "object",
  "properties": {
    "itinerary_id": {
      "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)$"
    }
  },
  "required": [
    "itinerary_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢price_itinerary(itinerary_id, tier_id, option_ids, nights, travellers)

Price an itinerary's cost model against a selection: a comfort tier, any per-line choices, a trip length and a traveller count. Returns the per-person line breakdown and the group total. Public — no token needed. Amounts are in minor units. Call get_itinerary_dossier first for the tier and option ids.

入力スキーマ

{
  "type": "object",
  "properties": {
    "itinerary_id": {
      "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)$"
    },
    "tier_id": {
      "description": "Defaults to the cheapest tier",
      "type": "string"
    },
    "option_ids": {
      "description": "One entry per cost option group you want to choose in",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "group_id": {
            "type": "string"
          },
          "option_id": {
            "type": "string"
          }
        },
        "required": [
          "group_id",
          "option_id"
        ]
      }
    },
    "nights": {
      "description": "Defaults to the cost model's reference length",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "travellers": {
      "default": 1,
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "itinerary_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡set_itinerary_dossier(itinerary_id, countries, legs, seasonality, cost_model, ...)

Write the planning layer above an itinerary's day-by-day. Every block is optional — send only the ones you mean to write. Each block you DO send REPLACES that block entirely, so restate it in full: a partial legs list silently deletes the rest of the legs. Requires a bearer token.

入力スキーマ

{
  "type": "object",
  "properties": {
    "itinerary_id": {
      "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)$"
    },
    "countries": {
      "description": "How many countries the route crosses",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "legs": {
      "description": "The route's chapters. Every day must belong to exactly one leg, and legs must not overlap.",
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "Where this stretch is, in a word or two"
          },
          "summary": {
            "description": "A sentence or two on what these nights are for",
            "type": "string"
          },
          "start_day": {
            "type": "integer",
            "minimum": 1,
            "maximum": 9007199254740991
          },
          "end_day": {
            "type": "integer",
            "minimum": 1,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "title",
          "start_day",
          "end_day"
        ]
      }
    },
    "seasonality": {
      "description": "One row per thing the trip is timed around, scored 0-3 across all twelve months, plus a verdict per month worth arguing about",
      "type": "object",
      "properties": {
        "rows": {
          "minItems": 1,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string",
                "minLength": 1,
                "description": "What is being scored — a wildlife event, a trail condition, a sea state"
              },
              "scores": {
                "minItems": 12,
                "maxItems": 12,
                "type": "array",
                "items": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 3
                },
                "description": "January first. 0 = avoid, 1 = poor, 2 = workable, 3 = peak"
              }
            },
            "required": [
              "label",
              "scores"
            ]
          }
        },
        "months": {
          "minItems": 1,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "month": {
                "type": "integer",
                "minimum": 1,
                "maximum": 12
              },
              "rank": {
                "type": "string",
                "enum": [
                  "primary",
                  "alternative",
                  "workable",
                  "avoid"
                ]
              },
              "verdict": {
                "type": "string",
                "minLength": 1,
                "description": "Why this month is or isn't the one, in two or three sentences"
              },
              "tags": {
                "maxItems": 4,
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Short labels: 'Peak crossings', 'Books out first', 'Avoid'"
              }
            },
            "required": [
              "month",
              "rank",
              "verdict",
              "tags"
            ]
          }
        },
        "recommended_month": {
          "type": "integer",
          "minimum": 1,
          "maximum": 12,
          "description": "The month this plan is actually built around"
        }
      },
      "required": [
        "rows",
        "months",
        "recommended_month"
      ]
    },
    "cost_model": {
      "description": "Per-person breakdown lines, amounts per comfort tier, and any per-line choices",
      "type": "object",
      "properties": {
        "currency": {
          "type": "string",
          "minLength": 3,
          "maxLength": 3,
          "description": "ISO 4217, lowercase — 'usd'"
        },
        "reference_nights": {
          "type": "integer",
          "minimum": 1,
          "maximum": 9007199254740991,
          "description": "The trip length the amounts are quoted at"
        },
        "length_options": {
          "description": "Shorter or longer variants offered to the reader, in nights",
          "type": "array",
          "items": {
            "type": "integer",
            "minimum": 1,
            "maximum": 9007199254740991
          }
        },
        "lines": {
          "minItems": 1,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "key": {
                "type": "string",
                "minLength": 1,
                "description": "Short stable key used by tiers and option groups — 'land', 'permits', 'park_fees', 'flights'"
              },
              "label": {
                "type": "string",
                "minLength": 1
              },
              "scales_with_length": {
                "type": "boolean",
                "description": "True for nightly costs (camps, park fees), false for per-trip costs (permits, internal flights)"
              }
            },
            "required": [
              "key",
              "label",
              "scales_with_length"
            ]
          }
        },
        "tiers": {
          "minItems": 1,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string",
                "minLength": 1,
                "description": "'Lean', 'Mid-range', 'Luxury'"
              },
              "amounts": {
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "line_key": {
                      "type": "string"
                    },
                    "amount": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991,
                      "description": "Per person, in minor units — 620000 for $6,200"
                    }
                  },
                  "required": [
                    "line_key",
                    "amount"
                  ]
                },
                "description": "One entry per cost line"
              }
            },
            "required": [
              "label",
              "amounts"
            ]
          }
        },
        "option_groups": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string",
                "minLength": 1
              },
              "line_key": {
                "type": "string",
                "minLength": 1,
                "description": "Which cost line this choice overrides"
              },
              "options": {
                "minItems": 2,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "label": {
                      "type": "string",
                      "minLength": 1
                    },
                    "amount": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991,
                      "description": "Per person, in minor units — 620000 for $6,200"
                    },
                    "is_default": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "label",
                    "amount"
                  ]
                }
              }
            },
            "required": [
              "label",
              "line_key",
              "options"
            ]
          }
        },
        "notes": {
          "description": "What the figures exclude and how firm they are",
          "type": "string"
        }
      },
      "required": [
        "currency",
        "reference_nights",
        "lines",
        "tiers"
      ]
    },
    "booking_order": {
      "description": "What to book, in the order it has to happen",
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "minLength": 1
          },
          "detail": {
            "type": "string",
            "minLength": 1,
            "description": "Why it sits at this point in the order"
          }
        },
        "required": [
          "title",
          "detail"
        ]
      }
    },
    "field_notes": {
      "description": "Visas, certificates, luggage limits, kit",
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "heading": {
            "type": "string",
            "minLength": 1,
            "description": "'Visas', 'Yellow fever', 'Luggage'"
          },
          "body": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "heading",
          "body"
        ]
      }
    },
    "choices": {
      "description": "Either/ors deliberately left open for the traveller",
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "'Pick your coast'"
          },
          "options": {
            "minItems": 2,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "label": {
                  "type": "string",
                  "minLength": 1
                },
                "subtitle": {
                  "type": "string"
                },
                "body": {
                  "type": "string",
                  "minLength": 1,
                  "description": "What this option is actually like, and who should choose it"
                }
              },
              "required": [
                "label",
                "body"
              ]
            }
          }
        },
        "required": [
          "title",
          "options"
        ]
      }
    }
  },
  "required": [
    "itinerary_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡write_itinerary_day_detail(itinerary_id, day_number, narrative, callouts)

Write one day out at length — why it is shaped this way, what its timing depends on, what the alternatives cost — plus up to three callouts. Replaces that day's existing narrative and callouts. Requires a bearer token.

入力スキーマ

{
  "type": "object",
  "properties": {
    "itinerary_id": {
      "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)$"
    },
    "day_number": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "narrative": {
      "type": "string",
      "minLength": 1,
      "description": "Two or three short paragraphs, separated by blank lines. Plain text, no markup."
    },
    "callouts": {
      "maxItems": 3,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "kind": {
            "type": "string",
            "enum": [
              "alternative",
              "swap",
              "warning",
              "note"
            ]
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "'Alternative', 'Swap worth considering'"
          },
          "body": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "kind",
          "title",
          "body"
        ]
      }
    }
  },
  "required": [
    "itinerary_id",
    "day_number",
    "narrative"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡add_activity(itinerary_id, day_id, slot, title, description, ...)

Add an activity to a specific day and time slot (morning/afternoon/evening). Optionally link to a content item using its type and id. Requires a bearer token.

入力スキーマ

{
  "type": "object",
  "properties": {
    "itinerary_id": {
      "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)$",
      "description": "Parent itinerary UUID"
    },
    "day_id": {
      "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)$",
      "description": "The day UUID to add the activity to"
    },
    "slot": {
      "type": "string",
      "enum": [
        "morning",
        "afternoon",
        "evening"
      ]
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "description": "Short title for the activity"
    },
    "description": {
      "type": "string"
    },
    "duration_minutes": {
      "type": "integer",
      "minimum": 5,
      "maximum": 9007199254740991
    },
    "wp_content_type": {
      "description": "Content type to link",
      "type": "string",
      "enum": [
        "itinerary",
        "activity",
        "destination",
        "post"
      ]
    },
    "wp_content_id": {
      "description": "Source content id",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "itinerary_id",
    "day_id",
    "slot",
    "title"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴delete_activity(activity_id)

Remove an activity from a concierge itinerary day. Requires a bearer token.

入力スキーマ

{
  "type": "object",
  "properties": {
    "activity_id": {
      "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)$"
    }
  },
  "required": [
    "activity_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_pricing

List the paid concierge service tiers and their prices: itinerary verification, verification + full booking, and full guided service. Read-only and public — use this to quote a traveller before they buy.

入力スキーマ

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
⚪request_verification(itinerary_id, contact_email, notes)

Start a PAID itinerary verification. Our travel experts manually confirm availability, seasonality, routing and current lodge rates, then return a feasibility report and final price. Returns a Stripe checkout URL. Requires a bearer token.

入力スキーマ

{
  "type": "object",
  "properties": {
    "itinerary_id": {
      "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)$"
    },
    "contact_email": {
      "description": "Where to send the report + receipt",
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "notes": {
      "description": "Anything the experts should know (dates, group size, budget)",
      "type": "string"
    }
  },
  "required": [
    "itinerary_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
⚪request_bookings(itinerary_id, contact_email, notes)

Start a PAID booking service: verification PLUS we make all the bookings (lodges, transfers, activities, permits). Returns a Stripe checkout URL. Requires a bearer token.

入力スキーマ

{
  "type": "object",
  "properties": {
    "itinerary_id": {
      "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)$"
    },
    "contact_email": {
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "notes": {
      "type": "string"
    }
  },
  "required": [
    "itinerary_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
⚪request_full_service(itinerary_id, contact_email, notes)

Start a PAID full-service, fully-guided expedition with Iconic Expeditions guides. This $500 is a deposit; the final custom price is quoted by an expert afterward based on the itinerary. Returns a Stripe checkout URL. Requires a bearer token.

入力スキーマ

{
  "type": "object",
  "properties": {
    "itinerary_id": {
      "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)$"
    },
    "contact_email": {
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "notes": {
      "type": "string"
    }
  },
  "required": [
    "itinerary_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 23 件
検証済みバージョンは記録されていませんツール 23 件