Skip to main content
Glama
RFingAdam

EMC Regulations MCP Server

by RFingAdam

License Python 3.10+ MCP eng-mcp-suite

EMC and RF regulatory lookup — emission limits, immunity levels, restricted bands, and certification matrices. Drive it from your IDE, terminal, or AI agent the moment a compliance question shows up.

Quick start · Tools · Workflows · Documentation


What is mcp-emc-regulations?

mcp-emc-regulations is an MCP server that answers concrete EMC and RF compliance questions — emission limits, immunity test levels, frequency allocations, restricted bands, certification requirements — directly from cited standards. No PDFs, no copy-paste from a regulatory site.

It implements lookups against curated datasets sourced from FCC Part 15/18/95, CISPR 11/12/14-1/22/25/32, IEC 61000-4-x, ISO 11452 / 7637 / 16750, 3GPP TS 36.101 / 38.101, ISED RSS-Gen, and EU harmonised standards. Live FCC text is fetched on demand from the official eCFR API.

What it does well:

  • 🤖 AI-native via MCP. First-class Model Context Protocol server with 45 tools across FCC, CISPR, automotive, medical, cellular, wireless protocols, and certification advisory.

  • 🐍 Multiple surfaces. Use it from any MCP client (Claude Desktop, Claude Code, Codex), or call the Python package directly.

  • Cited and dated. Every dataset carries source, version, and last_updated. The data_sources tool reports current versions; live eCFR queries are tagged with the eCFR snapshot date.

  • Composable. Compare FCC vs CISPR at a frequency with distance correction. Generate full test plans (test_plan_generator, immunity_test_plan) across regions and standards in one call.

  • 🔒 MIT licensed. Drop-in for compliance review workflows.


Quick start

Install

Pre-alpha: not yet on PyPI. Install from source:

git clone https://github.com/RFingAdam/mcp-emc-regulations.git
cd mcp-emc-regulations
uv pip install -e .

Two surfaces, same answer

Python

from mcp_emc_regulations.tools import fcc

# FCC Part 15.109 Class B radiated limit at 100 MHz
result = fcc.fcc_part15_limit(
    section="15.109",
    frequency_mhz=100,
    classification="B",
)
print(result)

CLI (via uv run)

uv run --directory /path/to/mcp-emc-regulations \
  mcp-emc-regulations
# JSON-RPC over stdio — drive it from any MCP client

MCP (Claude Desktop, Claude Code, Codex CLI, any MCP client)

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "emc-regulations": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/mcp-emc-regulations", "mcp-emc-regulations"]
    }
  }
}

Then ask your assistant in plain English:

"What's the FCC Part 15 Class B radiated limit at 100 MHz, and how does it compare to CISPR 32 Class B at the same frequency?"

The agent calls fcc_part15_limit and emc_compare_limits and reports both with distance corrections.


Tools

45 MCP tools, grouped by domain. Full reference in docs/tools.md.

Emission limits

Tool

Purpose

Key arguments

fcc_part15_limit

FCC Part 15.109/15.207/15.209 limits

section, frequency_mhz, classification

fcc_part18_limit

FCC Part 18 ISM equipment limits

equipment_type, frequency_mhz

fcc_part95_limits

FCC Part 95 personal radio service limits

subpart, frequency_mhz

fcc_cbrs_rules

FCC Part 96 CBRS rules / SAS administrators

topic

fcc_part_lookup

Find the FCC Part that applies to a frequency / device

frequency_mhz, device_type

cispr_limit

CISPR 11/22/32/14-1 limits

standard, frequency_mhz, classification

ised_limit

ISED RSS-Gen limits (Canada)

rss_number, frequency_mhz

emc_compare_limits

Compare FCC vs CISPR at a frequency with distance correction

frequency_mhz, classification

Automotive

Tool

Purpose

cispr25_limit

CISPR 25 component emission limits (Classes 1–5)

cispr12_limit

CISPR 12 vehicle-level emission limits

iso11452_levels

ISO 11452-2 radiated immunity test levels

iso7637_pulses

ISO 7637-2 conducted transient test pulses

iso16750_conditions

ISO 16750 environmental test conditions

automotive_emc_overview

CISPR/ISO/UNECE R10 summary

automotive_immunity_method

Per-method immunity test details (BCI, ALSE, TEM)

oem_emc_requirements

OEM-specific EMC test specs (GMW, FORD-ES, VW80000)

Medical / safety

Tool

Purpose

medical_emc_requirements

IEC 60601-1-2 medical EMC requirements

medical_immunity_levels

IEC 60601-1-2 immunity test levels by use environment

safety_standard_lookup

Safety standards by product category

Immunity (IEC 61000-4-x)

Tool

Purpose

iec61000_test_levels

IEC 61000-4 immunity test levels

iec61000_overview

IEC 61000-4 family overview

immunity_test_plan

Generate immunity test plan for a product class

Cellular (3GPP)

Tool

Purpose

lte_band_lookup

Look up LTE band by number

lte_bands_list

List LTE bands (filter by region/carrier)

nr_band_lookup

Look up 5G NR band by name (n77, n260, …)

nr_bands_list

List NR bands (FR1, FR2, by carrier)

frequency_to_band

Find which LTE/NR bands contain a frequency

Wireless protocols

Tool

Purpose

wifi_limits

Wi-Fi (FCC Part 15.247/15.407) channel/EIRP limits

ble_limits

BLE / Bluetooth FCC/CE limits

protocol_limits

Generic wireless protocol limit lookup

protocol_comparison

Compare wireless protocol limits across regions

Frequency bands

Tool

Purpose

fcc_restricted_bands

Check if frequency is in FCC 15.205 restricted band

fcc_restricted_bands_list

List all FCC restricted bands

ism_bands_list

List all ISM frequency bands

frequency_conflict_check

Check for conflicts between a frequency and restricted bands

Certification advisory

Tool

Purpose

product_certification_advisor

Region/market certification advice for a product

test_plan_generator

Generate a multi-region EMC test plan

standard_cross_reference

Cross-reference equivalent standards across regions

certification_matrix

Region × test-type certification matrix

market_requirements

Market-specific requirements (US, EU, JP, KR, AU, …)

eu_harmonised_standards

EU harmonised standards lookup (Annex Z mappings)

Reference / sources

Tool

Purpose

emc_standards_list

List every standard known to the server

data_sources

Show dataset sources, versions, and last-updated dates

source_search

Search configured regulatory sources

ecfr_query

Live eCFR API query for 47 CFR (FCC) text


What it solves

Domain

Coverage

Source / Standard

FCC (US)

Part 15, 18, 95, 96 (CBRS) — emission + restricted bands

47 CFR via eCFR API + curated tables

CISPR (international)

CISPR 11, 12, 14-1, 22, 25, 32 — emission limits

IEC/CISPR published standards

Automotive

CISPR 25/12, ISO 11452, 7637, 16750, UNECE R10, OEM specs

IEC, ISO, UNECE, GMW/FORD/VW

Medical

IEC 60601-1-2 emission + immunity by environment

IEC 60601-1-2 ed. 4

Immunity

IEC 61000-4-2/-3/-4/-5/-6/-8/-11

IEC 61000-4 series

Cellular

LTE bands 1–88, NR FR1 + FR2, carrier band lists

3GPP TS 36.101, 38.101

Wireless

Wi-Fi 2.4/5/6/7 GHz, BLE, Bluetooth Classic

FCC 15.247/15.407, CE harmonised, ETSI EN 300 328

Certification

US/CA/EU/JP/KR/AU markets + matrix + harmonised lists

Per-region regulator publications


Workflows

mcp-emc-regulations fits in the following eng-mcp-suite workflow bundles:

  • emc-compliance — combine with mcp-pcb-emcopilot and drawio-engineering-mcp for the full layout-to-cert-letter loop.

  • rf-design — verify wireless-protocol limits and restricted bands while sizing a transmit chain.

  • automotive-emc — chain CISPR 25 / ISO 11452 lookups with test setup generation in drawio-engineering-mcp.

Part of eng-mcp-suite. Use in the emc-compliance workflow bundle.

See the suite manifest for the full list of sibling MCPs and bundle definitions.


Documentation


Part of eng-mcp-suite

This MCP server is part of

eng-mcp-suite

An open umbrella for engineering MCP servers across RF, EMC, PCB, signal integrity, EM simulation, and lab test. Same brand, same docs structure, designed to compose. See the full catalog or jump to a sibling:

Domain

Sibling MCPs

RF / Transmission lines

lineforge

EMC regulatory

mcp-emc-regulations (this repo)

PCB / SI

mcp-pcb-emcopilot (private — public soon)

EM simulation

mcp-openems, mcp-nec2-antenna (private — public soon)

Diagrams

drawio-engineering-mcp

3D / rendering

mcp-blender

Remote access

mcp-remote-access

Lab gear

copper-mountain-vna-mcp, mcp-rs-spectrum-analyzer, mcp-rs-siggen, mcp-rs-cmw500


Data currency

  • Curated datasets in src/mcp_emc_regulations/data/ carry metadata fields with source, version, and last_updated. Use the data_sources tool to see versions at runtime.

  • ecfr_query pulls live CFR text from the eCFR API on each call.

  • For compliance work, verify against the official standard before sign-off.

External sources can be configured in sources.json; use sources.local.json for private overrides. Run:

uv run python scripts/update_sources.py

to refresh data_sources/manifest.json.


Contributing

Contributions are welcome.

  1. Pick a GitHub issue.

  2. Fork + branch (feature/your-thing or fix/your-bug).

  3. Run the local check suite:

    uv run pytest
  4. Open a PR — link the issue, request review.


License

AGPL-3.0-or-later. Earlier commits had a stale "MIT" badge without a matching LICENSE file; v0.2.0 settles the repo on AGPL-3.0-or-later to align with the eng-mcp-suite toolkit-wide license move.

Acknowledgments

  • eCFR — for the live regulatory text API.

  • FCC / IEC / ISO / CISPR / 3GPP / ISED / ETSI — for the published standards this server indexes.

  • The MCP working group — for the Model Context Protocol specification.

Part of eng-mcp-suite — built for RF engineers, PCB designers, EMC labs, and AI agents.

Install Server
A
license - permissive license
B
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/RFingAdam/mcp-emc-regulations'

If you have feedback or need assistance with the MCP directory API, please join our Discord server