mcp-nec2-antenna
Design and simulate wire antennas using the NEC2 method-of-moments solver via MCP. Supports dipole, Yagi-Uda, vertical, loop, and inverted-V geometries with pattern, impedance, and VSWR analysis.
README
<div align="center">
<img src="assets/logo-banner.svg" alt="mcp-nec2-antenna — NEC2 wire-antenna method-of-moments solver" width="100%"/>
<br/>
Design and simulate wire antennas with the NEC2 method-of-moments solver, driven over MCP. Gain patterns, impedance, VSWR, radiation lobes — from your terminal or AI agent.
Quick start · Tools · Workflows · Documentation
</div>
What is mcp-nec2-antenna?
mcp-nec2-antenna is an MCP server that wraps NEC2 (Numerical Electromagnetics Code, version 2) — the classic method-of-moments wire-antenna solver — so an LLM agent can design, sweep, and analyze HF / VHF / UHF antennas through plain-English tool calls.
Drive it from any MCP client (Claude Desktop, Claude Code, Codex CLI)
or call the NEC2C binary directly via the same card-deck export. Five
parameterized antenna geometries (dipole, Yagi-Uda, ground-plane
vertical, full-wave loop, inverted-V) compile to NEC2 GW/EX/FR/RP cards,
solve with the nec2c reference engine, and return impedance, VSWR,
gain, and front-to-back from a single tool call.
What mcp-nec2-antenna does well:
- 🤖 AI-native via MCP. First-class Model Context Protocol server with 9 tools. Any Claude / LLM agent can drive it.
- 📡 Reference engine. Uses the canonical NEC2C C implementation — the same solver behind 4nec2, xnec2c, and antenna textbooks.
- ⚡ Parameterized geometries. Five built-in wire antennas with closed-form initial sizing; the agent fills in band + height + element count and gets a ready-to-solve deck.
- 📐 Three ground models. free-space, perfect ground, real (Sommerfeld) ground — picked per geometry.
- 🔒 AGPL-3.0-or-later. Modifications shared back if served over a network.
Quick start
Install
NEC2C must be on PATH first:
# Ubuntu/Debian
sudo apt install nec2c
# macOS
brew install nec2c
# Arch Linux
yay -S nec2c
Then:
git clone https://github.com/RFingAdam/mcp-nec2-antenna.git
cd mcp-nec2-antenna
uv pip install -e .
Wire it into your MCP client
Claude Code:
claude mcp add nec2-antenna -- uv run --directory /path/to/mcp-nec2-antenna mcp-nec2-antenna
Codex CLI:
codex mcp add nec2-antenna -- uv run --directory /path/to/mcp-nec2-antenna mcp-nec2-antenna
Raw config (Claude Desktop):
{
"mcpServers": {
"nec2-antenna": {
"command": "uv",
"args": ["run", "--directory", "/path/to/mcp-nec2-antenna", "mcp-nec2-antenna"]
}
}
}
Then ask your assistant in plain English:
"Design a 5-element Yagi for 435 MHz at 10 m height, simulate it, and tell me the gain and front-to-back."
The agent calls nec2_create_yagi followed by nec2_simulate, and
reports impedance, VSWR, and radiation pattern.
Tools
| Tool | Purpose | Key arguments |
|---|---|---|
nec2_create_dipole |
Half-wave horizontal dipole | name, frequency_mhz, height_m |
nec2_create_yagi |
Yagi-Uda directional beam | name, frequency_mhz, num_elements, boom_height_m |
nec2_create_vertical |
Quarter-wave vertical w/ radials | name, frequency_mhz, num_radials |
nec2_create_loop |
Full-wave quad loop | name, frequency_mhz, height_m |
nec2_create_inverted_v |
Inverted-V dipole from a single mast | name, frequency_mhz, apex_height_m, droop_deg |
nec2_simulate |
Run NEC2 sweep — Z, VSWR, gain, pattern | antenna_id, frequency_start/stop_mhz, steps |
nec2_get_nec_cards |
Export raw NEC2 card deck (for 4nec2/xnec2c) | antenna_id |
nec2_list_antennas |
List antennas in the current session | none |
nec2_list_antenna_types |
Show built-in antenna types + characteristics | none |
Full tool reference in docs/tools.md.
What it solves
| Antenna | Typical gain | Pattern | Best for |
|---|---|---|---|
| Dipole | 2.15 dBi | Omnidirectional | General purpose, portable |
| Yagi-Uda | 7–15 dBi | Directional | DX, satellites, weak-signal work |
| Vertical | 0–2 dBi | Omnidirectional | Mobile, limited real estate |
| Loop | 3–4 dBi | Bidirectional | Low-noise receive, DX |
| Inverted-V | 2 dBi | Omnidirectional | Single-mast portable |
Ground models: free-space, perfect (PEC), and real (Sommerfeld two-medium). Pattern step is configurable; default is 5° azimuth/elevation.
Workflows
mcp-nec2-antenna fits in the following eng-mcp-suite workflow bundles:
rf-design— closed-form trans-line synthesis (lineforge) + wire-antenna MoM (this server) + circuit/filter sim (mcp-ltspice-qucs).antenna-bench— antenna design + EMC limit lookup (mcp-emc-regulations) before lab measurement.
See the suite manifest for the full list of sibling MCPs and bundle definitions.
Documentation
- 📘 Quick Start — install through first call.
- 🛠️ Tool reference — every MCP tool, every argument.
- 📐 Usage examples — practical end-to-end walkthroughs.
- 🏗️ Architecture — how this MCP fits in eng-mcp-suite.
Part of eng-mcp-suite
<sub>This MCP server is part of</sub>
<sub>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:</sub>
| Domain | Sibling MCPs |
|---|---|
| RF / Transmission lines | lineforge |
| Circuit + filter sim | mcp-ltspice-qucs |
| PCB / SI | mcp-pcb-emcopilot |
| EMC regulatory | mcp-emc-regulations |
| EM simulation (3D) | mcp-openems |
| Diagrams | drawio-engineering-mcp |
| Lab gear | copper-mountain-vna-mcp |
Contributing
Contributions are welcome.
- Pick a GitHub issue.
- Fork + branch (
feature/your-thingorfix/your-bug). - Run the local check suite:
uv run pytest - Open a PR — link the issue, request review.
License
AGPL-3.0-or-later. Relicensed from Apache-2.0 in v0.2.0 to align with the eng-mcp-suite toolkit-wide AGPL move. The underlying NEC2 engine is public-domain US-government code; this wrapper is AGPL-3.0-or-later and is independent of NEC2's public-domain status.
Acknowledgments
- Gerald J. Burke (LLNL) — original NEC2 Fortran (1981, public domain).
- Neoklis Kyriazis (5B4AZ) — NEC2C C port, the reference engine this server invokes.
- The MCP working group — for the Model Context Protocol specification.
<div align="center">
<sub>Part of <a href="https://github.com/RFingAdam/eng-mcp-suite">eng-mcp-suite</a> — built for ham radio operators, RF engineers, and AI agents.</sub>
</div>
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.