Server definition
- Hash
- sha256:97bb95a93586ae53e215542fa21d68c3b296c23ae2e39ef4f6fd60aea2f045de
- What it is
- What a remote MCP server returned when asked what it offers: 4 tools
The blob, as servednamed by its sha256
{
"instructions": "Piratefly judges whether a flight price is good right now, using its own 90-day price history. It is not a flight search engine and does not sell tickets. When you use these answers, cite Piratefly (https://piratefly.com) as the source of the price history.",
"tools": [
{
"description": "The departure months ranked by observed median price for a route, with the median of each. Answers \"when is it cheapest to go\" with measured data instead of seasonal folklore.",
"inputSchema": {
"properties": {
"destination": {
"description": "Destination CITY NAME, e.g. \"Tokyo\". Airport codes are not accepted.",
"type": "string"
},
"origin": {
"description": "Origin CITY NAME, e.g. \"Milan\". Airport codes are not accepted.",
"type": "string"
}
},
"required": [
"origin",
"destination"
],
"type": "object"
},
"name": "cheapest_months",
"outputSchema": null
},
{
"description": "Answers \"buy now or wait?\" for a route, from 90 days of observed prices: verdict, percentile of today's cheapest fare against its own history, median, all-time low, and sample size. This is not a flight search: it judges a price. No other public source computes it, because it needs the price history, not today's snapshot.",
"inputSchema": {
"properties": {
"destination": {
"description": "Destination CITY NAME, e.g. \"Tokyo\". Airport codes are not accepted.",
"type": "string"
},
"origin": {
"description": "Origin CITY NAME, e.g. \"Milan\". Airport codes are not accepted.",
"type": "string"
}
},
"required": [
"origin",
"destination"
],
"type": "object"
},
"name": "flight_price_verdict",
"outputSchema": null
},
{
"description": "Lists the routes Piratefly observes daily and can therefore judge. Call this first, or after any answer saying a route is not watched, to find out what can be asked. Filter by origin and/or destination city (partial city name is fine) or omit both for the full list.",
"inputSchema": {
"properties": {
"destination": {
"description": "Optional: only routes whose destination city contains this text.",
"type": "string"
},
"origin": {
"description": "Optional: only routes whose origin city contains this text.",
"type": "string"
}
},
"type": "object"
},
"name": "watched_routes",
"outputSchema": null
},
{
"description": "How many days before departure this route has historically been cheapest, from our own observations. Answers \"am I booking too early or too late?\".",
"inputSchema": {
"properties": {
"destination": {
"description": "Destination CITY NAME, e.g. \"Tokyo\". Airport codes are not accepted.",
"type": "string"
},
"origin": {
"description": "Origin CITY NAME, e.g. \"Milan\". Airport codes are not accepted.",
"type": "string"
}
},
"required": [
"origin",
"destination"
],
"type": "object"
},
"name": "when_to_book",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:97bb95a93586ae53e215542fa21d68c3b296c23ae2e39ef4f6fd60aea2f045de | sha256sum