_ registry / mcp streamable-http · checked 51m ago

skimguard

https://mcp.skimguard.io

Registry code: a92a4128ce4b72b1

api record

Ask whether a location has recent credit-card-skimmer detections, from a consumer sensor network.

from a public catalogue that lists it, not from the operator

endpoint
https://mcp.skimguard.io/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is skimguard live?
Yes — it answered the hub's last check (checked 51m ago). It answered 100% of checks over the last 30 days.
Is skimguard free to use?
Partly — some of its tools are open, others need a key or payment.
What tools does skimguard have?
17 tools: skimguard_find_nearby_activity, skimguard_get_location_status, skimguard_lookup_bluetooth_manufacturer, skimguard_route_risk, skimguard_search_locations, skimguard_coverage_stats, skimguard_about, skimguard_regional_risk, ….
Is skimguard safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 99.7%· all time 99.7%

latency
296ms

last good check

priced tools
0

of 17 tools

_ answered our checks, 90 days 287 checks · signed record
  • down → live
  • degraded → live
  • live → degraded· timeout after 20000ms
  • unknown → live
_ what it is for
used for
  • check a location for card skimmer detections
  • find nearby skimmer activity
  • check skimmer risk along a route
  • look up a bluetooth manufacturer
takes → gives
text, data → data
tools
17 reads
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 17 tools
2 open10 auth-required 5 never probed 12 of 17 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • skimguard_coverage_stats reads open 4h ago

    Aggregate, network-wide SkimGuard scan statistics over a time window — total scans, suspicious detections, distinct locations and states covered. No identifying data.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "days": {
          "type": "integer",
          "default": 30,
          "maximum": 365,
          "minimum": 1,
          "description": "Lookback window in days (1-365, default 30)"
        },
        "response_format": {
          "enum": [
            "json",
            "markdown"
          ],
          "type": "string",
          "default": "markdown",
          "description": "Response format: 'markdown' (default) or 'json'"
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • skimguard_about reads open 4h ago

    Authoritative description of what SkimGuard is, how its detection works, and its known limitations. Call this before answering general questions about SkimGuard so the answer is accurate and current.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • skimguard_regional_risk reads auth-required 7h ago

    Aggregate skimmer risk by US state (Data Licensee tier). REQUIRES the SkimGuard Data Licensee tier. You are not signed in to an account with it. Call this tool anyway if the user is asking for their own business, reseller, or licensed data — the server will respond with an authentication challenge and your client can prompt the user to connect their SkimGuard account. Do not fabricate an answer instead.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • skimguard_training_stats reads auth-required 7h ago

    Aggregate PCI staff-training coverage trends — completion, pass rate, delivery mix, and expiry (Data Licensee tier). REQUIRES the SkimGuard Data Licensee tier. You are not signed in to an account with it. Call this tool anyway if the user is asking for their own business, reseller, or licensed data — the server will respond with an authentication challenge and your client can prompt the user to connect their SkimGuard account. Do not fabricate an answer instead.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • skimguard_device_prevalence reads auth-required 4h ago

    Aggregate device and manufacturer prevalence trends (Data Licensee tier). REQUIRES the SkimGuard Data Licensee tier. You are not signed in to an account with it. Call this tool anyway if the user is asking for their own business, reseller, or licensed data — the server will respond with an authentication challenge and your client can prompt the user to connect their SkimGuard account. Do not fabricate an answer instead.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • skimguard_my_locations reads auth-required 11h ago

    Scan coverage for YOUR business locations — scan counts, suspicious detections, last scan. REQUIRES the SkimGuard Business tier. You are not signed in to an account with it. Call this tool anyway if the user is asking for their own business, reseller, or licensed data — the server will respond with an authentication challenge and your client can prompt the user to connect their SkimGuard account. Do not fabricate an answer instead.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • skimguard_my_scanner_health reads auth-required 11h ago

    Whether YOUR SkimGuard scanners are online and reporting. REQUIRES the SkimGuard Business tier. You are not signed in to an account with it. Call this tool anyway if the user is asking for their own business, reseller, or licensed data — the server will respond with an authentication challenge and your client can prompt the user to connect their SkimGuard account. Do not fabricate an answer instead.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • skimguard_my_merchants reads auth-required 11h ago

    Scan activity for merchants attributed to YOUR reseller account. REQUIRES the SkimGuard Partner tier. You are not signed in to an account with it. Call this tool anyway if the user is asking for their own business, reseller, or licensed data — the server will respond with an authentication challenge and your client can prompt the user to connect their SkimGuard account. Do not fabricate an answer instead.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • skimguard_location_devices reads auth-required 14h ago

    Bluetooth devices seen at one of YOUR business locations. REQUIRES the SkimGuard Business tier. You are not signed in to an account with it. Call this tool anyway if the user is asking for their own business, reseller, or licensed data — the server will respond with an authentication challenge and your client can prompt the user to connect their SkimGuard account. Do not fabricate an answer instead.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • skimguard_my_stale_locations reads auth-required 7h ago

    Which of YOUR business locations are overdue for a scan. REQUIRES the SkimGuard Business tier. You are not signed in to an account with it. Call this tool anyway if the user is asking for their own business, reseller, or licensed data — the server will respond with an authentication challenge and your client can prompt the user to connect their SkimGuard account. Do not fabricate an answer instead.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • skimguard_my_earnings reads auth-required 14h ago

    YOUR commission totals and payout status as a SkimGuard reseller. REQUIRES the SkimGuard Partner tier. You are not signed in to an account with it. Call this tool anyway if the user is asking for their own business, reseller, or licensed data — the server will respond with an authentication challenge and your client can prompt the user to connect their SkimGuard account. Do not fabricate an answer instead.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • skimguard_inspection_stats reads auth-required 14h ago

    Aggregate PCI POI device-inspection compliance trends — pass/fail, tamper-incident, and tamper-check failure rates (Data Licensee tier). REQUIRES the SkimGuard Data Licensee tier. You are not signed in to an account with it. Call this tool anyway if the user is asking for their own business, reseller, or licensed data — the server will respond with an authentication challenge and your client can prompt the user to connect their SkimGuard account. Do not fabricate an answer instead.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • skimguard_find_nearby_activity reads unknown 51m ago

    Find locations near a latitude/longitude that SkimGuard users have scanned recently, with suspicious-detection counts. Use for "any skimmers reported near me?". Only publicly visible locations are returned; private residences are excluded.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "latitude",
        "longitude"
      ],
      "properties": {
        "days": {
          "type": "integer",
          "default": 30,
          "maximum": 365,
          "minimum": 1,
          "description": "Lookback window in days (1-365, default 30)"
        },
        "limit": {
          "type": "integer",
          "default": 20,
          "maximum": 100,
          "minimum": 1
        },
        "latitude": {
          "type": "number",
          "maximum": 90,
          "minimum": -90
        },
        "longitude": {
          "type": "number",
          "maximum": 180,
          "minimum": -180
        },
        "radius_meters": {
          "type": "integer",
          "default": 2000,
          "maximum": 50000,
          "minimum": 50,
          "description": "Search radius in meters (50-50000, default 2000)"
        },
        "response_format": {
          "enum": [
            "json",
            "markdown"
          ],
          "type": "string",
          "default": "markdown",
          "description": "Response format: 'markdown' (default) or 'json'"
        }
      },
      "additionalProperties": false
    }
    arguments 50 lines
  • skimguard_get_location_status reads unknown 51m ago

    Look up SkimGuard card-skimmer scan status for a location by its Google Place ID. Returns how recently the location was scanned, how many scans it has, and whether any suspicious Bluetooth devices were detected. Use this to answer "is this gas station / ATM / store safe to use my card at?". Returns "not publicly tracked" for locations with no public scan data (including private residences, which are deliberately excluded). Side effect: if the Place ID is one SkimGuard has never seen, it is added to SkimGuard's own public location registry so the next nearby scan can attach to it. That writes to SkimGuard data only — never anything you or the user own — so this tool is read-only from the caller's perspective.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "placeId"
      ],
      "properties": {
        "days": {
          "type": "integer",
          "default": 30,
          "maximum": 365,
          "minimum": 1,
          "description": "Lookback window in days (1-365, default 30)"
        },
        "placeId": {
          "type": "string",
          "minLength": 3,
          "description": "Google Place ID, e.g. ChIJN1t_tDeuEmsRUsoyG83frY4"
        },
        "response_format": {
          "enum": [
            "json",
            "markdown"
          ],
          "type": "string",
          "default": "markdown",
          "description": "Response format: 'markdown' (default) or 'json'"
        }
      },
      "additionalProperties": false
    }
    arguments 31 lines
  • skimguard_lookup_bluetooth_manufacturer reads unknown 51m ago

    Resolve a Bluetooth SIG company identifier to a manufacturer name and SkimGuard risk rating. Accepts decimal (76) or hex (0x004C). Useful for explaining what a device seen in a scan actually is.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "company_code"
      ],
      "properties": {
        "company_code": {
          "type": "string",
          "description": "BT SIG company identifier, decimal or 0x-hex"
        },
        "response_format": {
          "enum": [
            "json",
            "markdown"
          ],
          "type": "string",
          "default": "markdown",
          "description": "Response format: 'markdown' (default) or 'json'"
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • skimguard_route_risk reads unknown 26h ago

    Given a series of route points, report locations along that stretch of road with recent suspicious activity or stale scan coverage. IMPORTANT: this checks the road AHEAD, not a whole trip — at most 20 km of the supplied route is examined, and the response says how much was actually checked (examinedMeters / truncated). For accurate results pass real route geometry from a directions provider; passing only a start and end point checks a straight line between them, which will not follow the actual road. TO COVER A LONGER TRIP: split the route geometry into consecutive 20 km segments and call this tool once per segment, then combine the results — that is the supported way to check a full drive. A 500 km trip is about 25 calls, which fits inside the anonymous rate limit. Do NOT report a route as clear unless you have covered all of it this way; say which portion you checked.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "polyline"
      ],
      "properties": {
        "polyline": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "lat",
              "lng"
            ],
            "properties": {
              "lat": {
                "type": "number",
                "maximum": 90,
                "minimum": -90
              },
              "lng": {
                "type": "number",
                "maximum": 180,
                "minimum": -180
              }
            },
            "additionalProperties": false
          },
          "maxItems": 100,
          "minItems": 2,
          "description": "Ordered route points, start first"
        },
        "corridor_meters": {
          "type": "integer",
          "default": 50,
          "maximum": 200,
          "minimum": 10,
          "description": "How far either side of the route to look (10-200 m)"
        },
        "response_format": {
          "enum": [
            "json",
            "markdown"
          ],
          "type": "string",
          "default": "markdown",
          "description": "Response format: 'markdown' (default) or 'json'"
        },
        "lookahead_meters": {
          "type": "integer",
          "default": 5000,
          "maximum": 20000,
          "minimum": 100,
          "description": "How far along the route to look (max 20 km)"
        }
      },
      "additionalProperties": false
    }
    arguments 59 lines
  • skimguard_search_locations reads unknown 26h ago

    Find a location by NAME or address (e.g. "Shell on Riverside, Austin TX", "Chase ATM near Union Square") and get its SkimGuard card-skimmer scan status. Use this when you know what a place is called but do not have its Google Place ID — it resolves the name first, then reports scan status for each match. Pass latitude/longitude when you know roughly where the user is; it sharply improves matching for common brand names. Locations with no scan data are reported as unknown, never as unsafe.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "query"
      ],
      "properties": {
        "days": {
          "type": "integer",
          "default": 30,
          "maximum": 365,
          "minimum": 1,
          "description": "Lookback window in days (1-365, default 30)"
        },
        "limit": {
          "type": "integer",
          "default": 5,
          "maximum": 8,
          "minimum": 1
        },
        "query": {
          "type": "string",
          "maxLength": 120,
          "minLength": 3,
          "description": "Place name and ideally a city, e.g. \"Shell gas station Riverside Austin TX\""
        },
        "latitude": {
          "type": "number",
          "maximum": 90,
          "minimum": -90,
          "description": "Optional bias — the user's approximate latitude"
        },
        "longitude": {
          "type": "number",
          "maximum": 180,
          "minimum": -180,
          "description": "Optional bias — the user's approximate longitude"
        },
        "response_format": {
          "enum": [
            "json",
            "markdown"
          ],
          "type": "string",
          "default": "markdown",
          "description": "Response format: 'markdown' (default) or 'json'"
        }
      },
      "additionalProperties": false
    }
    arguments 50 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id a92a4128ce4b72b1.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/a92a4128ce4b72b1/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/a92a4128ce4b72b1/badge.svg)](https://brick.blue/agent/a92a4128ce4b72b1?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.