Wigle
БесплатноНе проверенAn MCP server that exposes WiGLE.net wardriving lookups as tools for LLMs, enabling searches and details for WiFi networks, Bluetooth devices, and cell towers.
Описание
An MCP server that exposes WiGLE.net wardriving lookups as tools for LLMs, enabling searches and details for WiFi networks, Bluetooth devices, and cell towers.
README
An MCP server that exposes WiGLE.net wardriving lookups as tools for LLMs.
All tools are read-only. Responses are trimmed to compact summaries so agents stay within context limits and WiGLE query quota.
Tools
- network_search — search observed WiFi networks by SSID, BSSID, bounding box, country/region/city, or encryption.
- network_detail — look up a single BSSID; pass
include_locations=truefor capped sighting history. - bluetooth_search / bluetooth_detail — same pattern for Bluetooth/BLE devices.
- cell_search / cell_detail — same pattern for cell towers.
- user_stats — WiGLE account stats (rank, discovered network counts).
- site_stats — WiGLE-wide totals (networks, locations, users).
Query etiquette
WiGLE enforces per-account daily query limits (reset midnight US/Pacific; new accounts start low). The server validates requests and ships MCP server instructions to guide agents, but humans should know the rules too:
- Always filter searches. Every
*_searchcall needs at least one filter (SSID, BSSID, geo fields, bounding box, encryption, etc.). Unfiltered searches are rejected before they hit the API. - Paginate with
search_after. Responses include asearchAftercursor. Pass it assearch_afteron the next page — it alone satisfies the filter requirement, so you do not need to repeat the original filters. - Prefer search over detail. One bounded search beats many per-BSSID detail
calls. Keep
results_per_pagelow unless you need more. - Locations are opt-in.
*_detailreturns a summary by default. Passinclude_locations=trueonly when sighting history is needed (capped at 5 points).
On startup the server verifies credentials by calling stats/user. Missing or
invalid keys fail immediately instead of on the first tool call.
Errors are returned as MCP tool errors (not success payloads with an error
field). HTTP 429 responses include guidance about daily limits.
Response shape
Search results are compact summaries, not raw WiGLE records:
{
"netid": "00:00:34:7A:67:1E",
"ssid": "pretty fly for a wifi",
"encryption": "wpa2",
"trilat": 33.057,
"trilong": -96.720,
"country": "US",
"region": "TX",
"city": "Plano",
"sightingCount": 12,
"lastSeen": {"latitude": 33.057, "longitude": -96.720}
}
Detail responses use the same summary fields. With include_locations=true,
sightingCount is accompanied by up to five locationData entries (with
locationDataTruncated when more exist).
Example workflow
1. network_search(city="San Francisco", region="CA", country="US", results_per_page=5)
→ searchAfter: "3522985", results: [...]
2. network_search(search_after="3522985", results_per_page=5)
→ next page of the same query
3. network_detail(bssid="00:00:00:00:81:4E")
→ summary for one network
4. network_detail(bssid="00:00:00:00:81:4E", include_locations=true)
→ summary plus capped sighting locations
Setup
Get a free API key (Name + Token) at https://wigle.net/account, under "Your API Key".
Provide credentials via environment variables:
export WIGLE_API_NAME=... export WIGLE_API_TOKEN=...or in
~/.config/wigle-mcp/config.json:{"api_name": "...", "api_token": "..."}MCP host configs can omit
envwhen using the config file.
Running
uv run wigle-mcp
If uv run fails because wigle-mcp.exe is locked (common on Windows when
another MCP client is connected), use the module entry point instead:
uv run python -m wigle_mcp.server
Configuration
On Windows, add --no-sync to uv run args in every host config so
uv does not try to reinstall the project while another client already has
wigle-mcp.exe open.
Claude Code
claude mcp add wigle -- uv --directory /path/to/wigle-mcp run --no-sync wigle-mcp
Claude Desktop
{
"mcpServers": {
"wigle": {
"command": "uv",
"args": ["--directory", "/path/to/wigle-mcp", "run", "--no-sync", "wigle-mcp"],
"env": {
"WIGLE_API_NAME": "your-api-name",
"WIGLE_API_TOKEN": "your-api-token"
}
}
}
}
Cursor
Add to .cursor/mcp.json (project-level) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"wigle": {
"command": "uv",
"args": ["--directory", "/path/to/wigle-mcp", "run", "--no-sync", "wigle-mcp"],
"env": {
"WIGLE_API_NAME": "your-api-name",
"WIGLE_API_TOKEN": "your-api-token"
}
}
}
}
Development
uv sync --dev
uv run pytest
uv run ruff check .
uv run ruff format --check .
License: MIT
Установка Wigle
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/thehappydinoa/wigle-mcpFAQ
Wigle MCP бесплатный?
Да, Wigle MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Wigle?
Нет, Wigle работает без API-ключей и переменных окружения.
Wigle — hosted или self-hosted?
Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.
Как установить Wigle в Claude Desktop, Claude Code или Cursor?
Открой Wigle на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Wigle with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
