Skip to main content
Glama

Zakat owed on cash, gold, silver, shares and business stock

calculate_zakat
Read-onlyIdempotent

Zakat owed on cash, gold, silver, shares and business stock, using live gold and silver prices.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cashNoCash and bank balances.
nisabNoWhich nisab to use. Defaults to silver.
currencyNoDefaults to USD.
gold_gramsNoGold held, in grams.
gold_valueNoOr the value of gold held.
owed_to_youNoMoney owed to you that you expect to be repaid.
silver_gramsNoSilver held, in grams.
silver_valueNoOr the value of silver held.
debts_due_nowNoDebts due now, deducted.
business_stockNoValue of business stock for sale.
shares_tradingNoMarket value of shares held for trading (counted in full)
shares_longtermNoMarket value of shares held long term.
share_zakatable_pctNoShare of long-term holdings treated as zakatable, default 25.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changed
    • changedInput schema / properties / business_stock / description
      Previous value: -"Value of business stock for sale"New value: +"Value of business stock for sale."
    • changedInput schema / properties / cash / description
      Previous value: -"Cash and bank balances"New value: +"Cash and bank balances."
    • changedInput schema / properties / debts_due_now / description
      Previous value: -"Debts due now, deducted"New value: +"Debts due now, deducted."
    • changedInput schema / properties / gold_grams / description
      Previous value: -"Gold held, in grams"New value: +"Gold held, in grams."
    • changedInput schema / properties / gold_value / description
      Previous value: -"Or the value of gold held"New value: +"Or the value of gold held."
    • changedInput schema / properties / owed_to_you / description
      Previous value: -"Money owed to you that you expect to be repaid"New value: +"Money owed to you that you expect to be repaid."
    • changedInput schema / properties / share_zakatable_pct / description
      Previous value: -"Share of long-term holdings treated as zakatable, default 25"New value: +"Share of long-term holdings treated as zakatable, default 25."
    • changedInput schema / properties / shares_longterm / description
      Previous value: -"Market value of shares held long term"New value: +"Market value of shares held long term."
    • changedInput schema / properties / silver_grams / description
      Previous value: -"Silver held, in grams"New value: +"Silver held, in grams."
    • changedInput schema / properties / silver_value / description
      Previous value: -"Or the value of silver held"New value: +"Or the value of silver held."
  2. First observed

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds one genuinely useful behavioral fact — that it pulls live gold and silver prices — implying results vary with market data, but says nothing about defaults with zero inputs, rounding, or what is returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. It is essentially a copy of the title, so it earns its place as a scope statement but adds little new information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter, all-optional calculation tool with no output schema, the description never explains what comes back (zakat due, nisab threshold applied) or that a bare call is valid. It covers the input domain adequately but leaves the agent guessing about the result shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 13 parameters are already self-documenting (grams vs value, nisab enum, defaults for nisab/currency/share_zakatable_pct). The description merely restates the parameter categories and adds no syntax, precedence, or mutually-exclusive guidance beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the specific resource (zakat owed) and enumerates the asset classes it covers (cash, gold, silver, shares, business stock), which is concrete enough to separate it from screening/purification siblings. It stops short of naming an alternative or stating the compute verb explicitly, but the purpose is unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of how this differs from siblings like purify_dividend or screen_portfolio. The agent must infer that this is the tool for computing an actual obligation rather than screening assets.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.