Skip to content

Commit db49c02

Browse files
KI7MTclaude
andcommitted
Implement sota-mcp v0.1.0 — 5 tools for Summits on the Air
5 MCP tools: sota_spots (with hours/association/mode filters), sota_alerts, sota_summit_info, sota_summits_near (geospatial), sota_activator_stats. All public endpoints via SOTLAS and SOTALive, no auth required. Rate limited (200ms min delay), in-memory TTL cache, mock mode via SOTA_MCP_MOCK=1. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent a20a5fb commit db49c02

4 files changed

Lines changed: 637 additions & 15 deletions

File tree

README.md

Lines changed: 134 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,151 @@
11
# sota-mcp
22

3-
MCP server for Summits on the Air (SOTA) -- summit lookup, activator stats, and live spots via the SOTLAS API.
3+
MCP server for [Summits on the Air (SOTA)](https://www.sota.org.uk/) — live spots, activation alerts, summit info, nearby summits, and activator stats through any MCP-compatible AI assistant.
44

5-
Part of the [qso-graph](https://qso-graph.io/) collection of amateur radio MCP servers.
5+
Part of the [qso-graph](https://qso-graph.io/) project. **No authentication required** — uses public [SOTLAS](https://sotl.as/) and [SOTALive](https://www.sotalive.tk/) APIs.
66

7-
## Planned Tools
7+
## Install
8+
9+
```bash
10+
pip install sota-mcp
11+
```
12+
13+
## Tools
814

915
| Tool | Description |
1016
|------|-------------|
11-
| `sota_summit_lookup` | Look up a SOTA summit by reference |
12-
| `sota_activator_stats` | Activator statistics and summit list |
13-
| `sota_spots` | Current SOTA spots (live activations) |
14-
| `sota_summit_search` | Search summits by name or association |
15-
| `sota_leaderboard` | Top activators/chasers rankings |
17+
| `sota_spots` | Current and recent spots with time window and association/mode filters |
18+
| `sota_alerts` | Upcoming scheduled activation alerts |
19+
| `sota_summit_info` | Summit details by SOTA reference code |
20+
| `sota_summits_near` | Find summits near coordinates (geospatial search) |
21+
| `sota_activator_stats` | Activator profile, stats, and recent activation history |
1622

17-
## Install
23+
## Quick Start
24+
25+
No credentials needed — just install and configure your MCP client.
26+
27+
### Configure your MCP client
28+
29+
sota-mcp works with any MCP-compatible client. Add the server config and restart — tools appear automatically.
30+
31+
#### Claude Desktop
32+
33+
Add to `claude_desktop_config.json` (`~/Library/Application Support/Claude/` on macOS, `%APPDATA%\Claude\` on Windows):
34+
35+
```json
36+
{
37+
"mcpServers": {
38+
"sota": {
39+
"command": "sota-mcp"
40+
}
41+
}
42+
}
43+
```
44+
45+
#### Claude Code
46+
47+
Add to `.claude/settings.json`:
48+
49+
```json
50+
{
51+
"mcpServers": {
52+
"sota": {
53+
"command": "sota-mcp"
54+
}
55+
}
56+
}
57+
```
58+
59+
#### ChatGPT Desktop
60+
61+
```json
62+
{
63+
"mcpServers": {
64+
"sota": {
65+
"command": "sota-mcp"
66+
}
67+
}
68+
}
69+
```
70+
71+
#### Cursor
72+
73+
Add to `.cursor/mcp.json` (project-level) or `~/.cursor/mcp.json` (global):
74+
75+
```json
76+
{
77+
"mcpServers": {
78+
"sota": {
79+
"command": "sota-mcp"
80+
}
81+
}
82+
}
83+
```
84+
85+
#### VS Code / GitHub Copilot
86+
87+
Add to `.vscode/mcp.json` in your workspace:
88+
89+
```json
90+
{
91+
"servers": {
92+
"sota": {
93+
"command": "sota-mcp"
94+
}
95+
}
96+
}
97+
```
98+
99+
#### Gemini CLI
100+
101+
Add to `~/.gemini/settings.json` (global) or `.gemini/settings.json` (project):
102+
103+
```json
104+
{
105+
"mcpServers": {
106+
"sota": {
107+
"command": "sota-mcp"
108+
}
109+
}
110+
}
111+
```
112+
113+
### Ask questions
114+
115+
> "What SOTA spots are active right now?"
116+
117+
> "Tell me about summit W7I/SI-001"
18118
19-
Coming soon. This package is not yet published to PyPI.
119+
> "What summits are near Boise, Idaho?"
120+
121+
> "Show me KI7MT's SOTA activator stats"
122+
123+
> "Any SOTA alerts for this weekend?"
124+
125+
## Testing Without Network
126+
127+
For testing all tools without hitting the SOTA APIs:
20128

21129
```bash
22-
pip install sota-mcp
130+
SOTA_MCP_MOCK=1 sota-mcp
131+
```
132+
133+
## MCP Inspector
134+
135+
```bash
136+
sota-mcp --transport streamable-http --port 8007
23137
```
24138

25-
## Data Source
139+
Then open the MCP Inspector at `http://localhost:8007`.
26140

27-
All data comes from the public [SOTLAS API](https://sotl.as/) and [SOTA API](https://api2.sota.org.uk/). No API key required.
141+
## Development
142+
143+
```bash
144+
git clone https://github.com/qso-graph/sota-mcp.git
145+
cd sota-mcp
146+
pip install -e .
147+
```
28148

29149
## License
30150

31-
GPL-3.0-or-later. See [LICENSE](LICENSE).
151+
GPL-3.0-or-later

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ keywords = [
1414
"mcp", "model-context-protocol", "activator", "chaser",
1515
]
1616
classifiers = [
17-
"Development Status :: 1 - Planning",
17+
"Development Status :: 3 - Alpha",
1818
"Intended Audience :: Developers",
1919
"Topic :: Communications :: Ham Radio",
2020
"License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",

0 commit comments

Comments
 (0)