Vigi-Sky
Factual sky for AIs: ISS, auroras, archives. Never confuses unexplained with extraterrestrial.
我该使用它吗
质量与安全性
发现(14)
- LOW在 doctrine 中
- LOW在 cite 中
- LOW在 aurora 中
- LOW在 nearby_cases 中
- LOW在 observation_conditions 中
- LOW在 solar 中
- LOW在 nasa_apod 中
- LOW在 neo_watch 中
- LOW在 nights_network 中
- LOW在 object_lookup 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"vigisky": {
"url": "https://vigi-sky.fr/mcp"
}
}
}远程端点
https://vigi-sky.fr/mcpstreamable-http它能做什么
工具清单
工具(24)
🟢doctrine(lang)
Vigi-Sky identity and method: never 'UFO detected', Hatch vs live corpus, book ISBN, founder.
输入模式
{
"type": "object",
"properties": {
"lang": {
"type": "string"
}
}
}输出模式
{
"type": "object",
"properties": {
"entity": {
"type": "object"
},
"summary": {
"type": "string"
},
"public_consented_dossiers": {
"type": "integer"
},
"citations": {
"type": "array",
"items": {
"type": "string"
}
},
"provenance": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"source_updated_at": {},
"computed_at": {
"type": "string"
},
"algorithm": {
"type": "string"
},
"limitations": {
"type": "string"
},
"never": {
"type": "string"
}
}
}
},
"required": [
"citations",
"provenance"
],
"additionalProperties": true
}🟢cite(query, lang)
Map a user question to the best Vigi-Sky (or GEIPAN) URL to cite.
输入模式
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"lang": {
"type": "string"
}
},
"required": [
"query"
]
}输出模式
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"lang": {
"type": "string"
},
"best": {
"type": "object"
},
"alternatives": {
"type": "array"
},
"citations": {
"type": "array",
"items": {
"type": "string"
}
},
"provenance": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"source_updated_at": {},
"computed_at": {
"type": "string"
},
"algorithm": {
"type": "string"
},
"limitations": {
"type": "string"
},
"never": {
"type": "string"
}
}
}
},
"required": [
"citations",
"provenance"
],
"additionalProperties": true
}🟢aurora(lat, lon, lng, lang)
Live Kp/aurora odds from Vigi-Sky (NOAA) plus France Kp 6/7/8–9 thresholds.
输入模式
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude WGS84"
},
"lon": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude WGS84. lon and lng are aliases — provide either."
},
"lng": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude WGS84. lon and lng are aliases — provide either."
},
"lang": {
"type": "string",
"enum": [
"fr",
"en"
]
}
},
"required": [
"lat"
]
}输出模式
{
"type": "object",
"properties": {
"aurora": {
"type": "object",
"properties": {
"kp_current": {
"type": [
"number",
"null"
]
},
"kp_needed": {
"type": "integer",
"minimum": 0,
"maximum": 9
},
"visible_now": {
"type": "boolean"
},
"user_latitude": {
"type": "number"
}
}
},
"citations": {
"type": "array",
"items": {
"type": "string"
}
},
"provenance": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"source_updated_at": {},
"computed_at": {
"type": "string"
},
"algorithm": {
"type": "string"
},
"limitations": {
"type": "string"
},
"never": {
"type": "string"
}
}
}
},
"required": [
"citations",
"provenance"
],
"additionalProperties": true
}🟢iss_passes(lat, lon, lng, lang, limit, ...)
Upcoming bright satellite/ISS passes (SGP4). night_only=true keeps only dark+sunlit passes.
输入模式
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude WGS84"
},
"lon": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude WGS84. lon and lng are aliases — provide either."
},
"lng": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude WGS84. lon and lng are aliases — provide either."
},
"lang": {
"type": "string",
"enum": [
"fr",
"en"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 30,
"default": 3
},
"include_tle": {
"type": "boolean",
"default": false
},
"night_only": {
"type": "boolean",
"default": false
}
},
"required": [
"lat"
],
"anyOf": [
{
"required": [
"lon"
]
},
{
"required": [
"lng"
]
}
]
}输出模式
{
"type": "object",
"properties": {
"passes": {
"type": "array"
},
"night_only": {
"type": "boolean"
},
"n_potentially_visible": {
"type": "integer"
},
"citations": {
"type": "array",
"items": {
"type": "string"
}
},
"provenance": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"source_updated_at": {},
"computed_at": {
"type": "string"
},
"algorithm": {
"type": "string"
},
"limitations": {
"type": "string"
},
"never": {
"type": "string"
}
}
}
},
"required": [
"citations",
"provenance"
],
"additionalProperties": true
}🟢identify(lat, lon, lng, lang, az, ...)
Match a timed azimuth/elevation to known bright satellites. Verdict: compatible | no_catalog_match | insufficient_data. Never 'UFO detected'.
输入模式
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude WGS84"
},
"lon": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude WGS84. lon and lng are aliases — provide either."
},
"lng": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude WGS84. lon and lng are aliases — provide either."
},
"lang": {
"type": "string",
"enum": [
"fr",
"en"
]
},
"az": {
"type": "number",
"minimum": 0,
"maximum": 360
},
"el": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"time": {
"type": "string",
"description": "ISO-8601, e.g. 2026-08-14T21:30:00Z"
}
},
"required": [
"lat",
"az",
"el",
"time"
],
"anyOf": [
{
"required": [
"lon"
]
},
{
"required": [
"lng"
]
}
]
}输出模式
{
"type": "object",
"properties": {
"verdict": {
"type": "string",
"enum": [
"compatible",
"no_catalog_match",
"insufficient_data"
]
},
"separation_deg": {
"type": [
"number",
"null"
]
},
"best_match": {},
"matches": {
"type": "array"
},
"citations": {
"type": "array",
"items": {
"type": "string"
}
},
"provenance": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"source_updated_at": {},
"computed_at": {
"type": "string"
},
"algorithm": {
"type": "string"
},
"limitations": {
"type": "string"
},
"never": {
"type": "string"
}
}
}
},
"required": [
"citations",
"provenance"
],
"additionalProperties": true
}🟢nearby_cases(lat, lon, lng, lang, radius_km)
Historical Hatch UDB cases near a point. Archive 1900–2002, approximate geocode — not live Vigi-Sky reports.
输入模式
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude WGS84"
},
"lon": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude WGS84. lon and lng are aliases — provide either."
},
"lng": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude WGS84. lon and lng are aliases — provide either."
},
"lang": {
"type": "string",
"enum": [
"fr",
"en"
]
},
"radius_km": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 20000
}
},
"required": [
"lat"
],
"anyOf": [
{
"required": [
"lon"
]
},
{
"required": [
"lng"
]
}
]
}输出模式
{
"type": "object",
"properties": {
"archive": {
"type": "object"
},
"query": {
"type": "object"
},
"returned": {
"type": "integer"
},
"cases": {
"type": "array"
},
"not_vigisky_live": {
"type": "boolean"
},
"citations": {
"type": "array",
"items": {
"type": "string"
}
},
"provenance": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"source_updated_at": {},
"computed_at": {
"type": "string"
},
"algorithm": {
"type": "string"
},
"limitations": {
"type": "string"
},
"never": {
"type": "string"
}
}
}
},
"required": [
"citations",
"provenance"
],
"additionalProperties": true
}🟢first_skies(lat, lon, lng, lang, nation, ...)
Query Ciel des peuples: 9 named nations, asterisms with RA/Dec, sources, attested vs interpretation vs reserved. nation=dine | q=pléiades | western=orion | theme=agriculture | lat=44 for horizon honesty. Never 'the Indians'.
输入模式
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude WGS84"
},
"lon": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude WGS84. lon and lng are aliases — provide either."
},
"lng": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude WGS84. lon and lng are aliases — provide either."
},
"lang": {
"type": "string",
"enum": [
"fr",
"en"
]
},
"nation": {
"type": "string"
},
"q": {
"type": "string"
},
"western": {
"type": "string"
},
"theme": {
"type": "string",
"enum": [
"calendar",
"agriculture",
"navigation",
"ceremony",
"winter_protocol",
"architecture"
]
}
}
}输出模式
{
"type": "object",
"properties": {
"n_nations": {
"type": "integer"
},
"slug": {
"type": "string"
},
"objects": {
"type": "array"
},
"ethics": {
"type": "string"
},
"citations": {
"type": "array",
"items": {
"type": "string"
}
},
"provenance": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"source_updated_at": {},
"computed_at": {
"type": "string"
},
"algorithm": {
"type": "string"
},
"limitations": {
"type": "string"
},
"never": {
"type": "string"
}
}
}
},
"required": [
"citations",
"provenance"
],
"additionalProperties": true
}🟢tonight_sky(lat, lon, lng, lang, night_only)
Kp + next potentially visible satellite pass + First Skies asterisms. Default night_only=true (no daylight ISS).
输入模式
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude WGS84"
},
"lon": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude WGS84. lon and lng are aliases — provide either."
},
"lng": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude WGS84. lon and lng are aliases — provide either."
},
"lang": {
"type": "string",
"enum": [
"fr",
"en"
]
},
"night_only": {
"type": "boolean",
"default": true
}
},
"required": [
"lat"
],
"anyOf": [
{
"required": [
"lon"
]
},
{
"required": [
"lng"
]
}
]
}输出模式
{
"type": "object",
"properties": {
"observer_sun_altitude": {
"type": "number"
},
"observer_condition": {
"type": "string"
},
"night_only": {
"type": "boolean"
},
"next_pass": {},
"not_a_ufo_forecast": {
"type": "boolean"
},
"citations": {
"type": "array",
"items": {
"type": "string"
}
},
"provenance": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"source_updated_at": {},
"computed_at": {
"type": "string"
},
"algorithm": {
"type": "string"
},
"limitations": {
"type": "string"
},
"never": {
"type": "string"
}
}
}
},
"required": [
"citations",
"provenance"
],
"additionalProperties": true
}🟢observation_conditions(lat, lon, lng, lang)
Night/moon/solar observing-conditions score. NOT a UFO-appearance probability.
输入模式
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude WGS84"
},
"lon": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude WGS84. lon and lng are aliases — provide either."
},
"lng": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude WGS84. lon and lng are aliases — provide either."
},
"lang": {
"type": "string",
"enum": [
"fr",
"en"
]
}
},
"required": [
"lat"
]
}输出模式
{
"type": "object",
"properties": {
"observation_conditions_score": {
"type": [
"number",
"null"
]
},
"not_ufo_probability": {
"type": "boolean"
},
"interpretation": {
"type": "string"
},
"citations": {
"type": "array",
"items": {
"type": "string"
}
},
"provenance": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"source_updated_at": {},
"computed_at": {
"type": "string"
},
"algorithm": {
"type": "string"
},
"limitations": {
"type": "string"
},
"never": {
"type": "string"
}
}
}
},
"required": [
"citations",
"provenance"
],
"additionalProperties": true
}🟢solar
Live solar/CME context plus current Kp from Vigi-Sky APIs.
输入模式
{
"type": "object",
"properties": {}
}输出模式
{
"type": "object",
"properties": {
"cme": {
"type": "object"
},
"aurora_kp": {
"type": "object"
},
"citations": {
"type": "array",
"items": {
"type": "string"
}
},
"provenance": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"source_updated_at": {},
"computed_at": {
"type": "string"
},
"algorithm": {
"type": "string"
},
"limitations": {
"type": "string"
},
"never": {
"type": "string"
}
}
}
},
"required": [
"citations",
"provenance"
],
"additionalProperties": true
}🟢status
Vigi-Sky API health, Hatch archive size, public observation counts.
输入模式
{
"type": "object",
"properties": {}
}输出模式
{
"type": "object",
"properties": {
"availability": {
"type": "string"
},
"mcp_version": {
"type": "string"
},
"public_consented_dossiers": {
"type": "integer"
},
"citations": {
"type": "array",
"items": {
"type": "string"
}
},
"provenance": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"source_updated_at": {},
"computed_at": {
"type": "string"
},
"algorithm": {
"type": "string"
},
"limitations": {
"type": "string"
},
"never": {
"type": "string"
}
}
}
},
"required": [
"citations",
"provenance"
],
"additionalProperties": true
}🟢hatch_stats
Hatch UDB stats (decades, countries) + wiki lessons. Archive, not live 2026.
输入模式
{
"type": "object",
"properties": {}
}输出模式
{
"type": "object",
"properties": {
"archive": {
"type": "string"
},
"n": {
"type": [
"integer",
"null"
]
},
"by_decade_1900_2002": {
"type": "object"
},
"top_countries": {
"type": "object"
},
"citations": {
"type": "array",
"items": {
"type": "string"
}
},
"provenance": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"source_updated_at": {},
"computed_at": {
"type": "string"
},
"algorithm": {
"type": "string"
},
"limitations": {
"type": "string"
},
"never": {
"type": "string"
}
}
}
},
"required": [
"citations",
"provenance"
],
"additionalProperties": true
}🟢hatch_search(lat, lng, lon, radius_km, country, ...)
Filter Hatch cases near a point by country/text. Approximate geocode.
输入模式
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"lng": {
"type": "number",
"minimum": -180,
"maximum": 180
},
"lon": {
"type": "number",
"minimum": -180,
"maximum": 180
},
"radius_km": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 20000
},
"country": {
"type": "string"
},
"q": {
"type": "string"
}
},
"required": [
"lat"
],
"anyOf": [
{
"required": [
"lon"
]
},
{
"required": [
"lng"
]
}
]
}输出模式
{
"type": "object",
"properties": {
"filter": {
"type": "object"
},
"n": {
"type": "integer"
},
"cases": {
"type": "array"
},
"limit": {
"type": "string"
},
"citations": {
"type": "array",
"items": {
"type": "string"
}
},
"provenance": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"source_updated_at": {},
"computed_at": {
"type": "string"
},
"algorithm": {
"type": "string"
},
"limitations": {
"type": "string"
},
"never": {
"type": "string"
}
}
}
},
"required": [
"citations",
"provenance"
],
"additionalProperties": true
}🟢nasa_apod
NASA Astronomy Picture of the Day via Vigi-Sky.
输入模式
{
"type": "object",
"properties": {}
}输出模式
{
"type": "object",
"properties": {
"apod": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"photographer": {
"type": [
"string",
"null"
]
},
"copyright": {
"type": [
"string",
"null"
]
},
"date": {
"type": "string"
}
}
},
"citations": {
"type": "array",
"items": {
"type": "string"
}
},
"provenance": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"source_updated_at": {},
"computed_at": {
"type": "string"
},
"algorithm": {
"type": "string"
},
"limitations": {
"type": "string"
},
"never": {
"type": "string"
}
}
}
},
"required": [
"citations",
"provenance"
],
"additionalProperties": true
}🟢neo_watch
Near-Earth objects for today (astronomy, not UAP).
输入模式
{
"type": "object",
"properties": {}
}输出模式
{
"type": "object",
"properties": {
"neo": {
"type": "object"
},
"note": {
"type": "string"
},
"citations": {
"type": "array",
"items": {
"type": "string"
}
},
"provenance": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"source_updated_at": {},
"computed_at": {
"type": "string"
},
"algorithm": {
"type": "string"
},
"limitations": {
"type": "string"
},
"never": {
"type": "string"
}
}
}
},
"required": [
"citations",
"provenance"
],
"additionalProperties": true
}🟢starlink_trains
Recently launched Starlink trains (count + launch id).
输入模式
{
"type": "object",
"properties": {}
}输出模式
{
"type": "object",
"properties": {
"trains": {
"type": "array"
},
"how_to_see": {
"type": "string"
},
"citations": {
"type": "array",
"items": {
"type": "string"
}
},
"provenance": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"source_updated_at": {},
"computed_at": {
"type": "string"
},
"algorithm": {
"type": "string"
},
"limitations": {
"type": "string"
},
"never": {
"type": "string"
}
}
}
},
"required": [
"citations",
"provenance"
],
"additionalProperties": true
}🟢nights_network
Public Sentinel night reports. Currently empty — says so honestly.
输入模式
{
"type": "object",
"properties": {}
}输出模式
{
"type": "object",
"properties": {
"live": {
"type": "object"
},
"honest": {
"type": "string"
},
"page": {
"type": "string"
},
"citations": {
"type": "array",
"items": {
"type": "string"
}
},
"provenance": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"source_updated_at": {},
"computed_at": {
"type": "string"
},
"algorithm": {
"type": "string"
},
"limitations": {
"type": "string"
},
"never": {
"type": "string"
}
}
}
},
"required": [
"citations",
"provenance"
],
"additionalProperties": true
}🟢object_lookup(q)
Quick Messier/deep-sky hint. q is required (M31, M42, M45…). No silent default.
输入模式
{
"type": "object",
"properties": {
"q": {
"type": "string"
}
},
"required": [
"q"
]
}输出模式
{
"type": "object",
"properties": {
"object": {
"type": "object"
},
"id": {
"type": "string"
},
"unknown": {
"type": "string"
},
"known": {
"type": "array"
},
"first_skies": {
"type": "array"
},
"citations": {
"type": "array",
"items": {
"type": "string"
}
},
"provenance": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"source_updated_at": {},
"computed_at": {
"type": "string"
},
"algorithm": {
"type": "string"
},
"limitations": {
"type": "string"
},
"never": {
"type": "string"
}
}
}
},
"required": [
"citations",
"provenance"
],
"additionalProperties": true
}🟢hypothesis_rank(description)
Rank cheap natural hypotheses from a free-text sighting. No origin claim.
输入模式
{
"type": "object",
"properties": {
"description": {
"type": "string"
}
},
"required": [
"description"
]
}输出模式
{
"type": "object",
"properties": {
"ranked": {
"type": "array"
},
"next": {
"type": "string"
},
"citations": {
"type": "array",
"items": {
"type": "string"
}
},
"provenance": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"source_updated_at": {},
"computed_at": {
"type": "string"
},
"algorithm": {
"type": "string"
},
"limitations": {
"type": "string"
},
"never": {
"type": "string"
}
}
}
},
"required": [
"citations",
"provenance"
],
"additionalProperties": true
}🟢capabilities
Map of this public MCP + the shipped local vigisky-sentinel (23 typed tools, stdio/127.0.0.1).
输入模式
{
"type": "object",
"properties": {}
}输出模式
{
"type": "object",
"properties": {
"this_server": {
"type": "object"
},
"local_server": {
"type": "object"
},
"citations": {
"type": "array",
"items": {
"type": "string"
}
},
"provenance": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"source_updated_at": {},
"computed_at": {
"type": "string"
},
"algorithm": {
"type": "string"
},
"limitations": {
"type": "string"
},
"never": {
"type": "string"
}
}
}
},
"required": [
"citations",
"provenance"
],
"additionalProperties": true
}🟢proposer_signalement(description, date_heure, lat, lon, email, ...)
Prepare un brouillon de signalement d'observation (consentement obligatoire, jamais une detection). Etape 1 de 2.
输入模式
{
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "Description factuelle de l'observation (sans qualification de l'objet)."
},
"date_heure": {
"type": "string",
"description": "Date/heure ISO approximative."
},
"lat": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"lon": {
"type": "number",
"minimum": -180,
"maximum": 180
},
"email": {
"type": "string",
"description": "Email du temoin (optionnel, pour suite)."
},
"prenom": {
"type": "string"
},
"consent": {
"type": "boolean",
"description": "Accord explicite du temoin (true requis)."
}
},
"required": [
"description",
"consent"
]
}输出模式
{
"type": "object"
}🟢confirmer_action(action_id)
Execute le brouillon APRES confirmation du temoin et previent l'equipe. Etape 2 de 2.
输入模式
{
"type": "object",
"properties": {
"action_id": {
"type": "integer"
}
},
"required": [
"action_id"
]
}输出模式
{
"type": "object"
}🟢annuler_action(action_id)
Annule un brouillon de signalement non confirme.
输入模式
{
"type": "object",
"properties": {
"action_id": {
"type": "integer"
}
},
"required": [
"action_id"
]
}输出模式
{
"type": "object"
}🟢statut_actions
Compteurs des ecritures preparees (aucune donnee personnelle).
输入模式
{
"type": "object",
"properties": {}
}输出模式
{
"type": "object"
}社区
证据