AWS Cost Explorer MCP Server providing tools to interact with AWS Cost Explorer API, CloudWatch Logs, and related AWS services for cost analysis
Three tools with partial schema coverage and inconsistent description quality. Tool 1 (system_prompt_for_agent) has minimal description (67 chars, below baseline 194). Tool 2 (get_bedrock_logs) has good description (180 chars) and complete Pydantic schema with constraints (ge=1, le=90). Tool 3 (get_endpoint_metrics) has adequate description (145 chars) but schema visible only in signature, not in registration code. All tools are READ_ONLY and well-named with action verbs. No error handling guidance, no output schema documentation, no parameter descriptions in tool registration (only in Pydantic models). Naming follows verb_noun pattern (get_*, system_prompt_*) but descriptions lack WHEN/WHY context for LLM selection.
Retrieve Bedrock invocation logs for the last n days in a given region as a dataframe. Returns DataFrame containing the log data with columns: timestamp, region, modelId, userId, inputTokens, completionTokens, totalTokens
Retrieves Invocation and Utilization metrics for a specified SageMaker endpoint within a given time range. Returns a DataFrame containing metric values for Utilization and Invocation metrics
Generates a system prompt for an AWS cost analysis agent. This function creates a specialized prompt for an AI agent that analyzes AWS cloud spending.
Tool descriptions lack WHEN/WHY context. 'Generates a system prompt' does not explain when to call this vs other tools or what the agent should do with the output.
Output schemas not documented. Tools return DataFrames or strings but LLMs cannot see field names, types, or structure. Agents cannot plan downstream calls or extract data reliably.
No error handling guidance. Tools may fail (e.g., invalid region, missing logs, cross-account role assumption failure) but return no recovery hints. LLMs cannot self-correct.
Parameter descriptions missing in tool registration. Pydantic models have descriptions, but FastMCP tool registration does not expose them. LLMs see parameter names only.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | 2026-07-28+ | v2 |
Cross-account role assumption hardcoded via environment variable (CROSS_ACCOUNT_ROLE_NAME). No validation or error message if role does not exist or assumption fails. Silent failures likely.