Skip to main content
Glama

Server Details

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

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
cyanheads/fcc-broadband-mcp-server
GitHub Stars
1

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.4/5 across 9 of 9 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool serves a unique function: geocoding, provider search, coverage summaries, file listings, etc. No two tools have overlapping purposes; descriptions clearly differentiate them.

Naming Consistency5/5

All tools follow a consistent `fcc_verb_noun` pattern in snake_case, making it easy to infer functionality. Examples: `fcc_geocode_block`, `fcc_list_downloads`.

Tool Count5/5

With 9 tools covering geocoding, search, comparison, summary, and data access, the count is well-scoped for a broadband data server. No tool seems superfluous or missing.

Completeness5/5

The tool set provides a complete workflow for broadband analysis: geocoding, address-level and provider search, coverage summaries, area comparison, underserved identification, and data download. No obvious gaps.

Available Tools

9 tools
fcc_compare_areasCompare Broadband Coverage Across AreasA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
sort_byNo"unserved_pct" = share of population with no broadband (default). "unserved_pop" = raw headcount for BEAD funding. "coverage_pct" = share with any coverage. "competitive_pct" = share with 2+ providers.unserved_pct
speed_downNoDownload speed threshold in Mbps. 25 = FCC legacy standard. 100 = BEAD program standard.25
tech_filterNoTechnology filter. "acfosw" = any wired or fixed wireless. "f" = fiber only. "c" = cable only. "a" = DSL. "s" = satellite. "w" = fixed wireless.acfosw
geography_idsNoArray of FIPS GEOIDs to compare (up to 50). For all 50 states, omit and set compare_all_states=true.
geography_typeYesGeographic level to compare. Must be uniform across all geographies in the comparison.
compare_all_statesNoWhen true, compares all 50 states + DC. Overrides geography_ids. Requires geography_type="state".

Output Schema

ParametersJSON Schema
NameRequiredDescription
areasYesRanked comparison of geographies by the selected sort field.
sortByYesRanking field used.
techFilterYesTechnology filter applied.
totalAreasYesTotal number of areas compared.
dataVintageYesData vintage — Form 477 data as of June 2021.
geographyTypeYesGeography type compared.
speedDownMbpsYesSpeed threshold in Mbps.
appliedFiltersYesFilters and parameters applied to this comparison.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly and idempotent hints. The description adds valuable context beyond annotations: data source (FCC Form 477), data vintage (June 2021), and that the output is a ranked table. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences, each adding essential information: purpose, use case, parameter guidance, and data source. It is front-loaded with the primary action and avoids redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (6 parameters, 4 enums) and presence of output schema and annotations, the description adequately covers data source, use case, and parameter limits. It could mention output format more, but the output schema likely handles that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 6 parameters. The description adds value beyond the schema by clarifying the use of compare_all_states and the 50-item limit on geography_ids, which reinforces the schema constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool compares broadband coverage metrics across multiple geographies and returns a ranked table. It gives concrete use cases like 'which counties have the worst broadband access?' and distinguishes from siblings by specifying it compares same-type geographies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use the tool: to compare multiple areas of the same type, especially for BEAD funding prioritization. It also gives constraints on geography IDs (up to 50) and the alternative of using compare_all_states. It does not explicitly state when not to use, but the context is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fcc_find_underservedFind Underserved AreasA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of areas to return, ranked by unserved population (descending).
stateNo2-letter state code (e.g., "WY", "MS") to limit scope. Omit for nationwide search — returns top areas only.
speed_downNoDownload speed threshold in Mbps for defining "underserved." 25 = FCC legacy standard. 100 = BEAD program standard.25
tech_filterNoTechnology filter. "acfosw" = any wired or fixed wireless. "f" = fiber only. "c" = cable only.acfosw
geography_typeNoGeographic granularity for results. "county" is most useful for policy analysis and BEAD eligibility. "cd" = congressional district. "place" = census-designated place. "cbsa" = metro area.county
min_unserved_popNoMinimum population with no coverage to include. Use to filter out very small areas (e.g., 500 filters areas with fewer than 500 unserved residents).
urban_rural_filterNoDefaults to rural ("R") — where underservice is most concentrated. Use "U" to find underserved urban areas (digital redlining research). Set to "all" for both.R

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoThe limit that was applied. Present when truncated.
areasYesRanked list of underserved areas.
shownNoNumber of areas returned after applying the limit. Present when truncated.
noticeNoRecovery hint when no areas are found — suggests how to broaden the filters. Absent on successful results.
truncatedNoTrue when more areas matched than the limit returned. Absent when not truncated.
totalFoundYesTotal number of areas found before applying the limit filter.
dataVintageYesData vintage — Form 477 data as of June 2021.
geographyTypeYesGeography type returned.
speedDownMbpsYesSpeed threshold used in Mbps.
appliedFiltersYesFilters applied to this query.
urbanRuralFilterYesUrban/rural filter applied.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the agent knows it's safe. The description adds valuable behavioral context: data source (FCC Form 477 as of June 2021), ranking method (by unserved population), and default to rural areas. This goes beyond the annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no wasted words. The first sentence states the core purpose, the second positions the tool, and the third provides defaults and data source. It is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (7 parameters, output schema exists), the description is relatively complete. It covers purpose, data source, default behavior, and policy context. The output schema handles return values. Minor gaps: no mention of ranking explicitly (though implied), and no guidance on parameter interactions. Still, adequate for a tool with rich structured metadata.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all seven parameters thoroughly. The description mentions 'speed threshold' and 'state abbreviation' but adds little beyond what the schema provides. The statement about defaulting to rural areas aligns with the urban_rural_filter default. Minimal added value over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool finds geographic areas with limited or no broadband coverage at a given speed threshold, ranked by unserved population. It specifies the verb 'finds,' the resource 'geographic areas,' and key modifiers (speed threshold, ranking). The mention of 'core tool for BEAD program analysis' distinguishes its primary use case from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides usage context (BEAD program, defaults to rural areas) but does not explicitly state when not to use this tool or name alternatives among siblings. It adequately describes narrowing by state but lacks decision guidance for selecting between this and other FCC tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fcc_geocode_blockGeocode Census BlockA
Read-onlyIdempotent
Inspect

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. Uses the FCC public Geo API — no authentication required.

ParametersJSON Schema
NameRequiredDescriptionDefault
latitudeYesLatitude of the location in decimal degrees (e.g., 47.6062 for Seattle, WA). Must be within the continental US, Alaska, Hawaii, or US territories.
longitudeYesLongitude of the location in decimal degrees (e.g., -122.3321 for Seattle, WA). Negative for western hemisphere.

Output Schema

ParametersJSON Schema
NameRequiredDescription
blockFipsYes15-digit census block FIPS code (e.g., "530330081021016"). Pass this to fcc_search_availability to look up broadband providers.
stateCodeYes2-letter state abbreviation (e.g., "WA").
stateFipsYes2-digit state FIPS code (e.g., "53" for Washington).
stateNameYesFull state name (e.g., "Washington").
countyFipsYes5-digit county FIPS code (e.g., "53033" for King County, WA).
countyNameYesHuman-readable county name (e.g., "King").
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, openWorldHint, and idempotentHint. The description adds context about using the FCC public Geo API with no authentication, which is consistent and helpful. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences that are concise and front-loaded. The first sentence states the core functionality and outputs; the second provides critical usage context. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema and high schema description coverage, the description is complete. It covers prerequisites, the API used, and authentication requirements, leaving no significant gaps for an agent to misinterpret.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed descriptions for latitude and longitude (including ranges and sign conventions). The description doesn't add new parameter information beyond what the schema provides, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool converts lat/lng to a 15-digit census block FIPS code plus other geographic identifiers. It uses a specific verb ('converts') and resource ('coordinate to census block'), and distinguishes itself from sibling tools by noting it's a prerequisite for fcc_search_availability.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states it is 'the required prerequisite for fcc_search_availability' and mentions 'no authentication required,' providing clear guidance on when to use it. However, it doesn't explicitly state when not to use it or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fcc_get_coverage_summaryGet Broadband Coverage SummaryA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
speed_downNoMinimum download speed threshold in Mbps. 25 = FCC legacy broadband definition. 100 = BEAD program standard (use this for current policy analysis). "0.2" = any service above 200 Kbps.25
tech_filterNoTechnology filter. "acfosw" = any wired or fixed wireless (recommended baseline). "f" = fiber only. "c" = cable only. "a" = ADSL/DSL only. "s" = satellite only. "w" = fixed wireless only. Mix letters for combinations, e.g., "fc" = fiber or cable.acfosw
geography_idNoFIPS GEOID for the geography. State: 2-digit (e.g., "06" for California). County: 5-digit (e.g., "06037" for LA County). Congressional district: 4-digit state+district (e.g., "0601"). CBSA: 5-digit code. Place: 7-digit state+place (e.g., "0644000"). Omit for nation-level queries.
tribal_filterNoFilter to tribal ("T") or non-tribal ("N") areas. Use "T" to assess Native American connectivity gaps.all
geography_typeYesGeographic aggregation level. "nation" = US-wide totals (geography_id not needed). "cd" = congressional district. "place" = census-designated place. "cbsa" = core-based statistical area (metro area). "tribal" = tribal land area.
urban_rural_filterNoFilter to urban ("U") or rural ("R") areas only, or "all" for both combined. Rural breakdown is key for BEAD program analysis.all

Output Schema

ParametersJSON Schema
NameRequiredDescription
breakdownYesPer-segment breakdown by urban/rural and tribal/non-tribal.
geographyYesThe queried geography.
populationYesPopulation counts by provider availability tier.
techFilterYesTechnology filter applied.
coveragePctYesPercentage of population with at least one provider at the given speed.
dataVintageYesData vintage — Form 477 data as of June 2021.
unservedPctYesPercentage with zero providers — FCC "unserved" definition.
speedDownMbpsYesDownload speed threshold used in Mbps.
appliedFiltersYesFilters applied to this query.
competitivePctYesPercentage with two or more providers.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint, openWorldHint false, and idempotentHint, which the description does not contradict. The description adds behavioral context by noting the data source (FCC Form 477 as of June 2021) and clarifying it returns summary statistics split by segments, but does not cover all behaviors like rate limits or pagination.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loads the core purpose, and contains no extraneous information. Each sentence adds value, and the entire text is efficient while conveying all essential details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and full parameter descriptions, the description covers the return value, data source, supported geography types, and use case guidance. It is sufficiently complete for an agent to invoke the tool correctly without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and each parameter already has a description in the input schema. The description adds some contextual clarifications (e.g., speed values and BEAD relevance), but it largely reinforces the schema rather than providing substantial new meaning beyond it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a broadband coverage summary for a geography, detailing population with provider counts split by urban/rural and tribal/non-tribal. It emphasizes its role in digital divide analysis and lists supported geography levels, distinguishing it from siblings like fcc_compare_areas or fcc_find_underserved.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context for when to use it (primary tool for digital divide analysis) and recommends a specific speed threshold for BEAD policy. However, it lacks explicit when-not-to-use guidance or direct comparisons to alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fcc_get_providerGet Provider ProfileA
Read-onlyIdempotent
Inspect

Returns a national-level coverage profile for a specific holding company (by hoconum): states served, technologies deployed, and the number of locations covered at each download speed tier. Use fcc_search_providers to find valid hoconum values. Data is from FCC Form 477 (as of June 2021).

ParametersJSON Schema
NameRequiredDescriptionDefault
hoconumYesHolding company number from fcc_search_providers (e.g., "130152" for Comcast). Required identifier for the provider.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hoconumYesHolding company number.
techCodesYesTechnology codes this provider deploys nationally.
techLabelsYesHuman-readable technology descriptions.
dataVintageYesData vintage — Form 477 data as of June 2021.
holdingCompanyNameYesHolding company name.
speedTierLocationsYesDownload speed tier location counts (national totals).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false, indicating safe, idempotent read operations. The description adds valuable context beyond annotations by noting the data source (FCC Form 477 as of June 2021), which helps an agent understand data freshness. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the tool's purpose, followed by usage guidance and data source. Every sentence adds value without any redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one required parameter and an existing output schema (indicated by context signals), the description fully covers purpose, parameter retrieval, and data provenance. It is self-contained and eliminates ambiguity for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and already describes the hoconum parameter, but the description adds semantic meaning by explaining it as a holding company number from fcc_search_providers and giving an example ('130152' for Comcast), providing further guidance beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a national-level coverage profile for a specific holding company, detailing states, technologies, and location counts per speed tier. It distinguishes itself from the sibling tool fcc_search_providers by directing users to that tool for finding valid hoconum values.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use this tool (to get a provider profile) and provides guidance on how to obtain the required hoconum parameter via fcc_search_providers, offering clear context and an alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fcc_list_downloadsList BDC DownloadsA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoFilter to one state's files (2-letter abbreviation, e.g., "WA").
categoryNoFile category. "State" = per-state coverage files. "Provider" = per-provider files. "Summary" = aggregate coverage tables.
data_typeNo"availability" = ISP-reported coverage files (by state and provider). "challenge" = consumer and government dispute records.availability
as_of_dateYesBDC as-of date in YYYY-MM-DD format (e.g., "2024-06-30"). Get valid dates from fcc_list_filing_periods with include_bdc=true.
provider_nameNoPartial provider holding company name to filter results (case-insensitive).
technology_typeNoFilter to a specific technology type of coverage data.

Output Schema

ParametersJSON Schema
NameRequiredDescription
filesYesDownloadable BDC files matching the filters.
noticeNoRecovery hint when no files are found — suggests how to broaden the search. Absent on successful results.
asOfDateYesThe queried as-of date.
dataTypeYesData type queried (availability or challenge).
totalFilesYesTotal number of files returned after filtering.
appliedFiltersYesFilters applied to this query.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate read-only and idempotent behavior. Description adds context on data scope (fixed/mobile availability, challenge data) and that download URLs are included, aligning with annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences front-load the primary function, then add essential context (prerequisites, credentials). No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers main purpose, data types, file metadata, and credentials. Since an output schema exists, detailed return format is not needed. Slightly lacking on how filtering parameters interact, but acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all 6 parameters with descriptions. The description adds value by explaining the as_of_date parameter's relation to fcc_list_filing_periods and mentioning file metadata, going beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists BDC data files for a specific as-of-date, with details on data types and file metadata. It differentiates from sibling tools like fcc_list_filing_periods by mentioning prerequisites.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises using fcc_list_filing_periods first and lists required credentials. Does not provide explicit when-not-to-use scenarios, but context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fcc_list_filing_periodsList Filing PeriodsA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
include_bdcNoWhen true, also fetches BDC as-of dates from the authenticated API (requires FCC_BDC_USERNAME and FCC_BDC_HASH_VALUE). When false (default), returns only hardcoded Form 477 periods.

Output Schema

ParametersJSON Schema
NameRequiredDescription
periodsYesAvailable filing periods sorted newest first.
bdcCountYesNumber of BDC periods returned (0 when credentials not configured or include_bdc=false).
dataNoteYesNote on data availability and the Form 477 vs. BDC gap.
form477CountYesNumber of Form 477 periods returned (always available).
hasBdcCredentialsYesWhether BDC API credentials are configured in this deployment.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations: Form 477 periods are hardcoded and always available, BDC requires authenticated API credentials, and there is a data gap. These details are consistent with readOnlyHint and idempotentHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (three sentences), front-loaded with the main purpose, and each sentence adds necessary information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema, the description appropriately covers purpose, usage order, data gap, and credential requirements. It is complete for a list tool with one parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers all parameters, but the description adds value by explaining that include_bdc=true triggers API authentication and returns BDC dates, while false returns only hardcoded Form 477 periods. This clarifies the parameter's effect beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns available data vintages for Form 477 and BDC filing periods, specifies the action (list), and distinguishes from sibling tool fcc_list_downloads by noting it should be called first to determine valid as_of_date values.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises calling this before fcc_list_downloads, explains the two data sources and the data gap, and notes credential requirements for BDC. It lacks an explicit statement of when not to use, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fcc_search_availabilitySearch Broadband AvailabilityA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
consumerNoFilter to consumer service (true) or business service (false). Omit to return both consumer and business offerings.
block_fipsYes15-digit census block FIPS code (e.g., "530330081021016"). Obtain from fcc_geocode_block using address coordinates.
tech_filterNoTechnology codes to filter. 50=Fiber to premises, 40–43=Cable modem, 10–12=DSL variants, 60=Satellite, 70=Fixed wireless. Omit to return all technologies.
min_speed_downNoMinimum advertised download speed in Mbps to include in results. Omit to return all providers regardless of speed.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noticeNoRecovery hint when no providers are found — suggests how to broaden the query. Absent on successful results.
blockFipsYesThe queried census block FIPS code.
providersYesISP offerings reported for this census block.
dataVintageYesData vintage — all Form 477 data on FCC Open Data is as of June 2021. For newer BDC data, use fcc_list_downloads.
appliedFiltersYesFilters applied to this query.
totalProvidersYesTotal number of distinct holding companies offering service at this block.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true. Description adds valuable info: data is from June 2021, ISP-reported at block level, and may overstate actual coverage. This is extra behavioral context beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four concise sentences with no wasted words. Front-loaded with purpose ('Queries broadband providers...'), followed by usage example, prerequisite, and caveat. Each sentence adds necessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (4 parameters, output schema exists, annotations present), the description covers all essential aspects: what it does, prerequisite, data source, and limitation. It is fully adequate for an agent to understand when and how to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. Description mentions the required parameter (block_fips) and hints at filters (consumer, tech_filter, min_speed_down) but does not add novel explanations beyond the schema's detailed property descriptions (e.g., tech code mapping). It contextualizes the parameters but doesn't significantly enhance semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool queries broadband providers and advertised speeds at a census block, using verb 'queries' and specific resource 'FCC Form 477 data'. It answers a concrete question and distinguishes itself from sibling tools like fcc_geocode_block (which converts coordinates) by focusing on address-level broadband lookup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states prerequisite: requires a 15-digit census block FIPS code and directs to use fcc_geocode_block first. Implicitly advises when to use (for address-level lookup) and notes data may overstate coverage, but does not provide explicit when-not-to-use or compare with alternatives like fcc_search_providers.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fcc_search_providersSearch Broadband ProvidersA
Read-onlyIdempotent
Inspect

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. Data is from FCC Form 477 (as of June 2021).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of distinct providers to return.
stateNo2-letter state abbreviation (e.g., "WA") to limit results to providers serving that state.
name_searchNoPartial holding company name to search (case-insensitive). e.g., "Comcast", "T-Mobile", "Frontier". Omit to list all providers in a state.
tech_filterNoTechnology codes to filter. 50=Fiber, 40–43=Cable, 10–12=DSL, 60=Satellite, 70=Fixed wireless. Omit for all technologies.

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoThe limit that was applied. Present when capped.
shownNoNumber of providers returned. Present when capped.
noticeNoRecovery hint when no providers are found — suggests how to broaden the search. Absent on successful results.
providersYesMatching providers, deduplicated by holding company.
truncatedNoTrue when results were capped at the limit and more providers may exist. Absent when not capped.
totalFoundYesNumber of distinct providers returned.
dataVintageYesData vintage — Form 477 data as of June 2021.
appliedFiltersYesFilters applied to this query.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds meaningful context beyond the annotations: the data source (FCC Form 477 as of June 2021), deduplication behavior, and that results include hoconum identifiers. This helps the agent understand potential staleness and output semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at three sentences, front-loaded with the primary purpose, and every sentence adds value. There is no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (not shown but in context signals), the description does not need to explain return values. It covers purpose, usage examples, parameter scoping, data source, and limitations. For a search tool with 4 parameters and rich annotations, this is fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is 3. The description adds value by explaining tech_filter codes (e.g., '50=Fiber'), noting that name_search is case-insensitive, and stating the limit default. These details aid correct parameter usage beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: searching ISPs by holding company name, filtered by state and technology type. It provides concrete examples ('which ISPs serve Washington with fiber?') and distinguishes itself from siblings by focusing on provider deduplication and returning hoconum identifiers for follow-up calls to fcc_get_provider.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes explicit examples of queries and notes that geographic filtering is only state-level, with sub-state granularity requiring cross-referencing block data. It also implies a workflow by mentioning follow-up calls to fcc_get_provider. However, it does not directly compare to sibling tools like fcc_search_availability.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.