Server definition
- Hash
- sha256:c63732f8979950135a00d24fdbb3410207711b83a04b9e8e616c878c365a3fec
- What it is
- What a remote MCP server returned when asked what it offers: 20 tools
The blob, as servednamed by its sha256
{
"instructions": "Iranian legal corpus: 46,000+ statute articles, 31,000+ court rulings, official advisory opinions, official circulars, yearly-rate and procedural-deadline lookups, and 10 verified legal calculators (diyeh, litigation fees, severance, mahrieh, inheritance, delay damages, registration duty, notary fee, lawyer tariff, taxes). Use these tools for ANY question about Iranian law rather than answering from memory — article numbers, amended wording, and yearly rates (دیه, minimum wage, court fees) are exactly what models get wrong. Every result includes a source_url on https://hoghogh.ai; cite the article number and link the source.",
"tools": [
{
"description": "Calculate خسارت تأخیر تأدیه under art. 522 ق.آ.د.م using the Central Bank price index. The index series is official data — never approximate it. Dates are Jalali.",
"inputSchema": {
"properties": {
"end_month": {
"description": "Jalali end month 1–12 (optional).",
"type": "integer"
},
"end_year": {
"description": "Jalali year of calculation/payment.",
"type": "integer"
},
"principal": {
"description": "Principal debt amount.",
"type": "number"
},
"principal_unit": {
"description": "Unit of the principal (default Toman).",
"enum": [
"toman",
"rial"
],
"type": "string"
},
"start_month": {
"description": "Jalali start month 1–12 (optional).",
"type": "integer"
},
"start_year": {
"description": "Jalali year the debt fell due.",
"type": "integer"
}
},
"required": [
"principal",
"start_year",
"end_year"
],
"type": "object"
},
"name": "calculate_delay_penalty",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"count": {
"description": "How many (fingers, teeth …). Default 1.",
"type": "integer"
},
"fraction": {
"description": "دیه fraction between 0 and 1 — only when no injury_type fits.",
"type": "number"
},
"gender": {
"description": "Gender of the injured/deceased.",
"enum": [
"male",
"female"
],
"type": "string"
},
"injury_type": {
"description": "Injury key from the standard list (e.g. full = دیهٔ کامل, hand_one = یک دست, tooth_front = دندان جلویی). Pick the key, not free text.",
"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"
},
"sacred_month": {
"description": "Occurred in a ماه حرام (تغلیظ — applies to دیهٔ نفس only).",
"type": "boolean"
},
"year": {
"description": "Persian year (e.g. 1405). Defaults to the latest loaded rate.",
"type": "integer"
}
},
"required": [],
"type": "object"
},
"name": "calculate_diyeh",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"expert_count": {
"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.",
"type": "integer"
},
"kind": {
"description": "valuation = art. 11 ladder (needs value_rial); residual = flat minimum, no specific tariff (art. 9); evidence = تأمین دلیل flat minimum (art. 7).",
"enum": [
"valuation",
"residual",
"evidence"
],
"type": "string"
},
"modifiers": {
"description": "valuation only; usually at most one: contract_dispute = employer/contractor/consulting-engineer dispute or صورتوضعیت 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)).",
"items": {
"enum": [
"contract_dispute",
"contract_dispute_partial",
"intangible_assets",
"underground_mine"
],
"type": "string"
},
"type": "array"
},
"travel_days_other_province": {
"description": "Mission days outside the expert's own province (art. 6).",
"type": "integer"
},
"travel_days_same_province": {
"description": "Mission days within the expert's own province (art. 6 daily travel allowance) — added to any kind.",
"type": "integer"
},
"value_rial": {
"description": "Value of the subject matter under appraisal, in RIAL — valuation only. Never pass Toman.",
"type": "number"
}
},
"required": [
"kind"
],
"type": "object"
},
"name": "calculate_expert_fee",
"outputSchema": null
},
{
"description": "Calculate Iranian inheritance shares (سهمالارث) under قانون مدنی arts. 862–949, including حجب نقصانی reduction rules. The jurisprudential edge cases make hand computation unreliable — always use this tool.",
"inputSchema": {
"properties": {
"daughter_count": {
"description": "Number of daughters.",
"type": "integer"
},
"deceased_gender": {
"description": "Gender of the deceased.",
"enum": [
"male",
"female"
],
"type": "string"
},
"has_father": {
"description": "Father alive?",
"type": "boolean"
},
"has_mother": {
"description": "Mother alive?",
"type": "boolean"
},
"has_spouse": {
"description": "Surviving spouse?",
"type": "boolean"
},
"sibling_count": {
"description": "Deceased's siblings (for حجب نقصانی).",
"type": "integer"
},
"son_count": {
"description": "Number of sons.",
"type": "integer"
},
"total_assets_toman": {
"description": "Total estate value in Toman.",
"type": "number"
}
},
"required": [
"total_assets_toman",
"deceased_gender"
],
"type": "object"
},
"name": "calculate_inheritance",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"case_type": {
"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).",
"enum": [
"civil",
"family",
"non_financial",
"criminal",
"admin",
"board"
],
"type": "string"
},
"case_value_toman": {
"description": "Claim value in Toman — civil only.",
"type": "number"
},
"criminal_grade": {
"description": "Criminal only: court (کیفری یک / دو) and offence grade.",
"enum": [
"k1_grade1",
"k1_grade2_3",
"k1_other",
"k2_hodud_diyat_grade4_5",
"k2_grade6",
"k2_other"
],
"type": "string"
},
"final_at_first_instance": {
"description": "Civil only: first-instance judgment is final as to value ⇒ flat 10% (art. 9 opening).",
"type": "boolean"
},
"outcome": {
"description": "How the case ends (default judgment). Settlement is paid in full (art. 23); art. 12 halves or quarters a fee for قرار رد / ابطال.",
"enum": [
"judgment",
"settlement",
"dismissed_no_merits",
"rejected_after_defence",
"voided_before_defence"
],
"type": "string"
},
"stage": {
"description": "first = 60%, appeal = 40%, cassation = on the appeal tariff (arts. 16–17).",
"enum": [
"first",
"appeal",
"cassation"
],
"type": "string"
}
},
"required": [
"stage"
],
"type": "object"
},
"name": "calculate_lawyer_fee",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"case_type": {
"description": "financial = مالی (needs claim_amount_toman), non_financial = غیرمالی (fixed official figure).",
"enum": [
"financial",
"non_financial"
],
"type": "string"
},
"claim_amount_toman": {
"description": "Claim value in TOMAN (financial claims only).",
"type": "number"
},
"stage": {
"description": "Stage: first = بدوی, appeal = تجدیدنظر, supreme = فرجام/دیوان عالی.",
"enum": [
"first",
"appeal",
"supreme"
],
"type": "string"
}
},
"required": [
"stage"
],
"type": "object"
},
"name": "calculate_litigation_fee",
"outputSchema": null
},
{
"description": "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 «ارزش روز».",
"inputSchema": {
"properties": {
"cash_toman": {
"description": "Cash portion in Toman (optional).",
"type": "number"
},
"coin_type": {
"description": "Coin type (default azadi = تمام بهار آزادی).",
"enum": [
"azadi",
"emami",
"half",
"quarter",
"gram"
],
"type": "string"
},
"coins": {
"description": "Number of coins in the مهریه.",
"type": "number"
},
"marriage_year": {
"description": "Jalali marriage year (needed to adjust the cash portion to today's value).",
"type": "number"
}
},
"required": [],
"type": "object"
},
"name": "calculate_mahrieh",
"outputSchema": null
},
{
"description": "Calculate حقالتحریر (the notary office's fee) from the official 1405 tariff for دفاتر اسناد رسمی. Distinct from حقالثبت (use calculate_stamp_duty for that). Never estimate the tariff.",
"inputSchema": {
"properties": {
"amount_toman": {
"description": "Document amount in Toman (rate-based types only; for real estate this is ارزش معاملاتی, not market price).",
"type": "number"
},
"doc_type": {
"description": "Document type. Rate-based types (need amount_toman): immovable/sale, movable/vehicle, financial/mortgage/partnership, lease. Others are fixed-fee.",
"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"
},
"obligor_count": {
"description": "Number of obligors (optional; each beyond two adds a surcharge).",
"type": "number"
}
},
"required": [
"doc_type"
],
"type": "object"
},
"name": "calculate_notary_fee",
"outputSchema": null
},
{
"description": "Calculate an Iranian employee's end-of-service entitlements (حق سنوات، عیدی، مانده مرخصی) under قانون کار, using the current official minimum wage. Use this instead of computing by hand.",
"inputSchema": {
"properties": {
"contract_type": {
"description": "permanent = دائمی, fixed = موقت. Default permanent.",
"enum": [
"permanent",
"fixed"
],
"type": "string"
},
"last_salary_toman": {
"description": "Last monthly salary in TOMAN. Below the statutory minimum wage the minimum is used instead.",
"type": "number"
},
"months": {
"description": "Extra months of service (0–11).",
"type": "integer"
},
"unused_leave_days": {
"description": "Stored unused annual leave days (ماده ۶۶ ق.کار caps storage at 9 days/yr).",
"type": "number"
},
"year": {
"description": "Persian year for the minimum-wage basis. Defaults to the latest.",
"type": "integer"
},
"years": {
"description": "Years of service (may be fractional).",
"type": "number"
}
},
"required": [],
"type": "object"
},
"name": "calculate_severance",
"outputSchema": null
},
{
"description": "Calculate حقالثبت (registration duty) for property, vehicle, company, marriage and divorce documents. Distinct from حقالتحریر (the notary's own fee — use calculate_notary_fee for that).",
"inputSchema": {
"properties": {
"amount_toman": {
"description": "Transaction amount in Toman (for rate-based types).",
"type": "number"
},
"tx_type": {
"description": "Transaction/document type.",
"enum": [
"property_sale",
"property_gift",
"vehicle",
"mortgage",
"power_attorney",
"marriage",
"divorce",
"company",
"will"
],
"type": "string"
}
},
"required": [
"tx_type"
],
"type": "object"
},
"name": "calculate_stamp_duty",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"asset_kind": {
"description": "Asset kind (required for inheritance).",
"enum": [
"real_estate",
"goodwill",
"bank_deposit",
"listed_shares",
"unlisted_shares",
"vehicle",
"other"
],
"type": "string"
},
"heir_class": {
"description": "Heir class (inheritance, art. 18): 1=parents/spouse/children, 2=grandparents/siblings ×2 rate, 3=aunts/uncles ×4 rate.",
"enum": [
1,
2,
3
],
"type": "integer"
},
"monthly_rent_toman": {
"description": "Monthly rent (for rental).",
"type": "number"
},
"monthly_toman": {
"description": "Monthly salary (for salary).",
"type": "number"
},
"no_other_income": {
"description": "Rental: individual landlord with no other income (art. 57 exemption).",
"type": "boolean"
},
"residential_under_exempt_area": {
"description": "Rental: residential unit within the exempt floor-area (150m² Tehran / 200m² elsewhere).",
"type": "boolean"
},
"tax_type": {
"description": "Tax type.",
"enum": [
"salary",
"property_transfer",
"inheritance",
"rental"
],
"type": "string"
},
"value_toman": {
"description": "Property value (property_transfer) or taxable asset value (inheritance).",
"type": "number"
}
},
"required": [
"tax_type"
],
"type": "object"
},
"name": "calculate_tax",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"rate_type": {
"description": "Rate key, e.g. min_wage, court_fee_financial_first, cbi_price_index, sanavat_daily.",
"type": "string"
},
"year_jalali": {
"description": "Persian year (optional — defaults to the latest available).",
"type": "number"
}
},
"required": [
"rate_type"
],
"type": "object"
},
"name": "lookup_annual_rate",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"article_number": {
"description": "Article number, e.g. «۱۰» or «10».",
"type": "string"
},
"law": {
"description": "Law name in Persian, e.g. «قانون مدنی».",
"type": "string"
}
},
"required": [
"law",
"article_number"
],
"type": "object"
},
"name": "lookup_law_article",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"case_type": {
"description": "Case type, in Persian.",
"enum": [
"حقوقی",
"کیفری",
"خانواده",
"کار",
"اداری"
],
"type": "string"
},
"procedure_name": {
"description": "Optional procedure key (e.g. tajdid_nazar_madani, faryad_khahi); omit to list all procedures for the case type.",
"type": "string"
}
},
"required": [
"case_type"
],
"type": "object"
},
"name": "lookup_procedure",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"crime_grade": {
"description": "Optional تعزیری grade (1–8).",
"type": "number"
},
"crime_type": {
"description": "Crime, in Persian (e.g. «کلاهبرداری»، «سرقت»، «خیانت در امانت»).",
"type": "string"
}
},
"required": [
"crime_type"
],
"type": "object"
},
"name": "lookup_sentencing_range",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"case_category": {
"description": "Case category.",
"enum": [
"criminal",
"civil",
"family",
"labor",
"administrative"
],
"type": "string"
},
"crime_grade": {
"description": "Optional تعزیری grade (1–8), criminal only.",
"type": "number"
}
},
"required": [
"case_category"
],
"type": "object"
},
"name": "lookup_statute_of_limitations",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"limit": {
"default": 5,
"maximum": 5,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "Topic, in Persian (e.g. «مهریه عندالاستطاعه», «اعسار»).",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_advisory_opinions",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"limit": {
"default": 5,
"maximum": 5,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "The legal issue, in Persian.",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_case_law",
"outputSchema": null
},
{
"description": "Search official circulars and directives (بخشنامهها) from the judiciary and government bodies — the source of current official RATES and procedures. Returns excerpts with source_url.",
"inputSchema": {
"properties": {
"limit": {
"default": 5,
"maximum": 5,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "Topic, in Persian.",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_circular",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"law_filter": {
"description": "Optional: restrict to one law, e.g. «قانون مدنی» or «قانون کار».",
"type": "string"
},
"limit": {
"default": 5,
"maximum": 5,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "The legal question or topic, in Persian or English. Persian gives better recall.",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_law_articles",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:c63732f8979950135a00d24fdbb3410207711b83a04b9e8e616c878c365a3fec | sha256sum