Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DEBUGNoInclude tracebacks in tool errors.false
LOG_LEVELNoStandard logging level.INFO
KUBECTL_PATHNoPath to the kubectl binary.kubectl
KUBE_CONTEXTNokubectl context to use. Defaults to the current context.
ALLOWED_ROOTSNoFilesystem sandbox. OS-path-separator delimited.cwd + project root
GENERATED_DIRNoWhere manifests are written../generated
KUBE_NAMESPACENoDefault target namespace.default
KUBECTL_TIMEOUTNoSeconds before a kubectl call is aborted.120

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
inspect_projectA

Start here. Given a project directory, report which Docker artefacts it contains: Dockerfile(s), a Compose file, .env files, source directories, dependency files and the names of the Compose services. Secret values are never returned.

inspect_dockerfileA

Parse a Dockerfile into the facts a migration needs: base images and build stages, EXPOSE ports, WORKDIR, USER, ENTRYPOINT/CMD, declared ENV keys and the HEALTHCHECK. Use it to learn which port an image actually listens on.

inspect_composeA

Parse a Compose file into normalised services: images, build contexts, port mappings, environment, env_file, volumes, depends_on, healthchecks, restart policy, networks and resource limits. Values that look like credentials are returned as and listed by key in secret_keys.

inspect_environmentA

List the environment variables the project uses, from .env files and from Compose, and classify each as configuration or secret. Secret VALUES are never returned -- only the key names -- so this is safe to call on a project with real credentials.

analyze_projectA

Explain how this project's Docker concepts map to Kubernetes: containers to Deployments or StatefulSets, port mappings to Services, environment to ConfigMaps and Secrets, volumes to PersistentVolumeClaims, HEALTHCHECK to readiness and liveness probes, and Compose service names to Service DNS. Also reports what cannot be migrated automatically (bind mounts, depends_on ordering, locally built images) as warnings and blockers.

create_migration_planA

Build the concrete, reviewable migration plan: per-service workload kind, replicas, images, ports, ConfigMap/Secret split, volumes, probes and resources, plus flat summaries of resources, ports, environment variables, secrets, volumes and healthchecks, with warnings and manual_steps. SHOW THIS PLAN TO THE USER before generating or deploying anything. Nothing is written to disk and no cluster is touched.

generate_manifestsA

Write Kubernetes YAML for the project into a per-project directory under the server's generated/ folder. Only the resources the application actually needs are produced: a stateless service gets a Deployment, Service and ConfigMap, while a database also gets a StatefulSet with volumeClaimTemplates and a headless Service. Secrets are written with placeholders, never real credentials. The plan is re-derived from the project, so pass the same namespace/image_registry you passed to create_migration_plan. Writes files only -- it does not touch a cluster.

validate_manifestsA

Check manifests for the mistakes that survive 'kubectl apply' but break the application: selectors that match no pods, a Service targetPort no container listens on, probes aimed at the wrong port, references to a ConfigMap, Secret or PVC that does not exist, undefined volume mounts, duplicate resources, wrong apiVersion, invalid names and out-of-range nodePorts. ALWAYS run this before deploying. Returns valid=false with human-readable errors when the manifests would break.

get_cluster_infoA

Confirm a Kubernetes cluster is reachable and list its nodes and namespaces. Call this before deploying so a connection problem is not mistaken for a deployment failure.

apply_manifestsA

DEPLOY. This writes to the cluster and changes running workloads. Requires approved=true, which you may only pass after the user has seen the migration plan and its warnings and has explicitly said to deploy. Do not infer approval from the original request. Run validate_manifests first; this tool refuses to apply manifests that fail validation. Use dry_run=true to have the API server check the manifests without changing anything -- a dry run needs no approval.

get_deployment_statusA

Report desired vs ready replicas and the rollout conditions for a Deployment, falling back to a StatefulSet of the same name.

get_podsA

List pods with phase, ready count, restart count and any detected problem (CrashLoopBackOff, ImagePullBackOff, Pending, OOMKilled, CreateContainerConfigError). Use this first when a deployment looks unhealthy.

get_pod_logsA

Read a pod's container logs. For a crash-looping pod set previous=true to read the instance that already died -- that is where the real error is.

get_servicesA

List Services with their type, ports, selector and endpoint count. A Service with zero endpoints is the usual reason an application is unreachable even though its pods look fine.

get_eventsA

Return recent Kubernetes events, oldest first. Events explain scheduling failures, image pull errors, probe failures and volume mount problems that the pod status alone does not.

verify_deploymentA

Run the post-deployment checks in one call: the workload exists, ready replicas match desired, pods are Running and Ready, restart counts are zero, Services exist and have endpoints, and optionally that a health endpoint responds through the API server proxy. Never assume a deployment succeeded -- call this. If healthy is false, call diagnose_deployment.

diagnose_deploymentA

Gather pods, container states, Services and warning events, and return a diagnosis: what is wrong, the evidence, the likely cause and a suggested fix. Recognises CrashLoopBackOff, ImagePullBackOff, Pending, OOMKilled, CreateContainerConfigError, failing probes, Services without endpoints and PVC problems. Call this whenever verify_deployment reports healthy=false.

Prompts

Interactive templates invoked by user choice

NameDescription
migrateRun the full inspect - analyze - plan - generate - validate - deploy workflow.
diagnoseInvestigate why workloads in a namespace are unhealthy.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.1/5.0

Scored across 17 tools

Disambiguation5/5

Each tool targets a distinct phase or resource: inspection, planning, generation, validation, deployment, and specific Kubernetes status checks. The descriptions clearly differentiate overlapping-looking tools like inspect_project, inspect_dockerfile, and inspect_compose by specifying their exact scope.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern, with verbs like get, inspect, create, generate, validate, apply, verify, and diagnose. This makes the toolset highly predictable and easy for an agent to navigate.

Tool Count4/5

17 tools is slightly above the typical 3-15 range, but the count is justified by the full migration-and-operations lifecycle the server covers. Each tool appears to serve a necessary, non-overlapping purpose, so the set feels slightly heavy yet reasonable.

Completeness4/5

The toolset covers the complete Docker-to-Kubernetes workflow from artifact inspection, analysis, planning, manifest generation, validation, deployment, and post-deployment verification/diagnosis. Minor gaps such as no explicit rollback or cleanup tool are present, but the core migration lifecycle has no dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues