fcc-spectrum-mcp-server
Search FCC radio licenses, find nearby transmitter sites, and see who is licensed on a frequency.
使うべきか
品質と安全性
検出事項(1)
- LOWfcc_spectrum_search_frequencies 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"fcc-spectrum-mcp-server": {
"command": "node",
"args": [
"@cyanheads/fcc-spectrum-mcp-server"
]
}
}
}実行可能なパッケージ
0.1.2streamable-httpリモートエンドポイント
https://fcc-spectrum.caseyjhand.com/mcpstreamable-httpできること
ツール一覧
ツール(5)
🟢fcc_spectrum_search_licenses(callsign, licensee, frn, market_code, radio_service, ...)
Search FCC ULS licenses and spectrum leases by callsign, licensee name, FCC Registration Number (FRN), market code, radio service, status, and licensee state, returning one row per record with its unique system identifier (USI) for fcc_spectrum_get_license. At least one of callsign, licensee, frn, market_code, radio_service, or state is required; status only narrows. Defaults to active records; pass status "any" to include expired, cancelled, and terminated ones. Licensee name matching is word-based (every word must appear as a word prefix), not fuzzy.
入力スキーマ
{
"type": "object",
"properties": {
"callsign": {
"description": "Exact callsign or lease ID, e.g. \"KNKA123\" or \"L000012345\". Case, spaces, and one trailing portable suffix (\"/4\") are normalized. ULS reuses callsigns, so several records can match.",
"type": "string",
"pattern": "^[A-Z0-9]{3,10}$"
},
"licensee": {
"description": "Licensee name words, with at least one letter or digit; every word must match the start of a word in the name, in any order (e.g. \"verizon wireless\"). A word joined by - or & (\"T-Mobile\", \"AT&T\") matches its pieces side by side.",
"type": "string",
"maxLength": 200
},
"frn": {
"description": "FCC Registration Number, up to 10 digits; spaces and hyphens are removed and it is left-padded with zeros.",
"type": "string",
"pattern": "^\\d{10}$"
},
"market_code": {
"description": "Market code of a geographic-area license, matched exactly, e.g. \"PEA016\", \"CMA020\", \"D06037\", or \"NW\" (nationwide); results carry it as marketCode. Case, spaces, and hyphens are ignored, and the digits are left-padded with zeros (\"pea16\" reads as PEA016).",
"type": "string",
"pattern": "^(?:[A-Z]{3}\\d{3}|[A-Z]\\d{5}|[A-Z]{2}\\d{4}|NW)$"
},
"radio_service": {
"description": "Two-character radio service code, e.g. \"CD\" (paging) or \"BR\" (BRS); see fcc_spectrum_list_reference topic \"radio_services\".",
"type": "string",
"pattern": "^[A-Z0-9]{2}$"
},
"status": {
"description": "License status: A active, L pending legal, X term pending, E expired, C canceled, T terminated, P parent station canceled, or \"any\" for every status. Defaults to A.",
"default": "A",
"type": "string",
"enum": [
"A",
"C",
"E",
"L",
"P",
"T",
"X",
"any"
]
},
"state": {
"description": "Licensee mailing state: a two-letter USPS code (incl. DC, PR, VI, GU, AS, MP) or a full state name. This is the licensee's address, not the site location.",
"type": "string",
"enum": [
"AL",
"AK",
"AZ",
"AR",
"CA",
"CO",
"CT",
"DE",
"DC",
"FL",
"GA",
"HI",
"ID",
"IL",
"IN",
"IA",
"KS",
"KY",
"LA",
"ME",
"MD",
"MA",
"MI",
"MN",
"MS",
"MO",
"MT",
"NE",
"NV",
"NH",
"NJ",
"NM",
"NY",
"NC",
"ND",
"OH",
"OK",
"OR",
"PA",
"RI",
"SC",
"SD",
"TN",
"TX",
"UT",
"VT",
"VA",
"WA",
"WV",
"WI",
"WY",
"AS",
"GU",
"MP",
"PR",
"VI"
]
},
"limit": {
"default": 25,
"description": "Records per page (1–100).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "nextCursor from the previous page of the same search; omit for the first page.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,200}$"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}出力スキーマ
{
"type": "object",
"properties": {
"licenses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"usi": {
"type": "string",
"description": "Unique system identifier of the record; pass it to fcc_spectrum_get_license."
},
"callsign": {
"description": "Callsign, or lease ID (L + 9 digits) on a lease; absent on the few records filed without one.",
"type": "string"
},
"isLease": {
"type": "boolean",
"description": "True for a spectrum leasing arrangement, whose licensee is the lessee."
},
"licenseStatus": {
"type": "string",
"description": "ULS license status code (A active, E expired, C canceled, T terminated, …)."
},
"statusLabel": {
"type": "string",
"description": "Label of the license status code."
},
"radioServiceCode": {
"type": "string",
"description": "Two-character ULS radio service code."
},
"radioServiceLabel": {
"type": "string",
"description": "Label of the radio service code."
},
"serviceGroup": {
"type": "string",
"description": "FCC bulk-data service group the record was indexed from (e.g. \"paging\"); fcc_spectrum_list_reference topic \"coverage\" lists the groups."
},
"licenseeName": {
"description": "Licensee (lessee on a lease) as filed; null when redacted or not on file.",
"type": [
"string",
"null"
]
},
"licenseeRedacted": {
"type": "boolean",
"description": "True when the licensee is an individual whose name and city are withheld."
},
"frn": {
"description": "FCC Registration Number of the licensee, when filed.",
"type": "string"
},
"applicantType": {
"description": "ULS applicant type code (I individual, C corporation, …), when filed.",
"type": "string"
},
"licenseeCity": {
"description": "Licensee mailing city, when filed and not redacted.",
"type": "string"
},
"licenseeState": {
"description": "Licensee mailing state, when filed.",
"type": "string"
},
"grantDate": {
"description": "Grant date (YYYY-MM-DD).",
"type": "string"
},
"expiredDate": {
"description": "Expiration date (YYYY-MM-DD).",
"type": "string"
},
"cancellationDate": {
"description": "Cancellation date (YYYY-MM-DD).",
"type": "string"
},
"lastActionDate": {
"description": "Date of the last ULS action on the record (YYYY-MM-DD).",
"type": "string"
},
"locationCount": {
"type": "number",
"description": "Locations indexed for the record; 0 when its status is not A, L, or X, since sites are kept only for active, pending-legal, and term-pending records."
},
"frequencyCount": {
"type": "number",
"description": "Frequency rows indexed for the record; 0 when its status is not A, L, or X."
},
"marketCode": {
"description": "Market code of a geographic-area license; pass it as market_code to list the market's licenses.",
"type": "string"
},
"marketName": {
"description": "Market name of a geographic-area license.",
"type": "string"
}
},
"required": [
"usi",
"isLease",
"licenseStatus",
"statusLabel",
"radioServiceCode",
"radioServiceLabel",
"serviceGroup",
"licenseeName",
"licenseeRedacted",
"locationCount",
"frequencyCount"
],
"additionalProperties": false,
"description": "One license or lease record."
},
"description": "Matching records, ranked by name-match relevance when licensee is given and in callsign order otherwise."
},
"nextCursor": {
"description": "Pass as cursor with the same filters for the next page; absent on the last page.",
"type": "string"
},
"dataAsOf": {
"type": "string",
"description": "Creation time of the newest applied ULS file (ISO 8601)."
},
"totalCount": {
"type": "number",
"description": "Records matching the filters, across every page."
},
"truncated": {
"type": "boolean",
"description": "True when more records follow this page."
},
"shown": {
"type": "number",
"description": "Records on this page."
},
"cap": {
"type": "number",
"description": "The page limit applied."
},
"appliedFilters": {
"type": "object",
"properties": {
"callsign": {
"description": "Normalized callsign filter.",
"type": "string"
},
"licensee": {
"description": "Licensee name words searched.",
"type": "string"
},
"frn": {
"description": "Normalized FRN filter.",
"type": "string"
},
"market_code": {
"description": "Normalized market code filter.",
"type": "string"
},
"radio_service": {
"description": "Radio service code filter.",
"type": "string"
},
"status": {
"type": "string",
"description": "Status filter, default included."
},
"state": {
"description": "Normalized licensee state filter.",
"type": "string"
}
},
"required": [
"status"
],
"additionalProperties": false,
"description": "Filters as the server applied them, normalized values and defaults included."
},
"notice": {
"description": "Why nothing matched, what redaction excluded, or how to page further.",
"type": "string"
},
"error": {
"description": "Present when the call failed. Absent on success.",
"type": "object",
"properties": {
"code": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "JSON-RPC error code for this failure."
},
"message": {
"type": "string",
"description": "Human-readable description of what went wrong."
},
"data": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Machine-readable failure mode. Declared by this tool: `index_not_ready`: No completed index generation is published yet. `no_criteria`: No search field was supplied. `unknown_radio_service`: The radio service code is neither in the FCC code table nor held by the index. `service_not_indexed`: The radio service code is valid but no indexed service group carries it. `invalid_cursor`: The cursor does not decode, belongs to an earlier index generation, or is from a licensee search the daily refresh has since changed. Other values are possible when a failure originates below the handler.",
"examples": [
"index_not_ready",
"no_criteria",
"unknown_radio_service",
"service_not_indexed",
"invalid_cursor"
]
},
"recovery": {
"description": "Actionable next step for the caller.",
"type": "object",
"properties": {
"hint": {
"type": "string"
}
},
"required": [
"hint"
],
"additionalProperties": {}
},
"retryable": {
"description": "Whether retrying may succeed.",
"type": "boolean"
}
},
"additionalProperties": {}
}
},
"required": [
"code",
"message"
],
"additionalProperties": {}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"licenses",
"dataAsOf",
"totalCount",
"truncated",
"shown",
"cap",
"appliedFilters"
]
},
{
"required": [
"error"
]
}
]
}🟢fcc_spectrum_get_license(callsign, usi, max_frequencies, location_offset, location_number, ...)
Fetch one FCC ULS license or spectrum lease in full by callsign or unique system identifier (USI): licensee (the lessee on a lease), status and key dates, its locations with coordinates, elevation, structure height, and ASR number, each location's antennas, and each antenna's authorized frequencies with power, ERP/EIRP, station class, transmitter, and emission designators; geographic-area licenses list their market and spectrum blocks, and lease links are shown in both directions. Large records are paged: one call lists whole locations up to 50 sites and 100 antennas, up to max_frequencies frequency rows, and 100 leases, and names the location_offset or lease_offset that reads the rest; location_number starts the locations at a location number the search tools return. Technical detail is kept for active, pending-legal, and term-pending records only. A callsign shared by several records returns the active one, else the most recent.
入力スキーマ
{
"type": "object",
"properties": {
"callsign": {
"description": "Callsign or lease ID, e.g. \"KNKA123\" or \"L000012345\". Case, spaces, and one trailing portable suffix (\"/4\") are normalized. Pass this or usi, not both.",
"type": "string",
"pattern": "^[A-Z0-9]{3,10}$"
},
"usi": {
"description": "Unique system identifier, as digits: the usi field of fcc_spectrum_search_licenses, fcc_spectrum_find_transmitters, or fcc_spectrum_search_frequencies results. Pass this or callsign, not both.",
"type": "string",
"pattern": "^[1-9]\\d{0,9}$"
},
"max_frequencies": {
"default": 100,
"description": "Most frequency rows to return across the locations this call lists (1–1000); rows beyond it are dropped from the last locations first. Large microwave and land-mobile licenses exceed the default.",
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"location_offset": {
"default": 0,
"description": "Location to start at, counted from 0 in location-number order; pass nextLocationOffset from the previous call to read the next locations. To start at a location number instead, pass location_number.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"location_number": {
"description": "Location number to start at: the locationNumber of a fcc_spectrum_find_transmitters or fcc_spectrum_search_frequencies result. A number the record does not file starts at the next one it does. Pass this or a nonzero location_offset, not both; page on with nextLocationOffset.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"lease_offset": {
"default": 0,
"description": "Lease to start at, counted from 0 in lease-ID order; pass nextLeaseOffset from the previous call to read the next 100.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}出力スキーマ
{
"type": "object",
"properties": {
"found": {
"type": "boolean",
"description": "True when a record matched; false returns guidance and candidates instead."
},
"guidance": {
"description": "Why nothing matched and where to look next; present when found is false.",
"type": "string"
},
"candidates": {
"description": "Up to 5 records whose callsign starts with the one requested; present when a callsign lookup found nothing.",
"type": "array",
"items": {
"type": "object",
"properties": {
"callsign": {
"type": "string",
"description": "Candidate callsign."
},
"usi": {
"type": "string",
"description": "Candidate USI."
},
"licenseStatus": {
"type": "string",
"description": "Candidate status code."
}
},
"required": [
"callsign",
"usi",
"licenseStatus"
],
"additionalProperties": false,
"description": "One callsign-prefix match."
}
},
"license": {
"description": "The record; present when found is true.",
"type": "object",
"properties": {
"usi": {
"type": "string",
"description": "Unique system identifier."
},
"callsign": {
"description": "Callsign, or lease ID (L + 9 digits) on a lease.",
"type": "string"
},
"isLease": {
"type": "boolean",
"description": "True for a spectrum leasing arrangement."
},
"licenseStatus": {
"type": "string",
"description": "ULS license status code."
},
"statusLabel": {
"type": "string",
"description": "Label of the license status code."
},
"radioServiceCode": {
"type": "string",
"description": "Two-character ULS radio service code."
},
"radioServiceLabel": {
"type": "string",
"description": "Label of the radio service code."
},
"serviceGroup": {
"type": "string",
"description": "FCC bulk-data service group the record was indexed from (e.g. \"paging\"); fcc_spectrum_list_reference topic \"coverage\" lists the groups."
},
"grantDate": {
"description": "Grant date (YYYY-MM-DD).",
"type": "string"
},
"effectiveDate": {
"description": "Effective date (YYYY-MM-DD).",
"type": "string"
},
"expiredDate": {
"description": "Expiration date (YYYY-MM-DD).",
"type": "string"
},
"cancellationDate": {
"description": "Cancellation date (YYYY-MM-DD).",
"type": "string"
},
"lastActionDate": {
"description": "Date of the last ULS action (YYYY-MM-DD).",
"type": "string"
},
"licensee": {
"type": "object",
"properties": {
"name": {
"description": "Licensee or lessee name as filed; null when redacted or not on file.",
"type": [
"string",
"null"
]
},
"redacted": {
"type": "boolean",
"description": "True when the licensee is an individual whose name and city are withheld."
},
"role": {
"type": "string",
"enum": [
"licensee",
"lessee"
],
"description": "lessee on a lease record, licensee otherwise."
},
"frn": {
"description": "FCC Registration Number, when filed.",
"type": "string"
},
"applicantType": {
"description": "ULS applicant type code, when filed.",
"type": "string"
},
"city": {
"description": "Mailing city, when filed and not redacted.",
"type": "string"
},
"state": {
"description": "Mailing state, when filed.",
"type": "string"
}
},
"required": [
"name",
"redacted",
"role"
],
"additionalProperties": false,
"description": "The licensee entity (the lessee on a lease)."
},
"amateur": {
"description": "Amateur license details; present on amateur records.",
"type": "object",
"properties": {
"operatorClass": {
"description": "Amateur operator class code.",
"type": "string"
},
"operatorClassLabel": {
"description": "Label of the operator class code.",
"type": "string"
},
"trusteeCallsign": {
"description": "Trustee callsign of a club, military-recreation, or RACES license.",
"type": "string"
},
"trusteeName": {
"description": "Trustee name; null when redaction withholds it.",
"type": [
"string",
"null"
]
},
"previousCallsign": {
"description": "Previous callsign of the station.",
"type": "string"
}
},
"additionalProperties": false
},
"market": {
"description": "Geographic-area license market; present on market-based records.",
"type": "object",
"properties": {
"marketCode": {
"type": "string",
"description": "Market code (e.g. BTA028, CMA001)."
},
"marketName": {
"description": "Market name as filed (cut at 30 characters by ULS).",
"type": "string"
},
"channelBlock": {
"description": "Channel block, as filed.",
"type": "string"
},
"blocks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"lowMhz": {
"description": "Lower edge, MHz; absent on a block filed as a channel width only.",
"type": "number"
},
"highMhz": {
"description": "Upper edge, MHz; absent on a block filed as a channel width only.",
"type": "number"
},
"channelWidthMhz": {
"description": "Channel width, MHz, of a block ULS files with no frequency (a 0 lower edge): 3.5 GHz Priority Access License channels, which the Spectrum Access System assigns within 3550–3650 MHz.",
"type": "number"
},
"partitionAreaIds": {
"description": "ULS partition areas this band is filed under; a partitioned license files one band per area, listed once here.",
"type": "array",
"items": {
"type": "number",
"description": "One ULS partition area ID."
}
}
},
"additionalProperties": false,
"description": "One spectrum block."
},
"description": "Spectrum blocks authorized in the market; kept only for status A, L, or X (active, pending legal, term pending), so empty otherwise."
}
},
"required": [
"marketCode",
"blocks"
],
"additionalProperties": false
},
"leasedFrom": {
"type": "array",
"items": {
"type": "object",
"properties": {
"callsign": {
"description": "Parent license callsign.",
"type": "string"
},
"usi": {
"type": "string",
"description": "Parent license USI; pass it as usi to read the parent."
}
},
"required": [
"usi"
],
"additionalProperties": false,
"description": "One parent license."
},
"description": "Licenses this lease is carved from; empty unless the record is a lease."
},
"leases": {
"type": "array",
"items": {
"type": "object",
"properties": {
"callsign": {
"description": "Lease ID.",
"type": "string"
},
"usi": {
"type": "string",
"description": "Lease USI."
},
"licenseStatus": {
"type": "string",
"description": "Lease status code."
}
},
"required": [
"usi",
"licenseStatus"
],
"additionalProperties": false,
"description": "One lease."
},
"description": "Leases carved from this license, up to 100 from lease_offset, in lease-ID order."
},
"leaseCount": {
"type": "number",
"description": "Total leases carved from this license."
}
},
"required": [
"usi",
"isLease",
"licenseStatus",
"statusLabel",
"radioServiceCode",
"radioServiceLabel",
"serviceGroup",
"licensee",
"leasedFrom",
"leases",
"leaseCount"
],
"additionalProperties": false
},
"technicalRetained": {
"description": "False when the status is not A, L, or X (active, pending legal, term pending): sites and frequencies are kept only for those, so locations is empty.",
"type": "boolean"
},
"locations": {
"description": "Locations with antennas and frequency rows, one entry per location number (a number filed at several sites lists them in sites): whole locations from location_offset or location_number up to 50 sites and 100 antennas, or one larger location alone; present when found is true.",
"type": "array",
"items": {
"type": "object",
"properties": {
"locationNumber": {
"type": "number",
"description": "Location number within the license."
},
"locationTypeCode": {
"description": "ULS location type code (F fixed, M mobile, …); absent when not filed.",
"type": "string"
},
"locationTypeLabel": {
"description": "Label of the location type code.",
"type": "string"
},
"locationClassCode": {
"description": "ULS location class code, as filed.",
"type": "string"
},
"latitude": {
"description": "Latitude, decimal degrees (NAD83 as filed); absent when the filed coordinates fail validation.",
"type": "number"
},
"longitude": {
"description": "Longitude, decimal degrees (NAD83 as filed); absent when the filed coordinates fail validation.",
"type": "number"
},
"coordinatesDms": {
"description": "Coordinates as filed, degrees-minutes-seconds text.",
"type": "string"
},
"groundElevationM": {
"description": "Ground elevation, meters above mean sea level.",
"type": "number"
},
"supportHeightM": {
"description": "Support structure height, meters.",
"type": "number"
},
"overallHeightM": {
"description": "Overall structure height, meters.",
"type": "number"
},
"structureType": {
"description": "Structure type code, as filed (e.g. TOWER, BTWR).",
"type": "string"
},
"asrNumber": {
"description": "FCC Antenna Structure Registration number: seven digits, never the 9999999 placeholder; omitted when the filing holds anything else (the placeholder, N/A, an application file number).",
"type": "string"
},
"radiusKm": {
"description": "Radius of operation for an area location, km.",
"type": "number"
},
"address": {
"description": "Site street address; omitted on an individual licensee's record while redaction is on.",
"type": "string"
},
"city": {
"description": "Site city, as filed.",
"type": "string"
},
"county": {
"description": "Site county, as filed.",
"type": "string"
},
"state": {
"description": "Site state: as filed, or derived from the coordinates when the filing leaves it blank.",
"type": "string"
},
"stateFromCoordinates": {
"description": "True when state was derived from the coordinates rather than filed.",
"type": "boolean"
},
"name": {
"description": "Site name, as filed; omitted on an individual licensee's record while redaction is on.",
"type": "string"
},
"sites": {
"description": "Every site the license files under this location number, in filing order; present only when there are several, and then the location's own site fields are absent.",
"type": "array",
"items": {
"type": "object",
"properties": {
"locationTypeCode": {
"description": "ULS location type code (F fixed, M mobile, …); absent when not filed.",
"type": "string"
},
"locationTypeLabel": {
"description": "Label of the location type code.",
"type": "string"
},
"locationClassCode": {
"description": "ULS location class code, as filed.",
"type": "string"
},
"latitude": {
"description": "Latitude, decimal degrees (NAD83 as filed); absent when the filed coordinates fail validation.",
"type": "number"
},
"longitude": {
"description": "Longitude, decimal degrees (NAD83 as filed); absent when the filed coordinates fail validation.",
"type": "number"
},
"coordinatesDms": {
"description": "Coordinates as filed, degrees-minutes-seconds text.",
"type": "string"
},
"groundElevationM": {
"description": "Ground elevation, meters above mean sea level.",
"type": "number"
},
"supportHeightM": {
"description": "Support structure height, meters.",
"type": "number"
},
"overallHeightM": {
"description": "Overall structure height, meters.",
"type": "number"
},
"structureType": {
"description": "Structure type code, as filed (e.g. TOWER, BTWR).",
"type": "string"
},
"asrNumber": {
"description": "FCC Antenna Structure Registration number: seven digits, never the 9999999 placeholder; omitted when the filing holds anything else (the placeholder, N/A, an application file number).",
"type": "string"
},
"radiusKm": {
"description": "Radius of operation for an area location, km.",
"type": "number"
},
"address": {
"description": "Site street address; omitted on an individual licensee's record while redaction is on.",
"type": "string"
},
"city": {
"description": "Site city, as filed.",
"type": "string"
},
"county": {
"description": "Site county, as filed.",
"type": "string"
},
"state": {
"description": "Site state: as filed, or derived from the coordinates when the filing leaves it blank.",
"type": "string"
},
"stateFromCoordinates": {
"description": "True when state was derived from the coordinates rather than filed.",
"type": "boolean"
},
"name": {
"description": "Site name, as filed; omitted on an individual licensee's record while redaction is on.",
"type": "string"
}
},
"additionalProperties": false,
"description": "One filed site."
}
},
"antennas": {
"type": "array",
"items": {
"type": "object",
"properties": {
"antennaNumber": {
"type": "number",
"description": "Antenna number within the location."
},
"antennaTypeCode": {
"description": "ULS antenna type code (H Hub, P Passive Repeater, R Final Receiver, T Transmit Antenna).",
"type": "string"
},
"heightToTipM": {
"description": "Height to antenna tip above ground, meters.",
"type": "number"
},
"heightToCenterM": {
"description": "Height to center of radiation above ground, meters.",
"type": "number"
},
"haatM": {
"description": "Height above average terrain, meters.",
"type": "number"
},
"azimuthDeg": {
"description": "Azimuth of the main beam, degrees true.",
"type": "number"
},
"gainDbi": {
"description": "Antenna gain, dBi.",
"type": "number"
},
"beamwidthDeg": {
"description": "Beamwidth, degrees.",
"type": "number"
},
"polarization": {
"description": "Polarization code, as filed.",
"type": "string"
},
"make": {
"description": "Antenna manufacturer, as filed.",
"type": "string"
},
"model": {
"description": "Antenna model, as filed.",
"type": "string"
},
"recordCount": {
"description": "AN records the license files under this location and antenna number, when more than one (usually one per site sharing the location number); fields that differ between them are omitted.",
"type": "number"
},
"frequencies": {
"type": "array",
"items": {
"type": "object",
"properties": {
"frequencyMhz": {
"type": "number",
"description": "Assigned (center) frequency, MHz."
},
"upperMhz": {
"description": "Upper edge when the assignment is a range, MHz.",
"type": "number"
},
"bandwidthMhz": {
"description": "Widest necessary bandwidth parsed from the emission designators, MHz; a designator 20% of the assigned frequency or wider is a filing error and is left out.",
"type": "number"
},
"stationClass": {
"description": "ULS class-of-station code, as filed (e.g. FB2, FXO).",
"type": "string"
},
"powerOutputW": {
"description": "Transmitter output power, watts.",
"type": "number"
},
"erpW": {
"description": "Effective radiated power, watts.",
"type": "number"
},
"eirpDbm": {
"description": "Effective isotropic radiated power, dBm.",
"type": "number"
},
"transmitterMake": {
"description": "Transmitter manufacturer, as filed.",
"type": "string"
},
"transmitterModel": {
"description": "Transmitter model, as filed.",
"type": "string"
},
"emissions": {
"type": "array",
"items": {
"type": "string",
"description": "One emission designator, e.g. \"11K2F3E\"."
},
"description": "Emission designators filed for this frequency row."
}
},
"required": [
"frequencyMhz",
"emissions"
],
"additionalProperties": false,
"description": "One authorized frequency row, as filed (adaptive-modulation filings repeat a frequency per step)."
},
"description": "Frequency rows on this antenna, in filing order."
}
},
"required": [
"antennaNumber",
"frequencies"
],
"additionalProperties": false,
"description": "One antenna at a location."
},
"description": "Antennas filed under this location number; with several sites, ULS does not say which site each antenna and frequency belongs to."
}
},
"required": [
"locationNumber",
"antennas"
],
"additionalProperties": false,
"description": "One license location number: one site, or several sites the license files under the same number."
}
},
"locationTotal": {
"description": "Location numbers the record files; present when found is true.",
"type": "number"
},
"siteTotal": {
"description": "Sites the record files, each site of a shared location number counted; present when found is true.",
"type": "number"
},
"nextLocationOffset": {
"description": "Pass as location_offset to read the locations after these; absent when none follow.",
"type": "number"
},
"nextLeaseOffset": {
"description": "Pass as lease_offset to read the leases after these; absent when none follow.",
"type": "number"
},
"otherCallsignRecords": {
"description": "Other records under the same callsign (ULS reuses callsigns); present when found is true.",
"type": "array",
"items": {
"type": "object",
"properties": {
"usi": {
"type": "string",
"description": "USI of another record under the same callsign; pass it as usi to read that record."
},
"licenseStatus": {
"type": "string",
"description": "Its status code."
}
},
"required": [
"usi",
"licenseStatus"
],
"additionalProperties": false,
"description": "Another record sharing the callsign."
}
},
"dataAsOf": {
"type": "string",
"description": "Creation time of the newest applied ULS file (ISO 8601)."
},
"truncated": {
"type": "boolean",
"description": "True when this call leaves part of the record out: locations after the ones listed, frequency rows beyond max_frequencies, or leases after the ones listed."
},
"shown": {
"type": "number",
"description": "Frequency rows returned."
},
"cap": {
"type": "number",
"description": "The max_frequencies cap applied."
},
"notice": {
"description": "What this call left out and the call that reads it, where an unfiled location_number started the locations, or why an offset or location number listed nothing.",
"type": "string"
},
"error": {
"description": "Present when the call failed. Absent on success.",
"type": "object",
"properties": {
"code": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "JSON-RPC error code for this failure."
},
"message": {
"type": "string",
"description": "Human-readable description of what went wrong."
},
"data": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Machine-readable failure mode. Declared by this tool: `index_not_ready`: No completed index generation is published yet. `identifier_required`: Neither or both of callsign and usi were supplied. `location_start_conflict`: location_number was supplied with a nonzero location_offset. Other values are possible when a failure originates below the handler.",
"examples": [
"index_not_ready",
"identifier_required",
"location_start_conflict"
]
},
"recovery": {
"description": "Actionable next step for the caller.",
"type": "object",
"properties": {
"hint": {
"type": "string"
}
},
"required": [
"hint"
],
"additionalProperties": {}
},
"retryable": {
"description": "Whether retrying may succeed.",
"type": "boolean"
}
},
"additionalProperties": {}
}
},
"required": [
"code",
"message"
],
"additionalProperties": {}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"found",
"dataAsOf",
"truncated",
"shown",
"cap"
]
},
{
"required": [
"error"
]
}
]
}🟢fcc_spectrum_find_transmitters(latitude, longitude, radius_km, frequency_low, frequency_high, ...)
Find FCC-licensed transmitter sites within a radius of a coordinate, nearest first, each with its callsign, licensee, distance, coordinates, location type, ground elevation, structure height, and the frequencies authorized there. Filter by frequency or band, radio service, location type, and live status (active by default). Coordinates are decimal degrees or DMS strings. Mobile and temporary-fixed operating areas are filed as a center and a radius of operation: they are returned at their center with radiusKm, and match when the center lies within radius_km. Locations filed without coordinates are not returned, and market-area licenses without site records are found with fcc_spectrum_search_frequencies.
入力スキーマ
{
"type": "object",
"properties": {
"latitude": {
"description": "Search center latitude: decimal degrees (47.6205, \"47.6205\") or a DMS string with hemisphere (\"47-37-13.8 N\", \"47°37'13.8\"N\").",
"type": "number",
"minimum": -90,
"maximum": 90
},
"longitude": {
"description": "Search center longitude: decimal degrees (-122.3493) or a DMS string with hemisphere (\"122-20-57.5 W\").",
"type": "number",
"minimum": -180,
"maximum": 180
},
"radius_km": {
"default": 5,
"description": "Search radius in km (0.1–100).",
"type": "number",
"minimum": 0.1,
"maximum": 100
},
"frequency_low": {
"description": "Only sites authorized on this frequency, in unit; with frequency_high, the band's lower edge. Matches any assignment whose occupied band overlaps.",
"type": "number",
"exclusiveMinimum": 0
},
"frequency_high": {
"description": "Band upper edge in unit; requires frequency_low.",
"type": "number",
"exclusiveMinimum": 0
},
"unit": {
"description": "Unit of the frequencies: kHz, MHz (default), or GHz.",
"default": "MHz",
"type": "string",
"enum": [
"kHz",
"MHz",
"GHz"
]
},
"radio_service": {
"description": "Two-character radio service code, e.g. \"IG\" (industrial/business pool); see fcc_spectrum_list_reference topic \"radio_services\".",
"type": "string",
"pattern": "^[A-Z0-9]{2}$"
},
"location_type": {
"description": "One ULS location type code, case-insensitive: \"F\" keeps fixed sites only, \"M\" mobile and \"T\" temporary-fixed operating areas; see fcc_spectrum_list_reference topic \"location_types\". Omit for every type.",
"type": "string",
"enum": [
"6",
"F",
"I",
"L",
"M",
"P",
"T"
]
},
"status": {
"description": "A active (default), L pending legal, X term pending, or \"any\" for all three. Other statuses keep no site records.",
"default": "A",
"type": "string",
"enum": [
"A",
"L",
"X",
"any"
]
},
"limit": {
"default": 25,
"description": "Sites per page (1–100).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"max_frequencies_per_site": {
"default": 10,
"description": "Most frequencies listed per site (1–50); frequencyCount carries the full count.",
"type": "integer",
"minimum": 1,
"maximum": 50
},
"cursor": {
"description": "nextCursor from the previous page of the same search; omit for the first page.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,200}$"
}
},
"required": [
"latitude",
"longitude"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}出力スキーマ
{
"type": "object",
"properties": {
"sites": {
"type": "array",
"items": {
"type": "object",
"properties": {
"usi": {
"type": "string",
"description": "Unique system identifier of the license; pass it to fcc_spectrum_get_license."
},
"callsign": {
"description": "Callsign, or lease ID on a lease.",
"type": "string"
},
"isLease": {
"type": "boolean",
"description": "True for a spectrum leasing arrangement."
},
"licenseStatus": {
"type": "string",
"description": "License status code (A, L, or X)."
},
"radioServiceCode": {
"type": "string",
"description": "Two-character ULS radio service code."
},
"radioServiceLabel": {
"type": "string",
"description": "Label of the radio service code."
},
"licenseeName": {
"description": "Licensee (lessee on a lease) as filed; null when redacted or not on file.",
"type": [
"string",
"null"
]
},
"licenseeRedacted": {
"type": "boolean",
"description": "True when the licensee is an individual whose name is withheld."
},
"locationNumber": {
"type": "number",
"description": "Location number within the license; pass it as location_number to fcc_spectrum_get_license to read the location's antennas and frequencies."
},
"locationTypeCode": {
"description": "ULS location type code, e.g. F (fixed), M (mobile), T (temporary fixed); absent when not filed.",
"type": "string"
},
"locationTypeLabel": {
"description": "Label of the location type code, e.g. \"Mobile\"; absent when no type is filed.",
"type": "string"
},
"distanceKm": {
"type": "number",
"description": "Great-circle distance from the search center to latitude/longitude, km; for an operating area (radiusKm filed) that is its center, so the area can reach nearer."
},
"latitude": {
"type": "number",
"description": "Latitude as filed, decimal degrees (NAD83): the site, or the center of an operating area."
},
"longitude": {
"type": "number",
"description": "Longitude as filed, decimal degrees (NAD83): the site, or the center of an operating area."
},
"radiusKm": {
"description": "Radius of operation around latitude/longitude, km, as filed; mobile (M) and temporary-fixed (T) areas file one, and some fixed and other sites do. Absent when not filed.",
"type": "number"
},
"groundElevationM": {
"description": "Ground elevation, meters above mean sea level.",
"type": "number"
},
"overallHeightM": {
"description": "Overall structure height, meters.",
"type": "number"
},
"asrNumber": {
"description": "FCC Antenna Structure Registration number: seven digits, never the 9999999 placeholder; omitted when the filing holds anything else (the placeholder, N/A, an application file number).",
"type": "string"
},
"county": {
"description": "Site county, as filed.",
"type": "string"
},
"state": {
"description": "Site state: as filed, or derived from the coordinates.",
"type": "string"
},
"stateFromCoordinates": {
"description": "True when state was derived from the coordinates rather than filed.",
"type": "boolean"
},
"sitesSharingNumber": {
"description": "Sites the license files under this location number, when more than one; each is returned as its own site, and frequencies then lists the number's frequencies, since ULS does not say which site uses each.",
"type": "number"
},
"frequencyCount": {
"type": "number",
"description": "Frequencies at the site (only those overlapping the band when one is given)."
},
"frequenciesShown": {
"type": "number",
"description": "Frequencies listed, after max_frequencies_per_site."
},
"frequencies": {
"type": "array",
"items": {
"type": "object",
"properties": {
"frequencyMhz": {
"type": "number",
"description": "Assigned (center) frequency, MHz."
},
"upperMhz": {
"description": "Upper edge when the assignment is a range, MHz.",
"type": "number"
},
"bandwidthMhz": {
"description": "Widest necessary bandwidth parsed from the emission designators, MHz; a designator 20% of the assigned frequency or wider is a filing error and is left out.",
"type": "number"
},
"stationClasses": {
"type": "array",
"items": {
"type": "string",
"description": "One ULS class-of-station code, e.g. \"FB2\"."
},
"description": "Distinct station classes filed for this frequency across antennas and modulation steps."
},
"maxErpW": {
"description": "Highest effective radiated power filed, watts.",
"type": "number"
},
"maxEirpDbm": {
"description": "Highest effective isotropic radiated power filed, dBm.",
"type": "number"
},
"emissions": {
"type": "array",
"items": {
"type": "string",
"description": "One emission designator, e.g. \"11K2F3E\"."
},
"description": "Distinct emission designators filed for this frequency."
}
},
"required": [
"frequencyMhz",
"stationClasses",
"emissions"
],
"additionalProperties": false,
"description": "One frequency authorized at the site, collapsed across antennas and modulation steps."
},
"description": "Frequencies at the site, ascending."
}
},
"required": [
"usi",
"isLease",
"licenseStatus",
"radioServiceCode",
"radioServiceLabel",
"licenseeName",
"licenseeRedacted",
"locationNumber",
"distanceKm",
"latitude",
"longitude",
"frequencyCount",
"frequenciesShown",
"frequencies"
],
"additionalProperties": false,
"description": "One transmitter site."
},
"description": "Transmitter sites, nearest first."
},
"nextCursor": {
"description": "Pass as cursor with the same inputs for the next page; absent on the last page.",
"type": "string"
},
"dataAsOf": {
"type": "string",
"description": "Creation time of the newest applied ULS file (ISO 8601)."
},
"totalCount": {
"type": "number",
"description": "Sites within the radius matching the filters, across every page."
},
"truncated": {
"type": "boolean",
"description": "True when more sites follow this page."
},
"shown": {
"type": "number",
"description": "Sites on this page."
},
"cap": {
"type": "number",
"description": "The page limit applied."
},
"searchCenter": {
"type": "object",
"properties": {
"latitude": {
"type": "number",
"description": "Center latitude, decimal degrees."
},
"longitude": {
"type": "number",
"description": "Center longitude, decimal degrees."
},
"radiusKm": {
"type": "number",
"description": "Search radius, km."
}
},
"required": [
"latitude",
"longitude",
"radiusKm"
],
"additionalProperties": false,
"description": "The search circle as the server applied it (DMS input converted)."
},
"appliedFilters": {
"type": "object",
"properties": {
"frequency_low_mhz": {
"description": "Band lower edge, converted to MHz.",
"type": "number"
},
"frequency_high_mhz": {
"description": "Band upper edge, converted to MHz.",
"type": "number"
},
"radio_service": {
"description": "Radio service code filter.",
"type": "string"
},
"location_type": {
"description": "Location type code filter.",
"type": "string"
},
"status": {
"type": "string",
"description": "Status filter, default included."
},
"max_frequencies_per_site": {
"type": "number",
"description": "Per-site frequency cap applied."
}
},
"required": [
"status",
"max_frequencies_per_site"
],
"additionalProperties": false,
"description": "Filters as the server applied them, normalized values and defaults included."
},
"notice": {
"description": "Why nothing matched and how to widen the search, or how to page further.",
"type": "string"
},
"error": {
"description": "Present when the call failed. Absent on success.",
"type": "object",
"properties": {
"code": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "JSON-RPC error code for this failure."
},
"message": {
"type": "string",
"description": "Human-readable description of what went wrong."
},
"data": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Machine-readable failure mode. Declared by this tool: `index_not_ready`: No completed index generation is published yet. `invalid_frequency_range`: frequency_high is below frequency_low, is given without frequency_low, or the band exceeds 300 GHz. `unknown_radio_service`: The radio service code is neither in the FCC code table nor held by the index. `service_not_indexed`: The radio service code is valid but no indexed service group carries it. `invalid_cursor`: The cursor does not decode or belongs to an earlier index generation. Other values are possible when a failure originates below the handler.",
"examples": [
"index_not_ready",
"invalid_frequency_range",
"unknown_radio_service",
"service_not_indexed",
"invalid_cursor"
]
},
"recovery": {
"description": "Actionable next step for the caller.",
"type": "object",
"properties": {
"hint": {
"type": "string"
}
},
"required": [
"hint"
],
"additionalProperties": {}
},
"retryable": {
"description": "Whether retrying may succeed.",
"type": "boolean"
}
},
"additionalProperties": {}
}
},
"required": [
"code",
"message"
],
"additionalProperties": {}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"sites",
"dataAsOf",
"totalCount",
"truncated",
"shown",
"cap",
"searchCenter",
"appliedFilters"
]
},
{
"required": [
"error"
]
}
]
}🟢fcc_spectrum_search_frequencies(frequency_low, frequency_high, unit, kind, state, ...)
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.
入力スキーマ
{
"type": "object",
"properties": {
"frequency_low": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Frequency in unit; with frequency_high, the band's lower edge. Matches any authorization whose occupied band overlaps."
},
"frequency_high": {
"description": "Band upper edge in unit; omit to search a single frequency.",
"type": "number",
"exclusiveMinimum": 0
},
"unit": {
"description": "Unit of the frequencies: kHz, MHz (default), or GHz.",
"default": "MHz",
"type": "string",
"enum": [
"kHz",
"MHz",
"GHz"
]
},
"kind": {
"description": "site: transmitter-site assignments only; market: market-area spectrum blocks only; both (default).",
"default": "both",
"type": "string",
"enum": [
"site",
"market",
"both"
]
},
"state": {
"description": "Two-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.",
"type": "string",
"enum": [
"AL",
"AK",
"AZ",
"AR",
"CA",
"CO",
"CT",
"DE",
"DC",
"FL",
"GA",
"HI",
"ID",
"IL",
"IN",
"IA",
"KS",
"KY",
"LA",
"ME",
"MD",
"MA",
"MI",
"MN",
"MS",
"MO",
"MT",
"NE",
"NV",
"NH",
"NJ",
"NM",
"NY",
"NC",
"ND",
"OH",
"OK",
"OR",
"PA",
"RI",
"SC",
"SD",
"TN",
"TX",
"UT",
"VT",
"VA",
"WA",
"WV",
"WI",
"WY",
"AS",
"GU",
"MP",
"PR",
"VI"
]
},
"radio_service": {
"description": "Two-character radio service code, e.g. \"WU\" (700 MHz upper band); see fcc_spectrum_list_reference topic \"radio_services\".",
"type": "string",
"pattern": "^[A-Z0-9]{2}$"
},
"licensee": {
"description": "Licensee 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.",
"type": "string",
"maxLength": 200
},
"frn": {
"description": "Licensee'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.",
"type": "string",
"pattern": "^\\d{10}$"
},
"market_code": {
"description": "Market 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).",
"type": "string",
"pattern": "^(?:[A-Z]{3}\\d{3}|[A-Z]\\d{5}|[A-Z]{2}\\d{4}|NW)$"
},
"status": {
"description": "A active (default), L pending legal, X term pending, or \"any\" for all three. Other statuses keep no frequency records.",
"default": "A",
"type": "string",
"enum": [
"A",
"L",
"X",
"any"
]
},
"limit": {
"default": 50,
"description": "Rows per page (1–200).",
"type": "integer",
"minimum": 1,
"maximum": 200
},
"cursor": {
"description": "nextCursor from the previous page of the same search; omit for the first page.",
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,200}$"
}
},
"required": [
"frequency_low"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}出力スキーマ
{
"type": "object",
"properties": {
"assignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"site",
"market"
],
"description": "site: a frequency at a transmitter site; market: a spectrum block across a market area."
},
"usi": {
"type": "string",
"description": "Unique system identifier of the license; pass it to fcc_spectrum_get_license."
},
"callsign": {
"description": "Callsign, or lease ID on a lease.",
"type": "string"
},
"isLease": {
"type": "boolean",
"description": "True for a spectrum leasing arrangement."
},
"licenseStatus": {
"type": "string",
"description": "License status code (A, L, or X)."
},
"radioServiceCode": {
"type": "string",
"description": "Two-character ULS radio service code."
},
"radioServiceLabel": {
"type": "string",
"description": "Label of the radio service code."
},
"licenseeName": {
"description": "Licensee (lessee on a lease) as filed; null when redacted or not on file.",
"type": [
"string",
"null"
]
},
"licenseeRedacted": {
"type": "boolean",
"description": "True when the licensee is an individual whose name is withheld."
},
"frequencyMhz": {
"type": "number",
"description": "Assigned frequency (site) or block lower edge (market), MHz."
},
"upperMhz": {
"description": "Upper edge of a ranged site assignment or of a market block, MHz.",
"type": "number"
},
"bandwidthMhz": {
"description": "Widest necessary bandwidth parsed from the emission designators, MHz (site rows); a designator 20% of the assigned frequency or wider is a filing error and is left out.",
"type": "number"
},
"stationClasses": {
"description": "Distinct station classes filed for this frequency at the site (site rows).",
"type": "array",
"items": {
"type": "string",
"description": "One ULS class-of-station code."
}
},
"maxErpW": {
"description": "Highest effective radiated power filed, watts (site rows).",
"type": "number"
},
"emissions": {
"description": "Distinct emission designators filed for this frequency (site rows).",
"type": "array",
"items": {
"type": "string",
"description": "One emission designator."
}
},
"locationNumber": {
"description": "Location number within the license (site rows); pass it as location_number to fcc_spectrum_get_license to read the location's antennas and frequencies.",
"type": "number"
},
"locationTypeCode": {
"description": "ULS location type code, e.g. F (fixed), M (mobile), T (temporary fixed) (site rows at a single site; absent when not filed).",
"type": "string"
},
"locationTypeLabel": {
"description": "Label of the location type code, e.g. \"Mobile\" (site rows at a single site).",
"type": "string"
},
"latitude": {
"description": "Site latitude, decimal degrees (site rows with valid coordinates); the center of an operating area when radiusKm is filed.",
"type": "number"
},
"longitude": {
"description": "Site longitude, decimal degrees (site rows with valid coordinates); the center of an operating area when radiusKm is filed.",
"type": "number"
},
"radiusKm": {
"description": "Radius of operation around latitude/longitude, km, as filed (site rows at a single site); mobile (M) and temporary-fixed (T) areas file one, and some fixed and other sites do.",
"type": "number"
},
"county": {
"description": "Site county, as filed (site rows).",
"type": "string"
},
"state": {
"description": "Site state, as filed or derived from the coordinates (site rows).",
"type": "string"
},
"stateFromCoordinates": {
"description": "True when state was derived from the coordinates rather than filed (site rows).",
"type": "boolean"
},
"sitesSharingNumber": {
"description": "Sites the license files under this location number, when more than one (site rows); ULS does not say which of them uses the frequency, so the row has no coordinates, location type, radius, county, or state. fcc_spectrum_get_license lists the sites.",
"type": "number"
},
"marketCode": {
"description": "Market code (market rows); pass it as market_code to search that market.",
"type": "string"
},
"marketName": {
"description": "Market name as filed, cut at 30 characters by ULS (market rows).",
"type": "string"
},
"channelBlock": {
"description": "Channel block, as filed (market rows).",
"type": "string"
},
"partitionAreaIds": {
"description": "ULS partition areas this block is filed under (market rows); a partitioned license files one block per area, returned here as one row.",
"type": "array",
"items": {
"type": "number",
"description": "One ULS partition area ID."
}
}
},
"required": [
"kind",
"usi",
"isLease",
"licenseStatus",
"radioServiceCode",
"radioServiceLabel",
"licenseeName",
"licenseeRedacted",
"frequencyMhz"
],
"additionalProperties": false,
"description": "One site assignment or market spectrum block."
},
"description": "Matching site assignments and market blocks, frequency ascending."
},
"nextCursor": {
"description": "Pass 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.",
"type": "string"
},
"dataAsOf": {
"type": "string",
"description": "Creation time of the newest applied ULS file (ISO 8601)."
},
"totalCount": {
"type": "number",
"description": "Rows matching the filters, across every page; at least this many when totalIsLowerBound is true."
},
"totalIsLowerBound": {
"description": "True when a dense band was counted only in part, so totalCount is a lower bound; absent when the count is exact.",
"type": "boolean"
},
"truncated": {
"type": "boolean",
"description": "True when more rows follow this page."
},
"shown": {
"type": "number",
"description": "Rows on this page."
},
"cap": {
"type": "number",
"description": "The page limit applied."
},
"appliedFilters": {
"type": "object",
"properties": {
"frequency_low_mhz": {
"type": "number",
"description": "Band lower edge, converted to MHz."
},
"frequency_high_mhz": {
"type": "number",
"description": "Band upper edge, converted to MHz (equal to the lower edge for one frequency)."
},
"kind": {
"type": "string",
"description": "Kinds searched."
},
"state": {
"description": "Normalized state filter.",
"type": "string"
},
"radio_service": {
"description": "Radio service code filter.",
"type": "string"
},
"licensee": {
"description": "Licensee name words searched.",
"type": "string"
},
"frn": {
"description": "Normalized FRN filter.",
"type": "string"
},
"market_code": {
"description": "Normalized market code filter.",
"type": "string"
},
"status": {
"type": "string",
"description": "Status filter, default included."
}
},
"required": [
"frequency_low_mhz",
"frequency_high_mhz",
"kind",
"status"
],
"additionalProperties": false,
"description": "Filters as the server applied them, normalized values and defaults included."
},
"notice": {
"description": "Why nothing matched, what the state and redaction rules skipped, or how to page further.",
"type": "string"
},
"error": {
"description": "Present when the call failed. Absent on success.",
"type": "object",
"properties": {
"code": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "JSON-RPC error code for this failure."
},
"message": {
"type": "string",
"description": "Human-readable description of what went wrong."
},
"data": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Machine-readable failure mode. Declared by this tool: `index_not_ready`: No completed index generation is published yet. `invalid_frequency_range`: frequency_high is below frequency_low, or the band exceeds 300 GHz. `unknown_radio_service`: The radio service code is neither in the FCC code table nor held by the index. `service_not_indexed`: The radio service code is valid but no indexed service group carries it. `invalid_cursor`: The cursor does not decode or belongs to an earlier index generation. Other values are possible when a failure originates below the handler.",
"examples": [
"index_not_ready",
"invalid_frequency_range",
"unknown_radio_service",
"service_not_indexed",
"invalid_cursor"
]
},
"recovery": {
"description": "Actionable next step for the caller.",
"type": "object",
"properties": {
"hint": {
"type": "string"
}
},
"required": [
"hint"
],
"additionalProperties": {}
},
"retryable": {
"description": "Whether retrying may succeed.",
"type": "boolean"
}
},
"additionalProperties": {}
}
},
"required": [
"code",
"message"
],
"additionalProperties": {}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"assignments",
"dataAsOf",
"totalCount",
"truncated",
"shown",
"cap",
"appliedFilters"
]
},
{
"required": [
"error"
]
}
]
}🟢fcc_spectrum_list_reference(topic, filter)
Decode FCC ULS codes used by the other tools — radio service codes, license statuses, location types, antenna types, applicant types, amateur operator classes — or report coverage: which service groups this index holds, record counts, and when each was last updated. Works before the index is built.
入力スキーマ
{
"type": "object",
"properties": {
"topic": {
"description": "What to list: a code vocabulary (radio_services, license_statuses, location_types, antenna_types, applicant_types, operator_classes) or coverage, the index build state and loaded service groups.",
"type": "string",
"enum": [
"radio_services",
"license_statuses",
"location_types",
"antenna_types",
"applicant_types",
"operator_classes",
"coverage"
]
},
"filter": {
"description": "Radio services only: keep entries whose code and label contain every word given, in any order (e.g. \"700 public safety\"). Case- and accent-insensitive.",
"type": "string",
"maxLength": 200
}
},
"required": [
"topic"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}出力スキーマ
{
"type": "object",
"properties": {
"topic": {
"type": "string",
"enum": [
"radio_services",
"license_statuses",
"location_types",
"antenna_types",
"applicant_types",
"operator_classes",
"coverage"
],
"description": "The topic answered."
},
"entries": {
"description": "Decoded codes, in code order; present for every topic except coverage.",
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "The code as filed in ULS records."
},
"label": {
"type": "string",
"description": "FCC label for the code; equal to the code when the index holds a code the bundled table lacks."
},
"group": {
"description": "FCC bulk-data service group that carries this radio service code; radio_services only, absent for other topics and before the index is built.",
"type": "string"
},
"indexedRecords": {
"description": "Records in the index carrying this radio service code; radio_services only, absent for other topics and before the index is built.",
"type": "number"
}
},
"required": [
"code",
"label"
],
"additionalProperties": false,
"description": "One decoded code."
}
},
"index": {
"description": "Index build state; present for coverage.",
"type": "object",
"properties": {
"ready": {
"type": "boolean",
"description": "True when a completed index generation is published and searches work."
},
"status": {
"type": "string",
"enum": [
"none",
"building",
"ready"
],
"description": "none: never built; building: a build is in progress with no published generation yet; ready: searchable."
},
"generation": {
"description": "File name of the published index generation.",
"type": "string"
},
"lastFullBuild": {
"description": "When the published generation finished its weekly rebuild (ISO 8601).",
"type": "string"
},
"lastDailyApplied": {
"description": "Creation time of the newest daily file applied on top of the weekly snapshot (ISO 8601).",
"type": "string"
},
"dataAsOf": {
"description": "Creation time of the newest applied ULS file (ISO 8601).",
"type": "string"
},
"error": {
"description": "Why the published index cannot be served, or the message of the most recent failed build or refresh.",
"type": "string"
}
},
"required": [
"ready",
"status"
],
"additionalProperties": false
},
"groups": {
"description": "Every weekly service group this server can index, with whether it is loaded; present for coverage.",
"type": "array",
"items": {
"type": "object",
"properties": {
"group": {
"type": "string",
"description": "FCC bulk-data service group name, as the FCC names its files (e.g. \"LMpriv\")."
},
"indexed": {
"type": "boolean",
"description": "True when this group is loaded in the published index."
},
"records": {
"description": "License and lease records indexed from this group; absent when not indexed.",
"type": "number"
},
"sites": {
"description": "Location records kept for this group (status A, L, or X licenses only); absent when not indexed.",
"type": "number"
},
"frequencies": {
"description": "Frequency records kept for this group (status A, L, or X licenses only); absent when not indexed.",
"type": "number"
},
"snapshotCreated": {
"description": "Creation time of the FCC's weekly snapshot this group was built from (ISO 8601); absent when not indexed.",
"type": "string"
}
},
"required": [
"group",
"indexed"
],
"additionalProperties": false,
"description": "Coverage of one weekly service group."
}
},
"redactIndividuals": {
"description": "True when individual licensees are redacted and excluded from name search; present for coverage.",
"type": "boolean"
},
"dataAsOf": {
"description": "Creation time of the newest applied ULS file (ISO 8601); absent before the index is built.",
"type": "string"
},
"notice": {
"description": "Guidance when a filter matched nothing, was not applied, or the index is not built yet.",
"type": "string"
},
"error": {
"description": "Present when the call failed. Absent on success.",
"type": "object",
"properties": {
"code": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "JSON-RPC error code for this failure."
},
"message": {
"type": "string",
"description": "Human-readable description of what went wrong."
},
"data": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Machine-readable failure mode."
},
"recovery": {
"description": "Actionable next step for the caller.",
"type": "object",
"properties": {
"hint": {
"type": "string"
}
},
"required": [
"hint"
],
"additionalProperties": {}
},
"retryable": {
"description": "Whether retrying may succeed.",
"type": "boolean"
}
},
"additionalProperties": {}
}
},
"required": [
"code",
"message"
],
"additionalProperties": {}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"topic"
]
},
{
"required": [
"error"
]
}
]
}コミュニティ
エビデンス