MCPcopy Create free account
hub / github.com/Serial-Studio/Serial-Studio / handleInitialize

Method handleInitialize

app/src/API/MCPHandler.cpp:248–275  ·  view source on GitHub ↗

* @brief Handle MCP initialize request */

Source from the content-addressed store, hash-verified

246 * @brief Handle MCP initialize request
247 */
248API::MCP::MCPResponse API::MCPHandler::handleInitialize(const MCP::MCPRequest& request,
249 const QString& sessionId)
250{
251 auto& session = m_sessions[sessionId];
252
253 const auto clientInfo = request.params.value(QStringLiteral("clientInfo")).toObject();
254 session.clientName = clientInfo.value(QStringLiteral("name")).toString();
255 session.clientVersion = clientInfo.value(QStringLiteral("version")).toString();
256 session.initialized = true;
257
258 QJsonObject result;
259 result[QStringLiteral("protocolVersion")] = MCP::kProtocolVersion;
260
261 QJsonObject serverInfo;
262 serverInfo[QStringLiteral("name")] = APP_NAME;
263 serverInfo[QStringLiteral("version")] = APP_VERSION;
264 result[QStringLiteral("serverInfo")] = serverInfo;
265
266 QJsonObject capabilities;
267 capabilities[QStringLiteral("tools")] = QJsonObject();
268 capabilities[QStringLiteral("resources")] = QJsonObject{
269 {QStringLiteral("subscribe"), true}
270 };
271 capabilities[QStringLiteral("prompts")] = QJsonObject();
272 result[QStringLiteral("capabilities")] = capabilities;
273
274 return MCP::MCPResponse::makeSuccess(request.id, result);
275}
276
277/**
278 * @brief Handle MCP ping request

Callers

nothing calls this directly

Calls 2

QJsonObjectClass · 0.85
valueMethod · 0.45

Tested by

no test coverage detected