Skip to main content

MCP server for Islands on the Air — group lookup, island search, DXCC mapping

Project description

iota-mcp

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

pip install iota-mcp

Tools

Tool Description
iota_lookup Look up an IOTA group by reference number (e.g., NA-005)
iota_search Search groups and islands by name (e.g., Hawaii, Shetland)
iota_islands List all islands and subgroups in an IOTA group
iota_dxcc Bidirectional DXCC-to-IOTA mapping
iota_stats Programme summary — totals by continent, most/least credited
iota_nearby Find IOTA groups nearest to a lat/lon location

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):

{
  "mcpServers": {
    "iota": {
      "command": "iota-mcp"
    }
  }
}

Claude Code

Add to .claude/settings.json:

{
  "mcpServers": {
    "iota": {
      "command": "iota-mcp"
    }
  }
}

ChatGPT Desktop

{
  "mcpServers": {
    "iota": {
      "command": "iota-mcp"
    }
  }
}

Cursor

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

{
  "mcpServers": {
    "iota": {
      "command": "iota-mcp"
    }
  }
}

VS Code / GitHub Copilot

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

{
  "servers": {
    "iota": {
      "command": "iota-mcp"
    }
  }
}

Gemini CLI

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

{
  "mcpServers": {
    "iota": {
      "command": "iota-mcp"
    }
  }
}

Example Prompts

  • "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).

Development

git clone https://github.com/qso-graph/iota-mcp.git
cd iota-mcp
pip install -e .

# Run with mock data (no network)
IOTA_MCP_MOCK=1 python -m iota_mcp.server

# Run with MCP Inspector
iota-mcp --transport streamable-http --port 8010

# Security tests
pip install pytest
pytest tests/test_security.py -v

License

GPL-3.0-or-later

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iota_mcp-0.1.1.tar.gz (14.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iota_mcp-0.1.1-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file iota_mcp-0.1.1.tar.gz.

File metadata

  • Download URL: iota_mcp-0.1.1.tar.gz
  • Upload date:
  • Size: 14.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for iota_mcp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 4b32971c197890896e9a0e86a1b71a104e18499603e52ad43a6d609bf206a3ff
MD5 bf54cb5282815dc5208b52dec5e033dd
BLAKE2b-256 bad1a258b16711fb3d64b4d5d17efbaa21f2997644bf6766ab67924c40ebc3e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for iota_mcp-0.1.1.tar.gz:

Publisher: publish.yml on qso-graph/iota-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file iota_mcp-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: iota_mcp-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for iota_mcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 14791c22527c9cf9664efbf7d5e602fa160ca70dc612db6a2e5ff8f742a9f12d
MD5 40fc4e5e094cfb28ffd903a0936a952d
BLAKE2b-256 1103aa50b924ffc5b0d9d0e2a2c557642c5f3753763bdc5944b84e748e38b050

See more details on using hashes here.

Provenance

The following attestation bundles were made for iota_mcp-0.1.1-py3-none-any.whl:

Publisher: publish.yml on qso-graph/iota-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page