oeradio-mcp

Amateur radio MCP server with band plans, EIRP, cable loss, antenna gains, and more

Should I use this

Quality & Safety

A
Description quality
69%
Schema completeness
91%
Naming quality
99%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (10)

  • LOWTool 'check_frequency' description lacks action verbin check_frequency
  • LOWTool 'calculate_cable_loss' description lacks action verbin calculate_cable_loss
  • LOWTool 'compare_cables' description lacks action verbin compare_cables
  • LOWTool 'calculate_battery_runtime' description lacks action verbin calculate_battery_runtime
  • LOWTool 'get_antenna_gain' description lacks action verbin get_antenna_gain
  • LOWTool 'calculate_wavelength' description lacks action verbin calculate_wavelength
  • LOWTool 'calculate_swr_loss' description lacks action verbin calculate_swr_loss
  • LOWTool 'convert_power' description lacks action verbin convert_power
  • LOWTool 'callsign_available' description lacks action verbin callsign_available
  • LOWTool 'callsign_suggest' description lacks action verbin callsign_suggest

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,369Tokens (tool definitions)
~1.0 KBTypical response size
Moderate attention impact (1.85% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "oeradio-mcp": {
      "url": "https://oeradio-mcp.oeradio.at/mcp"
    }
  }
}

Remote endpoints

https://oeradio-mcp.oeradio.at/mcpstreamable-http

What it can do

Tool inventory

Tools (17)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_band_plan(band)

Gibt Frequenzgrenzen, erlaubte Modes und maximale Sendeleistung für ein Amateurfunkband zurück (IARU Region 1 / Österreich)

Input Schema

{
  "type": "object",
  "properties": {
    "band": {
      "type": "string",
      "description": "Bandbezeichnung wie '20m', '2m', '70cm', '160m'"
    }
  },
  "required": [
    "band"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_all_bands

Listet alle verfügbaren Amateurfunkbänder mit Grundinformationen auf

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢check_frequency(frequency, unit)

Prüft ob eine Frequenz im Amateurfunk erlaubt ist und gibt das zugehörige Band zurück

Input Schema

{
  "type": "object",
  "properties": {
    "frequency": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Frequenz als Zahl"
    },
    "unit": {
      "type": "string",
      "enum": [
        "Hz",
        "kHz",
        "MHz"
      ],
      "default": "kHz",
      "description": "Einheit der Frequenz"
    }
  },
  "required": [
    "frequency"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢calculate_eirp(power_watts, cable_loss_db, antenna_gain_dbi)

Berechnet EIRP (Equivalent Isotropically Radiated Power) aus Sendeleistung, Kabelverlust und Antennengewinn. Nützlich für Sicherheitsabstands-Berechnungen nach ÖNORM.

Input Schema

{
  "type": "object",
  "properties": {
    "power_watts": {
      "type": "number",
      "minimum": 0.001,
      "maximum": 2000,
      "description": "Sendeleistung in Watt"
    },
    "cable_loss_db": {
      "type": "number",
      "minimum": 0,
      "maximum": 50,
      "description": "Kabelverlust in dB"
    },
    "antenna_gain_dbi": {
      "type": "number",
      "minimum": -10,
      "maximum": 50,
      "description": "Antennengewinn in dBi"
    }
  },
  "required": [
    "power_watts",
    "cable_loss_db",
    "antenna_gain_dbi"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢calculate_cable_loss(cable_type, length_meters, frequency_mhz)

Berechnet die Kabeldämpfung für verschiedene Koaxialkabeltypen bei einer bestimmten Frequenz und Länge

Input Schema

{
  "type": "object",
  "properties": {
    "cable_type": {
      "type": "string",
      "enum": [
        "RG58",
        "RG213",
        "H2000Flex",
        "Aircell7",
        "Ecoflex10",
        "Ecoflex15",
        "LMR400",
        "LMR600"
      ],
      "description": "Kabeltyp"
    },
    "length_meters": {
      "type": "number",
      "minimum": 0.1,
      "maximum": 1000,
      "description": "Kabellänge in Metern"
    },
    "frequency_mhz": {
      "type": "number",
      "minimum": 0.1,
      "maximum": 3000,
      "description": "Frequenz in MHz"
    }
  },
  "required": [
    "cable_type",
    "length_meters",
    "frequency_mhz"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪compare_cables(length_meters, frequency_mhz)

Vergleicht alle verfügbaren Kabeltypen bei einer bestimmten Frequenz und Länge

Input Schema

{
  "type": "object",
  "properties": {
    "length_meters": {
      "type": "number",
      "minimum": 0.1,
      "maximum": 1000,
      "description": "Kabellänge in Metern"
    },
    "frequency_mhz": {
      "type": "number",
      "minimum": 0.1,
      "maximum": 3000,
      "description": "Frequenz in MHz"
    }
  },
  "required": [
    "length_meters",
    "frequency_mhz"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢calculate_battery_runtime(capacity_ah, voltage, consumption_watts, efficiency, max_discharge_percent)

Berechnet die Akkulaufzeit basierend auf Kapazität und durchschnittlichem Stromverbrauch. Berücksichtigt Effizienz und Entladetiefe.

Input Schema

{
  "type": "object",
  "properties": {
    "capacity_ah": {
      "type": "number",
      "minimum": 0.1,
      "maximum": 1000,
      "description": "Akkukapazität in Amperestunden (Ah)"
    },
    "voltage": {
      "type": "number",
      "minimum": 1,
      "maximum": 60,
      "description": "Nennspannung des Akkus in Volt"
    },
    "consumption_watts": {
      "type": "number",
      "minimum": 0.1,
      "maximum": 2000,
      "description": "Durchschnittlicher Verbrauch in Watt"
    },
    "efficiency": {
      "type": "number",
      "minimum": 0.5,
      "maximum": 1,
      "default": 0.85,
      "description": "Wirkungsgrad des Reglers (0.85 = 85%)"
    },
    "max_discharge_percent": {
      "type": "number",
      "minimum": 10,
      "maximum": 100,
      "default": 80,
      "description": "Maximale Entladetiefe in % (80% empfohlen für LiFePO4)"
    }
  },
  "required": [
    "capacity_ah",
    "voltage",
    "consumption_watts"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_antenna_gain(antenna_type)

Gibt typische Gewinnwerte für verschiedene Antennentypen zurück

Input Schema

{
  "type": "object",
  "properties": {
    "antenna_type": {
      "type": "string",
      "description": "Antennentyp (z.B. 'dipol', 'yagi-5el') oder leer für alle"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢calculate_wavelength(frequency, unit, velocity_factor)

Berechnet die Wellenlänge für eine gegebene Frequenz und optional Drahtlängen für Antennen

Input Schema

{
  "type": "object",
  "properties": {
    "frequency": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Frequenz"
    },
    "unit": {
      "type": "string",
      "enum": [
        "Hz",
        "kHz",
        "MHz",
        "GHz"
      ],
      "default": "MHz",
      "description": "Einheit der Frequenz"
    },
    "velocity_factor": {
      "type": "number",
      "minimum": 0.5,
      "maximum": 1,
      "default": 0.95,
      "description": "Verkürzungsfaktor für Draht (0.95 typisch)"
    }
  },
  "required": [
    "frequency"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢calculate_swr_loss(swr)

Berechnet den Leistungsverlust durch Fehlanpassung (SWR/VSWR)

Input Schema

{
  "type": "object",
  "properties": {
    "swr": {
      "type": "number",
      "minimum": 1,
      "maximum": 100,
      "description": "SWR-Wert (z.B. 1.5, 2.0, 3.0)"
    }
  },
  "required": [
    "swr"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪convert_power(value, from_unit)

Rechnet Leistungswerte zwischen Watt, dBm und dBW um

Input Schema

{
  "type": "object",
  "properties": {
    "value": {
      "type": "number",
      "description": "Leistungswert"
    },
    "from_unit": {
      "type": "string",
      "enum": [
        "W",
        "mW",
        "dBm",
        "dBW"
      ],
      "description": "Ausgangseinheit"
    }
  },
  "required": [
    "value",
    "from_unit"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_oeradio_tools(category)

Listet alle verfügbaren OERadio.at Amateurfunk-Werkzeuge mit URLs und Beschreibungen

Input Schema

{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "enum": [
        "all",
        "calculators",
        "learning",
        "utilities"
      ],
      "default": "all",
      "description": "Kategorie filtern: all, calculators, learning, utilities"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪callsign_lookup(callsign, include_address)

Sucht ein österreichisches Amateurfunkrufzeichen und gibt Inhaberinformationen zurück. Primäre Quelle: offizielle fb.gv.at Liste, mit Fallback auf QRZ.com und HamQTH.

Input Schema

{
  "type": "object",
  "properties": {
    "callsign": {
      "type": "string",
      "description": "Das zu suchende Rufzeichen (z.B. \"OE8YML\")"
    },
    "include_address": {
      "type": "boolean",
      "default": false,
      "description": "Adresse inkludieren wenn verfügbar"
    }
  },
  "required": [
    "callsign"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪callsign_available(suffix, district)

Prüft ob ein Suffix in Österreich verfügbar ist. Zeigt in welchen Bundesländern das Rufzeichen frei oder belegt ist.

Input Schema

{
  "type": "object",
  "properties": {
    "suffix": {
      "type": "string",
      "description": "2-3 Buchstaben Suffix (z.B. \"YML\")"
    },
    "district": {
      "type": "number",
      "minimum": 1,
      "maximum": 9,
      "description": "Spezifisches Bundesland prüfen (1-9)"
    }
  },
  "required": [
    "suffix"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪callsign_suggest(name, preferred_district, max_results, exclude_club, min_phonetic_score)

Generiert Wunschrufzeichen-Vorschläge basierend auf Namen und Präferenzen. Berücksichtigt Verfügbarkeit, Phonetik und CW-Freundlichkeit.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Vor- und/oder Nachname"
    },
    "preferred_district": {
      "type": "number",
      "minimum": 1,
      "maximum": 9,
      "description": "Bevorzugtes Bundesland (1-9)"
    },
    "max_results": {
      "type": "number",
      "minimum": 1,
      "maximum": 50,
      "default": 10,
      "description": "Maximale Anzahl Vorschläge"
    },
    "exclude_club": {
      "type": "boolean",
      "default": true,
      "description": "Keine X-Präfixe (Klubrufzeichen) vorschlagen"
    },
    "min_phonetic_score": {
      "type": "number",
      "minimum": 0,
      "maximum": 1,
      "default": 0.5,
      "description": "Mindest-Phonetik-Score (0-1)"
    }
  },
  "required": [
    "name"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪callsign_validate(callsign)

Validiert ein Rufzeichen gegen österreichische Regeln. Prüft Format, Bezirk und Suffix-Länge.

Input Schema

{
  "type": "object",
  "properties": {
    "callsign": {
      "type": "string",
      "description": "Zu validierendes Rufzeichen"
    }
  },
  "required": [
    "callsign"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪callsign_database_info

Zeigt Informationen über die Rufzeichen-Datenbank (Version, Anzahl Einträge, Statistiken)

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded17 tools
verifiedversion not recorded17 tools
verifiedversion not recorded17 tools