k8s-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DATA_DIR | No | Data storage directory for cluster configs, kubeconfigs, backups, etc. | ./data |
| SSE_HOST | No | Host for the SSE/Streamable HTTP server. | 0.0.0.0 |
| SSE_PORT | No | Port for the SSE/Streamable HTTP server. | 8000 |
| LOG_LEVEL | No | Logging level. | info |
| MCP_SSE_PATH | No | Path for SSE connection endpoint. | /sse |
| MCP_JWT_SECRET | No | JWT signing secret. Required if MCP_AUTH_ENABLED is true. | |
| MCP_AUTH_ENABLED | No | Set to 'true' to enable JWT authentication and multi-tenant isolation. | false |
| MCP_MESSAGE_PATH | No | Path for SSE message POST endpoint. | /message |
| MCP_JWT_ALGORITHM | No | JWT signing algorithm. | HS256 |
| MCP_STREAMABLE_PATH | No | Path for Streamable HTTP single endpoint. | /mcp |
| MCP_ADMIN_API_PREFIX | No | Prefix for admin REST API routes. | /admin |
| MCP_TOKEN_MAX_EXPIRY | No | Maximum token expiry in seconds (default 90 days). | 7776000 |
| MCP_BACKUP_RETENTION_DAYS | No | Backup retention period in days. Set to 0 to disable automatic cleanup. | 90 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_cluster_infoB | 获取Kubernetes集群信息 Args: kubeconfig_path: kubeconfig 文件路径,不指定则使用 cluster_name 或默认集群 cluster_name: 集群配置名称(clusters.json 中的 name),kubeconfig_path 未指定时使用 Returns: 集群信息 |
| get_pod_logsA | 获取Pod的日志 Args: name: Pod名称 namespace: Kubernetes命名空间,默认为default lines: 日志行数,默认为100 container: 容器名称,如果Pod有多个容器则需要指定 previous: 是否获取上一实例(崩溃/重启前)的日志,默认为False kubeconfig_path: kubeconfig 文件路径,不指定则使用 cluster_name 或默认集群 cluster_name: 集群配置名称(clusters.json 中的 name),kubeconfig_path 未指定时使用 Returns: 包含Pod日志的结果 |
| exec_pod_commandA | 在Pod中执行命令 Args: pod_name: Pod名称 command: 要执行的命令列表,如 ["ls", "-la"] namespace: Kubernetes命名空间,默认为default container: 容器名称,如果Pod有多个容器则需要指定 kubeconfig_path: kubeconfig 文件路径,不指定则使用 cluster_name 或默认集群 cluster_name: 集群配置名称(clusters.json 中的 name),kubeconfig_path 未指定时使用 Returns: 命令执行结果 |
| copy_pod_filesA | Pod 与 MCP 客户端之间拷贝文件 Args: pod_name: Pod 名称 direction: 拷贝方向,"from_pod" 读取 Pod 文件内容,"to_pod" 将内容写入 Pod pod_paths: from_pod 时为 Pod 内文件路径(JSON 数组或单个路径,支持目录);to_pod 时为 Pod 内目标文件路径 content: to_pod 时必填(local_path 未指定时),要写入 Pod 的文件内容 encoding: to_pod 时 content 的编码方式,"text"(默认)或 "base64"(二进制文件) local_path: 本地文件路径。from_pod 时指定则直接将解码后的文件保存到此目录(二进制文件不再需要中间 base64 文件);to_pod 时指定则从此本地文件读取内容写入 Pod namespace: 命名空间,默认为 default container: 容器名称,多容器 Pod 需指定 kubeconfig_path: kubeconfig 文件路径,不指定则使用 cluster_name 或默认集群 cluster_name: 集群配置名称(clusters.json 中的 name),kubeconfig_path 未指定时使用 Returns: from_pod: 文件内容或本地保存路径; to_pod: 写入确认 |
| port_forwardA | Pod 端口转发管理:启动、停止、列出转发会话 Args: action: 操作类型 - "start"(启动转发)、"stop"(停止转发)、"list"(列出当前转发) pod_name: start 时必填,Pod 名称 local_port: start 时必填,本地端口(1-65535) pod_port: start 时必填,Pod 端口(1-65535) namespace: Kubernetes 命名空间,默认 default forward_id: stop 时必填,要停止的转发会话 ID(由 start 返回或 list 查看) idle_timeout: start 时可选,空闲超时秒数(0=不超时)。超过此时间无连接活动则自动停止转发 kubeconfig_path: kubeconfig 文件路径 cluster_name: 集群配置名称 Returns: start: 转发会话信息(含 forward_id); stop: 停止确认; list: 所有活跃转发 |
| batch_list_resourcesB | 批量查看资源 Args: resource_types: 资源类型,支持:1) "all" 列出集群所有可用 API 资源类型;2) JSON 数组如 ["pods","deployments"];3) 单个类型如 "pods"。支持任意集群内可发现的资源(含 CRD) namespace: 命名空间 kubeconfig_path: kubeconfig 文件路径,不指定则使用 cluster_name 或默认集群 cluster_name: 集群配置名称(clusters.json 中的 name),kubeconfig_path 未指定时使用 Returns: 批量查看结果 |
| batch_create_resourcesA | 批量创建资源 Args: resources: JSON格式的资源列表,每个资源包含kind、metadata、spec namespace: 命名空间 rollback_on_failure: 失败时是否回滚已创建的资源 kubeconfig_path: kubeconfig 文件路径,不指定则使用 cluster_name 或默认集群 cluster_name: 集群配置名称(clusters.json 中的 name),kubeconfig_path 未指定时使用 |
| batch_update_resourcesC | 批量更新资源 Args: resources: JSON格式的资源列表 namespace: 命名空间 kubeconfig_path: kubeconfig 文件路径,不指定则使用 cluster_name 或默认集群 cluster_name: 集群配置名称(clusters.json 中的 name),kubeconfig_path 未指定时使用 |
| batch_delete_resourcesB | 批量删除资源 Args: resources: JSON格式的资源列表 namespace: 命名空间 grace_period_seconds: 优雅删除等待时间 kubeconfig_path: kubeconfig 文件路径,不指定则使用 cluster_name 或默认集群 cluster_name: 集群配置名称(clusters.json 中的 name),kubeconfig_path 未指定时使用 |
| batch_describe_resourcesA | 批量获取资源详细信息 Args: resource_specs: 资源规格列表,格式:[{"kind": "Pod", "name": "my-pod"}, {"kind": "Service", "name": "my-svc"}] namespace: 命名空间 kubeconfig_path: kubeconfig 文件路径,不指定则使用 cluster_name 或默认集群 cluster_name: 集群配置名称(clusters.json 中的 name),kubeconfig_path 未指定时使用 Returns: 批量资源详细信息 |
| batch_restart_resourcesB | 批量重启资源 Args: resources: JSON格式的资源列表,格式:[{"kind": "Deployment", "name": "my-app"}, {"kind": "StatefulSet", "name": "my-db"}] namespace: 命名空间 kubeconfig_path: kubeconfig 文件路径,不指定则使用 cluster_name 或默认集群 cluster_name: 集群配置名称(clusters.json 中的 name),kubeconfig_path 未指定时使用 Returns: 批量重启结果 |
| batch_rollout_resourcesA | 批量发布操作:查看状态、回滚、暂停、恢复 Args: operations: JSON 数组,每项格式 {"kind":"Deployment","name":"xxx","action":"status|undo|pause|resume","revision":3} action: status 查看发布状态, undo 回滚(不指定 revision 则回滚到上一版本, 指定 revision 则回滚到该版本), pause 暂停(仅Deployment), resume 恢复(仅Deployment) namespace: 命名空间 kubeconfig_path: kubeconfig 文件路径,不指定则使用 cluster_name 或默认集群 cluster_name: 集群配置名称(clusters.json 中的 name),kubeconfig_path 未指定时使用 Returns: 批量操作结果 |
| batch_top_resourcesA | 批量查看 Node/Pod 的 CPU、内存使用(类似 kubectl top) Args: resource_types: 资源类型,JSON 数组如 ["nodes","pods"] 或 "nodes" 或 "pods" namespace: 命名空间(仅对 pods 有效) kubeconfig_path: kubeconfig 文件路径,不指定则使用 cluster_name 或默认集群 cluster_name: 集群配置名称(clusters.json 中的 name),kubeconfig_path 未指定时使用 Returns: nodes 和/或 pods 的 CPU、内存使用数据。依赖集群已部署 metrics-server。 |
| import_clusterB | 导入集群配置。 kubeconfig 参数接受三种形式:
服务端会自动校验 client-certificate-data 与 client-key-data 是否匹配。 如果内容在传输过程中被损坏,校验会失败并返回包含 curl 上传指引的错误信息。 Args: name: 集群名称(仅允许字母、数字、点、下划线、连字符) kubeconfig: 服务端文件路径 或 kubeconfig 完整文本内容 service_account: 服务账户名称,默认为default namespace: 默认命名空间,默认为default is_default: 是否设为默认集群,默认为False Returns: 导入结果 |
| list_clustersA | 查看集群配置:不指定 name 时列出所有已导入集群,指定 name 时返回该集群详情 Args: name: 集群名称(可选)。省略则列出全部集群;指定则返回该集群的配置详情 Returns: 集群列表或单个集群配置 |
| delete_clusterC | 删除集群配置 Args: name: 集群名称 Returns: 删除结果 |
| set_default_clusterD | 设置默认集群 Args: name: 集群名称 Returns: 设置结果 |
| test_cluster_connectionA | 测试集群连接(会从磁盘重新加载 kubeconfig,确保使用最新凭据) Args: name: 集群名称 Returns: 连接测试结果 |
| load_kubeconfigB | 加载kubeconfig文件 注意:kubeconfig 包含集群认证凭据(token、证书等),请勿在不可信环境中暴露。 可通过 mask_sensitive=True 脱敏 token、证书等敏感字段后再输出。 Args: name: 配置名称 mask_sensitive: 是否脱敏敏感字段(token、client-certificate-data、client-key-data),默认 False Returns: kubeconfig文件内容 |
| list_kubeconfigsA | 列出所有保存的kubeconfig文件 Returns: kubeconfig文件列表 |
| delete_kubeconfigC | 删除kubeconfig文件 Args: name: 配置名称 Returns: 删除结果 |
| get_kubeconfig_infoA | 获取 kubeconfig 文件详细信息或验证 kubeconfig 内容格式 两种用法:
Args: name: 已保存的配置名称(与 content 二选一) content: kubeconfig 文件内容(与 name 二选一,用于验证格式) Returns: kubeconfig 详细信息或验证结果 |
| check_cluster_healthA | 检查Kubernetes集群健康状态,可选附带 RBAC 权限冲突检测 Args: kubeconfig_path: kubeconfig 文件路径,不指定则使用 cluster_name 或默认集群 cluster_name: 集群配置名称(clusters.json 中的 name),kubeconfig_path 未指定时使用 include_rbac_check: 是否同时检查 RBAC 权限冲突(如重复绑定、冗余权限),默认 False rbac_namespace: RBAC 检查的目标命名空间,仅 include_rbac_check=True 时有效;省略则检查所有系统命名空间 Returns: 集群健康检查结果(含可选 RBAC 冲突报告) |
| check_node_healthB | 检查节点健康状态 Args: node_name: 节点名称,如果不提供则检查所有节点 kubeconfig_path: kubeconfig 文件路径,不指定则使用 cluster_name 或默认集群 cluster_name: 集群配置名称(clusters.json 中的 name),kubeconfig_path 未指定时使用 Returns: 节点健康状态报告 |
| manage_nodeA | 节点运维管理:排水(drain)、标记不可调度(cordon)、恢复调度(uncordon) Args: node_name: 节点名称 action: 操作类型 - "drain":cordon + 驱逐 Pod(等同于 kubectl drain) - "cordon":仅标记不可调度,不驱逐现有 Pod(等同于 kubectl cordon) - "uncordon":恢复为可调度(等同于 kubectl uncordon) ignore_daemonset: drain 时是否跳过 DaemonSet Pod,默认 True ignore_mirror_pods: drain 时是否跳过 mirror pod(静态 Pod 镜像),默认 True kubeconfig_path: kubeconfig 文件路径,不指定则使用 cluster_name 或默认集群 cluster_name: 集群配置名称(clusters.json 中的 name),kubeconfig_path 未指定时使用 Returns: 操作结果 |
| check_pod_healthA | 检查Pod健康状态,支持筛选失败的Pod Args: pod_name: Pod名称,如果不提供则检查命名空间中的所有Pod namespace: Kubernetes命名空间 kubeconfig_path: kubeconfig 文件路径,不指定则使用 cluster_name 或默认集群 cluster_name: 集群配置名称(clusters.json 中的 name),kubeconfig_path 未指定时使用 only_failed: 是否只返回失败或异常的Pod,默认为False limit: 当检查命名空间内所有 Pod 时,最多处理的 Pod 数量,默认 100,避免大量 Pod 时过慢 Returns: Pod健康状态报告,包含失败Pod筛选功能 |
| get_cluster_resource_usageA | 获取集群资源使用情况 Args: namespace: Kubernetes命名空间,"all"表示所有命名空间,默认为"all" kubeconfig_path: kubeconfig 文件路径,不指定则使用 cluster_name 或默认集群 cluster_name: 集群配置名称(clusters.json 中的 name),kubeconfig_path 未指定时使用 Returns: 集群资源使用情况报告。pod_resources 超过 50 条时会截断,返回 truncated 和 total_count 说明 |
| get_cluster_eventsA | 获取集群事件 Args: namespace: Kubernetes命名空间,"all"表示所有命名空间 kubeconfig_path: kubeconfig 文件路径,不指定则使用 cluster_name 或默认集群 cluster_name: 集群配置名称(clusters.json 中的 name),kubeconfig_path 未指定时使用 event_type: 事件类型过滤(Warning, Normal等) limit: 返回事件数量限制 Returns: 集群事件列表 |
| backup_namespaceC | 备份命名空间 Args: namespace: 命名空间名称 cluster_name: 集群名称(可选) include_secrets: 是否包含 Secret 资源,默认 True kubeconfig_path: kubeconfig 文件路径,不指定则使用 cluster_name 或默认集群 |
| backup_resourceA | 备份特定资源 Args: resource_type: 资源类型(deployment, service, configmap等) resource_name: 资源名称 namespace: 命名空间 cluster_name: 集群名称(可选) kubeconfig_path: kubeconfig 文件路径,不指定则使用 cluster_name 或默认集群 |
| restore_from_backupC | 从备份恢复资源 Args: backup_file: 备份文件路径 target_namespace: 目标命名空间(可选) target_cluster: 目标集群(可选) kubeconfig_path: kubeconfig 文件路径,不指定则使用默认集群 |
| list_backupsA | 列出备份文件(仅读取本地备份目录,无需 K8s 连接) Args: cluster_name: 集群名称(可选) namespace: 命名空间(可选) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Tobewont/k8s-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server