A comprehensive MCP server suite providing multiple specialized tools: basic utilities (time, books, weather), image generation via Nova Canvas, Korean weather and air quality forecasts, document retrieval/RAG, web search via Tavily, and stock trading information. Integrates with AWS Bedrock, Tavily API, and various data sources.
This multi-tool MCP server exhibits consistent structural weaknesses across all 11 tools. While tool names follow verb-noun conventions reasonably well (get_*, retrieve, draw_), the definitions lack the rigor required for production-grade agent tooling. Descriptions are present but often generic and lack specificity about when tools should be selected versus alternatives. Parameter descriptions are inconsistent, some parameters like 'format' in get_current_time are well-described, while others like 'company_name' in retrieve_stock_trend lack meaningful context. No output schemas are documented anywhere in the provided source. Error handling is absent, there is no guidance on what LLMs should do when tools fail. The codebase shows basic logging (stderr) but no permission gating, audit trails, or input validation beyond what fastmcp may provide implicitly. The server mixes concerns (e.g., weather tools for different regions), some of which could be consolidated. Critical security concern: AWS credentials and API keys (Tavily, Bedrock) must be injected server-side, but no evidence of secret management in the provided code.
Draw a graph of the given trend.
Generate an image using Amazon Nova Canvas with color guidance. This tool uses Amazon Nova Canvas to generate images based on a text prompt and color palette. The generated image will be saved to a file and the path will be returned.
Search book list by keyword and then return book list
Returns the current date and time in the specified format
Retrieve Korean weather forecast from 기상청 (KMA) including short-term forecast, AWS real-time observations, and air quality data from 에어코리아.
Retrieve weather information by city name and then return weather statement.
No output schemas documented for any tool. LLMs cannot plan downstream operations or extract structured data from responses.
Tool 'retrieve' has an ambiguous name that does not convey intent. Does it retrieve documents, code, emails, or cached data? LLMs cannot disambiguate it from other retrieval tools without stronger naming.
No error handling guidance in any tool. No documentation of retryability, user-fixable errors, or fatal conditions. When tools fail, LLMs have no recovery path.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | <=2025-11-25 | v2 |
Query the keyword using RAG based on the knowledge base.
Returns the last ~period days price trend of the given company name as a JSON string.
Performs a web search using Tavily's AI search engine and generates a direct answer to the query, along with supporting search results.
Searches recent news articles using Tavily's specialized news search functionality.
Performs a comprehensive web search using Tavily's AI-powered search engine. Excels at extracting and summarizing relevant content from web pages, making it ideal for research, fact-finding, and gathering detailed information.
Descriptions for get_book_list, get_weather_info, retrieve_stock_trend, and draw_stock_trend are generic or minimal (50-90 chars). They lack context about when to call each vs. similar tools, expected return structure, or dependencies.
Two weather tools (get_weather_info for English cities, get_korea_weather for Korean regions) operate on the same domain but lack clear differentiation. Descriptions do not explain when to use each.
API keys for Tavily and AWS services must be injected as environment variables server-side. No evidence in provided code that credentials are hidden from tool parameters or logs.
Parameter descriptions often lack specificity about format and constraints. E.g., 'format' in get_current_time references strftime syntax but does not mention constraints; 'colors' in generate_image_with_colors says 'up to 10' but does not explain validation failure modes.
No pagination or result limits documented for list-like tools (get_book_list, retrieve_stock_trend, tavily_web_search). Unbounded results risk context window exhaustion.