{
  "markdown": "<!-- mcp-name: io.github.qso-graph/iota-mcp -->\n# iota-mcp\n\nMCP server for [Islands on the Air (IOTA)](https://www.iota-world.org/) — group lookup, island search, DXCC mapping, nearby groups, and programme statistics through any MCP-compatible AI assistant.\n\nPart of the [qso-graph](https://qso-graph.io/) project. **No authentication required** — all IOTA data is public.\n\n## Install\n\n```bash\npip install iota-mcp\n```\n\n## Tools\n\n| Tool | Description |\n|------|-------------|\n| `iota_lookup` | Look up an IOTA group by reference number (e.g., NA-005) |\n| `iota_search` | Search groups and islands by name (e.g., Hawaii, Shetland) |\n| `iota_islands` | List all islands and subgroups in an IOTA group |\n| `iota_dxcc` | Bidirectional DXCC-to-IOTA mapping |\n| `iota_stats` | Programme summary — totals by continent, most/least credited |\n| `iota_nearby` | Find IOTA groups nearest to a lat/lon location |\n| `get_version_info` | Service version + upstream programme data version (fleet identity attestation) |\n\n## Quick Start\n\nNo credentials needed — just install and configure your MCP client.\n\n### Configure your MCP client\n\niota-mcp works with any MCP-compatible client. Add the server config and restart — tools appear automatically.\n\n#### Claude Desktop\n\nAdd to `claude_desktop_config.json` (`~/Library/Application Support/Claude/` on macOS, `%APPDATA%\\Claude\\` on Windows):\n\n```json\n{\n  \"mcpServers\": {\n    \"iota\": {\n      \"command\": \"iota-mcp\"\n    }\n  }\n}\n```\n\n#### Claude Code\n\nAdd to `.claude/settings.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"iota\": {\n      \"command\": \"iota-mcp\"\n    }\n  }\n}\n```\n\n#### ChatGPT Desktop\n\n```json\n{\n  \"mcpServers\": {\n    \"iota\": {\n      \"command\": \"iota-mcp\"\n    }\n  }\n}\n```\n\n#### Cursor\n\nAdd to `.cursor/mcp.json` (project-level) or `~/.cursor/mcp.json` (global):\n\n```json\n{\n  \"mcpServers\": {\n    \"iota\": {\n      \"command\": \"iota-mcp\"\n    }\n  }\n}\n```\n\n#### VS Code / GitHub Copilot\n\nAdd to `.vscode/mcp.json` in your workspace:\n\n```json\n{\n  \"servers\": {\n    \"iota\": {\n      \"command\": \"iota-mcp\"\n    }\n  }\n}\n```\n\n#### Gemini CLI\n\nAdd to `~/.gemini/settings.json` (global) or `.gemini/settings.json` (project):\n\n```json\n{\n  \"mcpServers\": {\n    \"iota\": {\n      \"command\": \"iota-mcp\"\n    }\n  }\n}\n```\n\n### Example Prompts\n\n- \"Look up IOTA group NA-005\"\n- \"Search for islands named Shetland\"\n- \"What IOTA groups are near Boise, Idaho?\"\n- \"Show me all islands in EU-005\"\n- \"What IOTA references map to DXCC 291?\"\n- \"Give me IOTA programme statistics\"\n\n## Data Source\n\nData comes from the official [IOTA website](https://www.iota-world.org/) JSON downloads:\n\n- **fulllist.json** — complete group/subgroup/island hierarchy (~1.3 MB)\n- **dxcc_matches_one_iota.json** — 1:1 DXCC-to-IOTA mapping (~3.5 KB)\n\nData is downloaded once and cached for 24 hours (IOTA refreshes daily at 00:00 UTC).\n\n## Development\n\n```bash\ngit clone https://github.com/qso-graph/iota-mcp.git\ncd iota-mcp\npip install -e .\n\n# Run with mock data (no network)\nIOTA_MCP_MOCK=1 python -m iota_mcp.server\n\n# Run with MCP Inspector\niota-mcp --transport streamable-http --port 8010\n\n# Security tests\npip install pytest\npytest tests/test_security.py -v\n```\n\n## License\n\nGPL-3.0-or-later\n",
  "bytes": 3178,
  "sha": "66624fdd67016ad5b089e6b03222b11835fbbe7c94319a01501c40e70383a191",
  "repo_slug": "qso-graph/iota-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_qso_graph_iota_mcp_d75c18f9/readme"
}