Skip to main content
Glama

fcc-spectrum-mcp-server

Search FCC ULS authorizations by frequency

fcc_spectrum_search_frequencies
Read-onlyIdempotent

Find FCC ULS authorizations whose occupied band overlaps a frequency or band. Site assignments (land mobile, microwave, paging, cellular sites) return one row per site and frequency with the site's state and coordinates; market-area licenses and leases (PCS, AWS, 700 MHz, 3.45 and 3.7 GHz, and other auctioned blocks) return one row per spectrum block with its market code and name; 3.5 GHz Priority Access Licenses file no frequency, so list them with fcc_spectrum_search_licenses and radio_service PL. Filter by state, radio service, licensee, FRN, market code, and live status (active by default). For transmitter sites near a coordinate, use fcc_spectrum_find_transmitters.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
frnNoLicensee's FCC Registration Number, up to 10 digits; spaces and hyphens are removed and it is left-padded with zeros. Individual licensees match and are returned redacted.
kindNosite: transmitter-site assignments only; market: market-area spectrum blocks only; both (default).both
unitNoUnit of the frequencies: kHz, MHz (default), or GHz.MHz
limitNoRows per page (1–200).
stateNoTwo-letter USPS code or full state name. Sites match on their filed state, or the state derived from their coordinates. Market blocks match when their FCC market area reaches the state (a multi-state market matches each of its states), their market name carries the state code, or their license files a site there; nationwide and Gulf of Mexico markets match no state.
cursorNonextCursor from the previous page of the same search; omit for the first page.
statusNoA active (default), L pending legal, X term pending, or "any" for all three. Other statuses keep no frequency records.A
licenseeNoLicensee name words, with at least one letter or digit; every word must match the start of a word in the name, in any order. A word joined by - or & ("T-Mobile", "AT&T") matches its pieces side by side.
market_codeNoMarket code of the license, matched exactly, e.g. "PEA016", "CMA020", or "NW" (nationwide); market rows carry it as marketCode. Applies to site and market rows alike, since cellular (CMA) licenses file sites rather than blocks. Case, spaces, and hyphens are ignored, and the digits are left-padded with zeros ("pea16" reads as PEA016).
frequency_lowYesFrequency in unit; with frequency_high, the band's lower edge. Matches any authorization whose occupied band overlaps.
radio_serviceNoTwo-character radio service code, e.g. "WU" (700 MHz upper band); see fcc_spectrum_list_reference topic "radio_services".
frequency_highNoBand upper edge in unit; omit to search a single frequency.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
capNoThe page limit applied.
errorNoPresent when the call failed. Absent on success.
shownNoRows on this page.
noticeNoWhy nothing matched, what the state and redaction rules skipped, or how to page further.
dataAsOfNoCreation time of the newest applied ULS file (ISO 8601).
truncatedNoTrue when more rows follow this page.
nextCursorNoPass as cursor with the same inputs for the next page; absent on the last page. A page over a dense band can hold fewer rows than limit and still carry one.
totalCountNoRows matching the filters, across every page; at least this many when totalIsLowerBound is true.
assignmentsNoMatching site assignments and market blocks, frequency ascending.
appliedFiltersNoFilters as the server applied them, normalized values and defaults included.
totalIsLowerBoundNoTrue when a dense band was counted only in part, so totalCount is a lower bound; absent when the count is exact.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations cover safety (readOnly, idempotent, closed-world), but the description adds substantive behavior: the divergent row shapes for site vs market/lease records, the coverage gap that PALs file no frequency, and the default live-status filter. It doesn't mention pagination semantics beyond the schema's cursor/limit, but the depth here exceeds the annotation bar.

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

Conciseness4/5

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

Three sentences, purpose front-loaded, with the routing advice appended rather than buried. The long semicolon-delimited enumerations of license types and filters are dense but each clause carries distinct 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?

An output schema exists, so return values need no explanation. For a 12-parameter search tool, the description covers purpose, result row semantics, coverage exclusions, and sibling alternatives – nothing an agent needs to invoke it correctly is missing.

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 baseline is 3. The description enumerates the filterable dimensions (state, radio service, licensee, FRN, market code, live status) but adds little syntax or semantics beyond what the schema already documents for each parameter.

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?

Opens with a specific verb+resource+scope: 'Find FCC ULS authorizations whose occupied band overlaps a frequency or band.' It then distinguishes result shapes (one row per site vs per spectrum block), which no sibling tool does, so an agent can route correctly without opening schemas.

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?

Explicitly routes two cases to alternatives: 3.5 GHz Priority Access Licenses have no frequency and must go through fcc_spectrum_search_licenses with radio_service PL, and coordinate-proximity transmitter searches belong to fcc_spectrum_find_transmitters. Both when-not conditions are named with the substitute tool.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.