A collection of command-line and system integration tools for MCP (Model Context Protocol) servers, including bash, cat, curl, docker, filesystem, git, and GitHub operations
This MCP server exhibits significant definition quality issues. Tools have basic schemas present but most descriptions are too short (10-40 chars, well below the 50-200 char optimal range for LLM comprehension). Parameters largely lack descriptive text beyond the bare requirement names. Most critically, there are no error handling patterns visible, no output schemas documented, and no indication of idempotency or side-effect clarity for dangerous operations. Tool naming follows verb patterns but several tools combine multiple concerns (bash, curl, docker are inherently multi-purpose shells). The github_* tools lack visible input schemas entirely. Composition is poor, tools like bash and docker expose raw command execution, forcing LLMs to construct complex payloads rather than using domain-specific abstractions.
Execute bash commands with specified script or command
Display contents of files
Perform any HTTP request with specified method, URL, headers, and data
Execute Docker commands with specified arguments
Performs filesystem operations like list, read, write, create, delete files and directories
Get the current weather for a given location.
Performs any Git operation based on the provided command
Three GitHub tools (github_issues, github_pull_requests, github_repository) have no visible input schemas or descriptions in the provided source code. Cannot verify parameter definitions or constraints.
All tool descriptions are extremely short (10-45 chars). Descriptions should be 50-200 chars to provide LLMs sufficient context for when/why to call the tool and what to expect. Current descriptions lack guidance on prerequisites, expected output structure, and side effects.
Dangerous/irreversible operations (bash, curl with POST/DELETE/PATCH, docker, filesystem delete) lack error handling patterns or confirmation steps. No dry-run mode, no recovery guidance, no retryability classification. Agents could accidentally execute destructive commands.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 44 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 41 | - | v1 |
Interact with GitHub issues
Interact with GitHub pull requests
Interact with GitHub repositories
Search GitHub repositories, issues, and pull requests
Tool output schemas are not documented. LLMs cannot predict the structure of responses (fields, types, pagination behavior). This forces agents to guess what fields to extract and increases hallucination risk.
Bash, curl, and docker tools expose raw command execution. They combine multiple concerns (bash can do file ops, network calls, system admin, all in one tool). This violates single-responsibility principle and forces LLMs to construct complex, error-prone command strings.
Many parameter descriptions are missing or trivial. Examples: 'args' in bash has description 'Additional arguments for the command' but does not explain syntax, escaping, or safety. 'options' in cat lacks guidance on which cat flags are safe/supported.
No visible error classification or recovery guidance. If a tool fails, the LLM receives raw error text with no indication of whether to retry, ask the user, or give up. Errors like 'command not found' or 'connection timeout' are not categorized.
Bash and curl permit arbitrary command execution, including command injection and code execution attacks. No input validation or sanitization visible. If an LLM is tricked into passing a malicious string (e.g., via prompt injection), it will execute without guards.
No parameter constraints (enums, min/max, patterns) declared for most tools. Bash 'command' param accepts any string; no validation. Filesystem 'operation' has an enum (good), but curl 'method' lacks an enum, LLM could pass invalid HTTP methods.
No composition chain validation. If bash returns arbitrary text, it cannot be passed to curl reliably. If filesystem returns file paths, there's no guarantee git or cat can use them without additional resolution steps.