MCP server exposing UK property finance calculators from FD Commercial. Bridging cost analysis, development appraisal, BTL stress testing, stamp duty (SDLT/LBTT/LTT).
FDC Property Finance MCP demonstrates solid definition quality with well-named, domain-specific tools and comprehensive parameter schemas. All 4 tools are explicitly registered with clear descriptions and proper JSON Schema input definitions. However, the server lacks output schema documentation, error handling guidance, and several tools have verbose descriptions that could be more LLM-optimized. Tool names follow verb_noun convention (run_* / calculate_*) which is appropriate for the domain. All parameter descriptions are present and include contextual UK property finance details (e.g., '2026 bridging rates typically 0.65% to 1.15% per month'). Input schemas use Zod with proper types and enums. The major gap is absence of documented output schemas, while structuredContent is returned in handler, the response structure is not declared in tool metadata.
Calculate the total cost of a UK bridging loan across three interest structures (rolled-up, retained, serviced). Returns headline and effective APR, interest payable, and arrangement fee impact.
Stress-test a Buy-To-Let mortgage against rental income. Models ICR (Interest Coverage Ratio) at 125%, 145%, and 170% stress rates. Incorporates ownership structure (personal vs limited company) to return correct stress multipliers.
Run a UK property development scheme viability appraisal. Models land, build, professional fees, contingency, finance interest and arrangement fee through to net profit, profit on GDV, profit on cost, LTC, LTGDV, and viability status (viable / marginal / unviable) against industry-standard thresholds.
Calculate UK property transaction tax: SDLT (England/Northern Ireland), LBTT (Scotland), or LTT (Wales). Models all buyer types (standard, first-time buyer, additional dwelling, corporate), property types (residential, commercial), and relevant surcharges and reliefs.
Output schemas not documented. Handlers return structuredContent but tool metadata does not declare response fields, types, or structure. Agents cannot know what to expect and must infer structure from JSON output.
Error handling and recovery guidance absent. Tools return results via structuredContent but no error-handling pattern documented. What happens if input is out of bounds (e.g., negative loan amount, interest_rate > 50%)? What guidance should LLM receive if input validation fails?
Tool descriptions are verbose (avg 196 chars; baseline optimal 50-200). Descriptions exceed LLM-efficient length and include examples that could be confused with constraints. E.g., development_appraisal description includes '2000000' GDV example inline, LLMs may reuse this literal value.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Conditional parameter requirements not formalized. development_appraisal accepts either loan_amount_gbp OR ltc_pct, this mutual exclusivity is documented in descriptions but not in schema (e.g., via oneOf or conditional logic). LLMs may pass both or neither.
Parameter dependencies not explicit. uk_stamp_duty_calculator: certain buyer_types (ftb, additional) only apply to residential properties; company purchases are commercial-only. Schema does not enforce these constraints. LLMs can submit invalid combinations.
No idempotency declaration. These are pure calculation tools (no side effects), should declare idempotent:true in annotations. Agents retry on ambiguous failures; idempotency guarantee prevents confusion.