MCP server: One MCP server.

Iota

@qso-graphMCP server · External

Islands on the Air MCP server. Group lookup, island search, DXCC mapping, nearby groups.

v0.2.0GPL-3.0Python
Freeno charge per call

Runs on your machine from its package; the steps are below.

What it does

  1. Reads
  2. Writes
  3. High impact

At most: only reads or looks up information.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Runs locally over stdio

This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).

PyPIiota-mcpv0.2.0

Run

uvx iota-mcp

MCP client config

{
  "mcpServers": {
    "iota": {
      "command": "uvx",
      "args": [
        "iota-mcp"
      ]
    }
  }
}
README2 min read

iota-mcp

PyPI MCP Registry

MCP server for Islands on the Air (IOTA) — group lookup, island search, DXCC mapping, nearby groups, and programme statistics through any MCP-compatible AI assistant.

Part of the qso-graph project. No authentication required — all IOTA data is public.

Install

bash
uvx iota-mcp            # run it; nothing to install

Tools

ToolDescription
iota_lookupLook up an IOTA group by reference number (e.g., NA-005)
iota_searchSearch groups and islands by name (e.g., Hawaii, Shetland)
iota_islandsList all islands and subgroups in an IOTA group
iota_dxccBidirectional DXCC-to-IOTA mapping
iota_statsProgramme summary — totals by continent, most/least credited
iota_nearbyFind IOTA groups nearest to a lat/lon location
get_version_infoService version + upstream programme data version (fleet identity attestation)

Quick Start

No credentials needed — just install and configure your MCP client.

Configure your MCP client

iota-mcp works with any MCP-compatible client. Add the server config and restart — tools appear automatically.

Claude Desktop

Add to claude_desktop_config.json (~/Library/Application Support/Claude/ on macOS, %APPDATA%\Claude\ on Windows):

json
{
  "mcpServers": {
    "iota": {
      "command": "uvx",
      "args": ["iota-mcp"]
    }
  }
}

Claude Code

Add to .claude/settings.json:

json
{
  "mcpServers": {
    "iota": {
      "command": "uvx",
      "args": ["iota-mcp"]
    }
  }
}

ChatGPT Desktop

json
{
  "mcpServers": {
    "iota": {
      "command": "uvx",
      "args": ["iota-mcp"]
    }
  }
}

Cursor

Add to .cursor/mcp.json (project-level) or ~/.cursor/mcp.json (global):

json
{
  "mcpServers": {
    "iota": {
      "command": "uvx",
      "args": ["iota-mcp"]
    }
  }
}

VS Code / GitHub Copilot

Add to .vscode/mcp.json in your workspace:

json
{
  "servers": {
    "iota": {
      "command": "uvx",
      "args": ["iota-mcp"]
    }
  }
}

Gemini CLI

Add to ~/.gemini/settings.json (global) or .gemini/settings.json (project):

json
{
  "mcpServers": {
    "iota": {
      "command": "uvx",
      "args": ["iota-mcp"]
    }
  }
}

Ask questions

"Look up IOTA group NA-005"

"Search for islands named Shetland"

"What IOTA groups are near Boise, Idaho?"

"Show me all islands in EU-005"

"What IOTA references map to DXCC 291?"

"Give me IOTA programme statistics"

Data Source

Data comes from the official IOTA website JSON downloads:

  • fulllist.json — complete group/subgroup/island hierarchy (~1.3 MB)
  • dxcc_matches_one_iota.json — 1:1 DXCC-to-IOTA mapping (~3.5 KB)

Data is downloaded once and cached for 24 hours (IOTA refreshes daily at 00:00 UTC).

Testing Without Network

bash
IOTA_MCP_MOCK=1 iota-mcp

MCP Inspector

bash
iota-mcp --transport streamable-http --port 8010

Then open the MCP Inspector at http://localhost:8010.

Development

bash
git clone https://github.com/qso-graph/iota-mcp.git
cd iota-mcp
uv sync --group dev
uv run pytest

License

GPL-3.0-or-later

Similar modules