MCP server for accessing Colombo Stock Exchange (CSE) stock data including quotes, company profiles, day trades, and available stock types
Server has 4 tools with consistent naming (verb_noun pattern: get_*, list_*) and descriptions present for all tools and parameters. However, input schemas are inferred from code attributes rather than explicitly visible in JSON Schema format. Parameter descriptions exist but are minimal (10-30 chars), below the 50-200 char baseline for LLM-optimized descriptions. Output schemas are not documented in the tool definitions. Error handling returns structured error objects but lacks recovery guidance (e.g., 'try search_users() first'). No tool annotations (readOnlyHint, destructiveHint) despite all being READ_ONLY. Tool descriptions average ~150 chars, which is acceptable, but parameter descriptions are sparse.
Get detailed company profile information for a CSE stock including sector, contact details, and business information. Works with any stock symbol format.
Get today's trading data including individual trades with price, quantity, and time for a CSE stock. Supports both voting and non-voting shares.
Get current stock quote for a CSE (Colombo Stock Exchange) stock. Supports voting shares (.N0000) and non-voting shares (.X0000). Provide the stock symbol (e.g., JKH, JKH.N0000, TESS.X0000). Returns current price, change, volume, and market cap.
List all available stock types for a company on the CSE. Some companies have both voting (.N0000) and non-voting (.X0000) shares. Provide the base ticker symbol (e.g., COMB) to see all available stocks.
Input schemas inferred from C# attributes, not explicitly visible as JSON Schema. Parameter 'symbol' and 'ticker' lack type constraints (enum, pattern, length limits). Cannot verify schema completeness from source.
Output schemas not documented. Tool descriptions do not specify what fields are returned (e.g., StockQuoteResult, CompanyProfileResult). LLMs cannot plan downstream calls without knowing response structure.
Parameter descriptions are minimal (10-30 chars). 'Stock symbol. Examples: JKH...' lacks guidance on format, length, case sensitivity, or when to use .N0000 vs .X0000 suffix. Below 50-char baseline for LLM clarity.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | <=2025-11-25 | v2 |
Error messages return structured objects with 'Error' field but lack recovery guidance. E.g., 'Unable to fetch quote for symbol' does not suggest next steps (search available symbols, verify format). Errors should guide LLM action.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all tools being READ_ONLY. Annotations enable LLM safety reasoning and retry logic.