Spring Boot-based MCP server for electric power trading platform providing tools for market metrics, order book, trading, user management, auctions, and simulations
Server has 15 tools with mixed quality. Naming is generally verb-based (getMarketMetrics, placeOrder, submitAuctionBid) but some are overly generic (runSimulation, runEnhancedSimulation). Descriptions exist for all tools but many are brief (10-50 chars) and lack actionable context. Input schemas are present but incomplete: many parameters lack type definitions (e.g., 'req' in runSimulation/runEnhancedSimulation is typed as 'object' with no nested schema), and several tools have empty input schemas (getMarketMetrics, registerUser, getAuctionStatus, getSimulationStrategies). Output schemas are not documented. Error handling is minimal, no recovery guidance or error classification visible in tool definitions. Security concerns: placeOrder and submitAuctionBid accept userId as string without validation hints. No pagination support visible despite tools returning potentially large datasets (getOrderBook, getUserOrders, getAuctionResults).
取消指定的交易訂單
檢查指定的用戶ID是否存在於系統中
匯出最近一次模擬的報表
Get the clearing results for a specific auction session including clearing price, volume, and per-user allocations.
Get the current auction session status including participant count, open/close times, and price limits.
獲取電力交易市場實時指標,包含價格、成交量等信息
獲取電力交易訂單簿數據,包含買賣盤資訊
Five tools have empty or missing input schemas (getMarketMetrics, registerUser, getAuctionStatus, getSimulationStrategies, and runSimulation/runEnhancedSimulation have 'req' typed as bare 'object' with no nested field definitions).
Descriptions are too brief (10-50 chars) and lack actionable context. E.g., 'Get the current auction session status...' does not explain WHEN to call it or what the agent should do with the result. Baseline for A+ tools is 50-200 chars with clear WHAT/WHEN/WHY.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields without knowing what each tool returns. E.g., does getOrderBook return a list of orders or a single order? What fields does each order contain?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
獲取所有可用的商家決策策略說明
查詢用戶的所有交易訂單
查詢指定用戶的錢包狀態,包括可用餘額和鎖定餘額
下單交易,支持買入和賣出訂單
註冊新用戶並創建錢包,新用戶將獲得 10000 電力和 10000 金額的初始餘額
執行增強版多商家市場模擬。模擬多個商家在不同天氣、區域條件下的電力交易行為。每個商家有:庫存、每小時消耗量、生產能力(受天氣影響)。支援5種決策策略:保守型、平衡型、積極型、趨勢跟隨型、套利型。參數:merchantCount=商家數量, steps=模擬小時數, weatherEnabled=天氣影響, executeReal=是否真實下單, noiseLevel=隨機噪音程度(0-1)
執行簡單交易模擬;若 executeReal=true 則會呼叫實際下單
Submit a sealed bid for the current auction session. Bids use stepwise format with price-amount pairs.
No pagination support visible. Tools like getOrderBook (with 'depth' param) and getUserOrders could return large datasets. No limit, offset, or cursor parameters documented.
Generic tool names 'runSimulation' and 'runEnhancedSimulation' do not clearly distinguish intent. Per naming baseline, names should be specific (e.g., 'simulate_simple_trading' vs 'simulate_multi_merchant_market'). Current names force LLM to read full descriptions to disambiguate.