MCP server — Mathematical & Financial Intelligence Engine (math, Thai tax, loans, live FX)
Server has 4 well-defined tools with complete input schemas and descriptions. All tools follow verb_noun naming (calculate_*). Descriptions are substantive (150-250 chars, within baseline 194 avg). Input parameters have types and descriptions. However, output schemas are not formally documented, responses are markdown strings rather than structured objects. Error handling exists but lacks recovery guidance. No tool annotations (readOnlyHint, idempotentHint). Parameter descriptions could be more prescriptive about constraints and formats.
Evaluates complex mathematical expressions, algebra, matrices, and unit conversions safely using mathjs. It can optionally return a step-by-step breakdown of how the result was achieved.
Converts fiat currency amounts in real-time by fetching live exchange rates from a free reliable API. Useful for instant financial conversions.
Calculates a loan amortization schedule (ลดต้นลดดอก) for mortgages or personal loans, returning a breakdown of monthly payments, interest, and principal reduction.
Calculates Thai Personal Income Tax (ภาษีเงินได้บุคคลธรรมดา) based on the current progressive tax brackets. It automatically factor in standard basic deductions to give an accurate estimation.
Output schemas not formally documented. Tools return markdown strings instead of structured JSON objects. LLMs cannot reliably extract numeric results, breakdown arrays, or chained IDs for downstream tool calls.
No tool annotations (readOnlyHint, idempotentHint, destructiveHint). All tools are read-only but this is not declared in the schema, forcing LLMs to infer safety from descriptions.
Error messages lack recovery guidance. calculate_live_currency returns 'Unable to fetch live exchange rates. The API returned an unexpected response.' without suggesting retry, fallback, or next steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | 2026-07-28+ | v2 |
Parameter descriptions lack format constraints. 'annualRate' in calculate_loan_amortization says '4.5 for 4.5%' but does not specify min/max bounds, precision, or whether negative rates are rejected.
calculate_live_currency accepts 3-letter currency codes but does not validate against ISO 4217 standard. Invalid codes like 'XXX' or 'ZZZ' will pass schema validation and fail at API call time.