From 1493c308c0a90b691bd7ff42deac6143b36ccc01 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 26 Oct 2026 12:19:33 +0000 Subject: [PATCH 1/2] ROB-1706 Document the Platform MCP toolset switches and ask_holmes Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01TUT5BRVCTsJGeFM3eXZdnV --- .../exporting/platform-mcp-api.rst | 56 ++++++++++++++++++- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/docs/configuration/exporting/platform-mcp-api.rst b/docs/configuration/exporting/platform-mcp-api.rst index d6fdbd8e9..62977ae02 100644 --- a/docs/configuration/exporting/platform-mcp-api.rst +++ b/docs/configuration/exporting/platform-mcp-api.rst @@ -16,7 +16,20 @@ A standard MCP `Streamable HTTP ` does, and returns the answer in markdown. An investigation can take seconds or minutes, longer than most MCP clients wait for one tool call, so the call is split in two: + +* ``ask_holmes`` waits up to ``wait_seconds`` (default 50, at most 280) for the answer. When the answer is ready in time, the result has ``status: "completed"`` and the ``answer``; otherwise it has ``status: "running"`` and a ``conversation_id``. +* ``get_holmes_answer`` waits on that ``conversation_id`` again, with the same ``wait_seconds``, and returns the same shape. Call it until the status is ``completed``. The investigation keeps running between calls, so a client that times out loses nothing. + +.. list-table:: + :widths: 20 15 65 + :header-rows: 1 + + * - Argument + - Required + - Description + * - ``question`` + - Yes + - The question, with every detail Holmes needs (namespace, workload or pod names, time window, what was observed). + * - ``cluster`` + - When more than one cluster can be asked + - The cluster whose Holmes answers. The error of a call without it names the clusters you can ask. + * - ``wait_seconds`` + - No + - How long the call waits for the answer. Keep it under your MCP client's tool timeout. + +Both tools answer with ``{"conversation_id", "cluster", "status", "answer", "ui_link"}``; ``ui_link`` opens the conversation in the Robusta UI. + +.. code-block:: json + + { + "conversation_id": "78170c9f-2403-43ac-88ed-d6d39efd90ed", + "cluster": "prod-eu", + "ui_link": "https://platform.robusta.dev/my-account/holmes/chat/78170c9f-2403-43ac-88ed-d6d39efd90ed", + "status": "completed", + "answer": "3 of the 12 pods in `checkout` restarted in the last hour ..." + } + +Only clusters whose Holmes agent takes conversations from the platform (Holmes 0.24 or later, with the conversation worker enabled) can be asked, and only those the key's owner may chat with. + Rate limits and errors ^^^^^^^^^^^^^^^^^^^^^^^ From 727940f4e071cdf92bcfd4b0d3ebbf5a4834c0e3 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 28 Oct 2026 08:17:51 +0000 Subject: [PATCH 2/2] ROB-1706 Describe list_available_clusters on its own Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01TUT5BRVCTsJGeFM3eXZdnV --- docs/configuration/exporting/platform-mcp-api.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/configuration/exporting/platform-mcp-api.rst b/docs/configuration/exporting/platform-mcp-api.rst index 62977ae02..652030f3a 100644 --- a/docs/configuration/exporting/platform-mcp-api.rst +++ b/docs/configuration/exporting/platform-mcp-api.rst @@ -29,7 +29,7 @@ Under that switch, each toolset the server exposes has its own switch (all on by * - **Ask Holmes** - ``ask_holmes``, ``get_holmes_answer`` — ask the Holmes agent of a cluster a question and get back its full investigation. * - **Cluster tools** - - ``list_available_clusters`` and the ``remote_*`` tools — run one of Holmes' cluster-local tools (kubectl, Prometheus, pod logs) on a cluster and get its raw output. + - The ``remote_*`` tools — run one of Holmes' cluster-local tools (kubectl, Prometheus, pod logs) on a cluster and get its raw output — and ``list_available_clusters``, which lists the clusters a ``remote_*`` tool can run on for you. Authentication ^^^^^^^^^^^^^^