MCP server for calculating profit/loss distribution in Islamic finance contracts (Musharakah and Mudharabah) following Shariah-compliant principles
The server defines 2 tools with Islamic finance domain-specific calculations (Musharakah and Mudharabah profit/loss distribution). Both tools have clear descriptions and explicit input schemas with proper JSON Schema definitions. However, there are notable gaps: (1) no documented output schemas are visible in the source code, (2) parameter descriptions are present but minimal (10-50 chars), below the 72-char baseline, (3) no error handling or recovery guidance is visible, (4) no tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite both being read-only operations. The naming is domain-specific and clear (calculate_musharakah, calculate_mudharabah) but lacks the verb_noun pattern typical of 90% of A+ tools. Input parameters have types and constraints (minimum/maximum on numeric fields, minItems on arrays) which is a positive signal, but descriptions lack actionable guidance (e.g., what happens if profit ratios don't sum to 1, what tolerance is acceptable).
Calculate profit/loss distribution in a Mudharabah (مضاربة) contract between capital provider (Rabb al-Mal) and entrepreneur (Mudarib). The capital provider supplies 100% capital, the entrepreneur provides labor and expertise. Profits are shared according to pre-agreed ratio. Losses are borne entirely by the capital provider (Shariah requirement), while the entrepreneur loses their time and effort.
Calculate profit/loss distribution in a Musharakah (شراكة - partnership) contract. In Musharakah, all partners contribute capital and share management. Profits are distributed according to pre-agreed ratio (or capital ratio if not specified). Losses MUST be distributed according to capital ratio as per Shariah requirements.
Output schemas not documented in source code. Tools have input schemas but no visible documentation of return types, fields, or structure. This prevents LLMs from planning multi-step operations or extracting results reliably.
Parameter descriptions are sparse (10-50 chars vs 72-char baseline). For example, 'Total profit or loss (negative for loss)' lacks guidance on precision (decimals?), currency assumptions, or what happens on edge cases (zero profit, loss exceeding capital).
No tool annotations despite being read-only operations. Both tools should declare 'readOnlyHint: true' to signal they are safe for preview/planning without side effects.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | 2026-07-28+ | v2 |
| 2026-03-09 | C | 61 | - | v1 |
Missing error handling guidance. No visible mechanism to handle invalid inputs (e.g., profitRatio array not summing to 1, negative investments, mismatched array lengths) or recovery hints for LLMs.
Tool names do not follow common verb_noun pattern (only 10% of A+ tools omit this). 'calculate_musharakah' vs 'get_musharakah_distribution', the latter is more discoverable.