Skip to content

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

by cyanheads · remote · local (npm) · no sign-in to list tools · v0.3.0 · published by GitHub user cyanheads

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

Changes · 1

9 tools: 1 change things and 8 only read.

Scanned Oct 21, 2026

3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http fcc-broadband https://fcc-broadband.caseyjhand.com/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn2 info
  • The server marks "fcc_geocode_block" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.

    What this check looks for
  • The description mentions "credentials".

    Matched text

    description: "...rm 477 mirror enabled, and needs no BDC credentials. Follow nextOffset until absent; no tot..."

    What this check looks for
  • The description mentions "credentials".

    Matched text

    description: "...nticated API (Jun 2022 onward, requires credentials). When hasBdcCredentials is true, call..."

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

9 tools

Changes things 1Claude Code: ask
  • fcc_geocode_blockConverts a latitude/longitude coordinate to a 15-digit census block FIPS code, plus county FIPS, county name, state FIPS, state code, and state name.1 finding

    Why it is in this group

    • The description's first verb is "convert": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "fcc_geocode_block" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Converts 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.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • idempotentHint: true
Only reads 8Claude Code: allow
  • fcc_compare_areasCompares broadband coverage metrics across multiple geographies of the same type and returns a ranked table sorted by unserved or underserved population.No findings

    Why it is in this group

    • The name "fcc_compare_areas" says "compare": a word for reading.
    Description, as the server wrote it
    Compares 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).

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • idempotentHint: true
  • fcc_find_underservedFinds geographic areas with limited or no broadband coverage at a given speed threshold, ranked by unserved population.No findings

    Why it is in this group

    • The name "fcc_find_underserved" says "find": a word for reading.
    Description, as the server wrote it
    Finds 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).

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • idempotentHint: true
  • fcc_get_coverage_summaryReturns 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-triba…No findings

    Why it is in this group

    • The name "fcc_get_coverage_summary" says "get": a word for reading.
    Description, as the server wrote it
    Returns 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.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • idempotentHint: true
  • fcc_get_providerReturns a national-level coverage profile for a specific holding company (by hoconum): technologies deployed and the population covered at each download speed tier.No findings

    Why it is in this group

    • The name "fcc_get_provider" says "get": a word for reading.
    Description, as the server wrote it
    Returns 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).

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • idempotentHint: true
  • fcc_list_filing_periodsReturns 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…1 finding

    Why it is in this group

    • The name "fcc_list_filing_periods" says "list": a word for reading.

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "...nticated API (Jun 2022 onward, requires credentials). When hasBdcCredentials is true, call..."

      What this check looks for
    Description, as the server wrote it
    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).

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • idempotentHint: true
  • fcc_search_availabilityQueries broadband providers and advertised speeds at a census block from FCC Form 477 data (as of June 2021).No findings

    Why it is in this group

    • The name "fcc_search_availability" says "search": a word for reading.
    Description, as the server wrote it
    Queries 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.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • idempotentHint: true
  • fcc_search_geographiesFind census places and CBSAs (metro areas) by case-insensitive literal name substring in the 2021 FCC geography lookup.1 finding

    Why it is in this group

    • The name "fcc_search_geographies" says "search": a word for reading.

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "...rm 477 mirror enabled, and needs no BDC credentials. Follow nextOffset until absent; no tot..."

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • idempotentHint: true
  • fcc_search_providersSearches for ISPs by holding company name, filtered by state and technology type.No findings

    Why it is in this group

    • The name "fcc_search_providers" says "search": a word for reading.
    Description, as the server wrote it
    Searches 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).

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • idempotentHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 0.3.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http fcc-broadband https://fcc-broadband.caseyjhand.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__fcc-broadband__fcc_search_availability",
      "mcp__fcc-broadband__fcc_search_geographies",
      "mcp__fcc-broadband__fcc_get_coverage_summary",
      "mcp__fcc-broadband__fcc_search_providers",
      "mcp__fcc-broadband__fcc_get_provider",
      "mcp__fcc-broadband__fcc_compare_areas",
      "mcp__fcc-broadband__fcc_find_underserved",
      "mcp__fcc-broadband__fcc_list_filing_periods"
    ],
    "ask": [
      "mcp__fcc-broadband__fcc_geocode_block"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as fcc-broadband. Review it before you use it.