A FastAPI-based MCP server that integrates AWS Bedrock Claude models with Model Context Protocol tools, enabling AI agents to execute tools via MCP and Bedrock's converse API
This server has significant definition quality gaps. Tool names lack clear action verbs (e.g., 'provide_ai_response' is vague; 'query_bedrock_claude' mixes concerns). Descriptions are present but generic and lack LLM-optimized guidance on WHEN to use each tool. Parameter descriptions exist but are minimal (avg ~30 chars vs. baseline 72). No output schemas are documented. Error handling is minimal, most functions return generic error objects without recovery guidance. The server conflates multiple concerns (Bedrock querying, MCP tool fetching, streaming, response processing) into single tools rather than composing focused, single-responsibility tools.
Executes a tool call on the MCP server.
Fetches available tools from the MCP server.
Process the streaming response from Bedrock.
Provide AI response using Bedrock service
Provide response using the Model Context Protocol with MCP tools and Bedrock Claude
Queries AWS Bedrock Claude model and returns the response.
Queries AWS Bedrock Claude model with tools and returns the response.
No output schemas documented. Tools return raw JSON objects without specifying field names, types, or structure. LLMs cannot plan downstream calls or extract required data reliably.
Vague tool names lack action verbs. 'provide_ai_response' and 'provide_mcp_response' do not clearly distinguish when to use each. 'process_streamed_response' is passive and unclear about what processing occurs.
Minimal parameter descriptions (avg ~30 chars vs. baseline 72). E.g., 'response_stream' described as 'The streaming response object from Bedrock' lacks format, expected fields, or usage context.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | <=2025-11-25 | v2 |
Establishes SSE connection with MCP server and streams responses.
Error handling returns generic error objects without recovery guidance. E.g., 'Tool execution failed: 500' tells the LLM nothing about whether to retry, ask the user, or abort.
Tool composition violates single-responsibility principle. 'query_bedrock_claude_with_tools' combines tool formatting, Bedrock invocation, and tool call extraction. Should split into separate tools for clarity and reusability.