WiFi Scanner MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@WiFi Scanner MCP scan nearby Wi-Fi networks and suggest the best router channel"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
A Model Context Protocol server that lets Claude Desktop, Claude Code and any other MCP client scan Wi-Fi networks on macOS and Windows (plus Linux as a bonus). One-click install, zero dependencies, 100% local and read-only.
You: Which Wi-Fi networks are around me, and which channel should my router use?
Claude: I found 14 networks. The strongest are HomeNet (−48 dBm, 5 GHz, WPA3, you're
connected), Office-Guest (−61 dBm, 2.4 GHz, WPA2) and CoffeeShop Free (−70 dBm,
open, no encryption).
Your router is on 2.4 GHz channel 6, which shares airtime with 7 other access
points. Channel 1 is the least crowded right now, and on 5 GHz channel 149 is
nearly empty.Features
📡 Scan nearby networks: SSID, BSSID, signal (dBm, %, quality, 1–4 bars), channel, channel width, 2.4 / 5 / 6 GHz band, PHY mode (802.11ac/ax/be) and security.
🔌 Current connection: network, signal, channel, security and link speed.
📊 Channel analyzer: overlap-aware interference scores for 2.4 GHz (1/6/11) and 5 GHz, a recommended router channel, and congestion on your channel.
🔐 Security check: flags open, WEP and legacy WPA networks nearby.
🧩 Filters: by band, minimum signal, grouped per network or per access point, sorted by signal/name/channel.
🌍 Any Windows language: the netsh parser does not rely on English labels (tested with English and Swedish output).
🪶 Zero dependencies: plain Node.js (bundled with Claude Desktop), no
npm installneeded.🔒 Private by design: no internet access, no telemetry, nothing stored. It only reads what your OS already knows.
Related MCP server: MikroTik WiFi Users
Install
Claude Desktop (one click, recommended)
Download
wifi-scanner-x.y.z.mcpbfrom the latest release.Double-click it (or drag it into Claude Desktop, or Settings → Extensions → Install Extension…).
Click Install. Ask Claude: "Scan for Wi-Fi networks near me."
macOS: the first scan opens a system dialog asking to let WifiScanHelper use your location. Click Allow. macOS only shows Wi-Fi names to apps with Location access (why?). WifiScanHelper never reads your actual location.
Windows 11 24H2+: Wi-Fi scanning requires Settings → Privacy & security → Location → Location services and Let desktop apps access your location to be on.
Claude Code
git clone https://github.com/Swedishwizards/wifi-scanner-mcp.git
cd wifi-scanner-mcp
npm run build:mac # macOS only: builds the helper (needs Xcode Command Line Tools)
claude mcp add wifi-scanner -- node "$(pwd)/server/index.js"On Windows (PowerShell), skip the build step:
claude mcp add wifi-scanner -- node "$PWD\server\index.js"Any other MCP client (Cursor, Windsurf, VS Code, Cline, …)
{
"mcpServers": {
"wifi-scanner": {
"command": "node",
"args": ["/absolute/path/to/wifi-scanner-mcp/server/index.js"]
}
}
}Tools
Tool | What it does | Arguments (all optional) |
| Lists nearby networks with signal, channel, band, security and connection status. |
|
| The network you are connected to, with signal, channel, security and link speed. | none |
| Per-band channel table, interference scores, recommended router channel, your channel's congestion, insecure nearby networks. |
|
All tools are annotated readOnlyHint: true. Results are cached for 15 seconds so a scan followed by an analysis does not scan twice (fresh: true forces a new scan).
{
"platform": "darwin",
"source": "corewlan-helper",
"access_points_seen": 9,
"count": 3,
"networks": [
{
"ssid": "HomeNet",
"bssid": "a4:2b:b0:11:22:33",
"signal_dbm": -48,
"signal_percent": 100,
"signal_quality": "excellent",
"signal_bars": 4,
"channel": 36,
"channel_width_mhz": 80,
"band": "5 GHz",
"security": "WPA3",
"connected": true,
"access_points": 2,
"bands": ["2.4 GHz", "5 GHz"]
}
],
"notes": []
}Prompts to try
"What Wi-Fi networks can you see? Which is the strongest?"
"Is there an open Wi-Fi network nearby?"
"Why is my Wi-Fi slow? Check for channel congestion."
"Which channel should I set my router to?"
"List every access point on 5 GHz stronger than −70 dBm."
How it works
OS | Backend | Notes |
macOS 13+ |
| Needs Location permission once. Falls back to |
Windows 10/11 | Built-in | Output forced to UTF-8; parsed by structure, so it works in any display language. Windows refreshes the list about once a minute. |
Linux |
| Bonus: not part of the Claude Desktop bundle, but works with Claude Code and other clients. |
Claude ⇄ (stdio, JSON-RPC) ⇄ server/index.js ⇄ macOS: WifiScanHelper.app (CoreWLAN)
⇄ Windows: netsh wlan
⇄ Linux: nmcliWhy does macOS ask for Location?
Since macOS 14.4 Apple removed the airport command and redacts Wi-Fi names (SSIDs/BSSIDs) for any app without Location Services, because nearby network names can reveal where you are. A command-line Node process cannot request that permission, so this project ships a tiny helper app that can. It only calls CoreWLAN to scan; it never asks CoreLocation for coordinates.
Privacy & security
Read-only: the tools never connect to, join or change any network.
Local-only: no HTTP requests, no analytics, no telemetry, no files kept (the helper's temp file is deleted right after reading).
Small and auditable: about 1,300 lines of plain JavaScript and Swift, no third-party packages.
Troubleshooting
Problem | Fix |
macOS: networks show as | System Settings → Privacy & Security → Location Services → turn on WifiScanHelper, then scan again with |
macOS: "macOS blocked the bundled Wi-Fi helper" | System Settings → Privacy & Security → Open Anyway for WifiScanHelper, or run the |
Windows: "location access is turned off" | Settings → Privacy & security → Location: turn on Location services and Let desktop apps access your location. |
Windows: no networks / no adapter | Turn on Wi-Fi; make sure the WLAN AutoConfig service is running. |
"Wi-Fi is turned off" | Turn Wi-Fi on. Scanning needs the radio on (it does not need to be connected). |
Development
npm test # parser + protocol tests (any OS, no Wi-Fi needed)
npm run build:mac # build macos/WifiScanHelper.app (universal: arm64 + x86_64)
npm run pack # build dist/wifi-scanner-<version>.mcpb
node server/index.js # run the server on stdioQuick manual test without a client:
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18"}}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"scan_wifi_networks","arguments":{}}}' \
| node server/index.jsProject layout:
server/index.js MCP server (JSON-RPC over stdio) and tool definitions
server/platforms/*.js macOS / Windows / Linux backends
server/lib/normalize.js common network format, signal and security helpers
server/lib/analyze.js channel congestion and security analysis
macos/ Swift helper source, Info.plist, build script
test/ node:test suites with real-format fixtures
.github/workflows/ CI on macOS/Windows/Linux and release packagingReleasing
Push a tag like v1.0.0. The release workflow runs the tests, builds the universal macOS helper, packs the .mcpb and attaches it to a GitHub release. To sign the helper with your Apple Developer ID, add it as repository secrets (see .github/workflows/release.yml).
Support the project
WiFi Scanner MCP is free and always will be. If it saved you a call to your ISP or helped you pick a better router channel, you can say thanks here:
A ⭐ on the repo helps too: it makes the project easier for others to find.
Contributing
Issues and pull requests are welcome, especially netsh output samples from Windows in other languages (put them in test/fixtures/ and add a test).
License
Available Tools
3 toolsanalyze_wifi_channelsAnalyze Wi-Fi channel congestionARead-onlyIdempotent
Analyze nearby access points per band and channel, score interference, recommend the least crowded channel for a router on 2.4 GHz (1/6/11) and 5 GHz, rate congestion on the channel this computer uses, and flag insecure nearby networks (open, WEP, old WPA). Use it for "why is my Wi-Fi slow", "which channel should my router use" or a Wi-Fi site survey. Read-only.
Inputs: fresh.
get_current_wifiCurrent Wi-Fi connectionARead-onlyIdempotent
Show the Wi-Fi network this computer is connected to right now: name, BSSID, signal, channel, band, security and link speed when available. Read-only.
Inputs: no named parameters.
scan_wifi_networksScan nearby Wi-Fi networksARead-onlyIdempotent
Scan for Wi-Fi networks near this computer and list them with name (SSID), signal strength (dBm, %, quality and 1-4 bars), channel, band (2.4/5/6 GHz), security type (open/WEP/WPA/WPA2/WPA3/enterprise) and whether this computer is connected to it. Use it when the user asks which Wi-Fi networks are around, which one is strongest, or to find a specific network. Read-only; does not connect to anything.
Inputs: band, fresh, limit, sort_by, +3 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 3 tools
Each tool targets a distinct concern: current connection, nearby network listing, and channel/congestion analysis. The only potential confusion is that analyze_wifi_channels also scans nearby APs, overlapping with scan_wifi_networks, but its descriptions clarify it is for interference scoring and recommendations rather than enumeration.
All three names follow a consistent snake_case verb_wifi_noun pattern (scan_wifi_networks, get_current_wifi, analyze_wifi_channels) with clear, predictable verbs. No style mixing or vague verbs.
Three tools is on the thin side but each earns its place in a narrowly scoped read-only diagnostic server. Nothing feels redundant or missing at the tool-count level.
The read-only survey/lifecycle is well covered: enumerate networks, inspect the current link, and analyze channels for congestion and security. Minor gaps exist around exporting/persisting survey results or adapter-level diagnostics, but agents can work around these.
Maintenance
Related MCP Connectors
Network, domain and website diagnostics for AI clients via MCP.
Security, SEO and AI-visibility scanner for web apps · free scans and focused checks via MCP.
Scans remote MCP servers for protocol, security, and TLS issues; exposes scan tools via MCP.
Scan any MCP server for tool-poisoning, security, auth & license. Trust score before install.
Related MCP Servers
- FlicenseBqualityCmaintenanceEnables network scanning and reconnaissance tasks like port scanning, OS detection, DNS brute force, and more through MCP interfaces.159-
- AlicenseNot gradedqualityDmaintenanceMCP server for querying connected WiFi devices from MikroTik RouterOS, enriched with DHCP leases and ARP table entries.MIT
- AlicenseAqualityCmaintenanceAn MCP server that gives AI agents full-spectrum wireless security analysis, covering WiFi, Bluetooth, RF, NFC, Cellular, IoT, and more, powered by 34 composite tools and 9 built-in knowledge bases.3420 npm6MIT
- AlicenseNot gradedqualityBmaintenanceProvides AI assistants with local Wi-Fi diagnostics including connection history analysis, live signal sampling, and connectivity diagnosis. It returns findings and verdicts rather than raw data, and runs on Windows, Linux, and macOS without sending data off the machine.75 npm1MIT