mcp-devops-server
Allows listing Docker containers and retrieving container logs.
Allows listing Helm releases and previewing Helm upgrade changes.
Allows getting and describing Kubernetes resources, and retrieving pod logs.
Allows running terraform plan and showing terraform state.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-devops-servershow me all pods in the default namespace"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-devops-server
An MCP (Model Context Protocol) server that gives AI agents access to DevOps tools — kubectl, terraform, helm, docker, and AWS cost analysis.
Works with Claude Desktop, Cursor, GitHub Copilot, and any MCP-compatible client.
Tools
Tool | Description |
| Get Kubernetes resources |
| Describe a Kubernetes resource |
| Get pod logs |
| Run terraform plan |
| Show terraform state |
| List Helm releases |
| Preview Helm upgrade changes |
| List Docker containers |
| Get container logs |
| Get AWS cost summary (last 7/30 days) |
| List AWS resources by service |
Related MCP server: K8s MCP Server
Installation
Using npx (no install)
npx @basel5001/mcp-devops-serverGlobal install
npm install -g @basel5001/mcp-devops-server
mcp-devops-serverFrom source
git clone https://github.com/basel5001/mcp-devops-server.git
cd mcp-devops-server
npm install
npm run build
npm startConfiguration
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"devops": {
"command": "npx",
"args": ["-y", "@basel5001/mcp-devops-server"]
}
}
}Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"devops": {
"command": "npx",
"args": ["-y", "@basel5001/mcp-devops-server"]
}
}
}Security Considerations
Command allowlist: Only
kubectl,terraform,helm,docker, andawscommands can be executed.Argument sanitization: Shell metacharacters (
;,&,|,`,$) and path traversal (..) are rejected.No shell execution: Commands run via
execFile(notexec), preventing shell injection.Timeouts: All commands have configurable timeouts (default 30s) to prevent hanging.
Read-only by design: No destructive operations (delete, apply, destroy) are exposed.
Development
npm install
npm run dev # watch mode
npm run build # compile
npm run lint # lintLicense
MIT
Available Tools
11 toolsaws_cost_summaryC
Get AWS cost summary
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to look back (7 or 30) | |
| granularity | No | DAILY |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are available, so the description must carry the full burden. It does not disclose behavioral traits such as whether it queries the Cost Explorer API, the time period behavior, or idempotency. The description is vague and lacks detail beyond the basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that states the core purpose. It is front-loaded and free of verbosity. However, it could be slightly expanded to include essential context without becoming lengthy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has two optional parameters and no output schema, the description is incomplete. It does not explain the output format, the meaning of the summary, or any caveats about data freshness or API costs. The context signals indicate a low complexity but the description fails to provide a complete picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, meaning one parameter ('days') has a description. The tool description does not mention any parameters or add meaning beyond the schema. The 'granularity' parameter's enum values are clear from the schema, but the description provides no guidance on usage or interpretation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get AWS cost summary' clearly states the action (get) and resource (AWS cost summary). It is distinct from sibling tools like aws_resource_inventory, which focus on inventory rather than cost. However, it lacks specificity about what kind of summary (e.g., aggregate, per service).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not indicate when to use this tool over alternatives, or any prerequisites or context for retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aws_resource_inventoryC
List AWS resources by service
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | AWS region | |
| service | Yes | AWS service to list |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only says 'list' which implies read-only, but no mention of permissions, rate limits, or scope of resources listed. Incomplete behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but lacks structure like bullet points or usage examples. Could be improved with brevity while adding value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no description of return format. For a listing tool, it would be helpful to mention what kind of data is returned (e.g., resource IDs, names, count). Incomplete for a new user.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters, so the description adds no extra semantics beyond what's in the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List AWS resources by service' clearly states the action and the resource type, and distinct from sibling tools which cover Kubernetes, Terraform, Docker, and AWS cost analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like aws_cost_summary or when to combine with other tools. Lacks context on typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docker_logsB
Get Docker container logs
| Name | Required | Description | Default |
|---|---|---|---|
| tail | No | Number of lines from the end | |
| since | No | Show logs since timestamp or duration | |
| container | Yes | Container name or ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fails to disclose behavioral traits like read-only nature, potential performance impact, or streaming behavior. It only states the obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence, front-loaded with key action and resource. No wasted words, though slightly under-specified for context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with well-documented parameters and no output schema, the description is adequate. It could include more on return format or default behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter is well-described. The description adds no extra meaning beyond the schema, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get Docker container logs' clearly states the action (Get) and resource (Docker container logs), distinguishing it from sibling tools like kubectl_logs (Kubernetes).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives, such as docker_ps. Missing context on prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docker_psC
List Docker containers
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | Show all containers (including stopped) | |
| filter | No | Filter (e.g. status=running) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It does not mention read-only behavior, side effects, or auth requirements, leaving assumptions implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence front-loading the purpose. Could include a small clarification about default behavior but still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Minimally complete for a simple list tool with optional params and no output schema. Lacks details about output format or default behavior, but adequate for basic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description adds no extra meaning beyond the schema, meeting the baseline but no more.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (List) and resource (Docker containers), but lacks specificity about scope (all vs. running) without referencing the 'all' parameter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like 'docker_logs' or 'kubectl_get'. No context about prerequisites or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
helm_diffB
Preview Helm upgrade changes
| Name | Required | Description | Default |
|---|---|---|---|
| chart | Yes | Chart reference (e.g. bitnami/nginx) | |
| values | No | Path to values file | |
| release | Yes | Release name | |
| namespace | No | Kubernetes namespace |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It states 'Preview' but does not disclose prerequisites (e.g., cluster access), side effects, or output format. Returns nothing about whether changes are shown as diff or summary.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise phrase with no wasted words. It is front-loaded and clear, though it could benefit from a sentence structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
As a preview tool with no output schema, the description is too minimal. It does not explain what the preview shows, how to use the result, or any limitations. Sibling tools like terraform_plan typically provide more context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% description coverage for all 4 parameters. The description does not add additional meaning beyond the schema, so it meets the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Preview Helm upgrade changes' uses a specific verb 'Preview' and clearly identifies the resource as 'Helm upgrade changes'. It distinguishes this tool from siblings like helm_list (which lists releases) and terraform_plan (which plans Terraform changes).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage before a Helm upgrade but does not provide explicit guidance on when to use or alternatives. It lacks context compared to siblings like terraform_plan, which often have more detailed usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
helm_listC
List Helm releases
| Name | Required | Description | Default |
|---|---|---|---|
| namespace | No | Kubernetes namespace (omit for all) | |
| allNamespaces | No | List across all namespaces |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the burden. It only states 'List Helm releases' without disclosing read-only nature, potential side effects, authentication needs, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (3 words), which is efficient but lacks any structural elements like context or examples. It earns its place but could be expanded slightly for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description is incomplete. It does not explain the return format, pagination, or error scenarios, leaving the agent with limited actionable context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters with descriptions (100% coverage). The tool description adds no additional meaning beyond what the schema provides, so it meets the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List Helm releases' is a clear verb+resource pair, distinguishing it from sibling tools like kubectl_logs or terraform_plan. However, it does not differentiate from other Helm-specific tools such as helm_diff.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There are no hints about prerequisites, filtering, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kubectl_describeC
Describe a Kubernetes resource
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Resource name | |
| resource | Yes | Resource type | |
| namespace | No | Kubernetes namespace |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only states 'describe', implying a read operation but does not explicitly confirm read-only nature, required permissions, output format, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no waste, but it is under-informative. It achieves conciseness at the expense of clarity and completeness, lacking front-loaded context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should compensate by explaining return values or expected output. It does not, leaving an agent uninformed about what 'describe' produces (e.g., YAML, status details).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with basic descriptions for each parameter (name, resource, namespace). The tool description adds no additional meaning beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Describe a Kubernetes resource' provides a verb and resource type but is vague. It doesn't specify what 'describe' entails (e.g., show detailed configuration, status), and fails to distinguish from sibling tools like kubectl_get, which also retrieves resource information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like kubectl_get, kubectl_logs, or helm_list. There are no when-not or context cues to help an agent choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kubectl_getC
Get Kubernetes resources
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Specific resource name | |
| output | No | Output format | |
| resource | Yes | Resource type (e.g. pods, deployments, services) | |
| namespace | No | Kubernetes namespace |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, permissions required, or output characteristics. The tool name implies retrieval but lacks explicit transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it fails to convey essential information beyond the name. It does not earn its place as it adds minimal value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations. The description is too brief to provide sufficient context for a tool with 4 parameters, especially lacking guidance on behavior, output, or prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema, which already documents each parameter adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get Kubernetes resources' identifies the verb and resource, but it is generic and does not distinguish from sibling tool 'kubectl_describe'. This lack of specificity limits purpose clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like kubectl_describe or kubectl_logs. The description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kubectl_logsC
Get logs from a Kubernetes pod
| Name | Required | Description | Default |
|---|---|---|---|
| pod | Yes | Pod name | |
| tail | No | Number of lines from the end | |
| since | No | Duration like 1h, 30m | |
| container | No | Container name | |
| namespace | No | Kubernetes namespace |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It only states 'Get logs', omitting details like streaming behavior, default tail, or handling of multiple containers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no extra words, achieving conciseness. However, it may be under-specified for an agent unfamiliar with the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the schema covers parameters, the description lacks context about return type (logs as text), limitations (single pod, cluster access required), and common usage patterns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters adequately. The description adds no additional meaning beyond what is in the schema, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'logs from a Kubernetes pod'. It is distinct from sibling tools like kubectl_get (which gets resources) and docker_logs (Docker logs), but does not explicitly differentiate itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool over alternatives. The description does not mention exclusions or context, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
terraform_planC
Run terraform plan
| Name | Required | Description | Default |
|---|---|---|---|
| vars | No | Terraform variables as key-value pairs | |
| directory | Yes | Path to the Terraform working directory |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear the full burden. It only states the operation, without disclosing behavioral traits such as side effects, authentication requirements, or whether the plan operation is safe to run multiple times.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While extremely concise, the description is under-specified. It does not earn its place by providing useful information beyond the tool name; a single low-value sentence is not sufficient for a complex operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is incomplete given the complexity of terraform plan. It does not explain what the plan outputs, how to interpret results, or how it relates to sibling tools like terraform_show. No output schema is present to fill the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for its two parameters. The description adds no additional meaning beyond what the schema provides, but per guidelines, the baseline is 3 since schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Run terraform plan' clearly states the action and resource, making the purpose easily understandable. However, it does not distinguish this tool from siblings like terraform_show, which is a shortcoming.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, expected workflow context, or scenarios where terraform_plan is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
terraform_showC
Show terraform state
| Name | Required | Description | Default |
|---|---|---|---|
| json | No | Output as JSON | |
| directory | Yes | Path to the Terraform working directory |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does not state whether the operation is read-only, safe, or requires any permissions. The phrase 'Show terraform state' implies a read operation, but the agent cannot confirm safety or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no unnecessary words. However, it is too brief, bordering on underspecification. It could include more details without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (2 parameters, no output schema), the description is still incomplete. It does not explain the output format (e.g., human-readable vs. JSON), the behavior with missing state files, or any side effects. More context is needed for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters having descriptions in the schema. The tool description adds no additional meaning beyond what the schema already provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Show terraform state' provides a verb and resource, but it is nearly tautological with the tool name 'terraform_show'. It adds the word 'state', which gives some specificity, but does not differentiate from sibling tools like 'terraform_plan' that also deal with Terraform state. Overall, it is minimally clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., terraform_plan). There is no mention of prerequisites, context, or conditions. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct resource and action (e.g., logs vs. describe, plan vs. show). No two tools perform the same operation, even across different systems (e.g., kubectl_logs vs. docker_logs are clearly differentiated by prefix).
All tools follow a consistent pattern: system_action in snake_case (e.g., kubectl_logs, terraform_plan, aws_cost_summary). No mixing of conventions like camelCase or inconsistent verbs.
11 tools is well-scoped for a DevOps server covering multiple subsystems (Kubernetes, Terraform, Helm, Docker, AWS). Each tool provides a distinct operation without redundancy.
The tool surface has significant gaps: no create/delete for Kubernetes, no apply/destroy for Terraform, no install/uninstall for Helm, no build/exec for Docker, and only read-only AWS operations. Agents lack essential lifecycle actions.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Fail-closed policy guardrails for AI agents running kubectl, terraform, helm, and argocd.
Query your team's drift, vulnerability, and upgrade data from any AI assistant. OAuth 2.1, 51 tools.
Read-only AI coding tools for change verification, release readiness, capacity, and guidance.
Safe, read-only Postgres and MySQL access for AI agents. Audit log + column-level controls.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides read-only access to Kubernetes clusters for AI assistants.23MIT
- AlicenseNot gradedqualityDmaintenanceEnables LLMs like Claude to securely execute Kubernetes CLI tools (kubectl, helm, istioctl, argocd) across multiple clusters through dynamic kubeconfig support, allowing natural language Kubernetes management and operations.5MIT
- AlicenseBqualityDmaintenanceAI-native control plane for Kubernetes and GitOps. Provides 30+ tools for service deployment, database provisioning, and log management via natural language.11MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to perform DevOps tasks including Kubernetes management, cloud provider operations, CI/CD, security scanning, and infrastructure monitoring through natural language.MIT
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/basel5001/mcp-devops-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server