From a3380dbab505dcef6154d702064f87904c86e2be Mon Sep 17 00:00:00 2001 From: Wang Zichong Date: Wed, 8 Jul 2026 14:28:43 +0800 Subject: [PATCH] update license description --- PLAN.md | 4 ++-- README.md | 4 ++-- bridge/CMakeLists.txt | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/PLAN.md b/PLAN.md index a7104e9..7c3dc65 100644 --- a/PLAN.md +++ b/PLAN.md @@ -458,12 +458,12 @@ For headless/CI launching of the probe, `systemd-run --user --no-block` (with `S Bridge accepts an optional default probe URL via `--connect ` (or `GAMMARAY_PROBE_URL` env). At runtime the connection is driven by `connectProbe`/`disconnectProbe` MCP tools; the URL is remembered so tools can auto-reconnect after a probe restart. The bridge's `GammaRaySession` state machine (`Disconnected → Connecting → Ready`, with `→ Failed` on persistent error) is the single source of truth; `probeStatus()` reports it to the client. -The bridge acts as an MCP server on stdio. The LLM host (e.g. Claude Desktop, opencode) launches the bridge as a subprocess and communicates via JSON-RPC over stdio. +The bridge acts as an MCP server on stdio. The LLM host (e.g. ZCode, opencode) launches the bridge as a subprocess and communicates via JSON-RPC over stdio. ## Key gotchas to remember 1. **Protocol version lock**: probe and client must be same GammaRay build. System package too old → build from 3.4.0 source. (`common/protocol.h:141`) -2. **GPL-2.0-or-later**: bridge linking gammaray_client must be GPL-compatible. Accepted. qtmcp offers GPL-2.0-only option — compatible. +2. **GPL-2.0-or-later**: bridge linking gammaray_client must be GPL-compatible. Accepted. qtmcp offers LGPL-3.0-only / GPL-2.0-only / GPL-3.0-only — we comply under GPL-2.0-only. 3. **Qt private headers**: GammaRay build needs `qt6-base-private-dev`, `qt6-declarative-private-dev`. The bridge itself only needs public Qt + installed GammaRay headers. **qtmcp requires Qt 6.8+** (newer than GammaRay's 6.5+ floor); ensure build environment Qt >= 6.8. 4. **C++20**: qtmcp requires C++20. Bridge project set to C++20; GammaRay C++17 libs link fine. 5. **Models only available after `ClientConnectionManager::ready()`** — do not call `ObjectBroker::model()` before handshake completes. MCP tool calls arriving before probe connection should return an error or wait. diff --git a/README.md b/README.md index 20f927e..87cef65 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ A [MCP](https://modelcontextprotocol.io/) server that bridges [GammaRay](https:/ ``` Target Qt/QML App ──TCP──► GammaRay MCP Bridge ──stdio──► LLM / AI Agent (GammaRay probe (GammaRay client + (opencode, - injected) qtmcp MCP server) Claude Desktop, etc.) + injected) qtmcp MCP server) ZCode, etc.) ``` The bridge is a GammaRay **client**: it connects to a probe injected into a target Qt app, reads the same models the GammaRay GUI uses, and translates them into MCP JSON-RPC tool calls over stdio. Supports both QML Quick apps (SceneGraph, QML items) and Qt Widget apps (widget hierarchy, properties, attributes). @@ -121,4 +121,4 @@ See `tests/README.md` for details. ## License -GPL-2.0-or-later. The bridge links GammaRay libraries (GPL-2.0-or-later) and uses qtmcp (available under GPL-2.0-only). \ No newline at end of file +GPL-2.0-or-later. The bridge links GammaRay libraries (GPL-2.0-or-later) and uses qtmcp (available under LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only — we comply under GPL-2.0-only). \ No newline at end of file diff --git a/bridge/CMakeLists.txt b/bridge/CMakeLists.txt index 0932656..d542ca5 100644 --- a/bridge/CMakeLists.txt +++ b/bridge/CMakeLists.txt @@ -2,7 +2,8 @@ # SPDX-License-Identifier: GPL-2.0-or-later # # Links GammaRay client libs (GPL-2.0-or-later) => this bridge must be -# GPL-compatible. qtmcp is consumed under its GPL-2.0-only option (compatible). +# GPL-compatible. qtmcp is triple-licensed (LGPL-3.0-only / GPL-2.0-only / +# GPL-3.0-only); we comply under GPL-2.0-only. cmake_minimum_required(VERSION 3.16) project(GammaRayMcpBridge LANGUAGES CXX)