Skip to main content
Glama

AetherLink SDR MCP

by N-Erickson
servertest.py2.81 kB
#!/usr/bin/env python3 """ Simple direct test of SDR MCP server functionality """ import asyncio import json from sdr_mcp.server import SDRMCPServer async def simple_test(): """Test the server by directly calling the handler methods""" print("SDR MCP Server - Simple Direct Test") print("=" * 50) # Create server instance server = SDRMCPServer() # The handlers are set up via decorators, so we need to trigger them # by calling the setup_handlers method which has already been called print("\n1. Testing direct functionality...") # Test connecting to SDR directly on the server object print("\nConnecting to RTL-SDR (mock mode)...") server.sdr = None # Make sure we start fresh # Import the mock RTL-SDR directly from sdr_mcp.hardware.rtlsdr import RTLSDRDevice server.sdr = RTLSDRDevice() success = await server.sdr.connect() print(f"Connected: {success}") # Get device info info = await server.sdr.get_info() print(f"Device info: {json.dumps(info, indent=2)}") # Set frequency print("\nSetting frequency to 100.1 MHz...") await server.sdr.set_frequency(100.1e6) print(f"Frequency set to: {server.sdr.frequency/1e6:.1f} MHz") # Set gain print("\nSetting gain to auto...") await server.sdr.set_gain('auto') print(f"Gain set to: {server.sdr.gain}") # Read some samples print("\nReading 1024 samples...") samples = await server.sdr.read_samples(1024) print(f"Got {len(samples)} samples") print(f"Sample type: {type(samples)}") print(f"First few samples: {samples[:5]}") # Test spectrum analyzer print("\n2. Testing spectrum analyzer...") from sdr_mcp.analysis.spectrum import SpectrumAnalyzer analyzer = SpectrumAnalyzer(fft_size=1024) # Analyze the samples frame = await analyzer.analyze_spectrum(samples, server.sdr.sample_rate, server.sdr.frequency) print(f"Peak power: {frame.peak_power:.1f} dB") print(f"Noise floor: {frame.noise_floor:.1f} dB") print(f"Detected signals: {len(frame.detected_signals)}") # Test the decoder print("\n3. Testing ADS-B decoder...") from sdr_mcp.server import ADSBDecoder decoder = ADSBDecoder() print(f"Decoder created, aircraft tracked: {len(decoder.aircraft)}") # Disconnect print("\n4. Disconnecting...") await server.sdr.disconnect() print("Disconnected!") print("\n✅ Basic functionality test passed!") print("\nYour server components are working correctly.") print("The MCP integration issues are just API compatibility problems.") print("\nYou can safely add this to Claude Desktop with the config provided!") if __name__ == "__main__": asyncio.run(simple_test())

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/N-Erickson/AetherLink-SDR-MCP'

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