{
  "data": {
    "a": {
      "slug": "kiwi-mcp",
      "name": "Kiwi.com MCP Server",
      "vendor": "Kiwi.com s.r.o.",
      "vendorUrl": "https://www.kiwi.com",
      "kind": "mcp",
      "category": "travel",
      "summary": "Kiwi.com's remote MCP server searches the travel agency's flight inventory for one-way and return trips. It needs no account or key, and each result carries a link to book on kiwi.com.",
      "url": "https://www.anchorterminal.com/tools/kiwi-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/kiwi-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/kiwi-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/kiwi-mcp.json",
      "repo": "https://github.com/alpic-ai/kiwi-mcp-server-public",
      "license": "Proprietary hosted service. The public repository holds only a README and has no licence file",
      "transports": [
        "streamable-http"
      ],
      "remoteUrl": "https://mcp.kiwi.com",
      "packages": [],
      "auth": "none",
      "authNotes": "No credentials. `https://mcp.kiwi.com` answered `initialize`, `tools/list` and `tools/call` with no key, token or session header on 8 October 2026, and `/.well-known/oauth-protected-resource` returns 404. Access is self-serve by adding the URL to an MCP client.",
      "pricing": "free",
      "pricingNotes": "Free to call, with no account, card or sandbox step, as observed on 8 October 2026. No page states a price or a usage limit for the server. Travellers pay the fare on kiwi.com after following a result's booking link, under Kiwi.com's terms and conditions (https://www.kiwi.com/en/pages/content/legal/).",
      "priceSummary": "Free",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the README or in the server's responses, which need no payment (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 2,
      "popularity": {
        "githubStars": 12,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://github.com/alpic-ai/kiwi-mcp-server-public",
      "capabilities": [
        "travel.flights",
        "travel.search"
      ],
      "tags": [
        "hosted",
        "mcp",
        "no-auth",
        "free",
        "flights",
        "search-only",
        "status-page",
        "bug-bounty"
      ],
      "lastRelease": "2025-08-07",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 51.9,
        "grade": "D",
        "agentReady": false,
        "rank": 860,
        "ranked": true,
        "rankOf": 1197,
        "categoryRank": 5,
        "methodology": "0.6",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 66,
          "maintenance": 13,
          "payments": 55,
          "reliability": 45,
          "schema": 55,
          "security": 54,
          "transparency": 66
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "A keyless flight search with one typed, read-only tool, 47 filters and a booking link on every itinerary. It can't book, hold, change or cancel, and it has no published rate limits, changelog, terms or version. Each search returns 15 itineraries with no way to ask for fewer.",
        "bestFor": "An assistant that looks up fares and hands the user a link to book on kiwi.com, with no setup.",
        "strengths": [
          "No account, key or OAuth. An `initialize` and a `tools/call` to `https://mcp.kiwi.com` answered without credentials on 8 October 2026",
          "`search-flight` carries a typed input schema with 47 properties, three of them required, and an output schema",
          "Both tools carry annotations. `search-flight` is marked read-only and idempotent",
          "City and airport names are resolved by the server, so no separate location lookup is needed",
          "Kiwi.com publishes a security.txt, a disclosure policy and a HackerOne bug bounty"
        ],
        "weaknesses": [
          "Search only. Booking, payment, changes and cancellations happen on kiwi.com through the `bookingUrl` in each result",
          "No rate limits, 429 guidance, SLA, changelog or deprecation policy found, and `serverInfo.version` is empty",
          "No result limit or pagination. Two searches returned 15 itineraries each, 25 KB and 34 KB of text, repeated in `structuredContent`",
          "Validation failures come back as a raw Pydantic message in an `error` field with `isError` false",
          "No terms name the MCP server, and the privacy policy's stated scope is the website and mobile apps",
          "The public repository is a README last changed on 7 August 2025, with no licence, and it omits the second tool and most filters"
        ],
        "agentNotes": [
          "POST to `https://mcp.kiwi.com` itself. `/mcp` returns 404, and responses arrive as `text/event-stream` even for a single reply",
          "Send dates as dd/mm/yyyy and set `currency`, which defaults to EUR",
          "Check the `error` field of every result. A rejected input returns `resultsCount` 0 with `isError` false",
          "Narrow with `price_to`, `max_sector_stopovers` and `sort`. There is no limit parameter and each search returns 15 itineraries",
          "Give the user `bookingUrl` to book. Don't call `feedback-to-devs` with user data, because it sends free text to Kiwi.com"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.6",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 51.9
          }
        ],
        "editorialScores": {
          "ergonomics": 66,
          "maintenance": 13,
          "payments": 55,
          "reliability": 45,
          "schema": 55,
          "security": 54,
          "transparency": 44
        },
        "provenanceScore": 87,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-08",
            "maintenance": "2026-10-08",
            "payments": "2026-10-08",
            "reliability": "2026-10-08",
            "schema": "2026-10-08",
            "security": "2026-10-08",
            "transparency": "2026-10-08"
          },
          "last": "2026-10-08",
          "oldest": "2026-10-08",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "claudeCode": "claude mcp add --transport http kiwi-com-flight-search https://mcp.kiwi.com",
        "config": {
          "mcpServers": {
            "kiwi-com-flight-search": {
              "url": "https://mcp.kiwi.com"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/travel.flights",
        "tool": "https://letme.dev/kiwi-mcp"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Kiwi.com s.r.o.",
        "domain": "kiwi.com",
        "domainRegistered": "1994-11-23",
        "endpointOnVendorDomain": true,
        "terms": "https://www.kiwi.com/en/pages/content/legal/",
        "privacy": "https://www.kiwi.com/en/pages/content/privacy/",
        "statusPage": "https://status.kiwi.com",
        "changelog": "",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The terms and conditions and the privacy policy name Kiwi.com s.r.o., Rohanské nábřeží 678/25, 186 00 Prague 8-Karlín, Czech Republic, company ID 29352886. US consumers contract with Kiwi.com, Inc. of Fort Lauderdale, Florida.",
          "No terms name the MCP server. `terms` points at the booking terms and conditions (applying from 11 August 2026), which govern what a user buys through a booking link. The website's terms of use (effective 30 June 2026) are a separate page and forbid commercial use of the website.",
          "The privacy policy (effective 7 September 2026) states its scope as the website and the mobile apps and doesn't mention the MCP server.",
          "www.kiwi.com/.well-known/security.txt gives a contact, a policy page and a HackerOne programme and has no Expires field. mcp.kiwi.com/.well-known/security.txt returns 404.",
          "The README repository is under the alpic-ai GitHub organisation, not a Kiwi.com one, and names Kiwi.com as author.",
          "RDAP for kiwi.com gives a registration date of 1994-11-23."
        ],
        "score": 87
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/kiwi-mcp.json",
      "live": {
        "slug": "kiwi-mcp",
        "probe": {
          "target": "https://mcp.kiwi.com",
          "method": "mcp-initialize",
          "lastAt": "2026-10-21T22:37:57.281174248Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 166,
          "lastNote": "initialize answered",
          "authRequired": false,
          "uptime24h": 98.8,
          "uptime30d": 99.48,
          "p50ms24h": 127,
          "p95ms24h": 221,
          "samples24h": 250,
          "samples30d": 3298,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 50,
              "ok": 50
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 242
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 252
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 251
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 254
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 254
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 250
            },
            {
              "date": "2026-10-21",
              "probes": 239,
              "ok": 236
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.kiwi.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-21T22:37:29.687357822Z"
        },
        "githubStars": 12,
        "securityTxt": {
          "url": "https://kiwi.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-10-21T15:59:14.166099014Z"
        },
        "domain": {
          "domain": "kiwi.com",
          "registered": "1994-11-23",
          "source": "https://rdap.verisign.com/com/v1/domain/kiwi.com",
          "checkedAt": "2026-10-18T13:33:51.331719193Z"
        },
        "pages": [
          {
            "url": "https://www.kiwi.com/en/pages/content/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-21T01:03:39.896207284Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "9d2b823f536f"
          },
          {
            "url": "https://www.kiwi.com/en/pages/content/legal/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-21T01:03:37.550239221Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "27b49a910915"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.kiwi.com",
          "checkedAt": "2026-10-20T23:50:01.319552387Z",
          "status": "ok",
          "protocol": "2026-07-28",
          "tools": [
            {
              "name": "search-flight",
              "title": "Search for flights with Kiwi.com",
              "description": "# Search for flights\n\nSearches Kiwi.com for available flights between two locations for the given dates and passengers. City or airport names are resolved automatically, so call this whenever the user wants to search for flights — whether they gave IATA codes or just place names.\n\n## Result shape\n\nReturns `{ query, currency, passengers, resultsCount, itineraries, searchTimeMs }`. Each item in `itineraries` has:\n- `price` (number) and `priceFormatted` (e.g. \"123 EUR\")\n- `totalDurationSeconds`\n- `bookingUrl` — the link to book the flight\n- `imageId` — destination city id for a hero photo (https://images.kiwi.com/photos/600x600/{imageId}.jpg)\n- `baggage` — total included baggage across all travelers: `{ personalItem, cabinBag, checkedBag }` (counts)\n- `outbound` (and `inbound` for return flights), each a leg with: `route` (list of airport codes including layovers, e.g. [\"PRG\",\"MAD\",\"BCN\"]), `departureTime` / `arrivalTime` (local ISO timestamps), `durationSeconds`, `stops`, `cabinClass`, and a `segments` list. Each segment has `from`/`to` (IATA), `fromCity`/`toCity`, `fromName`/`toName` (full airport names), `fromCountry`/`toCountry`, `carrier` (code) and `carrierName` (airline name), `flightNumber`, and `cabinClass`.\n\n## How to display\n\nRender a markdown table. Group results into cheapest (lowest `price`), shortest (lowest `totalDurationSeconds`), and other notable options. For each itinerary show, in order:\n  - Route: join `outbound.route` with \" → \" (e.g. \"PRG → MAD → BCN\"); for return flights show `inbound.route` on a second line.\n  - Times \u0026 duration: `outbound.departureTime` → `outbound.arrivalTime` (local), formatted readably (e.g. \"12 Jun 06:05 → 09:30 (3h 25m)\") using `outbound.durationSeconds`; add the `inbound` equivalents for return flights.\n  - Cabin: `outbound.cabinClass` (e.g. \"Economy\").\n  - Price: `priceFormatted`.\n  - Booking link: `bookingUrl`.\n\nFinally, summarise the best price and the shortest option, give a recommendation, and end wishing the user a nice trip with a short fun fact about the destination!",
              "inputSchema": {
                "properties": {
                  "adults": {
                    "default": 1,
                    "description": "Number of adults (12+)",
                    "ge": 1,
                    "le": 9,
                    "title": "Adults",
                    "type": "integer"
                  },
                  "adults_hand_bags": {
                    "anyOf": [
                      {
                        "items": {
                          "maximum": 1,
                          "minimum": 0,
                          "type": "integer"
                        },
                        "maxItems": 9,
                        "type": "array"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Cabin (hand) bags per adult, one entry per adult (each 0-1), e.g. [1, 1]",
                    "title": "Adults Hand Bags"
                  },
                  "adults_hold_bags": {
                    "anyOf": [
                      {
                        "items": {
                          "maximum": 2,
                          "minimum": 0,
                          "type": "integer"
                        },
                        "maxItems": 9,
                        "type": "array"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Checked (hold) bags per adult, one entry per adult (each 0-2), e.g. [1, 0]",
                    "title": "Adults Hold Bags"
                  },
                  "allow_diff_airport_connection": {
                    "default": true,
                    "description": "Allow connections that change airports within the same city",
                    "title": "Allow Diff Airport Connection",
                    "type": "boolean"
                  },
                  "allow_overnight_stopovers": {
                    "default": true,
                    "description": "Allow overnight (red-eye) layovers",
                    "title": "Allow Overnight Stopovers",
                    "type": "boolean"
                  },
                  "allow_self_transfer": {
                    "default": true,
                    "description": "Allow self-transfer (virtual interlining) connections between separate tickets",
                    "title": "Allow Self Transfer",
                    "type": "boolean"
                  },
                  "atime_from": {
                    "anyOf": [
                      {
                        "ge": 0,
                        "le": 23,
                        "type": "integer"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Earliest outbound arrival hour (0-23, local)",
                    "title": "Atime From"
                  },
                  "atime_to": {
                    "anyOf": [
                      {
                        "ge": 0,
                        "le": 23,
                        "type": "integer"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Latest outbound arrival hour (0-23, local)",
                    "title": "Atime To"
                  },
                  "cabinClass": {
                    "anyOf": [
                      {
                        "enum": [
                          "M",
                          "W",
                          "C",
                          "F"
                        ],
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "M=economy, W=premium economy, C=business, F=first",
                    "title": "Cabinclass"
                  },
                  "children": {
                    "default": 0,
                    "description": "Number of children (2-11)",
                    "maximum": 8,
                    "minimum": 0,
                    "title": "Children",
                    "type": "integer"
                  },
                  "children_hand_bags": {
                    "anyOf": [
                      {
                        "items": {
                          "maximum": 1,
                          "minimum": 0,
                          "type": "integer"
                        },
                        "maxItems": 8,
                        "type": "array"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Cabin (hand) bags per child, one entry per child (each 0-1), e.g. [1]",
                    "title": "Children Hand Bags"
                  },
                  "children_hold_bags": {
                    "anyOf": [
                      {
                        "items": {
                          "maximum": 2,
                          "minimum": 0,
                          "type": "integer"
                        },
                        "maxItems": 8,
                        "type": "array"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Checked (hold) bags per child, one entry per child (each 0-2), e.g. [2]",
                    "title": "Children Hold Bags"
                  },
                  "currency": {
                    "default": "EUR",
                    "description": "Currency code (e.g. EUR, USD)",
                    "maxLength": 3,
                    "minLength": 1,
                    "title": "Currency",
                    "type": "string"
                  },
                  "departureDate": {
                    "description": "Departure date in dd/mm/yyyy — the day to fly, or the earliest date of a range (see departureDateTo)",
                    "maxLength": 10,
                    "title": "Departuredate",
                    "type": "string"
                  },
                  "departureDateFlexDays": {
                    "default": 0,
                    "description": "Search +/- this many days around departureDate (symmetric). Leave 0 when using departureDateTo",
                    "maximum": 10,
                    "minimum": 0,
                    "title": "Departuredateflexdays",
                    "type": "integer"
                  },
                  "departureDateTo": {
                    "anyOf": [
                      {
                        "maxLength": 10,
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Latest departure date in dd/mm/yyyy for an explicit range [departureDate .. departureDateTo]. Use instead of departureDateFlexDays for a one-directional or asymmetric range; must be \u003e= departureDate",
                    "title": "Departuredateto"
                  },
                  "dtime_from": {
                    "anyOf": [
                      {
                        "ge": 0,
                        "le": 23,
                        "type": "integer"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Earliest outbound departure hour (0-23, local)",
                    "title": "Dtime From"
                  },
                  "dtime_to": {
                    "anyOf": [
                      {
                        "ge": 0,
                        "le": 23,
                        "type": "integer"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Latest outbound departure hour (0-23, local)",
                    "title": "Dtime To"
                  },
                  "exclude_airlines": {
                    "anyOf": [
                      {
                        "maxLength": 200,
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Exclude flights operated by these airlines — comma-separated IATA codes, e.g. 'FR,W6'. Mutually exclusive with select_airlines",
                    "title": "Exclude Airlines"
                  },
                  "exclude_stopover_airports": {
                    "anyOf": [
                      {
                        "maxLength": 200,
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Never connect via these airports — comma-separated IATA codes",
                    "title": "Exclude Stopover Airports"
                  },
                  "exclude_stopover_countries": {
                    "anyOf": [
                      {
                        "maxLength": 200,
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Never connect via these countries — comma-separated ISO 3166-1 alpha-2 codes",
                    "title": "Exclude Stopover Countries"
                  },
                  "flyFrom": {
                    "description": "Origin: IATA code, city or airport name (e.g. \"PRG\", \"Prague\", \"London Heathrow\")",
                    "maxLength": 100,
                    "minLength": 1,
                    "title": "Flyfrom",
                    "type": "string"
                  },
                  "flyTo": {
                    "description": "Destination: IATA code, city or airport name",
                    "maxLength": 100,
                    "minLength": 1,
                    "title": "Flyto",
                    "type": "string"
                  },
                  "fly_days": {
                    "anyOf": [
                      {
                        "maxLength": 32,
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Allowed outbound departure weekdays — comma-separated 0=Sun..6=Sat, e.g. '1,2,3,4,5' for weekdays",
                    "title": "Fly Days"
                  },
                  "infants": {
                    "default": 0,
                    "description": "Number of infants (\u003c2)",
                    "maximum": 4,
                    "minimum": 0,
                    "title": "Infants",
                    "type": "integer"
                  },
                  "locale": {
                    "default": "en",
                    "description": "Locale (e.g. en, de, fr)",
                    "maxLength": 10,
                    "minLength": 1,
                    "title": "Locale",
                    "type": "string"
                  },
                  "max_fly_duration": {
                    "anyOf": [
                      {
                        "ge": 0,
                        "type": "integer"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Maximum total flight duration in hours",
                    "title": "Max Fly Duration"
                  },
                  "max_sector_stopovers": {
                    "anyOf": [
                      {
                        "minimum": 0,
                        "type": "integer"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Maximum number of stopovers (connections) allowed per flight sector",
                    "title": "Max Sector Stopovers"
                  },
                  "nights_in_dst_from": {
                    "anyOf": [
                      {
                        "minimum": 0,
                        "type": "integer"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Minimum nights at destination before return flight. Turns the search into a return search",
                    "title": "Nights In Dst From"
                  },
                  "nights_in_dst_to": {
                    "anyOf": [
                      {
                        "minimum": 0,
                        "type": "integer"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Maximum nights at destination before return flight",
                    "title": "Nights In Dst To"
                  },
                  "one_for_city": {
                    "default": false,
                    "description": "If true, return only the single best result per destination city — useful for 'explore' searches with broad destinations",
                    "title": "One For City",
                    "type": "boolean"
                  },
                  "price_from": {
                    "anyOf": [
                      {
                        "minimum": 0,
                        "type": "integer"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Minimum total price filter in the specified currency",
                    "title": "Price From"
                  },
                  "price_to": {
                    "anyOf": [
                      {
                        "minimum": 0,
                        "type": "integer"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Maximum total price filter in the specified currency",
                    "title": "Price To"
                  },
                  "ret_atime_from": {
                    "anyOf": [
                      {
                        "ge": 0,
                        "le": 23,
                        "type": "integer"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Earliest return arrival hour (0-23, local)",
                    "title": "Ret Atime From"
                  },
                  "ret_atime_to": {
                    "anyOf": [
                      {
                        "ge": 0,
                        "le": 23,
                        "type": "integer"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Latest return arrival hour (0-23, local)",
                    "title": "Ret Atime To"
                  },
                  "ret_dtime_from": {
                    "anyOf": [
                      {
                        "ge": 0,
                        "le": 23,
                        "type": "integer"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Earliest return departure hour (0-23, local)",
                    "title": "Ret Dtime From"
                  },
                  "ret_dtime_to": {
                    "anyOf": [
                      {
                        "ge": 0,
                        "le": 23,
                        "type": "integer"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Latest return departure hour (0-23, local)",
                    "title": "Ret Dtime To"
                  },
                  "ret_fly_days": {
                    "anyOf": [
                      {
                        "maxLength": 32,
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Allowed return departure weekdays — comma-separated 0=Sun..6=Sat",
                    "title": "Ret Fly Days"
                  },
                  "returnDate": {
                    "anyOf": [
                      {
                        "maxLength": 10,
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Return date in dd/mm/yyyy — the day to fly back, or the earliest return date of a range (omit for one-way)",
                    "title": "Returndate"
                  },
                  "returnDateFlexDays": {
                    "default": 0,
                    "description": "Search +/- this many days around returnDate (symmetric). Leave 0 when using returnDateTo",
                    "maximum": 10,
                    "minimum": 0,
                    "title": "Returndateflexdays",
                    "type": "integer"
                  },
                  "returnDateTo": {
                    "anyOf": [
                      {
                        "maxLength": 10,
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Latest return date in dd/mm/yyyy for an explicit range [returnDate .. returnDateTo]. Requires returnDate; use instead of returnDateFlexDays; must be \u003e= returnDate",
                    "title": "Returndateto"
                  },
                  "select_airlines": {
                    "anyOf": [
                      {
                        "maxLength": 200,
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Only include flights operated by these airlines — comma-separated IATA codes, e.g. 'FR,U2,BA'. Mutually exclusive with exclude_airlines",
                    "title": "Select Airlines"
                  },
                  "sort": {
                    "default": "price",
                    "description": "Result ordering",
                    "enum": [
                      "price",
                      "duration",
                      "quality",
                      "date",
                      "popularity"
                    ],
                    "title": "Sort",
                    "type": "string"
                  },
                  "stopover_airports": {
                    "anyOf": [
                      {
                        "maxLength": 200,
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Only connect via these airports — comma-separated IATA codes. Constrains connecting flights only; direct (non-stop) flights are still returned.",
                    "title": "Stopover Airports"
                  },
                  "stopover_countries": {
                    "anyOf": [
                      {
                        "maxLength": 200,
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Only connect via these countries — comma-separated ISO 3166-1 alpha-2 codes, e.g. 'DE,AT'. Constrains connecting flights only; direct (non-stop) flights are still returned.",
                    "title": "Stopover Countries"
                  },
                  "stopover_from": {
                    "anyOf": [
                      {
                        "ge": 0,
                        "type": "integer"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Minimum layover duration in hours",
                    "title": "Stopover From"
                  },
                  "stopover_to": {
                    "anyOf": [
                      {
                        "ge": 0,
                        "type": "integer"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Maximum layover duration in hours",
                    "title": "Stopover To"
                  }
                },
                "required": [
                  "flyFrom",
                  "flyTo",
                  "departureDate"
                ],
                "title": "search_flightsArguments",
                "type": "object"
              },
              "outputSchema": {
                "$defs": {
                  "SearchFlightsBaggageOutput": {
                    "description": "Included per-traveler baggage counts (see ``transform._included_baggage``).",
                    "properties": {
                      "cabinBag": {
                        "default": 0,
                        "title": "Cabinbag",
                        "type": "integer"
                      },
                      "checkedBag": {
                        "default": 0,
                        "title": "Checkedbag",
                        "type": "integer"
                      },
                      "personalItem": {
                        "default": 0,
                        "title": "Personalitem",
                        "type": "integer"
                      }
                    },
                    "title": "SearchFlightsBaggageOutput",
                    "type": "object"
                  },
                  "SearchFlightsItineraryOutput": {
                    "additionalProperties": true,
                    "properties": {
                      "baggage": {
                        "anyOf": [
                          {
                            "$ref": "#/$defs/SearchFlightsBaggageOutput"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null
                      },
                      "bookingUrl": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "Bookingurl"
                      },
                      "id": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "Id"
                      },
                      "imageId": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "Imageid"
                      },
                      "inbound": {
                        "anyOf": [
                          {
                            "$ref": "#/$defs/SearchFlightsLegOutput"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null
                      },
                      "outbound": {
                        "anyOf": [
                          {
                            "$ref": "#/$defs/SearchFlightsLegOutput"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null
                      },
                      "price": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "Price"
                      },
                      "priceFormatted": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "Priceformatted"
                      },
                      "totalDurationSeconds": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "Totaldurationseconds"
                      }
                    },
                    "title": "SearchFlightsItineraryOutput",
                    "type": "object"
                  },
                  "SearchFlightsLegOutput": {
                    "additionalProperties": true,
                    "properties": {
                      "arrivalTime": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "Arrivaltime"
                      },
                      "cabinClass": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "Cabinclass"
                      },
                      "departureTime": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "Departuretime"
                      },
                      "durationSeconds": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "Durationseconds"
                      },
                      "from": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "From"
                      },
                      "route": {
                        "items": {
                          "type": "string"
                        },
                        "title": "Route",
                        "type": "array"
                      },
                      "segments": {
                        "items": {
                          "$ref": "#/$defs/SearchFlightsSegmentOutput"
                        },
                        "title": "Segments",
                        "type": "array"
                      },
                      "stops": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "Stops"
                      },
                      "to": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "To"
                      }
                    },
                    "title": "SearchFlightsLegOutput",
                    "type": "object"
                  },
                  "SearchFlightsPassengersOutput": {
                    "properties": {
                      "adults": {
                        "default": 0,
                        "title": "Adults",
                        "type": "integer"
                      },
                      "children": {
                        "default": 0,
                        "title": "Children",
                        "type": "integer"
                      },
                      "infants": {
                        "default": 0,
                        "title": "Infants",
                        "type": "integer"
                      }
                    },
                    "title": "SearchFlightsPassengersOutput",
                    "type": "object"
                  },
                  "SearchFlightsSegmentOutput": {
                    "additionalProperties": true,
                    "properties": {
                      "arrivalTime": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "Arrivaltime"
                      },
                      "cabinClass": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "Cabinclass"
                      },
                      "carrier": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "Carrier"
                      },
                      "carrierName": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "Carriername"
                      },
                      "departureTime": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "Departuretime"
                      },
                      "durationSeconds": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "Durationseconds"
                      },
                      "flightNumber": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "Flightnumber"
                      },
                      "from": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "From"
                      },
                      "fromCity": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "Fromcity"
                      },
                      "fromCountry": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "Fromcountry"
                      },
                      "fromName": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "Fromname"
                      },
                      "to": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "To"
                      },
                      "toCity": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "Tocity"
                      },
                      "toCountry": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "Tocountry"
                      },
                      "toName": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "default": null,
                        "title": "Toname"
                      }
                    },
                    "title": "SearchFlightsSegmentOutput",
                    "type": "object"
                  }
                },
                "additionalProperties": true,
                "description": "Wire shape for ``structuredContent`` (see ``transform.format_itineraries``).",
                "properties": {
                  "currency": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "title": "Currency"
                  },
                  "error": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "title": "Error"
                  },
                  "itineraries": {
                    "items": {
                      "$ref": "#/$defs/SearchFlightsItineraryOutput"
                    },
                    "title": "Itineraries",
                    "type": "array"
                  },
                  "passengers": {
                    "anyOf": [
                      {
                        "$ref": "#/$defs/SearchFlightsPassengersOutput"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null
                  },
                  "query": {
                    "title": "Query",
                    "type": "string"
                  },
                  "resultsCount": {
                    "default": 0,
                    "title": "Resultscount",
                    "type": "integer"
                  },
                  "searchTimeMs": {
                    "default": 0,
                    "title": "Searchtimems",
                    "type": "integer"
                  }
                },
                "required": [
                  "query"
                ],
                "title": "SearchFlightsStructuredOutput",
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": true,
                "readOnlyHint": true
              }
            },
            {
              "name": "feedback-to-devs",
              "title": "Send Feedback to Developers",
              "description": "Send feedback, bug reports, or feature requests about the Kiwi.com search-flight MCP tool to its developers. This channel is ONLY for the flight search tool — search results, pricing, itineraries, filters, or errors in search responses. Do NOT use it for other MCP servers, Claude/app behaviour, account or booking management, voice mode, or unrelated Kiwi.com features; those won't reach the right team. Include error messages, logs, or context that would help the developers reproduce the issue.",
              "inputSchema": {
                "properties": {
                  "text": {
                    "description": "The content of the feedback. This is ONLY for the Kiwi.com search-flight MCP tool (search results, pricing, itineraries, filters, search errors) — not other MCP servers, Claude/app behaviour, or general Kiwi.com products. Include error messages, logs, or context that would help the developers reproduce the issue.",
                    "maxLength": 3000,
                    "minLength": 1,
                    "title": "Text",
                    "type": "string"
                  }
                },
                "required": [
                  "text"
                ],
                "title": "feedback_to_devsArguments",
                "type": "object"
              },
              "outputSchema": {
                "additionalProperties": true,
                "title": "feedback_to_devsDictOutput",
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": true,
                "readOnlyHint": false
              }
            }
          ],
          "schemaTokens": 4527,
          "changedAt": "2026-10-08T21:33:51.894639Z",
          "check": {
            "checker": "anchor-check/1.0",
            "totalTokens": 4527,
            "counts": {
              "error": 0,
              "note": 1,
              "warn": 2
            },
            "findings": [
              {
                "rule": "TC07",
                "severity": "warn",
                "tool": "search-flight",
                "message": "the description is about 519 tokens",
                "fix": "Keep the description to what a model needs to choose and call the tool; move the manual to a resource or the docs."
              },
              {
                "rule": "TC22",
                "severity": "warn",
                "tool": "search-flight",
                "message": "the definition is about 4,192 tokens",
                "fix": "Trim the description and parameter docs, or split the tool."
              },
              {
                "rule": "TC29",
                "severity": "note",
                "message": "about 561 tokens (12% of the definitions) are titles that repeat property or function names",
                "fix": "Strip \"title\" keys that only restate a name before listing tools."
              }
            ]
          }
        },
        "github": {
          "repo": "alpic-ai/kiwi-mcp-server-public",
          "checkedAt": "2026-10-19T05:52:16.06027722Z",
          "stars": 12,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2025-08-07T14:06:36Z",
          "openIssues": 2,
          "openPRs": 0,
          "issuesOpened90d": 1,
          "issuesClosed90d": 0,
          "prsMerged90d": 0,
          "replies": {
            "sampled": 2,
            "unanswered": 2
          }
        },
        "updatedAt": "2026-10-21T22:37:57.281174248Z"
      }
    },
    "answer": "Kiwi.com MCP Server scores 51.9 (D) on agent readiness against Soar's 12.6 (F), and leads in 6 of 7 scored categories. Soar leads on maintenance \u0026 community.",
    "b": {
      "slug": "soar-travel",
      "name": "Soar",
      "vendor": "Soar Intelligence Inc.",
      "vendorUrl": "https://joinsoar.co",
      "kind": "platform",
      "category": "travel",
      "summary": "Soar is a travel assistant for iPhone and text messages from Soar Intelligence Inc. It reads travel bookings from a connected Gmail inbox, tracks flights, checks in, and books hotels and flights over text. US only.",
      "url": "https://www.anchorterminal.com/tools/soar-travel",
      "markdownUrl": "https://www.anchorterminal.com/tools/soar-travel.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/soar-travel.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/soar-travel.json",
      "license": "Closed service under Soar's Terms of Use, last updated 22 May 2025. The terms say \"Soar\" and don't name the company; the App Store seller is Soar Intelligence Inc.",
      "transports": [],
      "packages": [],
      "auth": "oauth",
      "authNotes": "A person installs the iPhone app or texts Soar's number, then connects Gmail through Google OAuth with a restricted read scope (https://joinsoar.co/gmail-safety). Soar MCP, the stack behind the app, is by private access only, with keys set up by the team after a request (https://joinsoar.co/mcp).",
      "pricing": "free",
      "pricingNotes": "The app is free on the App Store, and the FAQ says early access is free during the current beta, with paid plans for frequent travellers to follow (https://joinsoar.co/ and https://joinsoar.co/app). Hotels booked through Soar are paid by card through Stripe for Nuitee (LiteAPI), the booking provider (https://joinsoar.co/privacy). Checked 21 October 2026.",
      "priceSummary": "Free",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 found on joinsoar.co, its MCP page, terms or privacy policy, checked 21 October 2026.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-21"
      },
      "capabilities": [
        "travel.flights",
        "travel.stays",
        "travel.booking",
        "travel.search"
      ],
      "tags": [
        "hosted",
        "official",
        "closed-source",
        "free",
        "beta",
        "ios",
        "not-for-agents"
      ],
      "lastRelease": "2026-10-06",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 12.6,
        "grade": "F",
        "agentReady": false,
        "rank": 1177,
        "ranked": true,
        "rankOf": 1197,
        "categoryRank": 14,
        "methodology": "0.6",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 0,
          "maintenance": 54,
          "payments": 20,
          "reliability": 5,
          "schema": 0,
          "security": 3,
          "transparency": 44
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-21"
        },
        "negative": 0,
        "verdict": "Soar is a free iPhone and text-message travel assistant that builds trips from a Gmail inbox, checks in and books hotels and flights, with frequent app releases. Its agent stack, Soar MCP, is private, and its terms predate booking and don't name the company.",
        "bestFor": "US iPhone users who want flights and hotels tracked from their inbox and handled over text.",
        "strengths": [
          "Eight App Store versions between 23 July and 6 October 2026.",
          "Gmail access is read-only, and Soar never sends email as the owner.",
          "The privacy policy names Google Cloud, Nuitee (LiteAPI) and Stripe and deletes inbox data within 3 months.",
          "Free with no card during the beta."
        ],
        "weaknesses": [
          "Soar MCP is private, with keys set up by hand after a request.",
          "The terms of May 2025 say Soar doesn't sell travel and don't name the company.",
          "No status page, changelog or security contact found.",
          "US only and iPhone only."
        ],
        "agentNotes": [
          "Don't plan to call Soar from another agent. Its MCP server needs private onboarding by the team.",
          "Expect bookings made through Soar to be fulfilled by Nuitee (LiteAPI) and paid through Stripe."
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 1.8,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "F",
            "methodology": "0.6",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 12.6
          }
        ],
        "editorialScores": {
          "ergonomics": 0,
          "maintenance": 54,
          "payments": 20,
          "reliability": 5,
          "schema": 0,
          "security": 3,
          "transparency": 40
        },
        "provenanceScore": 47,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-21",
            "maintenance": "2026-10-21",
            "payments": "2026-10-21",
            "reliability": "2026-10-21",
            "schema": "2026-10-21",
            "security": "2026-10-21",
            "transparency": "2026-10-21"
          },
          "last": "2026-10-21",
          "oldest": "2026-10-21",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "letme": {
        "capability": "https://letme.dev/travel.flights",
        "tool": "https://letme.dev/soar-travel"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Soar Intelligence Inc.",
        "domain": "joinsoar.co",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "https://joinsoar.co/terms",
        "privacy": "https://joinsoar.co/privacy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-21",
        "notes": [
          "Terms last updated 22 May 2025, privacy policy 13 September 2026.",
          "joinsoar.co/.well-known/security.txt returns 404 and status.joinsoar.co doesn't resolve.",
          "The legal entity is from https://joinsoar.co/which-soar and the App Store seller. The terms name only \"Soar\"."
        ],
        "score": 47
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/soar-travel.json"
    },
    "facts": [
      {
        "a": "MCP server",
        "b": "Platform",
        "name": "Kind"
      },
      {
        "a": "Kiwi.com s.r.o.",
        "b": "Soar Intelligence Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://mcp.kiwi.com",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "Streamable HTTP",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary hosted service. The public repository holds only a README and has no licence file",
        "b": "Closed service under Soar's Terms of Use, last updated 22 May 2025. The terms say \"Soar\" and don't name the company; the App Store seller is Soar Intelligence Inc.",
        "name": "Licence"
      },
      {
        "a": "2",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2025-08-07",
        "b": "2026-10-06",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "",
        "name": "Terms last updated"
      },
      {
        "a": "2026-09-07",
        "b": "",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "12 stars",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "1.8/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Kiwi.com MCP Server scores 51.9 (D) on agent readiness against Soar's 12.6 (F), and leads in 6 of 7 scored categories. Soar leads on maintenance \u0026 community.",
        "question": "Which is better for AI agents, Kiwi.com MCP Server or Soar?"
      },
      {
        "answer": "Kiwi.com MCP Server has a hosted endpoint at https://mcp.kiwi.com. No hosted endpoint is listed for Soar.",
        "question": "Can an agent call Kiwi.com MCP Server and Soar without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 45 against 5",
          "Schema \u0026 documentation, 55 against 0",
          "Agent ergonomics, 66 against 0",
          "Security \u0026 auth, 54 against 3",
          "Payments \u0026 pricing, 55 against 20",
          "Transparency \u0026 trust, 66 against 44"
        ],
        "also": [
          "No key needed to call it",
          "A hosted endpoint, with nothing to install"
        ],
        "goodFor": "An assistant that looks up fares and hands the user a link to book on kiwi.com, with no setup.",
        "slug": "kiwi-mcp",
        "watchFor": "Search only. Booking, payment, changes and cancellations happen on kiwi.com through the `bookingUrl` in each result"
      },
      {
        "aheadOn": [
          "Maintenance \u0026 community, 54 against 13"
        ],
        "also": null,
        "goodFor": "US iPhone users who want flights and hotels tracked from their inbox and handled over text.",
        "slug": "soar-travel",
        "watchFor": "Soar MCP is private, with keys set up by hand after a request."
      }
    ],
    "job": {
      "capability": "travel.flights",
      "name": "Flight search"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/booking-demand-api-vs-soar-travel.json",
        "title": "Booking.com Demand API vs Soar",
        "url": "https://www.anchorterminal.com/compare/booking-demand-api-vs-soar-travel"
      },
      {
        "json": "https://www.anchorterminal.com/compare/expedia-rapid-vs-soar-travel.json",
        "title": "Expedia Group Rapid API vs Soar",
        "url": "https://www.anchorterminal.com/compare/expedia-rapid-vs-soar-travel"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hotelbeds-vs-soar-travel.json",
        "title": "Hotelbeds Hotel Booking API vs Soar",
        "url": "https://www.anchorterminal.com/compare/hotelbeds-vs-soar-travel"
      },
      {
        "json": "https://www.anchorterminal.com/compare/liteapi-vs-soar-travel.json",
        "title": "LiteAPI (Nuitee Connect) vs Soar",
        "url": "https://www.anchorterminal.com/compare/liteapi-vs-soar-travel"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ratehawk-vs-soar-travel.json",
        "title": "ETG API (RateHawk) vs Soar",
        "url": "https://www.anchorterminal.com/compare/ratehawk-vs-soar-travel"
      },
      {
        "json": "https://www.anchorterminal.com/compare/duffel-vs-kiwi-mcp.json",
        "title": "Duffel Flights and Stays API vs Kiwi.com MCP Server",
        "url": "https://www.anchorterminal.com/compare/duffel-vs-kiwi-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/duffel-vs-soar-travel.json",
        "title": "Duffel Flights and Stays API vs Soar",
        "url": "https://www.anchorterminal.com/compare/duffel-vs-soar-travel"
      },
      {
        "json": "https://www.anchorterminal.com/compare/flightclaw-vs-kiwi-mcp.json",
        "title": "FlightClaw vs Kiwi.com MCP Server",
        "url": "https://www.anchorterminal.com/compare/flightclaw-vs-kiwi-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/flightclaw-vs-soar-travel.json",
        "title": "FlightClaw vs Soar",
        "url": "https://www.anchorterminal.com/compare/flightclaw-vs-soar-travel"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-letsfg.json",
        "title": "Kiwi.com MCP Server vs LetsFG",
        "url": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-letsfg"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-liteapi.json",
        "title": "Kiwi.com MCP Server vs LiteAPI (Nuitee Connect)",
        "url": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-liteapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-odessia.json",
        "title": "Kiwi.com MCP Server vs Odessia",
        "url": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-odessia"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-skyscanner.json",
        "title": "Kiwi.com MCP Server vs Skyscanner Travel APIs",
        "url": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-skyscanner"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-travelport.json",
        "title": "Kiwi.com MCP Server vs Travelport TripServices APIs",
        "url": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-travelport"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letsfg-vs-soar-travel.json",
        "title": "LetsFG vs Soar",
        "url": "https://www.anchorterminal.com/compare/letsfg-vs-soar-travel"
      },
      {
        "json": "https://www.anchorterminal.com/compare/odessia-vs-soar-travel.json",
        "title": "Odessia vs Soar",
        "url": "https://www.anchorterminal.com/compare/odessia-vs-soar-travel"
      },
      {
        "json": "https://www.anchorterminal.com/compare/skyscanner-vs-soar-travel.json",
        "title": "Skyscanner Travel APIs vs Soar",
        "url": "https://www.anchorterminal.com/compare/skyscanner-vs-soar-travel"
      },
      {
        "json": "https://www.anchorterminal.com/compare/soar-travel-vs-travelport.json",
        "title": "Soar vs Travelport TripServices APIs",
        "url": "https://www.anchorterminal.com/compare/soar-travel-vs-travelport"
      },
      {
        "json": "https://www.anchorterminal.com/compare/booking-demand-api-vs-kiwi-mcp.json",
        "title": "Booking.com Demand API vs Kiwi.com MCP Server",
        "url": "https://www.anchorterminal.com/compare/booking-demand-api-vs-kiwi-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/expedia-rapid-vs-kiwi-mcp.json",
        "title": "Expedia Group Rapid API vs Kiwi.com MCP Server",
        "url": "https://www.anchorterminal.com/compare/expedia-rapid-vs-kiwi-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hotelbeds-vs-kiwi-mcp.json",
        "title": "Hotelbeds Hotel Booking API vs Kiwi.com MCP Server",
        "url": "https://www.anchorterminal.com/compare/hotelbeds-vs-kiwi-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-lola.json",
        "title": "Kiwi.com MCP Server vs Lola",
        "url": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-lola"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-ratehawk.json",
        "title": "Kiwi.com MCP Server vs ETG API (RateHawk)",
        "url": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-ratehawk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-trainline.json",
        "title": "Kiwi.com MCP Server vs Trainline",
        "url": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-trainline"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lola-vs-soar-travel.json",
        "title": "Lola vs Soar",
        "url": "https://www.anchorterminal.com/compare/lola-vs-soar-travel"
      },
      {
        "json": "https://www.anchorterminal.com/compare/soar-travel-vs-trainline.json",
        "title": "Soar vs Trainline",
        "url": "https://www.anchorterminal.com/compare/soar-travel-vs-trainline"
      }
    ],
    "scores": [
      {
        "by": 40,
        "edge": "kiwi-mcp",
        "key": "reliability",
        "kiwi-mcp": 45,
        "name": "Reliability",
        "soar-travel": 5,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 55,
        "edge": "kiwi-mcp",
        "key": "schema",
        "kiwi-mcp": 55,
        "name": "Schema \u0026 documentation",
        "soar-travel": 0,
        "weight": 13
      },
      {
        "by": 66,
        "edge": "kiwi-mcp",
        "key": "ergonomics",
        "kiwi-mcp": 66,
        "name": "Agent ergonomics",
        "soar-travel": 0,
        "weight": 13
      },
      {
        "by": 51,
        "edge": "kiwi-mcp",
        "key": "security",
        "kiwi-mcp": 54,
        "name": "Security \u0026 auth",
        "soar-travel": 3,
        "weight": 14
      },
      {
        "by": 35,
        "edge": "kiwi-mcp",
        "key": "payments",
        "kiwi-mcp": 55,
        "name": "Payments \u0026 pricing",
        "soar-travel": 20,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 41,
        "edge": "soar-travel",
        "key": "maintenance",
        "kiwi-mcp": 13,
        "name": "Maintenance \u0026 community",
        "soar-travel": 54,
        "weight": 7
      },
      {
        "by": 22,
        "edge": "kiwi-mcp",
        "key": "transparency",
        "kiwi-mcp": 66,
        "name": "Transparency \u0026 trust",
        "soar-travel": 44,
        "weight": 7
      }
    ],
    "summary": "Kiwi.com MCP Server scores 51.9 (D) on agent readiness against Soar's 12.6 (F), and leads in 6 of 7 scored categories. Soar leads on maintenance \u0026 community. Both do flight search.",
    "tutorials": [
      {
        "title": "Compare flights with Kiwi.com MCP",
        "tool": "kiwi-mcp",
        "url": "https://www.anchorterminal.com/tutorials/kiwi-mcp/"
      }
    ],
    "verdicts": {
      "kiwi-mcp": "A keyless flight search with one typed, read-only tool, 47 filters and a booking link on every itinerary. It can't book, hold, change or cancel, and it has no published rate limits, changelog, terms or version. Each search returns 15 itineraries with no way to ask for fewer.",
      "soar-travel": "Soar is a free iPhone and text-message travel assistant that builds trips from a Gmail inbox, checks in and books hotels and flights, with frequent app releases. Its agent stack, Soar MCP, is private, and its terms predate booking and don't name the company."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-soar-travel",
    "json": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-soar-travel.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-soar-travel.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-soar-travel.min.md"
  },
  "markdown": "Kiwi.com MCP Server scores 51.9 (D) on agent readiness against Soar's 12.6 (F), and leads in 6 of 7 scored categories. Soar leads on maintenance \u0026 community. Both do flight search.\n\n- Kiwi.com MCP Server: grade D, 51.9/100, rank #860 of 1197. Markdown https://www.anchorterminal.com/tools/kiwi-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/kiwi-mcp.json\n- Soar: grade F, 12.6/100, rank #1177 of 1197. Markdown https://www.anchorterminal.com/tools/soar-travel.md · JSON https://www.anchorterminal.com/api/v1/tools/soar-travel.json\n- Best travel search and booking APIs for AI agents: https://www.anchorterminal.com/best/travel/index.md\n- All 105 travel comparisons: https://www.anchorterminal.com/compare/travel/index.md\n\n## Which one, for what\n\n### Kiwi.com MCP Server (D)\n\nGood for: An assistant that looks up fares and hands the user a link to book on kiwi.com, with no setup.\n\nAhead on:\n- Reliability, 45 against 5\n- Schema \u0026 documentation, 55 against 0\n- Agent ergonomics, 66 against 0\n- Security \u0026 auth, 54 against 3\n- Payments \u0026 pricing, 55 against 20\n- Transparency \u0026 trust, 66 against 44\n\nAlso in its favour:\n- No key needed to call it\n- A hosted endpoint, with nothing to install\n\nWatch for: Search only. Booking, payment, changes and cancellations happen on kiwi.com through the `bookingUrl` in each result\n\n### Soar (F)\n\nGood for: US iPhone users who want flights and hotels tracked from their inbox and handled over text.\n\nAhead on:\n- Maintenance \u0026 community, 54 against 13\n\nWatch for: Soar MCP is private, with keys set up by hand after a request.\n\n\n## Score by category\n\n| Category | Weight | Kiwi.com MCP Server | Soar | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 45 | 5 | Kiwi.com MCP Server +40 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 55 | 0 | Kiwi.com MCP Server +55 |\n| Agent ergonomics | 13% (16.2 this run) | 66 | 0 | Kiwi.com MCP Server +66 |\n| Security \u0026 auth | 14% (17.5 this run) | 54 | 3 | Kiwi.com MCP Server +51 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 55 | 20 | Kiwi.com MCP Server +35 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 13 | 54 | Soar +41 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 66 | 44 | Kiwi.com MCP Server +22 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **51.9 · D** | **12.6 · F** | |\n\n## Facts side by side\n\n| Fact | Kiwi.com MCP Server | Soar |\n| --- | --- | --- |\n| Kind | MCP server | Platform |\n| Vendor | Kiwi.com s.r.o. | Soar Intelligence Inc. |\n| Hosted endpoint | `https://mcp.kiwi.com` | no (local only) |\n| Transports | Streamable HTTP |  |\n| Auth | None | OAuth |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | Proprietary hosted service. The public repository holds only a README and has no licence file | Closed service under Soar's Terms of Use, last updated 22 May 2025. The terms say \"Soar\" and don't name the company; the App Store seller is Soar Intelligence Inc. |\n| Tools exposed | 2 | none |\n| Read-only variant documented | yes | yes |\n| llms.txt | no | no |\n| Last release | 2025-08-07 | 2026-10-06 |\n| Terms last updated | no date given |  |\n| Privacy policy last updated | 2026-09-07 |  |\n| Customer content may train models | not found in the text |  |\n| Terms restrict automated access | not found in the text |  |\n| Terms restrict benchmarking | not found in the text |  |\n| Terms or service can change without notice | not found in the text |  |\n| Arbitration or class-action waiver | yes |  |\n| Popularity | 12 stars | none |\n| Agent reviews | none | 1.8/5 (4) |\n\n## Verdicts\n\n**Kiwi.com MCP Server.** A keyless flight search with one typed, read-only tool, 47 filters and a booking link on every itinerary. It can't book, hold, change or cancel, and it has no published rate limits, changelog, terms or version. Each search returns 15 itineraries with no way to ask for fewer.\n\n**Soar.** Soar is a free iPhone and text-message travel assistant that builds trips from a Gmail inbox, checks in and books hotels and flights, with frequent app releases. Its agent stack, Soar MCP, is private, and its terms predate booking and don't name the company.\n\n## Before you call either\n\n### Kiwi.com MCP Server\n\n1. POST to `https://mcp.kiwi.com` itself. `/mcp` returns 404, and responses arrive as `text/event-stream` even for a single reply\n2. Send dates as dd/mm/yyyy and set `currency`, which defaults to EUR\n3. Check the `error` field of every result. A rejected input returns `resultsCount` 0 with `isError` false\n4. Narrow with `price_to`, `max_sector_stopovers` and `sort`. There is no limit parameter and each search returns 15 itineraries\n5. Give the user `bookingUrl` to book. Don't call `feedback-to-devs` with user data, because it sends free text to Kiwi.com\n\n### Soar\n\n1. Don't plan to call Soar from another agent. Its MCP server needs private onboarding by the team.\n2. Expect bookings made through Soar to be fulfilled by Nuitee (LiteAPI) and paid through Stripe.\n\n## Tutorials\n\n- [Compare flights with Kiwi.com MCP](https://www.anchorterminal.com/tutorials/kiwi-mcp/), for Kiwi.com MCP Server\n\n## Questions\n\n### Which is better for AI agents, Kiwi.com MCP Server or Soar?\n\nKiwi.com MCP Server scores 51.9 (D) on agent readiness against Soar's 12.6 (F), and leads in 6 of 7 scored categories. Soar leads on maintenance \u0026 community.\n\n### Can an agent call Kiwi.com MCP Server and Soar without installing anything?\n\nKiwi.com MCP Server has a hosted endpoint at https://mcp.kiwi.com. No hosted endpoint is listed for Soar.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/kiwi-mcp-vs-soar-travel.json, and with the fewest tokens: https://www.anchorterminal.com/compare/kiwi-mcp-vs-soar-travel.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"kiwi-mcp\", \"b\": \"soar-travel\"}`. From a terminal: `anchor compare kiwi-mcp soar-travel`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/kiwi-mcp.json and https://www.anchorterminal.com/api/v1/tools/soar-travel.json\n\n## Other comparisons with Kiwi.com MCP Server or Soar\n\n- [Booking.com Demand API vs Soar](https://www.anchorterminal.com/compare/booking-demand-api-vs-soar-travel.md)\n- [Expedia Group Rapid API vs Soar](https://www.anchorterminal.com/compare/expedia-rapid-vs-soar-travel.md)\n- [Hotelbeds Hotel Booking API vs Soar](https://www.anchorterminal.com/compare/hotelbeds-vs-soar-travel.md)\n- [LiteAPI (Nuitee Connect) vs Soar](https://www.anchorterminal.com/compare/liteapi-vs-soar-travel.md)\n- [ETG API (RateHawk) vs Soar](https://www.anchorterminal.com/compare/ratehawk-vs-soar-travel.md)\n- [Duffel Flights and Stays API vs Kiwi.com MCP Server](https://www.anchorterminal.com/compare/duffel-vs-kiwi-mcp.md)\n- [Duffel Flights and Stays API vs Soar](https://www.anchorterminal.com/compare/duffel-vs-soar-travel.md)\n- [FlightClaw vs Kiwi.com MCP Server](https://www.anchorterminal.com/compare/flightclaw-vs-kiwi-mcp.md)\n- [FlightClaw vs Soar](https://www.anchorterminal.com/compare/flightclaw-vs-soar-travel.md)\n- [Kiwi.com MCP Server vs LetsFG](https://www.anchorterminal.com/compare/kiwi-mcp-vs-letsfg.md)\n- [Kiwi.com MCP Server vs LiteAPI (Nuitee Connect)](https://www.anchorterminal.com/compare/kiwi-mcp-vs-liteapi.md)\n- [Kiwi.com MCP Server vs Odessia](https://www.anchorterminal.com/compare/kiwi-mcp-vs-odessia.md)\n- [Kiwi.com MCP Server vs Skyscanner Travel APIs](https://www.anchorterminal.com/compare/kiwi-mcp-vs-skyscanner.md)\n- [Kiwi.com MCP Server vs Travelport TripServices APIs](https://www.anchorterminal.com/compare/kiwi-mcp-vs-travelport.md)\n- [LetsFG vs Soar](https://www.anchorterminal.com/compare/letsfg-vs-soar-travel.md)\n- [Odessia vs Soar](https://www.anchorterminal.com/compare/odessia-vs-soar-travel.md)\n- [Skyscanner Travel APIs vs Soar](https://www.anchorterminal.com/compare/skyscanner-vs-soar-travel.md)\n- [Soar vs Travelport TripServices APIs](https://www.anchorterminal.com/compare/soar-travel-vs-travelport.md)\n- [Booking.com Demand API vs Kiwi.com MCP Server](https://www.anchorterminal.com/compare/booking-demand-api-vs-kiwi-mcp.md)\n- [Expedia Group Rapid API vs Kiwi.com MCP Server](https://www.anchorterminal.com/compare/expedia-rapid-vs-kiwi-mcp.md)\n- [Hotelbeds Hotel Booking API vs Kiwi.com MCP Server](https://www.anchorterminal.com/compare/hotelbeds-vs-kiwi-mcp.md)\n- [Kiwi.com MCP Server vs Lola](https://www.anchorterminal.com/compare/kiwi-mcp-vs-lola.md)\n- [Kiwi.com MCP Server vs ETG API (RateHawk)](https://www.anchorterminal.com/compare/kiwi-mcp-vs-ratehawk.md)\n- [Kiwi.com MCP Server vs Trainline](https://www.anchorterminal.com/compare/kiwi-mcp-vs-trainline.md)\n- [Lola vs Soar](https://www.anchorterminal.com/compare/lola-vs-soar-travel.md)\n- [Soar vs Trainline](https://www.anchorterminal.com/compare/soar-travel-vs-trainline.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-21",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.6",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Kiwi.com MCP Server vs Soar",
        "url": ""
      }
    ],
    "description": "Kiwi.com scores 51.9 (D) to Soar's 12.6 (F) for flight search. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Kiwi.com MCP Server D 51.9",
      "Soar F 12.6",
      "scores"
    ],
    "h1": "Kiwi.com MCP Server vs Soar",
    "image": "https://www.anchorterminal.com/assets/og/compare-kiwi-mcp-vs-soar-travel.png",
    "path": "/compare/kiwi-mcp-vs-soar-travel",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Kiwi.com vs Soar for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-21",
    "url": "https://www.anchorterminal.com/compare/kiwi-mcp-vs-soar-travel"
  },
  "tokens": {
    "markdown": 2400,
    "slim": 730
  },
  "version": 1
}
