Collection of MCP servers for development workflow including database operations, Git version control, API testing, and development tools management
The server defines 28 tools with consistent naming patterns (verb_noun style) and complete input schemas. However, descriptions are minimal (averaging ~40-80 characters), lack actionable guidance for LLM selection, and omit critical information about when to use each tool versus alternatives. Parameters are generally typed but lack comprehensive descriptions, many parameters have only 1-2 word descriptions ('Container name or ID', 'Shell command to execute') without guidance on format, constraints, or valid values. Output schemas are completely absent from all tool definitions; the code returns unstructured text via exec() calls without documenting expected response structures. Error handling is minimal, most tools simply return raw stdout/stderr without actionable recovery guidance. Security is a major concern: the `run_command` tool executes arbitrary shell commands with no validation, sanitization, or permission gates; `execute_query` accepts raw SQL with no SQL injection protection; Docker and git tools have no permission checks. Based on the rubric calibration (most community servers land at 50-60), this server scores in the poor-to-fair range due to missing descriptions, absent output schemas, and critical security gaps.
Check which processes are using specific ports
Run Docker Compose commands
Execute a command in a running Docker container
Get logs from a Docker container
List Docker containers (running or all)
Get resource usage statistics for containers
Execute a SQL query on PostgreSQL or MySQL database
Output schemas completely absent. No tool documents what fields or structure it returns. The code returns raw exec() stdout/stderr as unstructured text. LLMs cannot plan downstream operations or extract structured data without knowing response format.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | F | 47 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 49 | - | v1 |
Generate a commit message based on staged changes
Generate a migration script based on schema differences
Generate test cases for an API endpoint based on OpenAPI/Swagger spec
Get database schema information (tables, columns, types)
Get statistics about tables (row count, size, etc.)
Show what revision and author last modified each line of a file
List all branches in the repository
Commit staged changes with a provided message.
Get git diff for staged/unstaged changes or between commits
Get git commit history
Push committed changes to a remote repository.
Search commits by message, author, or content
Stage files for the next commit.
Get the current git status of the repository
Make an HTTP request to test APIs
Monitor log files in real-time
List and run npm scripts from package.json
Run a simple performance test on an endpoint
Run a shell command (use with caution)
Test an API endpoint with multiple scenarios
Validate API response against expected schema
run_command tool executes arbitrary shell commands with NO input validation, sanitization, or permission checks. A compromised or tricked agent can execute destructive commands (rm -rf /, etc.). This is a critical security vulnerability, no sandbox, no allowlist, no audit trail.
execute_query tool accepts raw SQL with no SQL injection protection. Parameters are interpolated directly into SQL strings via exec(). An agent controlled by a prompt injection attack could exfiltrate or destroy data.
No permission checks on any destructive tools (docker_exec, docker_compose, npm_scripts, execute_query, git_commit, git_push). Any agent with access can delete containers, modify databases, or push unauthorized code.
Parameter descriptions are severely minimal (often 1 - 3 words). E.g., 'Container name or ID', 'Shell command to execute', 'Commit message' provide no guidance on format, constraints, or valid values. LLMs cannot infer whether to pass a UUID, a hash, or a plain name; this invites invalid inputs and hallucination.
Tool descriptions lack actionable guidance. Most descriptions state WHAT the tool does but not WHEN to use it or how it differs from similar tools. E.g., docker_logs vs monitor_logs, git_diff vs git_log. LLMs waste reasoning cycles on disambiguation.
Error handling is absent. Tools return raw exec() output with no error categorization, recovery guidance, or actionable messages. If a Docker command fails, the LLM sees stdout+stderr concatenation, no indication whether it's retryable, user-fixable, or fatal.
No input validation on numeric parameters. docker_logs tail, performance_test requests, npm_scripts actions could receive negative, zero, or absurd values (e.g., tail=-100, requests=999999) without bounds checking. This causes API failures and wasted agent retries.
Destructive operations (git_commit, git_push, docker_exec, execute_query) lack confirmation or dry-run modes. An agent mistake or prompt injection immediately modifies code, containers, or databases with no undo path.
Missing database connection details in tool parameters. execute_query, get_schema, get_table_stats only take dbType but no host, port, database, username, or timeout. Credentials must be injected server-side, but the tools provide no flexibility for multi-database scenarios.