MCP Server

چیستارا — Iranian Legal Corpus

ai.hoghogh/chistara
Legal & Compliance Search & Research Public & reachable MCP 2026-07-28

What this MCP does

Provides search across Iranian statutes, court rulings, advisory opinions, and circulars, along with legal calculators.

calculate_delay_penalty
محاسبهٔ خسارت تأخیر تأدیه — Calculate late-payment damages
Calculate خسارت تأخیر تأدیه under art. 522 ق.آ.د.م using the Central Bank price index. The index series is official data — never approximate it. Dates are Jalali.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['principal', 'start_year', 'end_year'], 'properties': {'end_year': {'type': 'integer', 'description': 'Jalali year of calculation/payment.'}, 'end_month': {'type': 'integer', 'description': 'Jalali end month 1–12 (optional).'}, 'principal': {'type': 'number', 'description': 'Principal debt amount.'}, 'start_year': {'type': 'integer', 'description': 'Jalali year the debt fell due.'}, 'start_month': {'type': 'integer', 'description': 'Jalali start month 1–12 (optional).'}, 'principal_unit': {'enum': ['toman', 'rial'], 'type': 'string', 'description': 'Unit of the principal (default Toman).'}}}
calculate_diyeh
محاسبهٔ دیه — Calculate blood money (دیه)
Calculate دیه for a bodily injury using the CURRENT official rate and the fractions set by قانون مجازات اسلامی. ALWAYS use this instead of computing دیه yourself: the full-دیه rate changes every Persian year and the per-injury fractions are statutory. Returns the amount with the governing article and the official rate source.
Read only Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {'year': {'type': 'integer', 'description': 'Persian year (e.g. 1405). Defaults to the latest loaded rate.'}, 'count': {'type': 'integer', 'description': 'How many (fingers, teeth …). Default 1.'}, 'gender': {'enum': ['male', 'female'], 'type': 'string', 'description': 'Gender of the injured/deceased.'}, 'fraction': {'type': 'number', 'description': 'دیه fraction between 0 and 1 — only when no injury_type fits.'}, 'injury_type': {'enum': ['full', 'eye_one', 'eye_both', 'ear_one', 'ear_both', 'ear_lobe_one', 'ear_lobe_both', 'hand_one', 'hand_both', 'foot_one', 'foot_both', 'finger_thumb', 'finger_other', 'finger_phalanx', 'finger_thumb_phalanx', 'toe_phalanx', 'toe_thumb_phalanx', 'tooth_front', 'tooth_molar', 'nose_full', 'nose_fracture', 'kidney_one', 'kidney_both', 'rib_heart', 'rib_each', 'rib_other', 'spleen', 'skull_fracture', 'spine_fracture', 'spine_fracture_healed', 'spinal_cord', 'eyelid_upper', 'eyelid_lower', 'testicle_left', 'testicle_right'], 'type': 'string', 'description': 'Injury key from the standard list (e.g. full = دیهٔ کامل, hand_one = یک دست, tooth_front = دندان جلویی). Pick the key, not free text.'}, 'sacred_month': {'type': 'boolean', 'description': 'Occurred in a ماه حرام (تغلیظ — applies to دیهٔ نفس only).'}}}
calculate_expert_fee
محاسبهٔ دستمزد کارشناسی رسمی — Calculate court expert fee
Calculate the official تعرفهٔ دستمزد کارشناسان رسمی دادگستری as replaced by the 1405 instrument (approved 1405/05/07, promulgated 1405/05/20; supersedes the 1398/12/25 tariff and its 1402 amendment). `valuation` is a marginal ladder on the ارزش موضوع کارشناسی (art. 11) with a hard per-expert cap (1,350,000,000 rial) and explicit percentage add-ons for a few named subject matters (art. 11 notes 3–4, art. 22(2)); `residual` is expert work with no specific tariff in this instrument (art. 9) — a RANGE of 20,000,000–100,000,000 rial set on the expert's proposal with the referring authority's agreement, and the tool returns only the floor and says so; `evidence` is the flat minimum for تأمین دلیل (art. 7, 20,000,000 rial). Dozens of OTHER specialties (arts. 13–55) carry their own separate tariff and are not modelled here. Never guess a court expert's statutory fee.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['kind'], 'properties': {'kind': {'enum': ['valuation', 'residual', 'evidence'], 'type': 'string', 'description': 'valuation = art. 11 ladder (needs value_rial); residual = flat minimum, no specific tariff (art. 9); evidence = تأمین دلیل flat minimum (art. 7).'}, 'modifiers': {'type': 'array', 'items': {'enum': ['contract_dispute', 'contract_dispute_partial', 'intangible_assets', 'underground_mine'], 'type': 'string'}, 'description': 'valuation only; usually at most one: contract_dispute = employer/contractor/consulting-engineer dispute or صورت\u200cوضعیت review over the whole contract value (+100%, art. 11 note 3); contract_dispute_partial = appraisal of only part of the contract, e.g. finding breach or delay (+50%, note 3); intangible_assets = valuation of intangible assets such as brands (+50%, art. 11 note 4 in the 1405 tariff); underground_mine = underground mineral reserves (+35%, art. 22(2)).'}, 'value_rial': {'type': 'number', 'description': 'Value of the subject matter under appraisal, in RIAL — valuation only. Never pass Toman.'}, 'expert_count': {'type': 'integer', 'description': 'Number of same-specialty experts working the SAME subject jointly (valuation only). More than 1 applies a 30% reduction per expert, with the cap checked after the reduction (art. 56). Default 1 (no reduction). Do not use for a multi-specialty panel — price each specialty separately.'}, 'travel_days_same_province': {'type': 'integer', 'description': "Mission days within the expert's own province (art. 6 daily travel allowance) — added to any kind."}, 'travel_days_other_province': {'type': 'integer', 'description': "Mission days outside the expert's own province (art. 6)."}}}
calculate_inheritance
محاسبهٔ سهم‌الارث — Calculate inheritance shares
Calculate Iranian inheritance shares (سهم‌الارث) under قانون مدنی arts. 862–949, including حجب نقصانی reduction rules. The jurisprudential edge cases make hand computation unreliable — always use this tool.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['total_assets_toman', 'deceased_gender'], 'properties': {'son_count': {'type': 'integer', 'description': 'Number of sons.'}, 'has_father': {'type': 'boolean', 'description': 'Father alive?'}, 'has_mother': {'type': 'boolean', 'description': 'Mother alive?'}, 'has_spouse': {'type': 'boolean', 'description': 'Surviving spouse?'}, 'sibling_count': {'type': 'integer', 'description': "Deceased's siblings (for حجب نقصانی)."}, 'daughter_count': {'type': 'integer', 'description': 'Number of daughters.'}, 'deceased_gender': {'enum': ['male', 'female'], 'type': 'string', 'description': 'Gender of the deceased.'}, 'total_assets_toman': {'type': 'number', 'description': 'Total estate value in Toman.'}}}
calculate_lawyer_fee
محاسبهٔ حق‌الوکاله — Calculate lawyer fee (bar tariff)
Calculate حق‌الوکاله from آیین‌نامهٔ تعرفهٔ حق‌الوکاله (1398/12/28): financial claims are a marginal ladder on the claim value (art. 9); family, non-financial, criminal and administrative matters are a min–max RANGE independent of value (arts. 13, 14, 20). `stage` is art. 21's share of the whole-case fee (60% first instance / 40% appeal). The tariff does not scale by winning or losing. Never guess a lawyer's statutory fee.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['stage'], 'properties': {'stage': {'enum': ['first', 'appeal', 'cassation'], 'type': 'string', 'description': 'first = 60%, appeal = 40%, cassation = on the appeal tariff (arts. 16–17).'}, 'outcome': {'enum': ['judgment', 'settlement', 'dismissed_no_merits', 'rejected_after_defence', 'voided_before_defence'], 'type': 'string', 'description': 'How the case ends (default judgment). Settlement is paid in full (art. 23); art. 12 halves or quarters a fee for قرار رد / ابطال.'}, 'case_type': {'enum': ['civil', 'family', 'non_financial', 'criminal', 'admin', 'board'], 'type': 'string', 'description': 'civil = financial claim (art. 9); family = family/حسبی (art. 13a); non_financial (art. 13b); criminal (art. 14, needs criminal_grade); admin = دیوان عدالت اداری / تعزیرات (art. 20); board = non-judicial boards e.g. labour (art. 20).'}, 'criminal_grade': {'enum': ['k1_grade1', 'k1_grade2_3', 'k1_other', 'k2_hodud_diyat_grade4_5', 'k2_grade6', 'k2_other'], 'type': 'string', 'description': 'Criminal only: court (کیفری یک / دو) and offence grade.'}, 'case_value_toman': {'type': 'number', 'description': 'Claim value in Toman — civil only.'}, 'final_at_first_instance': {'type': 'boolean', 'description': 'Civil only: first-instance judgment is final as to value ⇒ flat 10% (art. 9 opening).'}}}
calculate_litigation_fee
محاسبهٔ هزینهٔ دادرسی — Calculate court filing fees
Calculate Iranian court filing fees (هزینهٔ دادرسی) for a monetary claim at a given stage (بدوی / تجدیدنظر / فرجام), using the current official percentages. Use this instead of estimating — the rates are statutory and stage-dependent.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['stage'], 'properties': {'stage': {'enum': ['first', 'appeal', 'supreme'], 'type': 'string', 'description': 'Stage: first = بدوی, appeal = تجدیدنظر, supreme = فرجام/دیوان عالی.'}, 'case_type': {'enum': ['financial', 'non_financial'], 'type': 'string', 'description': 'financial = مالی (needs claim_amount_toman), non_financial = غیرمالی (fixed official figure).'}, 'claim_amount_toman': {'type': 'number', 'description': 'Claim value in TOMAN (financial claims only).'}}}
calculate_mahrieh
محاسبهٔ مهریه به نرخ روز — Calculate mahrieh at today's value
Calculate the present-day value of a مهریه: coins at the live market rate, and any cash portion adjusted by the Central Bank index (تبصرهٔ مادهٔ ۱۰۸۲ قانون مدنی). Never guess coin prices or the adjustment index — this tool reads both from the database. If there is a cash portion, ask for marriage_year; without it the cash stays nominal and must not be called «ارزش روز».
Read only Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {'coins': {'type': 'number', 'description': 'Number of coins in the مهریه.'}, 'coin_type': {'enum': ['azadi', 'emami', 'half', 'quarter', 'gram'], 'type': 'string', 'description': 'Coin type (default azadi = تمام بهار آزادی).'}, 'cash_toman': {'type': 'number', 'description': 'Cash portion in Toman (optional).'}, 'marriage_year': {'type': 'number', 'description': "Jalali marriage year (needed to adjust the cash portion to today's value)."}}}
calculate_notary_fee
محاسبهٔ حق‌التحریر دفترخانه — Calculate notary fee
Calculate حق‌التحریر (the notary office's fee) from the official 1405 tariff for دفاتر اسناد رسمی. Distinct from حق‌الثبت (use calculate_stamp_duty for that). Never estimate the tariff.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['doc_type'], 'properties': {'doc_type': {'enum': ['immovable', 'sale', 'movable', 'vehicle', 'financial', 'mortgage', 'partnership', 'lease', 'poa_sale', 'poa_vehicle', 'power_of_attorney', 'undertaking', 'mahrieh_release', 'division', 'student_undertaking', 'endowment', 'will', 'will_ahdi', 'settlement', 'collateral_swap', 'other_nonfinancial', 'mortgage_release', 'execution_writ', 'signature_cert', 'sana_signup'], 'type': 'string', 'description': 'Document type. Rate-based types (need amount_toman): immovable/sale, movable/vehicle, financial/mortgage/partnership, lease. Others are fixed-fee.'}, 'amount_toman': {'type': 'number', 'description': 'Document amount in Toman (rate-based types only; for real estate this is ارزش معاملاتی, not market price).'}, 'obligor_count': {'type': 'number', 'description': 'Number of obligors (optional; each beyond two adds a surcharge).'}}}
calculate_severance
محاسبهٔ حق سنوات و مزایای پایان کار — Calculate end-of-service entitlements
Calculate an Iranian employee's end-of-service entitlements (حق سنوات، عیدی، مانده مرخصی) under قانون کار, using the current official minimum wage. Use this instead of computing by hand.
Read only Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {'year': {'type': 'integer', 'description': 'Persian year for the minimum-wage basis. Defaults to the latest.'}, 'years': {'type': 'number', 'description': 'Years of service (may be fractional).'}, 'months': {'type': 'integer', 'description': 'Extra months of service (0–11).'}, 'contract_type': {'enum': ['permanent', 'fixed'], 'type': 'string', 'description': 'permanent = دائمی, fixed = موقت. Default permanent.'}, 'last_salary_toman': {'type': 'number', 'description': 'Last monthly salary in TOMAN. Below the statutory minimum wage the minimum is used instead.'}, 'unused_leave_days': {'type': 'number', 'description': 'Stored unused annual leave days (ماده ۶۶ ق.کار caps storage at 9 days/yr).'}}}
calculate_stamp_duty
محاسبهٔ حق‌الثبت — Calculate registration duty
Calculate حق‌الثبت (registration duty) for property, vehicle, company, marriage and divorce documents. Distinct from حق‌التحریر (the notary's own fee — use calculate_notary_fee for that).
Read only Idempotent
Input schema
{'type': 'object', 'required': ['tx_type'], 'properties': {'tx_type': {'enum': ['property_sale', 'property_gift', 'vehicle', 'mortgage', 'power_attorney', 'marriage', 'divorce', 'company', 'will'], 'type': 'string', 'description': 'Transaction/document type.'}, 'amount_toman': {'type': 'number', 'description': 'Transaction amount in Toman (for rate-based types).'}}}
calculate_tax
محاسبهٔ مالیات — Calculate Iranian taxes
Calculate Iranian salary, property-transfer, inheritance or rental tax. For inheritance: rates depend on asset kind and heir class (arts. 17–18 ق.م.م) with NO general monetary exemption, and pre/post-1395 death dates differ — ask before calling. Property basis is ارزش معاملاتی, not market price.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['tax_type'], 'properties': {'tax_type': {'enum': ['salary', 'property_transfer', 'inheritance', 'rental'], 'type': 'string', 'description': 'Tax type.'}, 'asset_kind': {'enum': ['real_estate', 'goodwill', 'bank_deposit', 'listed_shares', 'unlisted_shares', 'vehicle', 'other'], 'type': 'string', 'description': 'Asset kind (required for inheritance).'}, 'heir_class': {'enum': [1, 2, 3], 'type': 'integer', 'description': 'Heir class (inheritance, art. 18): 1=parents/spouse/children, 2=grandparents/siblings ×2 rate, 3=aunts/uncles ×4 rate.'}, 'value_toman': {'type': 'number', 'description': 'Property value (property_transfer) or taxable asset value (inheritance).'}, 'monthly_toman': {'type': 'number', 'description': 'Monthly salary (for salary).'}, 'no_other_income': {'type': 'boolean', 'description': 'Rental: individual landlord with no other income (art. 57 exemption).'}, 'monthly_rent_toman': {'type': 'number', 'description': 'Monthly rent (for rental).'}, 'residential_under_exempt_area': {'type': 'boolean', 'description': 'Rental: residential unit within the exempt floor-area (150m² Tehran / 200m² elsewhere).'}}}
lookup_annual_rate
نرخ‌های رسمی سالانه — Look up official yearly rates
Fetch official Iranian yearly rates from the database: minimum wage (min_wage), court filing fees (court_fee_*), salary tax exemption (salary_tax_exemption_annual), Central Bank price index for delay damages (cbi_price_index), daily severance (sanavat_daily). حق‌الوکاله is NOT an annual rate — use calculate_lawyer_fee. ALWAYS use this instead of recalling a rate — yearly figures are exactly what models misremember. For دیه use calculate_diyeh instead. Read each row's `unit` field: «rials» means Rial and «درصد» means percent — never report a percentage as a Rial amount.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['rate_type'], 'properties': {'rate_type': {'type': 'string', 'description': 'Rate key, e.g. min_wage, court_fee_financial_first, cbi_price_index, sanavat_daily.'}, 'year_jalali': {'type': 'number', 'description': 'Persian year (optional — defaults to the latest available).'}}}
lookup_law_article
متن دقیق یک ماده — Look up one article verbatim
Fetch the VERBATIM text of a specific article when you already know the law and the article number (e.g. «ماده ۱۰ قانون مدنی»). Use this to verify wording before quoting it. Never paraphrase an article from memory — quote what this returns, and link the source_url. Also returns, when we hold them: `section_path` (the article's place in the law: کتاب/باب/فصل), `clauses` (its بند/جزء as labelled parts, so you can cite «بند ۲ ماده ۱۹۰»), `summary`/`summary_plain` (machine-written explanations — NOT statute text; never quote them as law), `keywords`, `topics`, `answers_in_text` (question → the exact slice of this article that answers it) and `related_articles` with their own source_urls.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['law', 'article_number'], 'properties': {'law': {'type': 'string', 'description': 'Law name in Persian, e.g. «قانون مدنی».'}, 'article_number': {'type': 'string', 'description': 'Article number, e.g. «۱۰» or «10».'}}}
lookup_procedure
مهلت‌های دادرسی — Look up procedural deadlines
Look up Iranian procedural deadlines (مهلت تجدیدنظر، واخواهی، اعتراض ثالث، اجرای حکم…) with the governing law and article, by case type. Use when the user asks how long they have for a procedural step. Deadlines differ by case type — never answer from memory.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['case_type'], 'properties': {'case_type': {'enum': ['حقوقی', 'کیفری', 'خانواده', 'کار', 'اداری'], 'type': 'string', 'description': 'Case type, in Persian.'}, 'procedure_name': {'type': 'string', 'description': 'Optional procedure key (e.g. tajdid_nazar_madani, faryad_khahi); omit to list all procedures for the case type.'}}}
lookup_sentencing_range
مجازات قانونی جرم — Look up statutory sentencing range
Look up the statutory punishment for an Iranian crime — imprisonment, fine, lashes, قصاص, دیه — with the governing article. Use when the user asks what the punishment for a crime is, or for criminal-risk analysis. Never state a sentencing range from memory.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['crime_type'], 'properties': {'crime_type': {'type': 'string', 'description': 'Crime, in Persian (e.g. «کلاهبرداری»، «سرقت»، «خیانت در امانت»).'}, 'crime_grade': {'type': 'number', 'description': 'Optional تعزیری grade (1–8).'}}}
lookup_statute_of_limitations
مرور زمان — Look up statute of limitations
Check Iranian limitation periods (مرور زمان) — prosecution, execution, and filing deadlines — for a case category. Use when the user asks whether a claim is time-barred or how long they have to file.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['case_category'], 'properties': {'crime_grade': {'type': 'number', 'description': 'Optional تعزیری grade (1–8), criminal only.'}, 'case_category': {'enum': ['criminal', 'civil', 'family', 'labor', 'administrative'], 'type': 'string', 'description': 'Case category.'}}}
search_advisory_opinions
جست‌وجوی نظریات مشورتی — Search official advisory opinions
Search the advisory opinions (نظریات مشورتی) of the Judiciary's legal department (اداره کل حقوقی قوه قضائیه) — the official, citable interpretation of Iranian statutes. Use when the user asks how a provision is officially interpreted, or to support an argument. Advisory opinions are authoritative guidance, not binding law — say so when citing. Returns opinion number, date, and excerpt with source_url.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 5, 'maximum': 5, 'minimum': 1}, 'query': {'type': 'string', 'description': 'Topic, in Persian (e.g. «مهریه عندالاستطاعه», «اعسار»).'}}}
search_case_law
جست‌وجوی آرای قضایی — Search Iranian court rulings
Search 31,000+ Iranian court rulings and آرای وحدت رویه (binding precedent). Use when the user asks how courts have actually decided an issue, or for precedent supporting a position. Returns excerpts with source_url.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 5, 'maximum': 5, 'minimum': 1}, 'query': {'type': 'string', 'description': 'The legal issue, in Persian.'}}}
search_circular
جست‌وجوی بخشنامه‌ها — Search official circulars
Search official circulars and directives (بخشنامه‌ها) from the judiciary and government bodies — the source of current official RATES and procedures. Returns excerpts with source_url.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 5, 'maximum': 5, 'minimum': 1}, 'query': {'type': 'string', 'description': 'Topic, in Persian.'}}}
search_law_articles
جست‌وجوی مواد قانونی — Search Iranian law articles
Semantic + keyword search across the full text of Iranian statutes (60,000+ articles: قانون مدنی، مجازات اسلامی، کار، تجارت، آیین دادرسی و…). USE THIS BEFORE ANSWERING ANY QUESTION ABOUT IRANIAN LAW — do not rely on memory; article numbers and wording are frequently misremembered, and amended articles are a common trap. Returns matching articles with their exact article number, law title, a text excerpt, and a source_url to the full article. Cite the article number and link the source_url.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 5, 'maximum': 5, 'minimum': 1}, 'query': {'type': 'string', 'description': 'The legal question or topic, in Persian or English. Persian gives better recall.'}, 'law_filter': {'type': 'string', 'description': 'Optional: restrict to one law, e.g. «قانون مدنی» or «قانون کار».'}}}
Changed
calculate_expert_fee
Oct. 1, 2026, 2:51 a.m.
Changed
calculate_diyeh
Oct. 1, 2026, 2:51 a.m.
Added
calculate_expert_fee
Sept. 27, 2026, 2:51 a.m.
Changed
search_law_articles
Sept. 25, 2026, 3 a.m.
Added
calculate_tax
Sept. 17, 2026, 7:56 a.m.
Added
calculate_lawyer_fee
Sept. 17, 2026, 7:56 a.m.
Added
calculate_notary_fee
Sept. 17, 2026, 7:56 a.m.
Added
calculate_stamp_duty
Sept. 17, 2026, 7:56 a.m.
Added
calculate_delay_penalty
Sept. 17, 2026, 7:56 a.m.
Added
calculate_inheritance
Sept. 17, 2026, 7:56 a.m.
Added
calculate_mahrieh
Sept. 17, 2026, 7:56 a.m.
Added
lookup_procedure
Sept. 17, 2026, 7:56 a.m.
Added
lookup_statute_of_limitations
Sept. 17, 2026, 7:56 a.m.
Added
lookup_sentencing_range
Sept. 17, 2026, 7:56 a.m.
Added
lookup_annual_rate
Sept. 17, 2026, 7:56 a.m.
Added
search_advisory_opinions
Sept. 17, 2026, 7:56 a.m.
Added
calculate_severance
Sept. 17, 2026, 7:56 a.m.
Added
calculate_litigation_fee
Sept. 17, 2026, 7:56 a.m.
Added
calculate_diyeh
Sept. 17, 2026, 7:56 a.m.
Added
search_circular
Sept. 17, 2026, 7:56 a.m.
Added
search_case_law
Sept. 17, 2026, 7:56 a.m.
Added
lookup_law_article
Sept. 17, 2026, 7:56 a.m.
Added
search_law_articles
Sept. 17, 2026, 7:56 a.m.