<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Kiali – AI</title>
    <link>https://v2-24.kiali.io/docs/ai/</link>
    <description>Recent content in AI on Kiali</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    
	  <atom:link href="https://v2-24.kiali.io/docs/ai/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: Kiali Chatbot</title>
      <link>https://v2-24.kiali.io/docs/ai/kiali-chatbot/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://v2-24.kiali.io/docs/ai/kiali-chatbot/</guid>
      <description>
        
        
        &lt;p&gt;Kiali Chatbot is Kiali’s built-in AI assistant in the Kiali UI. It lets you ask questions about your service mesh and get answers backed by live data from Kiali and its configured backends (Prometheus, tracing, Kubernetes, etc.).&lt;/p&gt;
&lt;p&gt;It does &lt;strong&gt;not&lt;/strong&gt; require an external MCP server. Kiali includes its own set of MCP-style tools internally, so the AI can call them without depending on a separate MCP deployment.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/ai/kiali-chatbot.png&#34; alt=&#34;Kiali Chatbot&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;status&#34;&gt;Status&lt;/h3&gt;
&lt;p&gt;The Kiali chatbot was first released in Kiali version 2.22 and it is in &lt;strong&gt;Dev preview&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&#34;how-does-it-work&#34;&gt;How does it work&lt;/h3&gt;
&lt;p&gt;At a high level:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The Kiali UI sends your chat request (prompt + context + selected model) to the Kiali backend.&lt;/li&gt;
&lt;li&gt;Kiali selects the configured provider/model from &lt;code&gt;chat_ai&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The provider calls the LLM with a set of &lt;strong&gt;internal MCP tools&lt;/strong&gt; (defined in Kiali under &lt;code&gt;kiali/ai/mcp&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;The LLM may request tool calls (e.g. mesh graph, traces, resource details, workload logs, Istio config operations).&lt;/li&gt;
&lt;li&gt;Kiali executes those tool calls against Kiali/Kubernetes/Prometheus/tracing backends and returns the final answer, including optional UI navigation actions and documentation citations.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For configuration keys (enable/disable, providers/models, store), see the &lt;code&gt;chat_ai&lt;/code&gt; section in the &lt;a href=&#34;https://v2-24.kiali.io/docs/configuration/kialis.kiali.io/#.spec.chat_ai&#34;&gt;Kiali CR spec&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/ai/kiali-chatbot-architecture.png&#34; alt=&#34;Kiali Chatbot architecture&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;tool-schemas-inputsoutputs&#34;&gt;Tool schemas (inputs/outputs)&lt;/h3&gt;
&lt;p&gt;Kiali Chatbot uses internal tools with defined input schemas and structured outputs.&lt;/p&gt;
&lt;h3 id=&#34;configuring-the-kiali-chatbot&#34;&gt;Configuring the Kiali Chatbot&lt;/h3&gt;
&lt;p&gt;The Kiali Chatbot is disabled by default. To enable it, set &lt;code&gt;chat_ai.enabled: true&lt;/code&gt;.
When enabled, you will see the chatbot icon in the Kiali UI:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/ai/chatbot-icon.png&#34; alt=&#34;Kiali Chatbot icon&#34;&gt;&lt;/p&gt;
&lt;p&gt;You must also configure at least one provider and model (including an API key), and pick a default provider/model.&lt;/p&gt;
&lt;h3 id=&#34;switching-model-providers&#34;&gt;Switching model providers&lt;/h3&gt;
&lt;p&gt;Kiali Chatbot providers and models are configured in &lt;code&gt;chat_ai&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Providers: OpenAI-compatible (&lt;code&gt;type: openai&lt;/code&gt;) and Google (&lt;code&gt;type: google&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Models are selected by name (per-provider) and can be enabled/disabled.&lt;/li&gt;
&lt;li&gt;API keys can be set inline (not recommended) or via &lt;code&gt;secret:&amp;lt;secret-name&amp;gt;:&amp;lt;key-in-secret&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example configuration (showing an OpenAI-compatible provider using Gemini via OpenAI endpoint):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;chat_ai&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;default_provider&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;openai&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;providers&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;openai&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;description&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;OpenAI API Provider&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;type&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;openai&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;config&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;default&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;default_model&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;gemini&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;models&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;gemini&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;model&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;gemini-2.5-pro&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;description&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Model provided by Google with OpenAI API Support&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;endpoint&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;https://generativelanguage.googleapis.com/v1beta/openai&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;key&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;secret:my-key-secret:openai-gemini&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can also select the configured models and providers in the chatbot window:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://v2-24.kiali.io/images/documentation/ai/kiali-chatbot-models.png&#34; alt=&#34;Kiali Chatbot models&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;what-you-can-ask&#34;&gt;What you can ask&lt;/h3&gt;
&lt;p&gt;Examples of tasks that work well:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mesh/namespace topology and summaries (graph, status)&lt;/li&gt;
&lt;li&gt;Basic observability questions (metrics, traces)&lt;/li&gt;
&lt;li&gt;Troubleshooting workflows (get logs for a workload, identify failing namespaces)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;example-prompts&#34;&gt;Example prompts&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;“Show me the mesh graph for namespace &lt;code&gt;bookinfo&lt;/code&gt;.”&lt;/li&gt;
&lt;li&gt;“Which workloads in &lt;code&gt;istio-system&lt;/code&gt; look unhealthy and why?”&lt;/li&gt;
&lt;li&gt;“Get traces for service &lt;code&gt;productpage&lt;/code&gt; in &lt;code&gt;bookinfo&lt;/code&gt; for the last 30m.”&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;next-step&#34;&gt;Next step&lt;/h3&gt;
&lt;p&gt;If you want to use an AI assistant outside the Kiali UI (for example, in an IDE), see &lt;a href=&#34;https://v2-24.kiali.io/docs/ai/kiali-mcp/&#34;&gt;Kiali MCP&lt;/a&gt;.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Kiali Chatbot tools (schemas)</title>
      <link>https://v2-24.kiali.io/docs/ai/kiali-chatbot-tools/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://v2-24.kiali.io/docs/ai/kiali-chatbot-tools/</guid>
      <description>
        
        
        &lt;p&gt;Kiali Chatbot uses &lt;strong&gt;internal MCP-style tools&lt;/strong&gt; (implemented inside Kiali) to fetch live data and perform safe actions. These are &lt;strong&gt;not&lt;/strong&gt; external MCP server tools.&lt;/p&gt;
&lt;p&gt;The tool &lt;strong&gt;input schemas&lt;/strong&gt; are defined in Kiali under &lt;code&gt;kiali/ai/mcp/tools/*.yaml&lt;/code&gt;. The tool &lt;strong&gt;outputs&lt;/strong&gt; are JSON structures returned by the Kiali backend and consumed by the model and/or UI.&lt;/p&gt;
&lt;h3 id=&#34;tool-list&#34;&gt;Tool list&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;get_action_ui&lt;/code&gt;: returns UI navigation actions (buttons/links).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;get_citations&lt;/code&gt;: returns documentation links relevant to the user query.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;get_mesh_graph&lt;/code&gt;: returns mesh health/topology summaries (and supporting raw payloads).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;get_resource_detail&lt;/code&gt;: returns service/workload details or lists (same payload shapes as existing Kiali APIs).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;get_pod_performance&lt;/code&gt;: returns usage vs requests/limits summary (CPU/memory).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;get_traces&lt;/code&gt;: returns a compact trace summary (bottlenecks/errors).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;get_logs&lt;/code&gt;: returns workload/pod logs with optional filtering.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;manage_istio_config&lt;/code&gt;: list/get/create/patch/delete Istio objects (with a confirmation gate for sensitive actions).&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Kiali MCP</title>
      <link>https://v2-24.kiali.io/docs/ai/kiali-mcp/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://v2-24.kiali.io/docs/ai/kiali-mcp/</guid>
      <description>
        
        
        &lt;p&gt;Kiali MCP is an integration that allows MCP-capable AI assistants to query (and optionally manage) Kiali-related data by calling tools exposed by an MCP server.&lt;/p&gt;
&lt;p&gt;The implementation is provided as part of the &lt;a href=&#34;https://github.com/containers/kubernetes-mcp-server&#34;&gt;Kubernetes MCP Server&lt;/a&gt; upstream and also for &lt;a href=&#34;https://github.com/openshift/openshift-mcp-server&#34;&gt;Openshift MCP server&lt;/a&gt;. It exposes a &lt;strong&gt;&lt;code&gt;kiali&lt;/code&gt; toolset&lt;/strong&gt; (see upstream guide: &lt;a href=&#34;https://github.com/containers/kubernetes-mcp-server/blob/main/docs/KIALI.md&#34;&gt;docs/KIALI.md&lt;/a&gt;).&lt;/p&gt;
&lt;h3 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;A reachable Kiali endpoint (Route/Ingress/Service URL).&lt;/li&gt;
&lt;li&gt;Kubernetes credentials available to the MCP server (kubeconfig or in-cluster config).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;enable-the-kiali-toolset&#34;&gt;Enable the &lt;code&gt;kiali&lt;/code&gt; toolset&lt;/h3&gt;
&lt;p&gt;Create a TOML config file and enable &lt;code&gt;kiali&lt;/code&gt; in &lt;code&gt;toolsets&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000&#34;&gt;toolsets&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;core&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;kiali&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;toolset_configs&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;kiali&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000&#34;&gt;url&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;https://kiali.example&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# Endpoint/route to reach the Kiali console&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# insecure = true  # optional: allow insecure TLS (not recommended in production)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# certificate_authority = &amp;#34;/path/to/ca.crt&amp;#34;  # CA bundle for Kiali&amp;#39;s TLS cert&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Notes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If &lt;code&gt;url&lt;/code&gt; is &lt;code&gt;https://&lt;/code&gt; and &lt;code&gt;insecure = false&lt;/code&gt;, you must provide &lt;code&gt;certificate_authority&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Authentication to Kiali is performed using the server&amp;rsquo;s Kubernetes credentials (it obtains/uses a bearer token for Kiali calls).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;connect-from-an-mcp-client&#34;&gt;Connect from an MCP client&lt;/h3&gt;
&lt;p&gt;How you wire this into a specific client depends on the client, but the core idea is the same: start the MCP server with your kubeconfig and your TOML config.&lt;/p&gt;
&lt;p&gt;Example (conceptual) command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubernetes-mcp-server --config /path/to/config.toml --read-only
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Once connected, your assistant can use the Kiali tools (for example: mesh graph, metrics, traces, workload logs) to power a chatbot-like experience outside the Kiali UI (for example, in an IDE).&lt;/p&gt;

      </description>
    </item>
    
  </channel>
</rss>
