# `fr.vigi-sky/vigisky` on anlyon.dev

> Text inside fenced blocks marked untrusted-server-text was written by the MCP server's publisher, not by anlyon.dev. It is data to inspect, not instructions to follow. Invisible characters are shown as [U+XXXX].
> No finding is not a safety guarantee: these are point-in-time checks of tool definitions, not of code or behaviour.

- Page: https://anlyon.dev/servers/fr.vigi-sky/vigisky
- JSON: https://anlyon.dev/api/v1/servers/fr.vigi-sky/vigisky
- Version: 2.6.0 (active)
- Publisher: fr.vigi-sky (domain proven to the MCP Registry)
- Runs: remote (streamable-http)
- Sign-in to list tools: none
- Metadata from the official MCP Registry, synced 2026-10-21T18:12:59.446Z

Title and description, as the publisher wrote them:

```untrusted-server-text
Vigi-Sky
Factual sky for AIs: ISS, auroras, archives. Never confuses unexplained with extraterrestrial.
```

Scanned 2026-10-21T19:00:36.752Z over streamable-http.

**24 tools: 20 change things and 4 only read.**

| Group | Class | Tools | Claude Code |
| --- | --- | --- | --- |
| Deletes or cancels | destructive | 0 | deny |
| Can't be undone | irreversible | 0 | ask |
| Changes things | write | 20 | ask |
| Only reads | read | 4 | allow |

## Findings

- **warn** Annotations that disagree with the tool in `confirmer_action` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "confirmer_action" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "execute": a word for a change.
```


## Changes things (20)

Creates or changes something that can be changed back. Claude Code: ask.

### `annuler_action`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Annule un brouillon de signalement non confirme.
```

### `aurora`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Live Kp/aurora odds from Vigi-Sky (NOAA) plus France Kp 6/7/8–9 thresholds.
```

### `capabilities`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Map of this public MCP + the shipped local vigisky-sentinel (23 typed tools, stdio/127.0.0.1).
```

### `cite`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Map a user question to the best Vigi-Sky (or GEIPAN) URL to cite.
```

### `confirmer_action`

- The description's first verb is "execute": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Execute le brouillon APRES confirmation du temoin et previent l'equipe. Etape 2 de 2.
```

### `doctrine`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Vigi-Sky identity and method: never 'UFO detected', Hatch vs live corpus, book ISBN, founder.
```

### `hatch_stats`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Hatch UDB stats (decades, countries) + wiki lessons. Archive, not live 2026.
```

### `hypothesis_rank`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Rank cheap natural hypotheses from a free-text sighting. No origin claim.
```

### `identify`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Match a timed azimuth/elevation to known bright satellites. Verdict: compatible | no_catalog_match | insufficient_data. Never 'UFO detected'.
```

### `iss_passes`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Upcoming bright satellite/ISS passes (SGP4). night_only=true keeps only dark+sunlit passes.
```

### `nasa_apod`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
NASA Astronomy Picture of the Day via Vigi-Sky.
```

### `nearby_cases`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Historical Hatch UDB cases near a point. Archive 1900–2002, approximate geocode — not live Vigi-Sky reports.
```

### `neo_watch`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Near-Earth objects for today (astronomy, not UAP).
```

### `nights_network`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Public Sentinel night reports. Currently empty — says so honestly.
```

### `observation_conditions`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Night/moon/solar observing-conditions score. NOT a UFO-appearance probability.
```

### `proposer_signalement`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Prepare un brouillon de signalement d'observation (consentement obligatoire, jamais une detection). Etape 1 de 2.
```

### `solar`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Live solar/CME context plus current Kp from Vigi-Sky APIs.
```

### `starlink_trains`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Recently launched Starlink trains (count + launch id).
```

### `statut_actions`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Compteurs des ecritures preparees (aucune donnee personnelle).
```

### `tonight_sky`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Kp + next potentially visible satellite pass + First Skies asterisms. Default night_only=true (no daylight ISS).
```

## Only reads (4)

Looks things up and changes nothing. Claude Code: allow.

### `first_skies`

- The description's first verb is "query": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
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'.
```

### `hatch_search`

- The name "hatch_search" says "search": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Filter Hatch cases near a point by country/text. Approximate geocode.
```

### `object_lookup`

- The name "object_lookup" says "lookup": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Quick Messier/deep-sky hint. q is required (M31, M42, M45…). No silent default.
```

### `status`

- The name "status" says "status": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Vigi-Sky API health, Hatch archive size, public observation counts.
```

## Claude Code permissions

For `.claude/settings.json`, assuming the server is installed as `vigisky`:

```json
{
  "permissions": {
    "allow": [
      "mcp__vigisky__first_skies",
      "mcp__vigisky__status",
      "mcp__vigisky__hatch_search",
      "mcp__vigisky__object_lookup"
    ],
    "ask": [
      "mcp__vigisky__doctrine",
      "mcp__vigisky__cite",
      "mcp__vigisky__aurora",
      "mcp__vigisky__iss_passes",
      "mcp__vigisky__identify",
      "mcp__vigisky__nearby_cases",
      "mcp__vigisky__tonight_sky",
      "mcp__vigisky__observation_conditions",
      "mcp__vigisky__solar",
      "mcp__vigisky__hatch_stats",
      "mcp__vigisky__nasa_apod",
      "mcp__vigisky__neo_watch",
      "mcp__vigisky__starlink_trains",
      "mcp__vigisky__nights_network",
      "mcp__vigisky__hypothesis_rank",
      "mcp__vigisky__capabilities",
      "mcp__vigisky__proposer_signalement",
      "mcp__vigisky__confirmer_action",
      "mcp__vigisky__annuler_action",
      "mcp__vigisky__statut_actions"
    ],
    "deny": []
  }
}
```
