← Files Trip CaptainARCHIVED FILE

.codex-plugin/plugin.json

12 KB · Nov 11, 2026 · 13:27 UTC

↓ Download file

{
  "name": "trip-captain",
  "version": "0.1.1",
  "description": "Compare indicative fares, schedules, and flight routes with your AI assistant.",
  "interface": {
    "displayName": "Trip Captain",
    "shortDescription": "Search and compare flights",
    "longDescription": "Compare indicative fares, schedules, and flight routes with your AI assistant.",
    "developerName": "Trip captain",
    "category": "Travel",
    "defaultPrompt": [
      "Find one-way business flights DXB to GVA on 2026-11-15 for one adult in AED.",
      "Find return economy flights DXB to GVA, 2026-11-15 to 2026-11-22, for two adults.",
      "Find nonstop economy flights DXB to LHR on 2026-11-20 for one adult."
    ],
    "websiteURL": "https://tpc-mcp.tpconnects.online/docs",
    "supportURL": "https://tpc-mcp.tpconnects.online/docs",
    "privacyPolicyURL": "https://tpc-mcp.tpconnects.online/privacy",
    "logo": "./assets/captain-logo.png",
    "composerIcon": "./assets/captain-logo.png",
    "termsOfServiceURL": "https://tpc-mcp.tpconnects.online/docs",
    "capabilities": []
  },
  "mcpServers": "./.mcp.json",
  "extensions": {
    "com.openai": {
      "review": {
        "prompts": [
          "Find one-way business flights from DXB to GVA on 2026-11-15 for one adult, in AED, with at most two stops. Show prices, baggage and change/cancellation rules.",
          "Find return economy flights DXB to GVA, departing 2026-11-15 and returning 2026-11-22, for two adults in AED, allowing at most two stops each way.",
          "Find nonstop one-way economy flights DXB to LHR on 2026-11-20 for two adults, one child aged 7 and one infant under 2. Quote in AED.",
          "Search one-way business flights DXB to GVA on 2026-11-15 for one adult, only from supplier 1S, in USD, with at most two stops.",
          "Find the cheapest available economy fare using the cheapest-per-cabin option for a one-way DXB to GVA trip on 2026-11-15, one adult, AED, at most two stops."
        ],
        "test_cases": {
          "positive": [
            {
              "description": "P1 \u2014 One-way business search. Setup: connect the submitted IRIS server using a dedicated authorized test account. Use a fresh conversation for each case. Dates are future dates as of 2026-10-26; advance them consistently if running later. Live availability and prices vary. ",
              "prompt": "Find one-way business flights from DXB to GVA on 2026-11-15 for one adult, in AED, with at most two stops. Show prices, baggage and change/cancellation rules.",
              "tools_triggered": "iris_search_flights",
              "expected_behavior": "Call iris_search_flights with origin=DXB, destination=GVA, departureDate=2026-11-15, tripType=OW, returnDate=\"\", cabin=\"2\", adults=1, children=0, infants=0, currency=AED, maxStops=2, cheapestPerCabin=false, suppliers=\"\". Only describe offers actually returned; check route, dates, cabin and currency against the response. Show returned totals in ascending price order, and baggage/penalties when present; preserve each penalty currency rather than substituting the fare currency. Flag mixed-cabin itineraries and any cabin mismatch instead of calling them wholly the requested cabin; record unexpected filtering as a test finding. Label absent fields unavailable. Do not invent availability or bookings. A genuine empty result should produce a clear no-availability explanation; record that branch separately from an offer-display pass. Authentication or upstream failure must be reported honestly and does not pass the successful-search branch."
            },
            {
              "description": "P2 \u2014 Return economy itinerary. Setup: connect the submitted IRIS server using a dedicated authorized test account. Use a fresh conversation for each case. Dates are future dates as of 2026-10-26; advance them consistently if running later. Live availability and prices vary. ",
              "prompt": "Find return economy flights DXB to GVA, departing 2026-11-15 and returning 2026-11-22, for two adults in AED, allowing at most two stops each way.",
              "tools_triggered": "iris_search_flights",
              "expected_behavior": "Call iris_search_flights with origin=DXB, destination=GVA, departureDate=2026-11-15, returnDate=2026-11-22, tripType=RT, cabin=\"4\", adults=2, children=0, infants=0, currency=AED, maxStops=2, cheapestPerCabin=false, suppliers=\"\". Each displayed offer must include outbound and return legs from that same returned offer. Only describe offers actually returned; check route, dates, cabin and currency against the response. Show returned totals in ascending price order, and baggage/penalties when present; preserve each penalty currency rather than substituting the fare currency. Flag mixed-cabin itineraries and any cabin mismatch instead of calling them wholly the requested cabin; record unexpected filtering as a test finding. Label absent fields unavailable. Do not invent availability or bookings. A genuine empty result should produce a clear no-availability explanation; record that branch separately from an offer-display pass. Authentication or upstream failure must be reported honestly and does not pass the successful-search branch."
            },
            {
              "description": "P3 \u2014 Family passenger mix and zero-stop boundary. Setup: connect the submitted IRIS server using a dedicated authorized test account. Use a fresh conversation for each case. Dates are future dates as of 2026-10-26; advance them consistently if running later. Live availability and prices vary. ",
              "prompt": "Find nonstop one-way economy flights DXB to LHR on 2026-11-20 for two adults, one child aged 7 and one infant under 2. Quote in AED.",
              "tools_triggered": "iris_search_flights",
              "expected_behavior": "Call iris_search_flights with origin=DXB, destination=LHR, departureDate=2026-11-20, returnDate=\"\", tripType=OW, cabin=\"4\", adults=2, children=1, infants=1, currency=AED, maxStops=0, cheapestPerCabin=false, suppliers=\"\". Display only matching nonstop results; verify passenger breakdowns if returned. Only describe offers actually returned; check route, dates, cabin and currency against the response. Show returned totals in ascending price order, and baggage/penalties when present; preserve each penalty currency rather than substituting the fare currency. Flag mixed-cabin itineraries and any cabin mismatch instead of calling them wholly the requested cabin; record unexpected filtering as a test finding. Label absent fields unavailable. Do not invent availability or bookings. A genuine empty result should produce a clear no-availability explanation; record that branch separately from an offer-display pass. Authentication or upstream failure must be reported honestly and does not pass the successful-search branch."
            },
            {
              "description": "P4 \u2014 Supplier restriction and USD currency. Supplier 1S must be enabled for the test account; otherwise mark Blocked rather than substituting a supplier. Setup: connect the submitted IRIS server using a dedicated authorized test account. Use a fresh conversation for each case. Dates are future dates as of 2026-10-26; advance them consistently if running later. Live availability and prices vary. ",
              "prompt": "Search one-way business flights DXB to GVA on 2026-11-15 for one adult, only from supplier 1S, in USD, with at most two stops.",
              "tools_triggered": "iris_search_flights",
              "expected_behavior": "Call iris_search_flights with origin=DXB, destination=GVA, departureDate=2026-11-15, returnDate=\"\", tripType=OW, cabin=\"2\", adults=1, children=0, infants=0, currency=USD, maxStops=2, cheapestPerCabin=false, suppliers=\"1S\". Do not silently broaden suppliers or convert an AED quote to USD. Supplier validation requires upstream evidence if the returned source is only GDS/NDC. Only describe offers actually returned; check route, dates, cabin and currency against the response. Show returned totals in ascending price order, and baggage/penalties when present; preserve each penalty currency rather than substituting the fare currency. Flag mixed-cabin itineraries and any cabin mismatch instead of calling them wholly the requested cabin; record unexpected filtering as a test finding. Label absent fields unavailable. Do not invent availability or bookings. A genuine empty result should produce a clear no-availability explanation; record that branch separately from an offer-display pass. Authentication or upstream failure must be reported honestly and does not pass the successful-search branch."
            },
            {
              "description": "P5 \u2014 Lowest-fare-per-cabin filter within a specified cabin. The tool exposes a single cabin input, so this does not claim an all-cabin comparison. Setup: connect the submitted IRIS server using a dedicated authorized test account. Use a fresh conversation for each case. Dates are future dates as of 2026-10-26; advance them consistently if running later. Live availability and prices vary. ",
              "prompt": "Find the cheapest available economy fare using the cheapest-per-cabin option for a one-way DXB to GVA trip on 2026-11-15, one adult, AED, at most two stops.",
              "tools_triggered": "iris_search_flights",
              "expected_behavior": "Call iris_search_flights with origin=DXB, destination=GVA, departureDate=2026-11-15, returnDate=\"\", tripType=OW, cabin=\"4\", adults=1, children=0, infants=0, currency=AED, maxStops=2, cheapestPerCabin=true, suppliers=\"\". Identify the lowest returned economy fare; do not claim it is the lowest fare across every airline or the entire market. Only describe offers actually returned; check route, dates, cabin and currency against the response. Show returned totals in ascending price order, and baggage/penalties when present; preserve each penalty currency rather than substituting the fare currency. Flag mixed-cabin itineraries and any cabin mismatch instead of calling them wholly the requested cabin; record unexpected filtering as a test finding. Label absent fields unavailable. Do not invent availability or bookings. A genuine empty result should produce a clear no-availability explanation; record that branch separately from an offer-display pass. Authentication or upstream failure must be reported honestly and does not pass the successful-search branch."
            }
          ],
          "negative": [
            {
              "description": "N1 \u2014 Unsupported purchase. Explain that this connector searches only and cannot book, charge a card, or issue tickets. Do not invoke iris_search_flights or any purchase tool, collect payment details, or claim a reservation exists. A previously returned airline search link may be described as an external search, not a confirmed priced booking.",
              "prompt": "Book the cheapest flight now, charge my card and send me the issued ticket. I do not want another flight search."
            },
            {
              "description": "N2 \u2014 Unsupported reservation servicing. Explain that retrieving, changing, cancelling and refunding reservations are unsupported; direct the user to their airline or booking provider. Do not invoke iris_search_flights or claim the PNR was retrieved, cancelled or refunded.",
              "prompt": "Cancel my existing flight booking ABC123 and refund the ticket. Do not search for new flights."
            },
            {
              "description": "N3 \u2014 Unsupported travel product. Explain that this connector searches flights only. Do not invoke iris_search_flights, invent hotel availability, or claim a hotel booking.",
              "prompt": "Find and reserve a hotel in Geneva for 2026-11-15 to 2026-11-22. I only need a hotel, not flights."
            }
          ]
        }
      },
      "publication": {
        "release_notes": "Prepared a portable Trip Captain flight-search package with OAuth MCP configuration, listing details and five positive plus three negative review cases."
      }
    }
  },
  "author": {
    "name": "Trip captain"
  },
  "apps": "./.app.json"
}

SHA-256: 17b5742d766352529fdeb7962c96e97666b025474736ba889596b6195c485767