Skip to content

net.fsaircraft/catalog

by fsaircraft.net · remote · no sign-in to list tools · v1.0.0 · published by net.fsaircraft

Price comparison for Microsoft Flight Simulator add-ons: search, deals, per-store prices, history.

Changes · 3

12 tools: 3 change things and 9 only read.

Scanned Oct 21, 2026

2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http catalog https://mcp.fsaircraft.net/mcp

Findings

Matches of fixed checks, with the text they matched.

2 warn
  • The server marks "list_deals" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "list_deals" says "list": a word for reading.

    What this check looks for
  • The server marks "list_developers" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "list_developers" says "list": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

12 tools

Changes things 3Claude Code: ask
  • list_dealsAdd-ons discounted right now, deepest discount first.1 finding

    Why it is in this group

    • The name "list_deals" says "list": a word for reading.
    • The description's first verb is "add": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

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

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "list_deals" says "list": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Add-ons discounted right now, deepest discount first. A discount here means the current price is below the highest price we have ever recorded for that same offer at that same store — never a store-printed list price, so permanent markdowns do not appear.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_developersAdd-on studios in the catalog, busiest first, optionally filtered by name.1 finding

    Why it is in this group

    • The name "list_developers" says "list": a word for reading.
    • The description's first verb is "add": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

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

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "list_developers" says "list": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Add-on studios in the catalog, busiest first, optionally filtered by name.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • price_historyDaily lowest known VAT-excluded price in EUR, using current exchange rates, plus min/max/current and whether it is at its lowest ever.No findings

    Why it is in this group

    • 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
    Daily lowest known VAT-excluded price in EUR, using current exchange rates, plus min/max/current and whether it is at its lowest ever. Answers "has this ever been cheaper than X?".

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 9Claude Code: allow
  • compare_pricesEvery store offer for one add-on, in-stock offers with known net prices first, ordered by net EUR price.No findings

    Why it is in this group

    • The name "compare_prices" says "compare": a word for reading.
    Description, as the server wrote it
    Every store offer for one add-on, in-stock offers with known net prices first, ordered by net EUR price. Includes the listed price, tax status, known net price, EUR conversion, stock, sale expiry and an outbound link.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • fetchRetrieve one add-on as a document, by the `id` returned from `search` (the add-on slug).No findings

    Why it is in this group

    • The name "fetch" says "fetch": a word for reading.
    Description, as the server wrote it
    Retrieve one add-on as a document, by the `id` returned from `search` (the add-on slug). Returns the full description plus every current store price.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • find_aircraft_typeResolve a plain-language aircraft name ("737 MAX", "Cessna 172", "A320neo") to its ICAO Doc 8643 designator, with how many add-ons we carry for it.No findings

    Why it is in this group

    • The name "find_aircraft_type" says "find": a word for reading.
    Description, as the server wrote it
    Resolve a plain-language aircraft name ("737 MAX", "Cessna 172", "A320neo") to its ICAO Doc 8643 designator, with how many add-ons we carry for it. Feed the designator to list_addons_for_aircraft.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_addonEverything the catalog holds on a single add-on: description, developer, declared simulator compatibility, rating, every store offer with its VAT split and sale expiry, the lowest …No findings

    Why it is in this group

    • The name "get_addon" says "get": a word for reading.
    Description, as the server wrote it
    Everything the catalog holds on a single add-on: description, developer, declared simulator compatibility, rating, every store offer with its VAT split and sale expiry, the lowest price ever recorded, and the real-world aircraft types and airports it implements.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_addons_for_aircraftEvery add-on implementing one real-world aircraft type, across all studios, cheapest first.No findings

    Why it is in this group

    • The name "list_addons_for_aircraft" says "list": a word for reading.
    Description, as the server wrote it
    Every add-on implementing one real-world aircraft type, across all studios, cheapest first. The type link is our own classification (from the title and the store metadata), not the store's.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_sceneries_for_airportEvery add-on scenery we carry for one airport, by ICAO (or IATA) code, cheapest first.No findings

    Why it is in this group

    • The name "list_sceneries_for_airport" says "list": a word for reading.
    Description, as the server wrote it
    Every add-on scenery we carry for one airport, by ICAO (or IATA) code, cheapest first.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_storesEvery storefront in the catalog, with how many add-ons we track there, how many are discounted right now, and whether its prices include VAT.No findings

    Why it is in this group

    • The name "list_stores" says "list": a word for reading.
    Description, as the server wrote it
    Every storefront in the catalog, with how many add-ons we track there, how many are discounted right now, and whether its prices include VAT. Use it to answer "which stores do you actually cover" and to get the `store` slug vocabulary for search_addons.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_addonsSearch the fsaircraft.net catalog of payware Microsoft Flight Simulator add-ons (aircraft, scenery, liveries, utilities) across every tracked store.No findings

    Why it is in this group

    • The name "search_addons" says "search": a word for reading.
    Description, as the server wrote it
    Search the fsaircraft.net catalog of payware Microsoft Flight Simulator add-ons (aircraft, scenery, liveries, utilities) across every tracked store. Returns the cheapest live offer for each add-on with its discount and MSFS 2020/2024 compatibility as declared by the selling store.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http catalog https://mcp.fsaircraft.net/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__catalog__search_addons",
      "mcp__catalog__get_addon",
      "mcp__catalog__compare_prices",
      "mcp__catalog__list_stores",
      "mcp__catalog__find_aircraft_type",
      "mcp__catalog__list_addons_for_aircraft",
      "mcp__catalog__list_sceneries_for_airport",
      "mcp__catalog__search",
      "mcp__catalog__fetch"
    ],
    "ask": [
      "mcp__catalog__list_deals",
      "mcp__catalog__price_history",
      "mcp__catalog__list_developers"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as catalog. Review it before you use it.