Skip to content
This documentation covers the kagent 1.0 alpha. For the latest 0.x release, see the 0.x docs.

For the complete documentation index, see llms.txt. Markdown versions of all docs pages are available by appending .md to any docs URL.

Tools ecosystem

Page as Markdown

Look up the MCP servers that a kagent installation ships with, the tools that each one serves, and the community servers that you can add.

A kagent installation ships with two Model Context ProtocolModel Context ProtocolAn open protocol for exposing tools and resources to a model. kagent reaches an MCP server through a RemoteMCPServer resource, and an AgentTemplate binds individual tools from it.Learn more (MCP) servers already registered, and you can register more of your own. This page is the catalog: what is installed, what each server serves, and how to narrow the set. For the schema that binds a server to an agent, see About tools.

Servers that a kagent installation registers

Both servers arrive as subcharts of the kagent chart, and each one creates its own RemoteMCPServerRemoteMCPServerA Kubernetes custom resource pointing at a Model Context Protocol server that the cluster can reach. It is the only server kind that an AgentTemplate tool binding accepts.Learn more in the kagent namespace. Neither is bound to an agent for you, so an agent reaches a server’s tools only through a tool bindingTool bindingOne entry in an AgentTemplate's spec.tools list. Each binding selects exactly one source: tools from a Model Context Protocol server, or another AgentTemplate used as a tool.Learn more that you add to its AgentTemplateAgentTemplateA Kubernetes custom resource defining what an agent does: its model, system prompt, tools, skills, and plugins. It runs only once a Harness accepts it.Learn more.

RemoteMCPServerHelm valueServes
kagent-tool-serverkagent-tools.enabled124 tools for Kubernetes, Helm, Istio, Cilium, Argo Rollouts, Prometheus, and Kubescape.
kagent-grafana-mcpgrafana-mcp.enabledGrafana’s own MCP server, for dashboards, data sources, alerts, Loki logs, and incidents.

The kagent release pins the kagent-tool-server version, which is currently 0.2.1. For the full set of pinned component versions, see Version support.

Read the tools that a server serves

The controller connects to each RemoteMCPServer, asks it what it serves, and records the answer in status.discoveredTools. That status reports the server that your cluster actually runs, so it is more reliable than any list on this page.

kubectl get remotemcpserver kagent-tool-server -n kagent \
  -o jsonpath='{range .status.discoveredTools[*]}{.name}{"\t"}{.description}{"\n"}{end}'

Your first MCP tool runs the same command as the first step of binding one of these tools to an agent.

Note

status.discoveredTools stays empty until the controller completes a discovery pass, and status.observedGeneration tells you whether the recorded set matches the current spec. A server whose Accepted condition is not True has not been reached at all.

kagent-tool-server

One Go binary serves every tool in this section, grouped into eight providers. A provider’s tools shell out to the matching command line tool inside the server’s own container, so the Kubernetes, Helm, Istio, and Cilium providers act on your cluster with the server’s ServiceAccount rather than with the caller’s credentials.

Tools marked * perform write operations, and --read-only skips them at registration. The following sections list each provider’s tools by the name that an agent sees.

Kubernetes

Agents use the Kubernetes provider the most, and it covers both inspection and modification of any resource that kubectl can reach.

ToolDescription
k8s_get_resourcesGet Kubernetes resources using kubectl.
k8s_describe_resourceDescribe a Kubernetes resource in detail.
k8s_get_resource_yamlGet the YAML representation of a Kubernetes resource.
k8s_get_pod_logsGet logs from a Kubernetes pod.
k8s_get_eventsGet events from a Kubernetes namespace.
k8s_get_available_api_resourcesGet available Kubernetes API resources.
k8s_get_cluster_configurationGet cluster configuration details.
k8s_generate_resourceGenerate a Kubernetes resource YAML from a description.
k8s_apply_manifest *Apply a YAML manifest to the Kubernetes cluster.
k8s_create_resource *Create a Kubernetes resource from YAML content.
k8s_create_resource_from_url *Create a Kubernetes resource from a URL that points to a YAML manifest.
k8s_patch_resource *Patch a Kubernetes resource using a strategic merge patch.
k8s_patch_status *Patch the status of a Kubernetes resource.
k8s_delete_resource *Delete a Kubernetes resource.
k8s_scale *Scale a Kubernetes deployment.
k8s_rollout *Perform rollout operations on Kubernetes resources, including history, pause, restart, resume, status, and undo.
k8s_label_resource *Add or update labels on a Kubernetes resource.
k8s_remove_label *Remove a label from a Kubernetes resource.
k8s_annotate_resource *Add or update annotations on a Kubernetes resource.
k8s_remove_annotation *Remove an annotation from a Kubernetes resource.
k8s_execute_command *Execute a command in a Kubernetes pod.
k8s_check_service_connectivity *Check connectivity to a service using a temporary curl pod.

Helm

The Helm provider manages releases and chart repositories with the Helm configuration inside the server’s container, so a repository that one tool adds is available to the others.

ToolDescription
helm_list_releasesList Helm releases in a namespace.
helm_get_releaseGet extended information about a Helm release.
helm_repo_updateUpdate information about available charts locally from chart repositories.
helm_upgrade *Upgrade or install a Helm release.
helm_uninstall *Uninstall a Helm release.
helm_repo_add *Add a Helm repository.

Istio

Istio’s tools wrap istioctl, and most of them read mesh state rather than change it. Waypoint management is the exception, as generating a waypoint resource and applying it are separate tools.

ToolDescription
istio_proxy_statusGet Envoy proxy status for pods, which retrieves the last sent and acknowledged xDS sync from Istiod to each Envoy in the mesh.
istio_proxy_configGet the proxy configuration for a single pod.
istio_analyze_cluster_configurationAnalyze Istio cluster configuration for issues.
istio_versionGet Istio version information.
istio_remote_clustersList remote clusters that are registered with Istio.
istio_generate_manifestGenerate an Istio manifest for a given profile.
istio_list_waypointsList all waypoints in the mesh.
istio_generate_waypointGenerate a waypoint resource YAML.
istio_waypoint_statusGet the status of a waypoint resource.
istio_ztunnel_configGet the ztunnel configuration for a namespace.
istio_install_istio *Install Istio with a specified configuration profile.
istio_apply_waypoint *Apply a waypoint resource to the cluster.
istio_delete_waypoint *Delete a waypoint resource from the cluster.

Argo Rollouts

Argo Rollouts tools cover progressive delivery. A rollout tool fails confusingly when the controller or one of its plugins is missing, so four of the eight tools verify the installation instead of acting on a rollout.

ToolDescription
argo_rollouts_listList rollouts or experiments.
argo_verify_argo_rollouts_controller_installVerify that the Argo Rollouts controller is installed and running.
argo_verify_kubectl_plugin_installVerify that the kubectl Argo Rollouts plugin is installed.
argo_check_plugin_logsCheck the logs of the Argo Rollouts Gateway API plugin.
argo_promote_rollout *Promote a paused rollout to the next step.
argo_pause_rollout *Pause a rollout.
argo_set_rollout_image *Set the image of a rollout.
argo_verify_gateway_plugin *Verify the installation status of the Argo Rollouts Gateway API plugin.

Cilium

Cilium is the largest provider, with 58 tools ranging from installation to individual BPF maps. An agent that can see every tool spends its context on tool descriptions, so bind only the handful that an agent needs rather than the whole provider.

ToolDescription
cilium_status_and_versionGet the status and version of the Cilium installation.
cilium_get_daemon_statusGet the status of the Cilium daemon for the cluster.
cilium_show_features_statusShow Cilium features status.
cilium_show_configuration_optionsShow Cilium configuration options.
cilium_request_debugging_informationRequest debugging information for the cluster.
cilium_get_endpoints_listGet the list of all endpoints in the cluster.
cilium_get_endpoint_detailsList the details of an endpoint in the cluster.
cilium_get_endpoint_logsGet the logs of an endpoint in the cluster.
cilium_get_endpoint_healthGet the health of an endpoint in the cluster.
cilium_list_identitiesList all identities in the cluster.
cilium_get_identity_detailsGet the details of an identity in the cluster.
cilium_list_servicesList services for the cluster.
cilium_get_service_informationGet information about a service in the cluster.
cilium_validate_cilium_network_policiesValidate Cilium network policies for the cluster.
cilium_display_policy_node_informationDisplay policy node information for the cluster.
cilium_display_selectorsDisplay selectors for the cluster.
cilium_list_local_redirect_policiesList local redirect policies for the cluster.
cilium_show_cluster_mesh_statusShow cluster mesh status.
cilium_list_bgp_peersList BGP peers.
cilium_list_bgp_routesList BGP routes.
cilium_list_cluster_nodesList cluster nodes for the cluster.
cilium_list_node_idsList node IDs for the cluster.
cilium_list_ip_addressesList the IP addresses for the cluster.
cilium_show_ip_cache_informationShow the IP cache information for the cluster.
cilium_show_dns_namesShow the DNS names for the cluster.
cilium_fqdn_cacheManage the FQDN cache for the cluster.
cilium_display_encryption_stateDisplay the encryption state for the cluster.
cilium_list_envoy_configList the Envoy configuration for a resource in the cluster.
cilium_show_load_informationShow load information for the cluster.
cilium_list_metricsList metrics for the cluster.
cilium_list_bpf_mapsList BPF maps for the cluster.
cilium_get_bpf_mapGet a BPF map for the cluster.
cilium_list_bpf_map_eventsList BPF map events for the cluster.
cilium_list_xdp_cidr_filtersList XDP CIDR filters for the cluster.
cilium_get_kv_store_keyGet a key from the kvstore for the cluster.
cilium_list_pcap_recordersList PCAP recorders for the cluster.
cilium_get_pcap_recorderGet a PCAP recorder for the cluster.
cilium_install_cilium *Install Cilium on the cluster.
cilium_upgrade_cilium *Upgrade Cilium on the cluster.
cilium_uninstall_cilium *Uninstall Cilium from the cluster.
cilium_toggle_configuration_option *Toggle a Cilium configuration option.
cilium_toggle_hubble *Enable or disable Hubble.
cilium_toggle_cluster_mesh *Enable or disable cluster mesh.
cilium_connect_to_remote_cluster *Connect to a remote cluster for cluster mesh.
cilium_disconnect_remote_cluster *Disconnect from a remote cluster.
cilium_manage_endpoint_labels *Add or delete the labels of an endpoint in the cluster.
cilium_manage_endpoint_config *Manage the configuration of an endpoint in the cluster.
cilium_disconnect_endpoint *Disconnect an endpoint from the network.
cilium_update_service *Update a service in the cluster.
cilium_delete_service *Delete a service from the cluster.
cilium_delete_policy_rules *Delete policy rules for the cluster.
cilium_update_xdp_cidr_filters *Update XDP CIDR filters for the cluster.
cilium_delete_xdp_cidr_filters *Delete XDP CIDR filters for the cluster.
cilium_set_kv_store_key *Set a key in the kvstore for the cluster.
cilium_delete_key_from_kv_store *Delete a key from the kvstore for the cluster.
cilium_flush_ipsec_state *Flush the IPsec state for the cluster.
cilium_update_pcap_recorder *Update a PCAP recorder for the cluster.
cilium_delete_pcap_recorder *Delete a PCAP recorder for the cluster.

Prometheus

The Prometheus provider queries a Prometheus server directly. Each tool takes the server’s URL as an argument and defaults to http://localhost:9090, which does not resolve from inside the tool server’s container, so have the agent pass the in-cluster address.

ToolDescription
prometheus_query_toolExecute a PromQL query against Prometheus.
prometheus_query_range_toolExecute a PromQL range query against Prometheus.
prometheus_label_names_toolGet all available labels from Prometheus.
prometheus_targets_toolGet all Prometheus targets and their status.
prometheus_promql_toolGenerate a PromQL query.

Kubescape

Kubescape’s tools read scan results that the Kubescape operator has already produced, so they return nothing useful until that operator is installed and has completed a scan. Start with kubescape_check_health, which reports whether the rest of the provider can work.

ToolDescription
kubescape_check_healthCheck whether the Kubescape operator is installed and operational, by verifying the namespace, operator pods, storage pods, CRDs, and scan data availability.
kubescape_list_vulnerability_manifestsList vulnerability manifests from the Kubescape operator, at image or workload level.
kubescape_list_vulnerabilitiesList all CVEs in a specific vulnerability manifest, with a severity summary.
kubescape_get_vulnerability_detailsGet details about a specific CVE in a vulnerability manifest, including affected packages and fix information.
kubescape_list_configuration_scansList configuration security scan results, which show the workloads that have been scanned for misconfigurations.
kubescape_get_configuration_scanGet configuration security scan results for a specific workload, including failed controls and remediation guidance.
kubescape_list_application_profilesList the ApplicationProfiles that capture the runtime behavior of workloads.
kubescape_get_application_profileGet the runtime behavior profile for a specific workload, including the processes that run and the files that are accessed.
kubescape_list_network_neighborhoodsList the NetworkNeighborhoods that record the observed network communication patterns of workloads.
kubescape_get_network_neighborhoodGet the observed ingress and egress connections for a specific workload.

Utilities

Two tools sit outside any product. shell runs an arbitrary command in the server’s container with the server’s ServiceAccount, so treat it as the widest permission that this server grants.

ToolDescription
datetime_get_current_timeReturn the current date and time in ISO 8601 format.
shell *Execute shell commands.

Narrow what kagent-tool-server serves

Serving all 124 tools costs an agent context on every turn, and it grants the server broad authority over your cluster. Two independent settings narrow it, and each one acts at a different layer.

kagent-tools:
  tools:
    enabledTools:
      - k8s
      - helm
    args:
      - "--read-only"
  rbac:
    readOnly: true
    additionalRules:
      - apiGroups: ["networking.istio.io"]
        resources: ["virtualservices", "destinationrules", "gateways"]
        verbs: ["get", "list", "watch"]
FieldDescription
tools.enabledToolsThe providers to register, from k8s, helm, istio, cilium, argo, prometheus, kubescape, and utils. Omit or leave empty to register every provider.
tools.argsExtra command line arguments for the server. Add --read-only here to skip the write tools that this page marks with *.
rbac.readOnlyBinds the server’s ServiceAccount to a read-only ClusterRole of get, list, and watch instead of cluster-admin. Defaults to false.
rbac.allowSecretsApplies only where rbac.readOnly is true, and grants the read-only ClusterRole read access to Secrets. Defaults to false.
rbac.additionalRulesApplies only where rbac.readOnly is true. Extra rules to append to the read-only ClusterRole, for the CRDs that the Istio, Cilium, and Argo providers read.

Important

--read-only and rbac.readOnly are separate controls, and setting only one leaves a gap. --read-only stops the write tools from being registered, so an agent cannot call them. rbac.readOnly removes the cluster permissions that back them. Set only the flag, and the ServiceAccount keeps cluster-admin, which anything else in the container can still use. Set only the RBAC value, and the write tools stay in the catalog and fail at call time with permission errors that the agent then tries to work around.

Because the settings are per-installation, they change what every agent sees. To give one agent a smaller set while leaving the server intact, list the tools on the tool binding instead, as described in About tools.

Warning

A tool binding’s tool list does not narrow anything on the Claude HarnessHarnessA Kubernetes custom resource defining how an agent is allowed to run: its runtime, workload image, WorkerPool and snapshot storage, and which AgentTemplates it accepts.Learn more. The compiler exposes the whole server instead, and names the tools that you selected in a warning on the AgentTemplate’s status.harnesses[].warnings. The kagent and Codex harnesses both honor the list. Where an agent runs on the Claude harness and must not reach a tool, narrow the server with tools.enabledTools or --read-only rather than with the binding.

kagent-grafana-mcp

The kagent-grafana-mcp server runs mcp-grafana, Grafana’s own MCP server. The kagent chart packages it as a subchart. Its tools fall into four groups:

  • Grafana dashboards, data sources, and alert rules.
  • PromQL queries against Grafana’s Prometheus data sources.
  • LogQL queries against Loki.
  • Grafana incidents and on-call schedules.

Set the Grafana instance that the server queries, along with its credentials, at install time.

grafana-mcp:
  enabled: true
  grafana:
    url: "grafana.kagent:3000/api"
    serviceAccountToken: "<token>"
FieldDescription
grafana.urlThe Grafana API endpoint that the server queries. Defaults to grafana.kagent:3000/api, which matches the Grafana instance in contrib/addons/grafana.yaml.
grafana.serviceAccountTokenA Grafana service account token. Empty by default, so the server starts and answers discovery while every tool call fails until you supply a token.
grafana.secretRefThe name of an existing Secret that holds GRAFANA_SERVICE_ACCOUNT_TOKEN. Use this instead of serviceAccountToken to keep the token out of your Helm values.

Note

Upstream publishes no tag other than latest, so this subchart tracks the mcp/grafana:latest image on Docker Hub. A kagent release therefore does not pin which tools this server serves, and the set can change without a kagent upgrade. Read status.discoveredTools on kagent-grafana-mcp for the tools that your installation has, rather than relying on a published list.

Community and contributed servers

kagent’s repository carries example servers in contrib/tools. Each one is a starting point rather than a supported component, and their manifests were written against different kagent API versions, so check the apiVersion before you apply one.

ServerReady to applyDescription
k8sgptYesK8sGPT integration, for diagnosing cluster problems. Declares RemoteMCPServer on kagent.dev/v1alpha3.
server-everythingYesThe MCP reference server, useful for testing a binding end to end. Declares RemoteMCPServer on kagent.dev/v1alpha3.
GitHub MCP ServerNoTools for issues, pull requests, repositories, and actions. Its chart still declares the removed ToolServer kind.
mcp-grafanaNoSuperseded by the grafana-mcp subchart that a kagent installation already registers. Its chart still declares the removed ToolServer kind.
context7NoDocumentation lookup over stdio. Both the ToolServer kind and the stdio transport were removed.

To register any other MCP server, write a RemoteMCPServer that points at its URL. Your first MCP tool works through a complete example.

Note

A RemoteMCPServer takes a URL, so kagent connects only to servers that speak streamable HTTP or Server-Sent Events (SSE). To reach a server that runs over stdio, wrap it in a deployment that exposes an HTTP endpoint. kmcp builds and runs such servers.

Next steps