Files
2026-09-12 10:54:45 +01:00

339 lines
9.3 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MCPServerGUI</class>
<widget class="RollupContents" name="MCPServerGUI">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>360</width>
<height>180</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>360</width>
<height>180</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>560</width>
<height>180</height>
</size>
</property>
<property name="font">
<font>
<family>Liberation Sans</family>
<pointsize>9</pointsize>
</font>
</property>
<property name="windowTitle">
<string>MCP Server</string>
</property>
<widget class="QWidget" name="settingsContainer" native="true">
<property name="geometry">
<rect>
<x>2</x>
<y>2</y>
<width>358</width>
<height>178</height>
</rect>
</property>
<property name="windowTitle">
<string>Settings</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>3</number>
</property>
<property name="leftMargin">
<number>2</number>
</property>
<property name="topMargin">
<number>2</number>
</property>
<property name="rightMargin">
<number>2</number>
</property>
<property name="bottomMargin">
<number>2</number>
</property>
<item>
<layout class="QHBoxLayout" name="controlLayout">
<item>
<widget class="ButtonSwitch" name="startStop">
<property name="toolTip">
<string>Start/stop the MCP server</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../../../sdrgui/resources/res.qrc">
<normaloff>:/play.png</normaloff>
<normalon>:/stop.png</normalon>:/play.png</iconset>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="url">
<property name="toolTip">
<string>URL of the MCP endpoint to give to MCP clients</string>
</property>
<property name="text">
<string>http://127.0.0.1:8092/mcp</string>
</property>
<property name="textInteractionFlags">
<set>Qt::TextInteractionFlag::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="serverLayout">
<item>
<widget class="QLabel" name="addressLabel">
<property name="minimumSize">
<size>
<width>60</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Address</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="address">
<property name="toolTip">
<string>IP address to listen on.
127.0.0.1 only accepts connections from this computer. 0.0.0.0 accepts connections from any network interface.</string>
</property>
<property name="text">
<string>127.0.0.1</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="portLabel">
<property name="text">
<string>Port</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="port">
<property name="toolTip">
<string>TCP port to listen for MCP requests on.
Default is 8092.</string>
</property>
<property name="minimum">
<number>1024</number>
</property>
<property name="maximum">
<number>65535</number>
</property>
<property name="value">
<number>8092</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="tokenLayout">
<item>
<widget class="QLabel" name="tokenLabel">
<property name="minimumSize">
<size>
<width>60</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Token</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="token">
<property name="toolTip">
<string>Optional bearer token. When set, clients must send an Authorization: Bearer header with this value.
Leave empty for no authentication (only safe when listening on 127.0.0.1).</string>
</property>
<property name="placeholderText">
<string>No authentication</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="captureLayout">
<item>
<widget class="QLabel" name="captureDirLabel">
<property name="minimumSize">
<size>
<width>60</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Captures</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="captureDir">
<property name="toolTip">
<string>Directory that IQ and audio captures are written to.
Capture tools refuse file names that would write outside it.</string>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="captureDirBrowse">
<property name="toolTip">
<string>Choose the capture directory</string>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="clientsLayout">
<item>
<widget class="QLabel" name="clientsLabel">
<property name="minimumSize">
<size>
<width>60</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Clients</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="addToCodex">
<property name="toolTip">
<string>Add this server to OpenAI Codex, by writing it into Codex's config.toml.
Codex needs to be restarted afterwards to pick it up.</string>
</property>
<property name="text">
<string>Add to Codex</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="addToClaude">
<property name="toolTip">
<string>Install the SDRangel extension for Claude Desktop, which carries the bridge
Claude Desktop needs to reach a server on this machine.
Claude Desktop asks you to confirm the installation.</string>
</property>
<property name="text">
<string>Add to Claude Desktop</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="statusLayout">
<item>
<widget class="QLabel" name="requests">
<property name="toolTip">
<string>Number of MCP requests served since the server was started</string>
</property>
<property name="text">
<string>Requests: 0</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="lastRequest">
<property name="toolTip">
<string>Last MCP request received</string>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
<customwidgets>
<customwidget>
<class>ButtonSwitch</class>
<extends>QToolButton</extends>
<header>gui/buttonswitch.h</header>
</customwidget>
<customwidget>
<class>RollupContents</class>
<extends>QWidget</extends>
<header>gui/rollupcontents.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources>
<include location="../../../sdrgui/resources/res.qrc"/>
</resources>
<connections/>
</ui>