protogrid

Search / io.github.cyanheads/fcc-broadband-mcp-server

fcc-broadband-mcp-server

R0· no sign-in

FCC broadband availability, coverage analysis, and digital divide data for US geographies.

v0.3.0 · active · repository · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality85good
Trust94of 100
Uptime, 30 days100%
Latency p50190 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "fcc-broadband-mcp-server": {
      "type": "http",
      "url": "https://fcc-broadband.caseyjhand.com/mcp"
    }
  }
}
claude mcp add --transport http fcc-broadband-mcp-server https://fcc-broadband.caseyjhand.com/mcp
[mcp_servers.fcc-broadband-mcp-server]
url = "https://fcc-broadband.caseyjhand.com/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "fcc-broadband-mcp-server": {
      "type": "remote",
      "url": "https://fcc-broadband.caseyjhand.com/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "fcc-broadband-mcp-server": {
      "type": "http",
      "url": "https://fcc-broadband.caseyjhand.com/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=fcc-broadband-mcp-server&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vZmNjLWJyb2FkYmFuZC5jYXNleWpoYW5kLmNvbS9tY3AifQ%3D%3D"
}
{
  "servers": {
    "fcc-broadband-mcp-server": {
      "type": "http",
      "url": "https://fcc-broadband.caseyjhand.com/mcp"
    }
  }
}
{
  "mcpServers": {
    "fcc-broadband-mcp-server": {
      "httpUrl": "https://fcc-broadband.caseyjhand.com/mcp"
    }
  }
}
extensions:
  "fcc-broadband-mcp-server":
    enabled: true
    name: "fcc-broadband-mcp-server"
    type: streamable_http
    uri: "https://fcc-broadband.caseyjhand.com/mcp"
    timeout: 300

Quality 85 / 100good

protocol100 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • pass
    protocol.list_ttltool list is cacheable (ttlMs 3600000)
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene79 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length1 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations9 of 9 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: fcc_search_availability (destructiveHint); fcc_search_geographies (destructiveHint); fcc_get_coverage_summary (destructiveHint); …
  • pass
    tools.token_costabout 4,078 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability75 · weight 15
  • warn
    stability.changes9 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15

9 tools, about 4,078 tokens to load them all · tool set 54f03afe267b · tools last changed 2026-10-19 · checked 2026-10-20 18:06 UTC

Tool changes

  • fcc_list_downloadsremoved

    Lists downloadable BDC data files for a specific as-of date — fixed availability by state and provider, mobile coverage, and challenge data — with file metadata (provider, state, technology, record count). Download URLs are included for each file. Requires FCC BDC API credentials (FCC_BDC_USERNAME and FCC_BDC_HASH_VALUE). Use fcc_list_filing_periods first to determine valid as_of_date values (BDC dates start June 2022); a date that is not on the calendar, or that falls before the first BDC period, is rejected without credentials, while a well-formed date the BDC API does not publish is rejected once credentials let the published set be read. One as-of date can carry thousands of per-provider files, so results come back a page at a time: totalFiles counts every file matching the filters, the response reports the offset and the count on this page, and it carries a nextOffset to pass back for the following page until the last one, which omits it.

  • fcc_list_filing_periodschangeddescription
    before

    Returns available data vintages: Form 477 filing periods (hardcoded Jun 2015 – Jun 2021, always available) and BDC as-of dates from the authenticated API (Jun 2022 onward, requires credentials). Call this before fcc_list_downloads to determine valid as_of_date values. Note: there is a data gap between June 2021 (last Form 477) and June 2022 (first BDC filing period).

    after · 94% of words in common

    Returns available data vintages: Form 477 filing periods (hardcoded Jun 2015 – Jun 2021, always available) and BDC as-of dates from the authenticated API (Jun 2022 onward, requires credentials). When hasBdcCredentials is true, call this before fcc_list_downloads to determine valid as_of_date values. Note: there is a data gap between June 2021 (last Form 477) and June 2022 (first BDC filing period).

  • fcc_get_coverage_summarychangedoutput schema
  • fcc_search_geographiesadded

    Find census places and CBSAs (metro areas) by case-insensitive literal name substring in the 2021 FCC geography lookup. Keep ambiguous matches distinct and choose the geography_type and geography_id to pass to fcc_get_coverage_summary. Include a location qualifier in name to narrow results; CBSA codes do not encode state membership. Always queries live FCC Open Data, even with the Form 477 mirror enabled, and needs no BDC credentials. Follow nextOffset until absent; no total match count is computed.

  • fcc_search_availabilitychangedoutput schema
  • fcc_geocode_blockchangedoutput schema
  • fcc_find_underservedchangedinput schema
  • fcc_compare_areaschangedinput schema
  • fcc_get_coverage_summarychangedinput schema

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 94 / 100

provenance80
liveness100
freshness100
hygiene100

+repository +namespace-matches-repo +reachable +uptime-100% +updated-2d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Dependencies

@cyanheads/[email protected] npmthis version is not known to the dependency resolver

@cyanheads/[email protected] npmthis version is not known to the dependency resolver

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://fcc-broadband.caseyjhand.com/mcp streamable-httpnoneyes100%190 ms2026-07-282026-10-20
packageregistryversionruntimesecrets
@cyanheads/fcc-broadband-mcp-servernpm0.3.0npx
@cyanheads/fcc-broadband-mcp-servernpm0.3.0npx

Tools (9)

fcc_compare_areasread-onlyCompares broadband coverage metrics across multiple geographies of the same type and returns a ranked table sorted by unserved or underserved population. Answers "which counties in this state have the worst broadband access?" and drives BEAD funding prioritization. Provide up to 50 geography IDs, or set compare_all_states=true for all 50 states + DC. Data is from FCC Form 477 (as of June 2021).
fcc_find_underservedread-onlyFinds geographic areas with limited or no broadband coverage at a given speed threshold, ranked by unserved population. The core tool for BEAD program analysis and broadband equity research. Accepts a state abbreviation to narrow scope or runs nationwide. Defaults to rural areas where underservice is most concentrated. Data is from FCC Form 477 (as of June 2021).
fcc_geocode_blockread-onlyConverts a latitude/longitude coordinate to a 15-digit census block FIPS code, plus county FIPS, county name, state FIPS, state code, and state name. This is the required prerequisite for fcc_search_availability since the broadband dataset is indexed by census block, not address. The block is resolved against 2010 census boundaries, the vintage the Form 477 deployment dataset is keyed by, so the returned blockFips can be passed straight to fcc_search_availability; a 2020-vintage block ID from another source will not match. Uses the FCC public Geo API — no authentication required.
fcc_get_coverage_summaryread-onlyReturns a broadband coverage summary for a geography — population with zero, one, two, or three-plus providers at a given speed threshold, split by urban/rural and tribal/non-tribal segments. The primary tool for digital divide and equity analysis. Supports state, county, congressional district, census place, CBSA (metro area), tribal area, and national level. Data is from FCC Form 477 (as of June 2021). Use 100 Mbps as the speed threshold for BEAD program policy analysis.
fcc_get_providerread-onlyReturns a national-level coverage profile for a specific holding company (by hoconum): technologies deployed and the population covered at each download speed tier. Population figures come from the FCC provider summary table and count each person once, regardless of how many technologies the provider uses to reach them. Use fcc_search_providers to find valid hoconum values. Data is from FCC Form 477 (as of June 2021).
fcc_list_filing_periodsread-onlyReturns available data vintages: Form 477 filing periods (hardcoded Jun 2015 – Jun 2021, always available) and BDC as-of dates from the authenticated API (Jun 2022 onward, requires credentials). When hasBdcCredentials is true, call this before fcc_list_downloads to determine valid as_of_date values. Note: there is a data gap between June 2021 (last Form 477) and June 2022 (first BDC filing period).
fcc_search_availabilityread-onlyQueries broadband providers and advertised speeds at a census block from FCC Form 477 data (as of June 2021). Answers "which ISPs serve this location and what speeds do they offer?" — the core tool for address-level broadband lookup. Requires a 15-digit census block FIPS code; use fcc_geocode_block to convert coordinates first. Data reflects ISP-reported availability at the block level, which may overstate actual coverage for some addresses.
fcc_search_geographiesread-onlyFind census places and CBSAs (metro areas) by case-insensitive literal name substring in the 2021 FCC geography lookup. Keep ambiguous matches distinct and choose the geography_type and geography_id to pass to fcc_get_coverage_summary. Include a location qualifier in name to narrow results; CBSA codes do not encode state membership. Always queries live FCC Open Data, even with the Form 477 mirror enabled, and needs no BDC credentials. Follow nextOffset until absent; no total match count is computed.
fcc_search_providersread-onlySearches for ISPs by holding company name, filtered by state and technology type. Returns a deduplicated list of matching providers with hoconum identifiers for follow-up calls to fcc_get_provider. Answers "which ISPs serve Washington with fiber?" and "find all Comcast entities." Geographic filtering is state-level; sub-state granularity requires cross-referencing block data. Against the live FCC API the search reads a bounded window of deployment rows to find which holding companies match, so when scanTruncated comes back true the providers are a sample of the matches rather than every one of them and no true match count is available; a narrower filter raises the share of matches the sample surfaces but cannot make it complete, and only a deployment running the local Form 477 mirror returns every match. The sample is of which companies come back — every company that does carries its complete national footprint, since statesServed and techCodes are resolved per company rather than read off the window, at the cost of one lookup per provider returned. Data is from FCC Form 477 (as of June 2021).

Schemas: list_tools.

Similar MCP servers

More from io.github.cyanheads

And 140 more from this publisher.

Official server.json
{
  "name": "io.github.cyanheads/fcc-broadband-mcp-server",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://fcc-broadband.caseyjhand.com/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "0.3.0",
  "packages": [
    {
      "version": "0.3.0",
      "transport": {
        "type": "stdio"
      },
      "identifier": "@cyanheads/fcc-broadband-mcp-server",
      "runtimeHint": "npx",
      "registryType": "npm",
      "registryBaseUrl": "https://registry.npmjs.org",
      "environmentVariables": [
        {
          "name": "FCC_BDC_USERNAME",
          "format": "string",
          "description": "FCC account email for BDC API. Required for fcc_list_downloads and BDC filing periods."
        },
        {
          "name": "FCC_BDC_HASH_VALUE",
          "format": "string",
          "description": "API token hash from broadbandmap.fcc.gov Manage API Access page."
        },
        {
          "name": "FCC_OPENDATA_APP_TOKEN",
          "format": "string",
          "description": "Socrata app token for FCC Open Data. Increases rate limits; not required."
        },
        {
          "name": "FCC_MIRROR_ENABLED",
          "format": "string",
          "default": "false",
          "description": "Serve Form 477 queries from a local SQLite mirror when its coverage allows (bootstrap with `bun run mirror:init`). Default: false."
        },
        {
          "name": "FCC_MIRROR_PATH",
          "format": "string",
          "default": "data/fcc-mirror",
          "description": "Directory holding the Form 477 mirror SQLite files."
        },
        {
          "name": "MCP_LOG_LEVEL",
          "format": "string",
          "default": "info",
          "description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn')."
        }
      ]
    },
    {
      "version": "0.3.0",
      "transport": {
        "url": "http://localhost:3010/mcp",
        "type": "streamable-http"
      },
      "identifier": "@cyanheads/fcc-broadband-mcp-server",
      "runtimeHint": "npx",
      "registryType": "npm",
      "registryBaseUrl": "https://registry.npmjs.org",
      "environmentVariables": [
        {
          "name": "MCP_TRANSPORT_TYPE",
          "value": "http",
          "format": "string",
          "description": "Selects the HTTP transport."
        },
        {
          "name": "FCC_BDC_USERNAME",
          "format": "string",
          "description": "FCC account email for BDC API. Required for fcc_list_downloads and BDC filing periods."
        },
        {
          "name": "FCC_BDC_HASH_VALUE",
          "format": "string",
          "description": "API token hash from broadbandmap.fcc.gov Manage API Access page."
        },
        {
          "name": "FCC_OPENDATA_APP_TOKEN",
          "format": "string",
          "description": "Socrata app token for FCC Open Data. Increases rate limits; not required."
        },
        {
          "name": "FCC_MIRROR_ENABLED",
          "format": "string",
          "default": "false",
          "description": "Serve Form 477 queries from a local SQLite mirror when its coverage allows (bootstrap with `bun run mirror:init`). Default: false."
        },
        {
          "name": "FCC_MIRROR_PATH",
          "format": "string",
          "default": "data/fcc-mirror",
          "description": "Directory holding the Form 477 mirror SQLite files."
        },
        {
          "name": "MCP_HTTP_HOST",
          "format": "string",
          "default": "127.0.0.1",
          "description": "The hostname for the HTTP server."
        },
        {
          "name": "MCP_HTTP_PORT",
          "format": "string",
          "default": "3010",
          "description": "The port to run the HTTP server on."
        },
        {
          "name": "MCP_HTTP_ENDPOINT_PATH",
          "format": "string",
          "default": "/mcp",
          "description": "The endpoint path for the MCP server."
        },
        {
          "name": "MCP_AUTH_MODE",
          "format": "string",
          "default": "none",
          "description": "Authentication mode to use: 'none', 'jwt', or 'oauth'."
        },
        {
          "name": "MCP_LOG_LEVEL",
          "format": "string",
          "default": "info",
          "description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn')."
        }
      ]
    }
  ],
  "repository": {
    "url": "https://github.com/cyanheads/fcc-broadband-mcp-server",
    "source": "github"
  },
  "description": "FCC broadband availability, coverage analysis, and digital divide data for US geographies."
}