SentryFi Wi-Fi safety app (App Store, Google Play): who is on my Wi-Fi, public Wi-Fi risk.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this when the user is about to join, or is on, hotel, airport, café (coffee shop), rental, campus or other public Wi-Fi and asks "is public wifi safe", "is hotel wifi safe", whether to do banking or work there, whether a sign-in page or a network name looks fake (evil twin / fake wifi), or what to watch out for. Also use it when they ask who can see their browsing on hotel or café Wi-Fi ("can the wifi owner see my history", "does incognito hide my browsing", "does a VPN protect me on public wifi"): the card shows what the Wi-Fi owner, hotel, other guests or a VPN provider can and cannot see, and how HTTPS, a VPN or encrypted DNS change that. Fill in what the user said; use "unknown" or null for anything they did not say rather than guessing. Returns a 0–100 score (100 = no warning signs) from their answers, the signals behind it, advice per activity, who can see what, and a checklist for that venue. Do not use for home Wi-Fi security or hack worries (use secure_my_wifi), for recommending VPN or security products, to monitor or read another person's activity, or for getting onto a network without permission. Does not scan or connect to any network; works only from what the user tells ChatGPT.
Where the Wi-Fi is.
open = no password; shared_password = one password for everyone (e.g. on a card); private_password = only you have it; enterprise_login = personal username/password (e.g. eduroam).
Only HTTPS sites (HTTPS-only mode on).
What the user wants to do on this network.
What the sign-in page asks for.
Whether a sign-in (captive) page appeared and if its address started with https or http.
Private DNS / DNS over HTTPS turned on.
true if the exact network name was confirmed with staff or an official sign.
true if the device showed a certificate or "not private" warning.
true if several networks with similar names are visible.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http sentryfi https://sentryfi.mcp.srofia.com/mcp
Use this when the user is about to join, or is on, hotel, airport, café (coffee shop), rental, campus or other public Wi-Fi and asks "is public wifi safe", "is hotel wifi safe", whether to do banking or work there, whether a sign-in page or a network name looks fake (evil twin / fake wifi), or what to watch out for. Also use it when they ask who can see their browsing on hotel or café Wi-Fi ("can the wifi owner see my history", "does incognito hide my browsing", "does a VPN protect me on public wifi"): the card shows what the Wi-Fi owner, hotel, other guests or a VPN provider can and cannot see, and how HTTPS, a VPN or encrypted DNS change that. Fill in what the user said; use "unknown" or null for anything they did not say rather than guessing. Returns a 0–100 score (100 = no warning signs) from their answers, the signals behind it, advice per activity, who can see what, and a checklist for that venue. Do not use for home Wi-Fi security or hack worries (use secure_my_wifi), for recommending VPN or security products, to monitor or read another person's activity, or for getting onto a network without permission. Does not scan or connect to any network; works only from what the user tells ChatGPT.
| Argument | Type | Description |
|---|---|---|
| venue* | string | Where the Wi-Fi is. |
| security | string | open = no password; shared_password = one password for everyone (e.g. on a card); private_password = only you have it; enterprise_login = personal username/password (e.g. eduroam). |
| usingVpn | boolean | |
| httpsOnly | boolean | Only HTTPS sites (HTTPS-only mode on). |
| activities | array | What the user wants to do on this network. |
| signInAsks | array | What the sign-in page asks for. |
| signInPage | string | Whether a sign-in (captive) page appeared and if its address started with https or http. |
| encryptedDns | boolean | Private DNS / DNS over HTTPS turned on. |
| nameConfirmed | boolean | null | true if the exact network name was confirmed with staff or an official sign. |
| certificateWarning | boolean | null | true if the device showed a certificate or "not private" warning. |
| mobileDataAvailable | boolean | |
| similarNetworkNames | boolean | null | true if several networks with similar names are visible. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"venue"
],
"properties": {
"venue": {
"enum": [
"hotel",
"airport",
"cafe",
"rental",
"campus",
"home",
"other"
],
"type": "string",
"description": "Where the Wi-Fi is."
},
"security": {
"enum": [
"open",
"shared_password",
"private_password",
"enterprise_login",
"unknown"
],
"type": "string",
"default": "unknown",
"description": "open = no password; shared_password = one password for everyone (e.g. on a card); private_password = only you have it; enterprise_login = personal username/password (e.g. eduroam)."
},
"usingVpn": {
"type": "boolean",
"default": false
},
"httpsOnly": {
"type": "boolean",
"default": false,
"description": "Only HTTPS sites (HTTPS-only mode on)."
},
"activities": {
"type": "array",
"items": {
"enum": [
"browsing",
"streaming",
"email_social",
"banking_payments",
"work_accounts",
"file_sharing"
],
"type": "string"
},
"default": [],
"maxItems": 6,
"description": "What the user wants to do on this network."
},
"signInAsks": {
"type": "array",
"items": {
"enum": [
"room_and_name",
"email",
"phone",
"social_login",
"card_details",
"access_code"
],
"type": "string"
},
"default": [],
"maxItems": 6,
"description": "What the sign-in page asks for."
},
"signInPage": {
"enum": [
"none",
"https",
"http",
"unknown"
],
"type": "string",
"default": "unknown",
"description": "Whether a sign-in (captive) page appeared and if its address started with https or http."
},
"encryptedDns": {
"type": "boolean",
"default": false,
"description": "Private DNS / DNS over HTTPS turned on."
},
"nameConfirmed": {
"type": [
"boolean",
"null"
],
"default": null,
"description": "true if the exact network name was confirmed with staff or an official sign."
},
"certificateWarning": {
"type": [
"boolean",
"null"
],
"default": null,
"description": "true if the device showed a certificate or \"not private\" warning."
},
"mobileDataAvailable": {
"type": "boolean",
"default": true
},
"similarNetworkNames": {
"type": [
"boolean",
"null"
],
"default": null,
"description": "true if several networks with similar names are visible."
}
}
}Use this when the user asks "who is on my wifi", "who is using my wifi", sees an unknown device on their network, wants to identify devices connected to their router, asks "what is this device on my network", or wants a MAC address lookup (MAC address vendor) for one address. Pass the devices they pasted from their own router or app: the name and the first 6 characters of the MAC address (e.g. F0:18:98) for each; only the first 6 characters are used, and the rest of the address and the IP are not needed. For a single lookup pass one entry; if the user does not have the list yet, pass an empty list (and the router brand if known) to get the steps for finding it. Returns the maker of each device from the public IEEE registry, a likely device type, flags (private/randomized address, unknown maker, cameras and smart-home devices), which ones are worth checking, next steps and where to find the list for common routers. Do not use to scan a network, find a person or their location, monitor someone, or get into another person's network. Does not scan or connect to any network; works only from what the user tells ChatGPT.
| Argument | Type | Description |
|---|---|---|
| devices* | array | Devices from the router or app list, one entry per row. For a single MAC address lookup, pass one entry. Pass an empty list to get the steps for finding the list on the router. |
| routerBrand | string | Router or internet provider, if known. generic = not sure. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"devices"
],
"properties": {
"devices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"mac": {
"type": "string",
"maxLength": 32,
"description": "First 6 characters of the MAC address (AA:BB:CC or AABBCC). Only these are used; the rest of the address and the IP are not needed. A full or masked address (AA:BB:CC:xx:xx:xx) is accepted and cut to the first 6 characters right away."
},
"name": {
"type": "string",
"maxLength": 100,
"description": "Device or host name as shown, e.g. \"Johns-iPhone\"."
}
}
},
"maxItems": 100,
"description": "Devices from the router or app list, one entry per row. For a single MAC address lookup, pass one entry. Pass an empty list to get the steps for finding the list on the router."
},
"routerBrand": {
"enum": [
"generic",
"tp_link",
"netgear",
"asus",
"xfinity",
"eero",
"google_nest",
"orbi",
"att",
"spectrum",
"other"
],
"type": "string",
"description": "Router or internet provider, if known. generic = not sure."
}
}
}Use this when the user asks how to secure their home Wi-Fi or router ("how to secure my wifi", "secure wifi from hackers", "router security settings"), how to change their Wi-Fi password or where it is shown, whether to turn off WPS or UPnP, whether to set up a guest network for smart-home devices, "can my router or internet provider see my history at home" or "do I need a VPN at home". Also use it when they suspect their own home Wi-Fi or router was hacked ("is my wifi hacked", "is my router hacked", "someone is using my wifi"): fill in the symptom answers they gave (unknown devices, a router login that stopped working, changed DNS, redirects or pop-ups, a Wi-Fi name or password that changed, slow internet, busy router lights) and use null for anything they did not say rather than guessing. Returns a router hardening checklist ranked by impact (admin password, WPA3/WPA2-AES, Wi-Fi password, firmware, WPS, remote admin, UPnP, guest/IoT network, network name, DNS), steps already done marked, brand-specific password steps and a neutral answer on privacy and VPNs at home; when symptoms are given it adds hack signals out of 100 (100 = none of the answers point to a break-in), common causes that are not a hack and ordered first steps. Do not use to hack, crack or get into a network the user does not own, to find or watch another person, to recommend VPN or security products, or for public Wi-Fi safety (use check_public_wifi_risk). Does not scan or connect to any network; works only from what the user tells ChatGPT.
| Argument | Type | Description |
|---|---|---|
| wpsOn | boolean | null | true if WPS (push-button / PIN pairing) is on. |
| needsUpnp | boolean | null | true if a game console, voice chat or home server needs UPnP (e.g. "strict NAT" without it). |
| smartHome | string |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 9, 2026.
| How many smart-home devices (cameras, plugs, bulbs, speakers, TVs) are on the network. many = moves the guest/IoT network step up. |
| dnsChanged | boolean | null | true if the router or a device shows DNS servers the user did not set. |
| alreadyDone | array | Steps the user says they have already done; they are marked done and moved to the end. |
| routerBrand | string | Router or internet provider, if known. |
| slowInternet | boolean | null | true if the internet has become slow. |
| lightsAtNight | boolean | null | true if the router lights blink a lot when nobody seems to be using it. |
| unknownDevices | boolean | null | true if the router lists devices the user does not recognise. |
| firmwareOutdated | boolean | null | true if router updates are not installed, or the router no longer gets updates. |
| cantLogIntoRouter | boolean | null | true if the router admin password that used to work no longer works. |
| redirectsOrPopups | boolean | null | true if browsers jump to odd sites, fake login pages or show pop-ups. |
| wifiSettingsChanged | boolean | null | true if the Wi-Fi name or password changed without the user doing it. |
| adminPasswordDefault | boolean | null | true if the router admin password is still the default one from the sticker or manual. |
| passwordSharedWidely | boolean | null | true if the Wi-Fi password has been given to many people (neighbours, past guests, ex-roommates). |
| redirectsOnAllDevices | boolean | null | true if the redirects/pop-ups happen on every device on this Wi-Fi, false if only on one device. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"wpsOn": {
"type": [
"boolean",
"null"
],
"default": null,
"description": "true if WPS (push-button / PIN pairing) is on."
},
"needsUpnp": {
"type": [
"boolean",
"null"
],
"default": null,
"description": "true if a game console, voice chat or home server needs UPnP (e.g. \"strict NAT\" without it)."
},
"smartHome": {
"enum": [
"none",
"some",
"many",
"unknown"
],
"type": "string",
"default": "unknown",
"description": "How many smart-home devices (cameras, plugs, bulbs, speakers, TVs) are on the network. many = moves the guest/IoT network step up."
},
"dnsChanged": {
"type": [
"boolean",
"null"
],
"default": null,
"description": "true if the router or a device shows DNS servers the user did not set."
},
"alreadyDone": {
"type": "array",
"items": {
"enum": [
"admin_password",
"encryption",
"wifi_password",
"firmware",
"wps_off",
"remote_admin_off",
"upnp_off",
"guest_network",
"ssid_rename",
"dns"
],
"type": "string"
},
"default": [],
"maxItems": 10,
"description": "Steps the user says they have already done; they are marked done and moved to the end."
},
"routerBrand": {
"enum": [
"generic",
"tp_link",
"netgear",
"asus",
"xfinity",
"eero",
"google_nest",
"orbi",
"att",
"spectrum",
"other"
],
"type": "string",
"description": "Router or internet provider, if known."
},
"slowInternet": {
"type": [
"boolean",
"null"
],
"default": null,
"description": "true if the internet has become slow."
},
"lightsAtNight": {
"type": [
"boolean",
"null"
],
"default": null,
"description": "true if the router lights blink a lot when nobody seems to be using it."
},
"unknownDevices": {
"type": [
"boolean",
"null"
],
"default": null,
"description": "true if the router lists devices the user does not recognise."
},
"firmwareOutdated": {
"type": [
"boolean",
"null"
],
"default": null,
"description": "true if router updates are not installed, or the router no longer gets updates."
},
"cantLogIntoRouter": {
"type": [
"boolean",
"null"
],
"default": null,
"description": "true if the router admin password that used to work no longer works."
},
"redirectsOrPopups": {
"type": [
"boolean",
"null"
],
"default": null,
"description": "true if browsers jump to odd sites, fake login pages or show pop-ups."
},
"wifiSettingsChanged": {
"type": [
"boolean",
"null"
],
"default": null,
"description": "true if the Wi-Fi name or password changed without the user doing it."
},
"adminPasswordDefault": {
"type": [
"boolean",
"null"
],
"default": null,
"description": "true if the router admin password is still the default one from the sticker or manual."
},
"passwordSharedWidely": {
"type": [
"boolean",
"null"
],
"default": null,
"description": "true if the Wi-Fi password has been given to many people (neighbours, past guests, ex-roommates)."
},
"redirectsOnAllDevices": {
"type": [
"boolean",
"null"
],
"default": null,
"description": "true if the redirects/pop-ups happen on every device on this Wi-Fi, false if only on one device."
}
}
}