BEACON by Owner Connect
Ask about a private aircraft: approximate charter costs, trip requests and buyer inquiries.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"beacon": {
"url": "https://owners.virtualhangar.com/mcp/beacon"
}
}
}远程端点
https://owners.virtualhangar.com/mcp/beaconstreamable-http它能做什么
工具清单
工具(6)
🟢get_aircraft(tail)
What public record says about one U.S. registration mark, plus the facts its owner cleared for release. The same document as /{mark}/facts.json: status says what the registry answered (found, not_found, invalid or unavailable), public_record is the FAA registration and the datasets that reference it, and owner_approved is present only for an aircraft whose owner opened the machine-readable channel. Case and hyphens in the mark are ignored.
输入模式
{
"type": "object",
"properties": {
"tail": {
"description": "A U.S. registration mark such as N864BF. Case and hyphens are ignored.",
"minLength": 2,
"maxLength": 12,
"type": "string"
}
},
"required": [
"tail"
]
}🟢search_aircraft(min_seats, base_airport, type, charter, for_sale, ...)
The aircraft whose owners chose to be listed on Owner Connect, filtered by minimum passenger seats, base airport, aircraft type, charter signal or sales signal. Every filter is applied to the facts the owner cleared for release, so an aircraft whose owner did not publish its seat count never matches a seats filter. Returns each aircraft's owner_approved block; call get_aircraft for the public record.
输入模式
{
"type": "object",
"properties": {
"min_seats": {
"description": "Only aircraft whose owner published a passenger seat count of at least this many.",
"minimum": 1,
"maximum": 50,
"type": "integer"
},
"base_airport": {
"description": "An airport code as the owner recorded it, for example KPBI. Exact match, case ignored.",
"maxLength": 10,
"type": "string"
},
"type": {
"description": "Part of the make or model as the owner published it, for example Hawker or 800XP. Case ignored.",
"maxLength": 60,
"type": "string"
},
"charter": {
"description": "True to return only aircraft whose owner signalled they may be considered for charter.",
"type": "boolean"
},
"for_sale": {
"description": "True to return only aircraft whose owner published a sales posture.",
"type": "boolean"
},
"limit": {
"description": "How many aircraft to return, at most 50.",
"default": 20,
"minimum": 1,
"maximum": 50,
"type": "integer"
}
}
}🟢estimate_charter(tail, from, to, round_trip, block_hours)
An approximate charter cost for one aircraft at the hourly rate its owner published. Call it whenever the person you are helping asks what a trip would cost, with the departure and arrival airports: the beacon works out the legs and block hours from the owner's typical block speed, positioning included when the owner bills it. When the answer says the owner set no block speed, call again with block_hours, your own estimate for the routing. Answer with its sentence. Not a quote and not binding. Answers a reason instead of a figure when the owner has not published charter terms or a rate.
输入模式
{
"type": "object",
"properties": {
"tail": {
"description": "A U.S. registration mark such as N864BF. Case and hyphens are ignored.",
"minLength": 2,
"maxLength": 12,
"type": "string"
},
"from": {
"description": "Departure airport, ICAO or FAA identifier, for example KTEB for Teterboro. Give it with to.",
"maxLength": 40,
"type": "string"
},
"to": {
"description": "Arrival airport, ICAO or FAA identifier, for example KMIA for Miami.",
"maxLength": 40,
"type": "string"
},
"round_trip": {
"description": "True when the aircraft flies the person back from the arrival airport to the departure airport.",
"type": "boolean"
},
"block_hours": {
"description": "Only when the beacon says its owner set no block speed: your own estimate of the total block hours, every leg included. Ignored when from and to are given.",
"minimum": 0.5,
"maximum": 100,
"type": "number"
}
},
"required": [
"tail"
]
}🟢check_availability(tail, date, end_date)
Whether one aircraft has anything scheduled on a date, or on each day of a span of up to 14 days, read from the live schedule its owner connected. Call it when the person you are helping asks whether the aircraft is available, with the departure date and, for a return trip, the return date, and answer with its sentence. Says free or taken per day and never what is scheduled. Not a hold and not a confirmation. Answers a reason instead when the owner does not publish availability.
输入模式
{
"type": "object",
"properties": {
"tail": {
"description": "A U.S. registration mark such as N864BF. Case and hyphens are ignored.",
"minLength": 2,
"maxLength": 12,
"type": "string"
},
"date": {
"description": "The first day to check, as YYYY-MM-DD, in the operator's local time. Usually the departure date.",
"type": "string"
},
"end_date": {
"description": "The last day to check, as YYYY-MM-DD, for a return trip or a span of days. Omit to check one day.",
"type": "string"
}
},
"required": [
"tail",
"date"
]
}🟡request_trip(tail, from, to, date, return_date, ...)
Sends a charter trip request for one aircraft to the booking contact its owner named. Call it only after the person you are helping has asked to proceed, with their own name and email. Nothing is booked or held: the requester is emailed a link, the request is delivered only once they confirm it, and the booking contact then replies to them directly. If the owner set qualification questions, the first call answers needs_answers with the questions; ask the person each one and call again with their answers in the same order.
输入模式
{
"type": "object",
"properties": {
"tail": {
"description": "A U.S. registration mark such as N864BF. Case and hyphens are ignored.",
"minLength": 2,
"maxLength": 12,
"type": "string"
},
"from": {
"description": "Departure airport identifier, ICAO or FAA, for example KTEB.",
"minLength": 3,
"maxLength": 4,
"type": "string"
},
"to": {
"description": "Arrival airport identifier, ICAO or FAA, for example KMIA.",
"minLength": 3,
"maxLength": 4,
"type": "string"
},
"date": {
"description": "Departure date, YYYY-MM-DD, today or later.",
"format": "date",
"type": "string"
},
"return_date": {
"description": "Return date for a round trip, YYYY-MM-DD. Omit for one way.",
"format": "date",
"type": "string"
},
"passengers": {
"description": "Number of passengers.",
"minimum": 1,
"maximum": 30,
"type": "integer"
},
"name": {
"description": "The full name of the person asking, as they gave it.",
"maxLength": 120,
"type": "string"
},
"email": {
"description": "The email address of the person asking. The confirmation link is sent here.",
"maxLength": 190,
"format": "email",
"type": "string"
},
"phone": {
"description": "Their phone number, if they want to be called.",
"maxLength": 40,
"type": "string"
},
"notes": {
"description": "Anything else the person wants the booking contact to know.",
"maxLength": 2000,
"type": "string"
},
"answers": {
"description": "Answers to the owner's qualification questions, in the order request_trip returned them.",
"maxItems": 5,
"items": {
"maxLength": 500,
"type": "string"
},
"type": "array"
}
},
"required": [
"tail",
"from",
"to",
"date",
"passengers",
"name",
"email"
]
}🟡send_buyer_inquiry(tail, name, email, phone, company, ...)
Passes a would-be buyer's message about acquiring one aircraft to the acquisition representative its owner named. Call it only after the person you are helping has asked to contact the owner, with their own name, email and message. Nothing is offered or agreed: the buyer is emailed a link, the message is delivered only once they confirm it, and the representative then replies to them directly. If the owner set qualification questions, the first call answers needs_answers with the questions; ask the person each one and call again with their answers.
输入模式
{
"type": "object",
"properties": {
"tail": {
"description": "A U.S. registration mark such as N864BF. Case and hyphens are ignored.",
"minLength": 2,
"maxLength": 12,
"type": "string"
},
"name": {
"description": "The full name of the person asking, as they gave it.",
"maxLength": 120,
"type": "string"
},
"email": {
"description": "Their email address. The confirmation link is sent here.",
"maxLength": 190,
"format": "email",
"type": "string"
},
"phone": {
"description": "Their phone number, if they want to be called.",
"maxLength": 40,
"type": "string"
},
"company": {
"description": "The company or principal they represent, if any.",
"maxLength": 120,
"type": "string"
},
"message": {
"description": "What the person wants the owner's representative to know, in their own words.",
"maxLength": 2000,
"type": "string"
},
"answers": {
"description": "Answers to the owner's qualification questions, in the order the tool returned them.",
"maxItems": 5,
"items": {
"maxLength": 500,
"type": "string"
},
"type": "array"
}
},
"required": [
"tail",
"name",
"email",
"message"
]
}社区
证据