fcc_cbrs_rules
Access FCC Part 96 CBRS rules for 3.5 GHz shared spectrum compliance with Citizens Broadband Radio Service regulations.
Instructions
Get FCC Part 96 CBRS (Citizens Broadband Radio Service) rules for 3.5 GHz shared spectrum.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- Handler function _cbrs_rules() that executes the 'fcc_cbrs_rules' tool logic. Retrieves Part 96 CBRS data from FCC_ADDITIONAL JSON and formats it with frequency, bandwidth, LTE/NR bands, access tiers (PAL/GAA), device categories, and SAS info.
@staticmethod def _cbrs_rules() -> list[TextContent]: cbrs = FCC_ADDITIONAL.get("parts", {}).get("part_96", {}) result = f"{cbrs.get('title', 'FCC Part 96 - CBRS')}\n{'=' * 55}\n\n" result += f"Frequency: {cbrs.get('frequency_mhz', [0, 0])[0]}-{cbrs.get('frequency_mhz', [0, 0])[1]} MHz\n" result += f"Bandwidth: {cbrs.get('bandwidth_mhz', '?')} MHz\n" result += f"LTE Bands: {', '.join(cbrs.get('lte_bands', []))}\n" result += f"NR Bands: {', '.join(cbrs.get('nr_bands', []))}\n\n" result += "## Access Tiers:\n" for tier_key, tier in cbrs.get("tiers", {}).items(): result += f"\n ### {tier.get('name', tier_key.title())}\n" result += f" {tier['description']}\n" if tier.get("max_eirp_dbm_per_10mhz"): result += f" Max EIRP: {tier['max_eirp_dbm_per_10mhz']} dBm/10MHz\n" if tier.get("notes"): result += f" Notes: {tier['notes']}\n" result += "\n## Device Categories:\n" for cat_key, cat in cbrs.get("device_categories", {}).items(): result += f"\n {cat_key.replace('_', ' ').title()}: {cat['description']}\n" result += f" Max EIRP: {cat['max_eirp_dbm_per_10mhz']} dBm/10MHz\n" if cat.get("notes"): result += f" Notes: {cat['notes']}\n" sas = cbrs.get("sas", {}) if sas: result += f"\n## Spectrum Access System (SAS):\n" result += f" {sas['description']}\n" if sas.get("certified_administrators"): result += f" Certified: {', '.join(sas['certified_administrators'])}\n" if cbrs.get("notes"): result += f"\n{cbrs['notes']}\n" return [TextContent(type="text", text=result)] - src/mcp_emc_regulations/tools/fcc.py:126-131 (registration)Tool registration in the list_tools() method of FCCTools class. Defines the 'fcc_cbrs_rules' tool with name, description, and empty input schema.
Tool( name="fcc_cbrs_rules", description="Get FCC Part 96 CBRS (Citizens Broadband Radio Service) rules for 3.5 GHz shared spectrum.", inputSchema={"type": "object", "properties": {}}, ), ] - Input schema for 'fcc_cbrs_rules' — an empty object (no parameters required).
inputSchema={"type": "object", "properties": {}}, - src/mcp_emc_regulations/tools/fcc.py:148-149 (registration)Dispatch in call_tool() method routing the 'fcc_cbrs_rules' tool name to the _cbrs_rules() handler.
elif name == "fcc_cbrs_rules": return self._cbrs_rules() - Loading of the fcc_additional_parts.json data file which contains the Part 96 CBRS rules data used by _cbrs_rules().
PART15_LIMITS = load_json("part15_limits.json") PART18_LIMITS = load_json("part18_limits.json") RESTRICTED_BANDS = load_json("restricted_bands.json") FCC_ADDITIONAL = load_json("fcc_additional_parts.json")