A comprehensive MCP server with AWS tools, system monitoring, workflow analysis, audio synthesis, and AI text generation capabilities
This server has severe definition quality issues. Of 12 tools, most lack visible input schemas in the provided source code. Descriptions are present but generic and uninformative. Tool naming does not consistently follow verb-noun conventions. No evidence of structured output schemas, error handling guidance, or parameter validation patterns. Only 2 tools (aws/set-environment, workflow/optimize) have visible, complete input schemas with type definitions and descriptions. The Makefile provides tool names and brief descriptions, but the actual Python implementation files are not fully shown, making it impossible to verify schema completeness for most tools. Conservative scoring applies here: if schemas cannot be verified in source, they score 0.
AI text generation with Claude
Text-to-speech with ElevenLabs
Get AWS account information using STS
Retrieve AWS credentials from environment or AWS config
List available AWS profiles from AWS config
Set AWS environment variables
Validate AWS credentials by making a test API call
Three tools (screenshot, ai, audio) have only trivial 1-2 word descriptions ('Capture and analyze screenshots', 'AI text generation with Claude', 'Text-to-speech with ElevenLabs'). These are too vague for LLMs to understand when or why to invoke them. No parameter descriptions visible; unclear if they accept input at all.
Tools 'screenshot', 'ai', 'audio', 'aws/list-profiles', 'aws/get-account-info', and 'system/diagnostics' show no input schemas in provided source. Cannot verify parameter types, required fields, or constraints.
Tool naming is inconsistent and does not follow verb-noun conventions. 'screenshot', 'ai', and 'audio' are nouns only, not verb_noun pairs like 'capture_screenshot' or 'generate_audio'. Generic names like 'ai' or 'audio' do not convey the specific action. LLMs cannot infer intent from these names.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 50 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 8 | - | v1 |
Capture and analyze screenshots
Run system diagnostics and health checks
Get detailed system performance metrics with historical data
Analyze workflow execution patterns and performance
Optimize workflow execution based on analysis
Tool 'aws/set-environment' accepts AWS credentials (access_key_id, secret_access_key, session_token) as parameters. Per pattern:secret-injection, credentials must NEVER be tool parameters, they leak into logs and traces. Use server-side secret injection via environment variables or vault.
No evidence of output schemas documented for any tool. Descriptions do not state what fields or structure responses contain. LLMs cannot plan downstream tool calls or chain operations without knowing response structure. Pattern:response-shaper requires documented output schemas.
Generic tool descriptions do not answer: What does it do? When should the LLM call it? What does it return? Example: 'Get detailed system performance metrics with historical data' lacks context on use case, required permissions, or output shape. Per pattern:tool-description baseline, good descriptions are 50 - 200 chars with clear intent and context.
No evidence of error handling or recovery guidance in tool definitions. No parameter validation patterns, no actionable error messages, no retry guidance. Per pattern:recovery-guide, error responses must tell the LLM what to do next.
Parameter 'profile' in aws tools is ambiguous, no description states format, validation rules, or enum values. 'Optional AWS profile name' does not explain what a valid profile looks like or where profiles are stored.
Tool 'system/performance' accepts 'interval' and 'history_minutes' as numbers with no min/max bounds specified. Unbounded numbers allow LLMs to pass absurd values (interval=999999, history_minutes=-1) that break services.
Tool 'workflow/optimize' marks 'optimization_targets' as an array of strings with no enum constraint or validation. LLMs will hallucinate target names. Should define allowed optimization targets as an enum or provide discovery pattern.