Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Copper Mountain Vna

БесплатноНе проверен

Enables AI agents to control Copper Mountain Vector Network Analyzers over TCP/IP SCPI, offering 45 tools for sweep configuration, calibration, measurement, and

GitHubEmbed

Описание

Enables AI agents to control Copper Mountain Vector Network Analyzers over TCP/IP SCPI, offering 45 tools for sweep configuration, calibration, measurement, and Touchstone export.

README

copper-mountain-vna-mcp — Copper Mountain VNA control over SCPI

CI License Python 3.10+ MCP eng-mcp-suite

Drive Copper Mountain Vector Network Analyzers from any MCP-compatible AI client. TCP/IP SCPI over the wire — 45 tools spanning sweep, calibration, measurement, and export.

Quick start · Tools · Workflows · Documentation


What is copper-mountain-vna-mcp?

copper-mountain-vna-mcp is a Model Context Protocol server that exposes a Copper Mountain VNA — RVNA, TRVNA, S2VNA, or S4VNA family — to any MCP-capable AI assistant. The server speaks raw TCP/IP SCPI to the Copper Mountain software socket server (default port 5025), then surfaces sweep configuration, calibration, S-parameter capture, marker math, and Touchstone export as plain MCP tools.

Drive it from Claude Desktop, Claude Code, VS Code Copilot, or any other MCP client. SCPI is generated server-side, so the AI agent never needs to know the underlying command set — it just calls vna_configure_sweep, vna_trigger_sweep, vna_get_s_parameter and gets back structured data.

What copper-mountain-vna-mcp does well:

  • 🤖 AI-native via MCP. First-class Model Context Protocol server with 45 tools. Any Claude / LLM agent can drive it.
  • 🐍 Python + MCP surfaces. Import coppermountain_vna_mcp for direct driver access, or run as an MCP server for AI-agent automation.
  • Direct TCP/IP SCPI. No VISA dependency, no proprietary middleware — just asyncio sockets straight to the Copper Mountain software socket server.
  • Validated against 4 VNA families. RVNA (S11), TRVNA (S11/S21), S2VNA (full 2-port), S4VNA (full 4×4).
  • 🔒 AGPL-3.0-or-later. Network-copyleft open-source. Independent of Copper Mountain Technologies (trademark disclaimer below).

Disclaimer: This project is not affiliated with, endorsed by, or sponsored by Copper Mountain Technologies. "Copper Mountain" is a trademark of Copper Mountain Technologies. This is an independent open-source project.


Quick start

Install

pip install coppermountain-vna-mcp

Or from source:

git clone https://github.com/RFingAdam/copper-mountain-vna-mcp.git
cd copper-mountain-vna-mcp
pip install -e ".[dev]"

Supported instruments

Family Description Example models S-parameters
RVNA 1-port reflectometer R54, R60 S11
TRVNA 2-port 1-path TR1300 S11, S21
S2VNA 2-port full reversing M5090, Planar 804/1 S11, S12, S21, S22
S4VNA 4-port full S5048 Full 4×4 matrix

Two surfaces, same answer

Python

import asyncio
from coppermountain_vna_mcp.driver import CopperMountainVNADriver
from coppermountain_vna_mcp.models import SParameter, SweepConfig

async def main():
    async with CopperMountainVNADriver("127.0.0.1", 5025) as vna:
        await vna.configure_sweep(SweepConfig(
            start_freq_hz=1e9, stop_freq_hz=2e9,
            num_points=201, if_bandwidth_hz=1000, power_dbm=0,
        ))
        await vna.trigger_sweep()
        data = await vna.get_s_parameter_data(SParameter.S11)
        marker = await vna.marker_search_min()
        print(f"Best match: {marker.frequency_hz/1e9:.3f} GHz @ {marker.magnitude_db:.1f} dB")

asyncio.run(main())

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

{
  "mcpServers": {
    "copper-mountain-vna": {
      "command": "python",
      "args": ["-m", "coppermountain_vna_mcp"],
      "env": {
        "VNA_DEFAULT_HOST": "127.0.0.1",
        "VNA_DEFAULT_PORT": "5025"
      }
    }
  }
}

Then ask your assistant in plain English:

"Connect to the VNA on 127.0.0.1, sweep 1–2 GHz at 201 points, and tell me where S11 is best matched."

The agent will call vna_connect, vna_configure_sweep, vna_trigger_sweep, and vna_marker_search_min in sequence and report the result.

Start the VNA software socket server

The VNA software runs on Windows. Enable the socket server via command line:

:: S2VNA / S4VNA
S2VNA.exe /SocketServer:on /SocketPort:5025 /visible:on

:: RVNA / TRVNA
RVNA.exe EnableSocket:5025

Or in the GUI: System > Socket Server > Enable.

Configuration

Configure via environment variables or .env file:

Variable Default Description
VNA_DEFAULT_HOST 127.0.0.1 VNA software host IP
VNA_DEFAULT_PORT 5025 Socket server port
VNA_CONNECTION_TIMEOUT 5.0 TCP connection timeout (s)
VNA_COMMAND_TIMEOUT 30.0 SCPI command timeout (s)
VNA_MAX_POWER_DBM 10 Max output power
VNA_MIN_POWER_DBM -55 Min output power
VNA_MAX_FREQUENCY_HZ 20e9 Upper sweep bound
VNA_MAX_POINTS 10001 Maximum sweep points

Tools

45 MCP tools, grouped:

Group Tools
Connection vna_discover, vna_connect, vna_disconnect, vna_identify, vna_get_status
Configuration vna_configure_sweep, vna_set_center_span, vna_set_averaging, vna_set_port_power, vna_output_on, vna_output_off
Measurement vna_trigger_sweep, vna_get_s_parameter, vna_measure_return_loss, vna_measure_vswr, vna_measure_insertion_loss
Markers vna_set_marker, vna_get_marker, vna_marker_search_min, vna_marker_search_max, vna_marker_bandwidth
Calibration vna_calibration_status, vna_calibration_start, vna_calibration_measure_standard, vna_calibration_apply, vna_correction_on, vna_correction_off
Export vna_save_touchstone, vna_save_screenshot
Templates vna_list_templates, vna_load_template, vna_apply_template
State vna_save_state, vna_load_state, vna_get_full_state
Limits vna_define_limit, vna_check_limits, vna_list_limits, vna_clear_limits
Software vna_software_show, vna_software_hide
Low-level SCPI vna_scpi_send, vna_scpi_query, vna_reset, vna_preset

Full tool reference in docs/tools.md.


Calibration

Standard cal flows are exposed as discrete tools so an agent can walk them step by step.

SOL (1-port reflection):

  1. vna_calibration_start(method="SOL")
  2. vna_calibration_measure_standard(standard="SHORT", port_num=1)
  3. vna_calibration_measure_standard(standard="OPEN", port_num=1)
  4. vna_calibration_measure_standard(standard="LOAD", port_num=1)
  5. vna_calibration_apply()
  6. vna_correction_on()

SOLT (2-port full): SHORT/OPEN/LOAD on both ports, then THRU between them, then apply.

Calibration is frequency-specific — recalibrate when the sweep range changes substantially.


Measurement templates

Pre-configured sweep + marker + trace setups for common DUT classes. Load by name with vna_load_template, then vna_apply_template to push to the VNA.

Category Examples
Antennas — WiFi/BLE antenna_wifi_24ghz, antenna_ble_24ghz, antenna_wifi_5ghz, antenna_wifi_5ghz_unii1/unii3, antenna_wifi_6ghz, antenna_wifi_dual_band, antenna_wifi_tri_band
Antennas — MIMO antenna_mimo_wifi_24ghz, antenna_mimo_wifi_5ghz, antenna_mimo_wifi_dual_band, antenna_mimo_cellular
Antennas — ISM/cellular/GNSS antenna_ism_us915, antenna_ism_eu868, antenna_ism_worldwide, antenna_cellular, antenna_gps_l1, antenna_gnss_dual_band, antenna_nfc
Antennas — UWB antenna_uwb_channel_5, antenna_uwb_channel_9, antenna_uwb_full_band
Cables cable_dc_2_4ghz, cable_dc_8_5ghz
Filters filter_wifi_24ghz, filter_wifi_5ghz, filter_ism_915mhz, filter_gps_l1, filter_bandpass_custom, filter_lowpass_custom
await vna.load_template("antenna_wifi_5ghz")
await vna.apply_template()

# Custom filter — provide parameters at load time
await vna.load_template("filter_bandpass_custom",
                        center_freq_hz=1.5e9, bandwidth_hz=100e6)
await vna.apply_template()

Workflows

copper-mountain-vna-mcp fits in the following eng-mcp-suite workflow bundles:

  • lab-automation — pair with mcp-rs-spectrum-analyzer, mcp-rs-siggen, and mcp-rs-cmw500 for end-to-end RF bench-test workflows driven from a single agent session.
  • antenna-tuning — feed return-loss / VSWR traces into mcp-nec2-antenna or mcp-openems for iterative match optimization.

Install the bundle with:

eng-mcp-suite install --workflow lab-automation

Documentation


Part of eng-mcp-suite

This MCP server is part of

eng-mcp-suite

Part of eng-mcp-suite — an open umbrella of MCP servers for RF / EMC / PCB / signal-integrity engineering. Drop into the lab-automation workflow bundle with eng-mcp-suite install --workflow lab-automation.

Domain Sibling MCPs
RF / Transmission lines lineforge
EMC regulatory mcp-emc-regulations
EM simulation mcp-openems, mcp-nec2-antenna
Diagrams drawio-engineering-mcp
Lab gear copper-mountain-vna-mcp · mcp-rs-spectrum-analyzer · mcp-rs-siggen · mcp-rs-cmw500

Contributing

Contributions welcome.

  1. Pick a GitHub issue.
  2. Fork + branch (feature/your-thing or fix/your-bug).
  3. Run the local check suite:
    ruff check . && mypy src/coppermountain_vna_mcp
    pytest --cov=coppermountain_vna_mcp
    
  4. Open a PR — link the issue, request review.

License

AGPL-3.0-or-later. Copyright 2025-2026 Adam Engelbrecht (RFingAdam). Relicensed from Apache-2.0 in v0.3.0 to align with the eng-mcp-suite toolkit-wide AGPL move.

Acknowledgments

  • Copper Mountain Technologies — for documenting the SCPI command set used by RVNA / TRVNA / S2VNA / S4VNA software.
  • 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.

from github.com/RFingAdam/copper-mountain-vna-mcp

Установка Copper Mountain Vna

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/RFingAdam/copper-mountain-vna-mcp

FAQ

Copper Mountain Vna MCP бесплатный?

Да, Copper Mountain Vna MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Copper Mountain Vna?

Нет, Copper Mountain Vna работает без API-ключей и переменных окружения.

Copper Mountain Vna — hosted или self-hosted?

Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.

Как установить Copper Mountain Vna в Claude Desktop, Claude Code или Cursor?

Открой Copper Mountain Vna на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Copper Mountain Vna with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории ai