ipdata MCP by usefulapi
Look up location, network, company and threat data for IP addresses and ASNs in ipdata.
作者による説明(英語の原文)
Cross-platform local-network diagnostics & security-posture MCP server — 31 tools.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
NETEXPERT_MCP_CONFIG, NETEXPERT_HTTP_PORT, NETEXPERT_WIFI_IF必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"netexpert": {
"command": "npx",
"args": [
"-y",
"netexpert-mcp"
],
"env": {
"NETEXPERT_MCP_CONFIG": "your-value",
"NETEXPERT_HTTP_PORT": "your-value",
"NETEXPERT_WIFI_IF": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add netexpert --env NETEXPERT_MCP_CONFIG=your-value --env NETEXPERT_HTTP_PORT=your-value --env NETEXPERT_WIFI_IF=your-value -- npx -y netexpert-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"netexpert": {
"command": "npx",
"args": [
"-y",
"netexpert-mcp"
],
"env": {
"NETEXPERT_MCP_CONFIG": "your-value",
"NETEXPERT_HTTP_PORT": "your-value",
"NETEXPERT_WIFI_IF": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"netexpert": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"netexpert-mcp"
],
"env": {
"NETEXPERT_MCP_CONFIG": "your-value",
"NETEXPERT_HTTP_PORT": "your-value",
"NETEXPERT_WIFI_IF": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
NETEXPERT_MCP_CONFIG envNETEXPERT_HTTP_PORT envNETEXPERT_WIFI_IF envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント Omodaka9375 で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.1.3)がレジストリに届いたのは20 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:ipdata MCP by usefulapi, MaxMind minFraud MCP by usefulapi, Lambda Labs MCP by usefulapi
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Look up location, network, company and threat data for IP addresses and ASNs in ipdata.
MCP server for MaxMind minFraud — score transactions for fraud risk from your AI assistant.
Read GPU instances, types, images, filesystems and firewall rules; launch and terminate instances.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
*"What's on my network, is my link healthy, is this machine safe, and why is X slow?"*
— answered by an AI, on your LAN, in one conversation.
netexpert is a cross-platform local-network diagnostics & security-posture MCP server for AI clients (Claude Desktop, Claude Code, or any client that speaks MCP). Windows, Linux, macOS — one normalized JSON envelope, 31 tools, zero config on first run, read-only by default.
It's the *local host + LAN* half of a home-lab toolkit — the NAS half already exists as ugnas-mcp, and the two compose.
Also listed in the MCP registry as io.github.Omodaka9375/netexpert-mcp.
The package is on npm — no clone, no build:
# run once, on demand (no install)
npx -y netexpert-mcp
npm install -g netexpert-mcp netexpert-mcp
Wire it into your MCP client (stdio):
{
"mcpServers": { "netexpert": { "command": "npx", "args": ["-y", "netexpert-mcp"] } } }
That's it — first run needs no config file, no environment variables, nothing. Ask your client *"what devices are on my network?"* and it has the tools to answer.
Optional HTTP transport (stateless, same JSON-RPC surface):
NETEXPERT_HTTP_PORT=3100 netexpert-mcp
Once wired into your client, try:
sec.exposure — listening ports × firewall state × a risky-port knowledge base, reported as Findings.lan.devices — ARP inventory enriched with IEEE-OUI vendor names and PTR hostnames.dns.hijackcheck — known-good domains via your system resolver vs trusted DoH; mismatch ⇒ Finding{severity:high}.wifi.health — RSSI quality bands, channel overlap, band mismatch — interpreted, with next steps.Existing network MCP servers are either deprecated Python packages, wrappers that demand Nmap, or router-config tools for enterprises. None of them answer the home-lab questions:
| Question | netexpert answer |
|---|---|
| *What devices are on my network — anything new?* | lan.devices builds an inventory (ARP ∪ sweep, OUI vendor, PTR hostname); lan.newdevices diffs it against snapshots and emits findings |
| *Is my WiFi actually good?* | wifi.health interprets RSSI bands, channel overlap, and band mismatch — with concrete next steps, not raw numbers |
| *Is this machine exposed?* | sec.exposure cross-references listening ports with firewall state and a risky-port knowledge base |
| *Is my DNS lying to me?* | dns.hijackcheck compares your system resolver against trusted DoH for known-good domains |
| *Why is X unreachable?* | Layered triage — link → ARP → routing/DNS → port → app (docs/persona.md) |
ok, backend, data, warnings / closed-set error.code + actionable hint) — no raw netsh or ip output ever reaches the model.execFile-style); all inputs are zod-validated before touching the OS. No raw sockets, no Npcap, no Python.lan.wol) uses a dry-run plan + single-use, 10-min-TTL confirmToken — parameters frozen at plan time.backend: "tcp-connect", not a fake "ping"); net.health self-describes what works on this host, with install hints for what doesn't.net.publicip, sec.speedtest, DoH in dns.hijackcheck), which you invoked explicitly.net.* — connectivity| Tool | What it does |
|---|---|
net.health | Version, platform, capability matrix (which backends exist on this host, with install hints) |
net.ping | ICMP loss/latency stats; honest TCP-connect fallback when ping is unavailable |
net.trace | Traceroute hops, normalized across tracert/traceroute/tracepath |
net.httpcheck | GET/HEAD with timing split: dns / connect / ttfb / total |
net.portcheck | Single TCP connect — open/closed + latency |
net.portscan | Bounded connect scan (≤256 ports, default top-20 common) |
net.ssl | TLS cert: subject, SANs, issuer, chain, days-left, expiry grade |
net.publicip | Your public IPv4 + ASN/org (ipify → ipinfo fallback) |
net.deepscan | Optional nmap adapter — opt-in only: requires the binary *and* nmap.enabled in config; RFC1918 targets only |
dns.* — name resolution| Tool | What it does |
|---|---|
dns.lookup | A/AAAA/CNAME/MX/TXT/NS/SRV/PTR with optional nameserver override |
dns.reverse | PTR names for an IP |
dns.resolvers | Which DNS servers the OS *actually* uses (per-platform) |
dns.propagation | Same record at system + trusted resolvers + DoH — diff table |
dns.hijackcheck | The killer check: known-good domains via system vs trusted DoH; mismatch or NXDOMAIN ⇒ Finding{sev:high} |
lan.* — devices & inventory| Tool | What it does |
|---|---|
lan.interfaces | NICs: name, MAC, addresses, type, virtual flag |
lan.gateway | Default gateway + interface + local subnet CIDR |
lan.arp | Parsed neighbor cache, stale entries filtered |
lan.sweep | Ping-probe an RFC1918 subnet (≤1024 hosts, rate-limited 1/30s) → live set |
lan.devices | Inventory: ARP ∩ RFC1918, enriched with vendor (40k-entry IEEE OUI db) + PTR hostname |
lan.hostname | All known names for an IP: PTR + NetBIOS (win) |
lan.snapshot | Save device inventory to dated snapshots; or list them |
lan.newdevices | Diff live vs baseline ⇒ findings (new MAC, MAC-changed-for-IP); first run auto-saves a baseline |
lan.wol | Wake-on-LAN magic packet — dry-run plan → confirmToken → one UDP broadcast |
wifi.* — link health| Tool | What it does |
|---|---|
wifi.status | Current link: SSID, BSSID, band, channel, RSSI, PHY rate, quality 0–100 |
wifi.networks | Nearby AP survey with band inference |
wifi.health | Interpretation: RSSI bands (≥−50 … <−78 unusable), 2.4 GHz channel overlap, band mismatch, low PHY rate — each a Finding with the next tool call |
sec.* — host posture| Tool | What it does |
|---|---|
sec.connections | Active sockets with owning PID |
sec.listening | Listeners per process; flags 0.0.0.0/:: exposures |
sec.firewall | Get-NetFirewallProfile / ufw→nft / socketfilterfw |
sec.exposure | Headline report: exposed listeners × firewall state × risky-port table (445, 3389, 23, 135–139, 5357, 5900) ⇒ Finding[] |
sec.speedtest | Bounded Cloudflare download; reports a lower bound instead of failing on slow links |
~/.netexpert-mcp/config.json — sane defaults, so zero-config first run:
{
"defaults": { "pingCount": 4, "traceMaxHops": 20 }, "resolvers": { "trusted": ["1.1.1.1", "8.8.8.8"], "dohUrl": "https://cloudflare-dns.com/dns-query" }, "caps": { "portscan": { "maxPorts": 256 }, "sweep": { "maxHosts": 1024 } }, "rate": { "sweep": 30, "portscan": 10, "speedtest": 60, "httpCheck": 2 }, "nmap": { "enabled": false } // deep scans are opt-in by design }
Invariants:
NETEXPERT_*: NETEXPERT_MCP_CONFIG (config path), NETEXPERT_HTTP_PORT, NETEXPERT_WIFI_IF (linux wlan iface)password/token/secret/credential is rejected at loadOptional extras:
winget install Insecure.Nmap / sudo apt install nmap), then set "nmap": { "enabled": true } in config. Absence just produces an install hint, never a crash.netexpert stays request/response; recurring checks are your MCP client's job:
New-device tripwire lan.newdevices every 15 min fire on Finding[] beyond the info baseline
Gateway reachability net.ping every 60 s fire on lossPct > 0 DNS integrity dns.hijackcheck hourly fire on sev=high WiFi degradation wifi.health every 10 min fire on severity ≥ med
docs/persona.mdThe server provides hands; the persona provides judgment. The rule pack in docs/persona.md gives your AI client:
git clone https://github.com/Omodaka9375/netexpert-mcp.git
cd netexpert-mcp pnpm install
pnpm typecheck # strict TS (Kai/Claude Code runs this after edits) pnpm test # 50 fixture-driven tests (fake runner, zero real network in units) pnpm build # → dist/ pnpm smoke # build → stdio → tools/list → net.health pnpm smoke:http # HTTP transport check node scripts/gen-oui.mjs # regenerate the OUI db (rarely needed)
Project layout:
src/
exec/ LocalExecutor (execFile, arg arrays) + per-platform CommandMaps (win32/linux/darwin) parse/ pure parsers (arp, ping, traceroute, netsh, iw, nmap -oG) — fixture-tested services/ coreService dnsService lanService wifiService secService nmapService safety/ caps.ts (bounds + token-bucket rate limiter) · confirm.ts (dry-run/confirmToken) data/ oui.json (40k IEEE OUI entries, committed) mcp/ toolset.ts (31 tools, zod inputs) · createServer.ts scripts/ gen-oui.mjs · smoke.mjs · http-smoke.mjs docs/ persona.md · index.html (the docs page) tests/ fixtures/ + 50 tests across 6 files
License: MIT — see LICENSE. npm: netexpert-mcp · MCP registry: io.github.Omodaka9375/netexpert-mcp Source & issues: GitHub