Skip to main content
Glama
rehan1020

mcp-india-stack

by rehan1020

🇮🇳 MCP India Stack

Высокопроизводительный, офлайн-ориентированный сервер Model Context Protocol (MCP), предоставляющий AI-агентам доступ к индийским финансовым, налоговым и государственным API. Без необходимости аутентификации.

PyPI version License: MIT MCP Compatible CI

📑 Содержание


Related MCP server: itr-mcp

📌 Постановка задачи

  • Фрагментированный доступ: Индийские API для финтеха, идентификации и налогов сильно разрознены, требуя множества несвязанных интеграций.

  • Высокие барьеры входа: Существующие решения страдают от платных подписок, строгих лимитов запросов и сложного управления ключами API.

  • Отсутствие нативной AI-интеграции: Нет MCP-нативного стандарта, специально предназначенного для автономных AI-агентов, чтобы проверять GSTIN, PAN, IFSC или вычислять налоговые данные.

  • Проблемы с задержкой и надежностью: Зависимость от удаленных сторонних API для статических/медленно меняющихся данных вносит ненужные сетевые задержки и потенциальные точки отказа для AI-рабочих процессов.


🛠️ Технологический стек

Слой

Технология

Протокол

MCP (FastMCP)

Среда выполнения

Python

Распространение

PyPI / Smithery

Хостинг

Render

Наборы данных

Офлайн-встроенные (синхронизация с CDN jsDelivr)


🏗️ Диаграмма архитектуры

Architecture MCP-клиент ↔ MCP-сервер ↔ 58 офлайн-ориентированных инструментальных модулей


🔗 Демо и ссылки

✨ Ключевые возможности

  • Офлайн-ориентированная архитектура: Включает сжатые наборы данных для поиска с нулевой задержкой (IFSC, почтовые индексы, HSN/SAC). Без лимитов API.

  • Нулевая аутентификация: Не требуются ключи API, секреты или подписки. Вся логика выполняется локально.

  • Фоновые автоматические обновления: Неблокирующая загрузка с CDN гарантирует, что ваши наборы данных никогда не устареют, не влияя на задержку запросов.

  • Всестороннее покрытие: 58 специализированных инструментов для проверки личности (PAN, Aadhaar, GSTIN, TAN, PRAN), расчета налогов (подоходный налог, TDS, GST), калькуляторов сбережений (EPF, PPF, SIP) и поиска справочных данных.

  • Готовность к корпоративному использованию: Инструменты массовой проверки с ускорением через пул потоков для обработки больших партий данных поставщиков или клиентов.


🚀 Быстрый старт

Установка

pip install mcp-india-stack

Конфигурация Claude Desktop

Добавьте следующее в файл claude_desktop_config.json, чтобы включить India Stack в Claude Desktop:

Windows (%APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "mcp-india-stack": {
      "command": "python",
      "args": ["-m", "mcp_india_stack"]
    }
  }
}

macOS/Linux (~/Library/Application Support/Claude/claude_desktop_config.json или ~/.config/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "mcp-india-stack": {
      "command": "python3",
      "args": ["-m", "mcp_india_stack"]
    }
  }
}

🛠️ Каталог инструментов

🔍 Инструменты поиска

  • lookup_ifsc — Данные о банковском отделении по коду IFSC

  • lookup_pincode — Данные о почтовом индексе Индии и почтовых отделениях

  • lookup_hsn_code — Поиск кода HSN/SAC по коду или ключевому слову

  • decode_state_code — Метаданные кода штата GST

  • lookup_bbps_biller — Поиск в справочнике плательщиков BBPS

  • lookup_bank — Базовый поиск банка по названию или коду

✅ Инструменты проверки

  • validate_gstin — Структура GSTIN и контрольная сумма

  • validate_pan — Формат PAN и расшифровка типа организации

  • validate_upi_vpa — Структура UPI VPA и расшифровка провайдера

  • validate_aadhaar — Номер Aadhaar с контрольной суммой Verhoeff (маскированный вывод)

  • validate_voter_id — Формат удостоверения избирателя (EPIC) с определением устаревших версий

  • validate_driving_license — Формат водительских прав с расшифровкой штата/RTO/года

  • validate_passport — Формат номера индийского паспорта

  • validate_cin — Идентификационный номер компании с полной расшифровкой полей

  • validate_din — Формат идентификационного номера директора

  • validate_fssai — Проверка и расшифровка лицензионного номера FSSAI

  • validate_epf_code — Проверка кода организации EPF

  • validate_esic_code — Проверка кода работодателя ESIC

  • validate_tan — Проверка TAN

  • validate_pran — Проверка PRAN для NPS

  • validate_llpin — Проверка LLPIN

  • decode_isin — Декодер ISIN с проверкой Луна

  • decode_digilocker_uri — Декодер URI DigiLocker и сопоставление валидаторов

  • decode_pan_type — Расшифровка типа организации PAN по 4-му символу

📱 Идентификация и контакты

  • validate_mobile_number — Номер мобильного телефона с определением оператора/круга

⚡ Массовые операции

🧮 Налоговые и финансовые калькуляторы (FY2025-26)

💰 Калькуляторы сбережений и инвестиций

🏠 Недвижимость

💼 HR и расчет заработной платы

🏦 Банковское дело и платежи

📈 Фондовый рынок

  • get_stock_quote — Получение актуальных/задержанных котировок и сводок по индийским акциям (NSE/BSE) с использованием yfinance.

  • get_stock_history — Получение исторических данных на конец дня по индийским акциям с использованием yfinance.

🔐 Агрегатор счетов (офлайн)


🔄 Агентские рабочие процессы и ресурсы

Шаблоны рабочих процессов (Обзор)

Встроенные шаблоны подсказок для руководства AI-агентами в сложных многошаговых задачах:

  • vendor_kyc — Последовательность проверки GSTIN, PAN и IFSC.

  • salary_planner — Планирование дохода, HRA и оптимизированной зарплаты на руки.

  • invoice_audit — Перекрестная проверка GSTIN, кодов HSN и применимых ставок GST.

Серверные ресурсы (Обзор)

Динамические JSON-ресурсы, предоставляемые непосредственно в контекст LLM:

  • india://status — Версия, подключение к БД и флаги выполнения

  • india://changelog — Структурированный ресурс журнала изменений

  • india://schema/* — JSON-схемы для всех выходных данных инструментов


📡 Архитектура данных и актуальность

Этот пакет включает статические наборы данных для офлайн-ориентированных рабочих процессов (примерно 10-11 МБ в сжатом виде), охватывающие IFSC, почтовые индексы, справочники HSN/SAC и курируемые UPI-идентификаторы.

Дополнительный механизм автоматического обновления в фоновом режиме загружает последние версии с CDN jsDelivr:

  • Неблокирующий: Устаревшие данные запускают фоновое обновление; текущий запрос немедленно использует существующие кэшированные данные для обеспечения нулевой задержки.

  • Отказ от обновлений: Установите переменную окружения MCP_INDIA_STACK_NO_AUTO_UPDATE=1, чтобы отключить все проверки обновлений.

  • Ручное обновление: Выполните mcp-india-stack --refresh-all для синхронного обновления всех наборов данных с CDN.

  • Расположение кэша: Зависит от платформы через platformdirs (например, ~/.cache/mcp-india-stack на Linux).


⚠️ Ограничения

  • Проверка без сохранения состояния: валидаторы GSTIN, Aadhaar, Voter ID, DL, Passport, CIN и DIN проверяют только структурное форматирование и контрольные суммы. Они не проверяют статус активной регистрации в государственных органах, выдавших документ.

  • Алгоритмические ограничения: проверка PAN является структурной; логика контрольного символа PAN не является публично проверяемой.

  • Оценки налогов: все налоговые расчёты являются алгоритмическими оценками на основе правил FY2025-26. Фактическая задолженность может отличаться. Всегда консультируйтесь с дипломированным бухгалтером.

  • Статические ставки: ставки HSN/SAC являются статическими справочными значениями и могут меняться в зависимости от конкретных условий или новых правительственных уведомлений.


⚖️ Правовая информация и атрибуция

Подробную информацию об атрибуции наборов данных, условиях лицензирования и благодарностях третьим лицам см. в NOTICES.


🚀 Примечания к запуску

Этот репозиторий готов к выпуску для запуска на GitHub и включает:

  • Метаданные пакета 0.4.2 и покрытие журнала изменений.

  • Полную серверную карточку MCP в docs/.well-known/mcp/server-card.json.

  • Локальную настройку и шаги публикации в SETUP.md.

  • Руководство по внесению вклада и политику версионирования в CONTRIBUTING.md.

Исправления ошибок в v0.4.2 (Раунд 2 — Глубокий аудит кода)

  • Прирост капитала: пороги LTCG в зависимости от типа актива — недвижимость 24 мес., золото/долговые обязательства 36 мес., криптовалюта всегда фиксированные 30%.

  • EPF/ESIC: взнос сотрудника в EPF корректно ограничен потолком заработной платы ₹15K. Добавлен voluntary_pf_on_actual для VPF.

  • HRA: Бангалор/Хайдарабад/Пуна исключены из городов-метрополий. Только Дели/Мумбаи/Ченнаи/Калькутта получают 50%.

  • Предполагаемый налог: полное покрытие новой системы из 7 ступеней с вычетом 87A (ранее было ограничено 3 ступенями).

  • Штраф за просрочку GST: применяется ограничение GSTR9 (0,25% от оборота). Ставка нулевой декларации исправлена на ₹20/день.

  • Проценты по подоходному налогу: раздел 234C использует совокупную уплаченную сумму по сравнению с требуемой (не за один квартал).

  • Авансовый налог: платежи показывают инкрементальную installment_amount (не сбивающую с толку совокупную).

  • Реструктуризация зарплаты: убрано устаревшее освобождение на транспортные расходы ₹19,200. Показан стандартный вычет (₹75K).

Исправления ошибок в v0.4.1

  • Безопасность: замаскирована утечка номера Aadhaar в полях ответа.

  • Проверка: исправлена проблема с пересчётом цифр в номере мобильного телефона.

  • Налоговые правила: исправлены пороги предполагаемого налога (44AD/44ADA) в соответствии с правилами FY25-26.

  • Финансы: исправлен расчёт доходности с начислением сложных процентов для Step-up SIP.

  • Данные: добавлены отсутствующие коды HSN (8517, 9401, 2523, 3004, 8708) с корректными ставками GST.

  • Профессиональный налог: исправлены расчёты годовых итогов на основе корректных месячных ступеней.

  • Подоходный налог: исправлен предел вычета 80D для пожилых граждан.

  • ISIN: исправлена логика многоразрядного расширения контрольной суммы Луна.

  • Калькулятор EMI: улучшены ответы об ошибках, чтобы не раскрывать резервные поля при недопустимых входных данных.

  • Авансовый налог: добавлена поддержка переопределения внутренних расчётов с помощью предоставленного пользователем tax_liability.


Гарантия офлайн-режима: все инструменты этого пакета работают без подключения к интернету. API-ключи не требуются. Никакие данные не отправляются на внешние серверы. Все наборы данных включаются в пакет при установке.

Available Tools

60 tools
bulk_validate_aadhaarA
Read-onlyIdempotent

Validate multiple Aadhaar numbers in parallel using ThreadPoolExecutor.

Use when batch-validating Aadhaar numbers for KYC, onboarding, or compliance workflows.

Args: numbers: List of Aadhaar numbers (with or without spaces/hyphens).

Returns: Standard envelope with per-Aadhaar results and valid/invalid counts.

Notes: Max 500 Aadhaars per call. Uses same Verhoeff validation as single tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
numbersYesList of Aadhaar numbers to validate (max 500)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint and idempotentHint, and the description adds genuinely useful behavioral details: parallel execution via ThreadPoolExecutor, a 500-item cap, per-Aadhaar results with counts, and consistency with the single-tool Verhoeff algorithm. No contradiction with annotations.

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

Conciseness5/5

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

The description is well organized with clearly labeled sections: usage, args, returns, and notes. Every sentence earns its place, and the main purpose is front-loaded before implementation details.

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

Completeness5/5

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

With only one parameter, a rich output schema, and annotations covering safety, the description provides everything needed: when to use it, input normalization, batch limit, parallelism, and return behavior. Nothing important is missing.

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

Parameters5/5

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

The schema covers the parameter at 100%, but the description adds meaningful input semantics beyond the schema by stating that numbers may include spaces or hyphens and reinforcing the max-500 list constraint. This helps the agent prepare valid input.

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

Purpose5/5

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

States a specific verb and resource: validate multiple Aadhaar numbers. The description adds parallel execution detail, and the word 'multiple' plus batch focus clearly distinguishes it from validate_aadhaar.

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

Usage Guidelines4/5

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

Explicitly says to use when batch-validating for KYC, onboarding, or compliance workflows, which gives clear context. It does not explicitly name validate_aadhaar as the single-item alternative, so it falls just short of full when-not/alternatives guidance.

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

bulk_validate_gstinA
Read-onlyIdempotent

Validate multiple GSTINs in parallel using ThreadPoolExecutor.

Use when batch-validating vendor GSTINs for onboarding or reconciliation. Reduces N serial calls to ~N/10 parallel batches.

Args: gstins: List of 15-character GSTIN strings.

Returns: Standard envelope with per-GSTIN results, valid/invalid counts.

Notes: Max 500 GSTINs per call. Configurable via MCP_INDIA_STACK_BULK_WORKERS. Individual validation errors don't fail the entire batch.

ParametersJSON Schema
NameRequiredDescriptionDefault
gstinsYesList of GSTINs to validate (max 500)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Even though readOnlyHint and idempotentHint already indicate this is a safe, repeatable census-style operation, the description adds meaningful behavioral detail: execution uses a ThreadPoolExecutor, batches scale to ~N/10 parallel calls, up to 500 GSTINs are allowed per call, and individual validation errors do not fail the entire batch. This is exactly the kind of context beyond annotations that helps an agent invoke it correctly.

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

Conciseness5/5

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

The description is compact, well-sectioned with Args/Returns/Notes, and front-loaded with the core action and use case. Every sentence carries useful information: parallel execution, typical use case, limit, configurability, and partial failure behavior. No filler or redundant repetition.

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

Completeness5/5

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

For a single-parameter validation tool with a full output schema, this description is complete. It tells the agent what the operation does, when to use it, the input format, the call limit, parallelization behavior, and what happens on partial errors. Nothing necessary for correct invocation is missing.

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

Parameters4/5

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

The schema already describes the single gstins parameter as a list of GSTINs with a max of 500, and schema coverage is 100%. The description adds an important extra constraint — each string must be 15 characters — and clarifies that results are returned per GSTIN, adding meaningful nuance beyond the schema alone.

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

Purpose5/5

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

The description states a specific action — validating multiple GSTINs in parallel — and clearly distinguishes this bulk operation from the single-value sibling tools like validate_gstin. The resource and scope are unambiguous: multiple GSTIN values are batch-validated rather than validated one at a time.

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

Usage Guidelines4/5

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

It says to 'Use when batch-validating vendor GSTINs for onboarding or reconciliation' and explains that it replaces many serial calls with a single parallel batch. This gives clear context, though it does not explicitly name validate_gstin as the alternative for single-item validation or mention when a small batch should use the singular path instead.

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

bulk_validate_ifscA
Read-onlyIdempotent

Validate multiple IFSC codes in parallel. # PermissionTier: READ_ONLY

ParametersJSON Schema
NameRequiredDescriptionDefault
ifscsYesList of IFSC codes to validate (max 500)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false, and idempotentHint=true, so the safety profile is covered. The description adds the parallel execution detail but does not clarify what 'validate' means in terms of depth (e.g., format only vs. bank/branch existence) or how results are reported.

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

Conciseness5/5

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

The description is extremely brief and front-loaded with the essential purpose. The permission tag is redundant with the annotations but does not create meaningful bloat, so the definition remains high-signal.

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

Completeness4/5

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

For a low-complexity, single-parameter, read-only tool, the description plus the input schema and output schema together give the agent enough to select and invoke the tool correctly. No essential dynamic behavior or destructive consequence is left uncovered.

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 coverage is 100%, so the parameter description already defines the array of IFSC codes and the 500-code cap. The description's 'multiple' adds little beyond the schema and does not give format examples or additional usage semantics for the single parameter.

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

Purpose5/5

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

The description names a specific verb (validate), a specific resource (IFSC codes), and clearly focuses on multiple codes being checked in parallel. This differentiates it from singular tools like lookup_ifsc and from other bulk validators by naming the exact resource type.

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

Usage Guidelines4/5

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

The phrase 'multiple IFSC codes in parallel' clearly signals this tool is intended for batch validation rather than single-code lookups or validation of other identifiers. It does not explicitly exclude lookup_ifsc for single-code checks, but the bulk context is reasonably clear.

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

bulk_validate_panA
Read-onlyIdempotent

Validate multiple PANs in parallel. # PermissionTier: READ_ONLY

ParametersJSON Schema
NameRequiredDescriptionDefault
pansYesList of PANs to validate (max 500)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly and idempotent hints, so the description's main added behavior is the 'in parallel' execution trait, which is meaningful for understanding concurrency/review implications. The '# PermissionTier' tag slightly reinforces the read-only nature but mostly duplicates the annotation.

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

Conciseness5/5

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

One short active sentence plus a metadata tag, with no filler. The verb and resource are front-loaded, and every token earns its place.

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

Completeness5/5

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

Given a single simple parameter, rich schema coverage, an output schema, and annotations covering safety and idempotency, the description provides all needed context. Nothing essential is missing.

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?

The schema description covers 100% of parameter semantics, including 'List of PANs to validate (max 500)'. The tool description adds no further parameter depth, so baseline 3 is appropriate.

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

Purpose5/5

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

Description states a specific verb ('Validate'), a concrete resource ('multiple PANs'), and a behavioral nuance ('in parallel'). This unambiguously distinguishes it from single-item siblings like validate_pan.

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

Usage Guidelines4/5

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

Implied usage context is clear: use this when validating multiple PANs in parallel, contrasting with single-PAN tools. However, it does not explicitly name the alternative or state when not to use it.

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

calculate_advance_taxA
Read-onlyIdempotent

Calculate quarterly advance tax installment schedule per Sections 234B and 234C.

Use when planning quarterly tax payments to avoid interest penalties. Provides due dates and amounts for each installment.

Args: estimated_income: Estimated annual income for FY2025-26. regime: Tax regime for calculation. taxpayer_type: Category for slab selection. existing_tds: TDS already likely to be deducted.

Returns: Standard envelope with quarterly breakdown and interest rules.

Notes: Due dates: June 15 (15%), Sept 15 (45%), Dec 15 (75%), Mar 15 (100%). Interest 1% per month for delay under Section 234C.

ParametersJSON Schema
NameRequiredDescriptionDefault
regimeNo'new' or 'old' tax regimenew
existing_tdsNoTDS already deducted or to be deducted in rupees
taxpayer_typeNo'individual', 'senior_citizen', or 'super_senior_citizen'individual
estimated_incomeYesEstimated total income for FY in rupees

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

With annotations already establishing readOnly and idempotent behavior, the description augments them by explaining the concrete calculation rules: specific quarterly due dates with cumulative percentages and a 1% per month interest rule. It also states the return envelope contains the schedule and interest rules, going beyond the bare annotation information.

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

Conciseness5/5

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

The description is well organized with a one-sentence summary, a usage sentence, and a clear Args/Returns/Notes layout. Every line adds information about inputs, output shape, or the underlying calculation rules, and there is no redundant or fragmented content.

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

Completeness5/5

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

Given that the output schema already carries return details, the description covers the remaining context needed for a computation of tool: the practical scenario, the fiscal year, the expected due dates, and the interest rule. An agent is equipped to use it without ambiguous assumptions.

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

Parameters4/5

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

Input schema coverage is 100%, but the description enriches a few parameters: it ties estimated_income to FY2025-26, explains taxpayer_type as 'category for slab selection,' and frames existing_tds as 'likely' deductible TDS. These small nuances clarify intent beyond the schema descriptions alone.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Calculate quarterly advance tax installment schedule per Sections 234B and 234C.' This clearly identifies the tool's output and differentiates it from siblings like calculate_income_tax or calculate_tds, since it focuses on installment scheduling and specific legal sections.

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

Usage Guidelines4/5

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

The text provides a clear use case: 'Use when planning quarterly tax payments to avoid interest penalties.' This tells the agent when to invoke the tool, though it does not explicitly name alternative tools or situations to avoid, which keeps it a step below full exclusion guidance.

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

calculate_capital_gainsA
Read-onlyIdempotent

Calculate capital gains tax for various asset types (FY2025-26).

Use when computing tax liability on sale of equity, mutual funds, real estate, gold, or other capital assets.

Args: sale_price: Sale proceeds after expenses. purchase_price: Original purchase price. asset_type: Type of asset sold. holding_period_days: Days held before sale. inflation_index_purchase: Cost Inflation Index for purchase year. inflation_index_sale: Cost Inflation Index for sale year. expenses_on_sale: Expenses incurred during sale. improvements: Cost of improvements (for real estate).

Returns: Standard envelope with STCG/LTCG breakdown, tax rates, and liability.

Notes: Budget 2024 rates: STCG 20% (equity/MF), LTCG 12.5% (equity/MF threshold 100K). Real estate without indexation taxed at 20%.

ParametersJSON Schema
NameRequiredDescriptionDefault
asset_typeNoAsset type: equity, mutual_fund, real_estate, gold, debentures, cryptoequity
sale_priceYesSale proceeds in rupees
improvementsNoCost of improvements (for real estate)
purchase_priceYesOriginal purchase price in rupees
expenses_on_saleNoBrokerage, registration and other expenses on sale
holding_period_daysNoNumber of days held before sale
inflation_index_saleNoCII for sale year (for indexation)
inflation_index_purchaseNoCII for purchase year (for indexation)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds relevant behavioral context beyond annotations, including Budget 2024 rate rules, STCG/LTCG breakdown expectations, the default 365-day holding period, and the specific return envelope containing tax rates and liability.

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?

The description is well-structured with a summary sentence, Args, Returns, and Notes sections. It is somewhat longer than minimal, but the length is justified by tax context and asset-type coverage. The key usage condition is front-loaded in the opening sentence.

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

Completeness4/5

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

The description covers the fiscal year, usage window, key tax regime, asset types, and output envelope, which is sufficient for a read-only calculator with an output schema. It does not exhaustively explain complex edge cases like indexation thresholds or asset-specific holding period differences, but those are partially covered by parameters and notes.

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?

The input schema already documents all 8 parameters at 100% coverage, including descriptions like 'sale proceeds in rupees' and 'CII for purchase year'. The description mostly restates the parameters and adds modest clarification such as 'sale proceeds after expenses' and 'expenses incurred during sale', but it does not materially improve on the schema's parameter documentation.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Calculate capital gains tax for various asset types' and scopes it to FY2025-26. It names the covered asset classes (equity, mutual funds, real estate, gold), which clearly distinguishes this tool from sibling calculators like calculate_income_tax, calculate_tds, and calculate_gst.

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

Usage Guidelines4/5

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

The description gives an explicit 'Use when computing tax liability on sale of equity, mutual funds, real estate, gold, or other capital assets' condition. It does not explicitly exclude or direct to alternatives like calculate_income_tax, but the stated trigger context is clear enough for an agent to select it among the calculation siblings.

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

calculate_emiA
Read-onlyIdempotent

Calculate EMI for a loan with year-by-year amortization schedule.

Use when computing loan EMIs, comparing loan options, or planning prepayment strategies.

Args: principal: Loan amount in INR. annual_interest_rate: Annual rate as percentage. tenure_months: Loan tenure in months (max 360). loan_type: Label for the loan type.

Returns: Standard envelope with EMI, total payment, interest, and amortization.

Notes: Uses standard reducing balance formula. Actual EMI may vary by lender.

ParametersJSON Schema
NameRequiredDescriptionDefault
loan_typeNoLoan type: home, personal, car, education, otherother
principalYesLoan amount in INR
tenure_monthsYesLoan tenure in months
annual_interest_rateYesAnnual interest rate as percentage (e.g., 8.5)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate read-only and idempotent behavior. The description adds valuable context: 'standard reducing balance formula', a lender-variance caveat, and the year-by-year schedule detail. No contradiction with annotations.

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

Conciseness5/5

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

The description is well-organized with clear headings, front-loaded usage guidance, and concise parameter notes. Every sentence is purposeful and there is no redundancy.

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

Completeness5/5

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

Given the read-only annotations and full output schema, the description provides all needed context: use cases, formula, caveats, and parameter constraints. The tool can be invoked correctly without missing information.

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 coverage is 100%, so the schema already documents all parameters clearly. The description adds only minor extras like tenure max 360 and the loan_type label, which slightly improves clarity but does not fully warrant more than the baseline.

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

Purpose5/5

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

States a specific verb and resource: 'Calculate EMI for a loan with year-by-year amortization schedule.' It also distinguishes itself from the many sibling calculators by emphasizing the amortization schedule, which is unique enough.

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

Usage Guidelines4/5

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

Provides explicit usage contexts: 'Use when computing loan EMIs, comparing loan options, or planning prepayment strategies.' However, it does not mention when to avoid using it or explicitly point to an alternative tool.

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

calculate_epf_esicA
Read-onlyIdempotent

Calculate EPF and ESIC contributions for employer and employee.

Use when computing payroll costs, employee deductions, or comparing CTC structures across different salary levels.

Args: basic_wages: Basic salary + DA per month in INR. gross_wages: Total gross monthly salary in INR. include_employer_share: If True, return employer costs.

Returns: Standard envelope with EPF breakdown, ESIC applicability, and totals.

Notes: EPF ceiling is ₹15,000/month for statutory computation. ESIC applicable when gross wages ≤ ₹21,000/month.

ParametersJSON Schema
NameRequiredDescriptionDefault
basic_wagesYesBasic salary + DA per month in INR
gross_wagesYesTotal gross monthly salary in INR
include_employer_shareNoIf True, return employer costs

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, setting the behavioral safety baseline. Beyond that, the description adds valuable statutory context: the ₹15,000 EPF ceiling and the ₹21,000 ESIC applicability threshold. It also hints at output through 'EPF breakdown, ESIC applicability, and totals.'

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

Conciseness5/5

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

The description is compact and well-organized: purpose in the first sentence, clear usage guidance, argument list, return hint, and domain-specific notes. Every sentence earns its place without redundant filler.

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

Completeness4/5

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

The tool has an output schema, so the return breakdown need not be restated. The description covers purpose, usage scenario, key statutory thresholds, and the employer/employee dimension. It is complete for the intended payroll-cost comparison and deduction contexts.

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

Parameters4/5

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

The schema already covers 100% of parameter descriptions, so the baseline is 3. The description adds meaningful parameter-level context through the statutory limits, particularly that gross wages determine ESIC applicability and the EPF computation ceiling is ₹15,000. This goes beyond merely restating the schema.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Calculate EPF and ESIC contributions for employer and employee.' It clearly distinguishes itself from the many sibling calculators (e.g., calculate_gratuity, calculate_income_tax) by naming the exact statutory payroll contributions it handles.

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

Usage Guidelines4/5

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

The description explicitly states when to use the tool: 'Use when computing payroll costs, employee deductions, or comparing CTC structures across different salary levels.' This is clear context but does not provide exclusions or explicit alternatives, so it misses the top score.

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

calculate_fd_maturityA
Read-onlyIdempotent

Calculate Fixed Deposit maturity amount.

Use when projecting FD returns or comparing deposit options.

Args: principal: Deposit amount in INR annual_interest_rate: Rate as percentage tenure_days: Deposit tenure in days compounding: Compounding frequency is_senior_citizen: Senior citizen flag (0.25% extra rate) tds_applicable: Apply TDS if interest > ₹40,000/yr

Returns: Maturity amount with interest breakdown and TDS if applicable.

ParametersJSON Schema
NameRequiredDescriptionDefault
principalYesDeposit amount in INR
compoundingNomonthly, quarterly, half_yearly, yearly, simplequarterly
tenure_daysYesDeposit tenure in days
tds_applicableNoApply 10% TDS if interest exceeds threshold
is_senior_citizenNoSenior citizen flag
annual_interest_rateYesInterest rate as percentage (e.g., 6.5)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, so the basic behavior is covered. The description adds useful detail such as the 0.25% senior citizen extra rate and the ₹40,000/yr TDS threshold, but doesn't disclose rounding rules or day-count conventions beyond the schema.

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?

Purpose is front-loaded and the description is structured into an action sentence, a usage line, parameter notes, and a returns explanation. It is mildly redundant because all argument details already appear in the schema, but it stays readable and doesn't waste words.

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

Completeness4/5

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

Given the output schema exists and the input schema is fully self-documenting, the description covers the important usage aspects: when to use, what to expect as a return, maturity with interest breakdown, and TDS. It doesn't cover rounding conventions or edge-case inputs, but these are not critical for a maturity calculator tool.

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

Parameters4/5

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

Schema coverage is 100%, so the schema already documents all parameters. The description enriches a few semantics: it names the compounding frequency allowed values, and adds the clear '0.25% extra rate' and TDS threshold details that the schema omits. This helps the agent provide more accurate inputs.

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 clearly states a specific verb and resource: 'Calculate Fixed Deposit maturity amount.' It identifies the domain and distinguishes it from sibling financial calculators (RD, PPF, SIP), though it doesn't explicitly call out the nearest sibling for contrast.

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

Usage Guidelines4/5

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

Provides explicit usage cues with 'Use when projecting FD returns or comparing deposit options.' This tells an agent when the tool is appropriate, though it doesn't mention alternatives like calculate_rd_maturity or explicitly say when not to use it.

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

calculate_gratuityA
Read-onlyIdempotent

Calculate gratuity under the Payment of Gratuity Act, 1972.

Use when computing terminal benefits, comparing CTC packages, or planning retirement benefits.

Args: last_drawn_salary: Basic + DA per month. years_of_service: Total service duration. is_covered_under_act: True for establishments with 10+ employees.

Returns: Standard envelope with gratuity amount, tax-exempt limit, and breakdown.

Notes: Minimum 5 years service required (except death/disablement). Tax-exempt ceiling is ₹20,00,000.

ParametersJSON Schema
NameRequiredDescriptionDefault
years_of_serviceYesTotal years served (e.g., 5.8 = 5 yrs 9 months)
last_drawn_salaryYesLast basic salary + DA per month in INR
is_covered_under_actNoTrue if establishment has 10+ employees

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

The annotations already state readOnlyHint=true and idempotentHint=true, so the description's job is lighter. It adds helpful behavior context by noting the standard envelope return format, the minimum service requirement, and the ₹20,00,000 tax-exempt ceiling. This is consistent with the annotations.

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

Conciseness5/5

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

The text is well-structured into Args, Returns, and Notes sections. Every sentence adds information, and it is not bloated. It front-loads the core purpose before diving into arguments.

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

Completeness4/5

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

Given the output schema is present and annotations already signal read-only/idempotent, the description covers the important non-obvious constraints (5-year minimum, tax exemption ceiling, coverage threshold). It stops short of describing the exact computation formula, but the tool's own return envelope likely makes that unnecessary.

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

Parameters4/5

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

The input schema already provides 100% coverage with clear descriptions and a decimal/fraction example for years_of_service. The description partially restates the schema, but the Notes add meaning to years_of_service by defining the 5-year minimum and the tax-exempt condition, which is beyond the schema.

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

Purpose5/5

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

The description states a clear verb and resource: 'Calculate gratuity under the Payment of Gratuity Act, 1972.' This is unambiguous and distinct from the sibling tools, which cover taxes, loans, and validation rather than gratuity calculations.

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

Usage Guidelines4/5

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

It explicitly names use cases: 'computing terminal benefits, comparing CTC packages, or planning retirement benefits' and adds key constraints such as 'Minimum 5 years service required (except death/disablement).' It does not explicitly point to an alternative sibling tool, but no sibling directly overlaps with gratuity.

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

calculate_gstA
Read-onlyIdempotent

Calculate GST breakdown with CGST/SGST/IGST split and optional cess.

Use when computing tax for invoices, quotations, or GST compliance.

Args: amount: Base amount or GST-inclusive amount in rupees. gst_rate: Valid GST rate percentage. transaction_type: 'intra_state' or 'inter_state'. amount_includes_gst: Set True to back-calculate base. cess_category: For 28% items, specify applicable cess.

Returns: Standard envelope with base amount, CGST/SGST/IGST breakdown, cess amount, total GST, and total payable amount.

Notes: Rates are for general reference. Actual classification may vary.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesBase amount in rupees (or inclusive amount if flagged)
gst_rateYesGST rate as percentage: 0, 0.1, 0.25, 1.5, 3, 5, 12, 18, 28
cess_categoryNoCess category for 28% items. Default: 'default' (no cess)default
transaction_typeYes'intra_state' (CGST+SGST) or 'inter_state' (IGST)
amount_includes_gstNoIf True, back-calculate base from GST-inclusive amount

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

The description adds value beyond the read-only and idempotent annotations by explaining key behavioral details: amount can be inclusive or exclusive of GST, mutations are not made, and rate classification warnings are given. A minor gap is not being explicit about what happens if invalid GST rates are provided, but overall transparency is strong.

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?

The description is well-structured with a clear purpose line, use context, Args, Returns, and Notes sections. It is fairly concise but includes some vertical space and content that overlaps with the schema, which prevents a perfect score.

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

Completeness5/5

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

With full schema coverage, an output schema, and annotations signaling read-only idempotent behavior, the description provides ample context: it states the business scenario, explains the optional cess behavior, and warns about rate variability. No critical operational detail is missing.

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?

The schema already covers 100% of parameters with clear descriptions, so the description's parameter section adds marginal value. It restates the same meanings (e.g., 'base amount or GST-inclusive amount', 'back-calculate base') without introducing substantially new semantics.

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

Purpose5/5

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

The description uses the specific verb 'Calculate' and identifies the exact resource: GST breakdown with CGST/SGST/IGST split and optional cess. It clearly distinguishes the tool from siblings like calculate_gst_late_fee by naming the core computation and its use cases.

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

Usage Guidelines4/5

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

It explicitly states when to use the tool: 'Use when computing tax for invoices, quotations, or GST compliance.' This provides clear context, though it does not explicitly contrast with sibling calculators like calculate_gst_late_fee or check the xlsx calendar.

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

calculate_gst_late_feeA
Read-onlyIdempotent

Calculate GST late filing penalty.

Use when estimating late filing fees or planning compliance.

Args: return_type: "GSTR1", "GSTR3B", or "GSTR9" days_delayed: Number of days delayed annual_turnover: Annual turnover for cap calculation has_nil_liability: True if nil return

Returns: Late fee breakdown with CGST/SGST split.

ParametersJSON Schema
NameRequiredDescriptionDefault
return_typeYesGSTR1, GSTR3B, or GSTR9
days_delayedYesNumber of days delayed
annual_turnoverYesAnnual turnover in INR
has_nil_liabilityNoTrue if nil return

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false, covering safety and predictability. The description adds that output is a 'Late fee breakdown with CGST/SGST split,' but does not disclose other behavioral details such as penalty calculation cap behavior or edge cases. With annotation coverage, a 3 is appropriate.

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

Conciseness5/5

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

The description is compact and well-structured, with a purpose sentence, usage context, arguments, and return value. Every section is needed and squarely supports tool invocation.

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

Completeness4/5

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

Given the tool has an output schema, annotations, and complete parameter schema, the description sufficiently covers behavior, inputs, and output type. It lacks explicit mention of edge cases such as nil liability fee adjustment, but overall it is complete enough for correct invocation.

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

Parameters4/5

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

Although schema coverage is 100%, the description adds meaning by noting that annual_turnover is used 'for cap calculation' and clarifies has_nil_liability as 'True if nil return.' This goes beyond the plain schema descriptions and helps the agent understand how the parameters affect the calculation.

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

Purpose5/5

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

The description immediately states a specific action ('Calculate GST late filing penalty') with a specific resource. This distinguishes it from sibling tools like calculate_gst or calculate_income_tax, and the object of the calculation is clear.

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

Usage Guidelines4/5

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

The description explicitly says when to use it: 'Use when estimating late filing fees or planning compliance.' It does not mention alternatives or exclusion criteria, but the context is clear enough for an agent to select it appropriately among the siblings.

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

calculate_home_vs_rentA
Read-onlyIdempotent

Compare buying vs renting financial outcome.

Use when deciding between buying a home or renting.

Args: home_price: Property price in INR down_payment_percent: Down payment as % loan_interest_rate: Home loan interest rate % loan_tenure_years: Loan tenure monthly_rent: Current monthly rent annual_rent_increase: Expected rent increase %/year expected_property_appreciation: Property appreciation %/year investment_return: Return on invested down payment % analysis_years: Years to compare

Returns: Buy/rent comparison with yearly breakdown and break-even analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
home_priceYesProperty price in INR
monthly_rentNoCurrent monthly rent in INR
analysis_yearsNoYears to compare
investment_returnNoReturn on invested down payment percentage
loan_tenure_yearsNoLoan tenure in years
loan_interest_rateNoHome loan interest rate percentage
annual_rent_increaseNoExpected rent increase percentage/year
down_payment_percentNoDown payment as percentage
expected_property_appreciationNoProperty appreciation percentage/year

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the agent already knows this is a safe, non-mutating operation. The description adds a brief output summary ('yearly breakdown and break-even analysis') but no additional behavioral caveats or assumptions. There is no contradiction with the annotations.

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

Conciseness3/5

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

The opening is effective, and the use-when line is front-loaded. However, the description duplicates the entire input schema with a 9-line Args block, and the Returns line overlaps with the available output schema. It is structured and readable, but not every part earns its place.

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

Completeness4/5

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

The description explains the decision context and outlines the output shape, while the schema covers all 9 arguments with defaults and units. It omits edge-rule details like how negative values or extreme assumptions are handled, but the output schema and full parameter documentation make it complete enough for confident invocation.

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?

All 9 parameters already have full schema descriptions with defaults, units, and meanings, so the Args list in the description is largely redundant. Where the description is terse, such as 'Loan tenure', the schema provides the needed clarification.

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

Purpose5/5

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

The description starts with a clear verb and resource: 'Compare buying vs renting financial outcome.' It immediately separates this from sibling tools like EMI, income tax, and GST calculators. The added 'Use when deciding between buying a home or renting' reinforces the exact decision it supports.

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

Usage Guidelines4/5

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

It gives an explicit trigger condition: 'Use when deciding between buying a home or renting.' It does not mention alternatives or exclusion conditions, but among the sibling tools there is no other buy-vs-rent comparison, so the usage context is sufficiently clear.

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

calculate_hra_exemptionA
Read-onlyIdempotent

Calculate House Rent Allowance (HRA) exemption under Section 10(13A).

Use when computing tax-exempt HRA component for salary structuring or income tax filing. Compares three conditions and takes minimum.

Args: basic_salary: Monthly basic salary. hra_received: Annual HRA received from employer. rent_paid: Annual rent paid. city_type: 'metro' (50% of salary) or 'non_metro' (40% of salary). is_government_employee: Use simplified formula for government employees.

Returns: Standard envelope with exemption amount, taxable HRA, and breakdown.

Notes: The actual exemption is the minimum of: 1. HRA received 2. Rent paid minus 10% of salary 3. 50% of salary (metro) or 40% (non_metro)

ParametersJSON Schema
NameRequiredDescriptionDefault
city_typeNo'metro' (Delhi/Mumbai/Chennai/Kolkata) or 'non_metro'non_metro
rent_paidYesAnnual rent paid in rupees
basic_salaryYesMonthly basic salary in rupees
hra_receivedYesAnnual HRA received from employer in rupees
is_government_employeeNoTrue for government employees using simplified formula

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already provide readOnlyHint and idempotentHint, so the no-side-effect behavior is covered. The description adds useful behavioral detail: the exemption is the minimum of three conditions, government employees use a simplified formula, and the return includes exemption, taxable HRA, and breakdown. This goes beyond the structured fields.

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?

The description is well front-loaded with the core purpose, followed by a structured Args, Returns, and Notes section. It is somewhat repetitive with the schema but the formula notes earn their place. The overall length is justified.

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

Completeness5/5

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

The description given the tool's moderate complexity covers the calculation rule, the parameter semantics, and the returned envelope. There is also an output schema, so the return shape does not need desktop enumeration. This is sufficient for an agent to select and invoke the tool correctly.

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

Parameters4/5

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

Although schema description coverage is 100%, the description adds extra semantic value by explaining metro vs non_metro as 50%/40% of salary and clarifying government employees use a simplified formula. It also restates input units (monthly/rupees), making each parameter's role easier to interpret.

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

Purpose5/5

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

The description states a specific verb and resource — 'calculate House Rent Allowance (HRA) exemption under Section 10(13A)' — so the agent knows exactly what function is being performed. It also narrows scope to tax-exempt HRA for salary structuring and income tax filing, which clearly separates it from the many sibling tax/income calculator tools.

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

Usage Guidelines4/5

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

The description gives clear conditions: 'Use when computing tax-exempt HRA component for salary structuring or income tax filing.' This is actionable and context-specific, though it does not name sibling tools to exclude or state when not to use this calculator.

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

calculate_income_taxA
Read-onlyIdempotent

Calculate Indian income tax for FY2025-26 under old, new, or both regimes.

Use when computing tax liability, comparing regimes, or planning deductions. Includes slab computation, Section 87A rebate, surcharge with marginal relief, and health & education cess.

Args: gross_income: Annual gross income in rupees. regime: 'new', 'old', or 'both' for side-by-side comparison. taxpayer_type: Category for slab selection. deduction_80c: Old regime only — Section 80C amount. deduction_80d_self: Old regime only — medical insurance self. deduction_80d_parents: Old regime only — medical insurance parents. deduction_80d_senior_parents: Old regime only — senior parent flag. deduction_80ccd_nps: Old regime only — NPS additional. deduction_24b: Old regime only — home loan interest. other_deductions: Old regime only — other amounts.

Returns: Standard envelope with per-regime breakdown, effective rate, monthly tax, take-home, and regime recommendation when both requested.

Notes: FY2025-26 rates. Estimate only — consult a CA for filing.

ParametersJSON Schema
NameRequiredDescriptionDefault
regimeNoTax regime: 'new', 'old', or 'both' for comparisonboth
gross_incomeYesAnnual gross income in rupees. Example: 1500000
deduction_24bNoHome loan interest under Section 24(b), capped at 2L
deduction_80cNoSection 80C deduction (PF, ELSS, LIC), capped at 1.5L
taxpayer_typeNo'individual', 'senior_citizen', or 'super_senior_citizen'individual
other_deductionsNoOther deductions (no cap)
deduction_80d_selfNoSection 80D medical insurance self, capped at 25K
deduction_80ccd_npsNoAdditional NPS deduction under 80CCD(1B), capped at 50K
deduction_80d_parentsNoSection 80D medical insurance parents, capped at 25K/50K
deduction_80d_senior_parentsNoIf True, parents 80D cap is 50K instead of 25K

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

Despite having readOnlyHint and idempotentHint annotations, the description adds substantial behavioral detail: slabs, rebate, surcharge, marginal relief, cess, and estimated nature of the result. It also describes the return content, including effective rate, monthly tax, take-home, and regime recommendation. The 'estimate only' caveat is useful for expectancy-setting.

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?

The description is slightly longer than necessary because it duplicates the schema's parameter details, but the structure is excellent: purpose first, usage next, algorithm scope, then Args/Returns/Notes. The front-loaded first sentence summarises the tool in one line, and the rest is organized so an agent can skim.

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

Completeness5/5

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

Given there is a full input schema, output schema, and read-only annotations, this description fills the remaining gaps: FY20-26 rate applicability, what calculations are included, what the return envelope contains, and the estimate/caveat. It covers everything needed to decide when to invoke this tool and what result to expect.

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

Parameters4/5

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

Schema description coverage is 100%, so the schema already explains every param, but the description adds 'old regime only' qualifiers on the deduction no-param title is already clear. The Args block restates some schema text, yet it also clarifies grouping, which helps an agent avoid using these deductions with the new regime.

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

Purpose5/5

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

The description opens with the exact verb and resource: 'Calculate Indian income tax for FY2025-26 under old, new, or both regimes.' It quickly distinguishes this from tax-adjacent siblings like calculate_tds or calculate_surcharge by emphasizing income tax and regime comparison. The added 'slab computation, §87A rebate, surcharge with marginal relief, and health & education cess' makes the scope unmistakable.

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

Usage Guidelines4/5

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

The description explicitly states 'Use when computing tax liability, comparing regimes, or planning deductions.' It does not name alternatives or give negative guidance, but the 'Use when' clause gives clear context for callers. The old-regime-only notes on deductions additionally guide when certain parameters should be passed.

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

calculate_income_tax_interestA
Read-onlyIdempotent

Calculate interest under Sections 234A, 234B, 234C.

Use when computing penalty interest for late tax filing or short advance tax payments.

Args: total_tax_liability: Total tax liability tds_deducted: TDS already deducted advance_tax_paid: Dict with q1,q2,q3,q4 quarterly payments filing_date: YYYY-MM-DD when return filed (None if not filed) due_date: Due date for filing

Returns: Interest breakdown for Sections 234A, 234B, 234C.

ParametersJSON Schema
NameRequiredDescriptionDefault
due_dateNoDue date YYYY-MM-DD2025-07-31
filing_dateNoFiling date YYYY-MM-DD or None if not filed
tds_deductedNoTDS already deducted in INR
advance_tax_paidNoDict with q1,q2,q3,q4 quarterly payments
total_tax_liabilityYesTotal tax liability in INR

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, which cover the safety profile for this pure calculation tool. The description adds that it calculates penalty interest and returns a breakdown, but it does not go deeper into assumptions, formatting, or edge cases. It remains consistent with annotations.

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?

The description is concise and front-loaded, with the core purpose stated in the first line and a direct usage guideline next. The Args and Returns sections are somewhat redundant with the structured schema, but they remain brief and do not bloat the description.

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

Completeness5/5

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

The tool is a calculation utility with full schema coverage and an output schema. The description provides enough context about when to use it, which sections it covers, and what inputs are relevant. Nothing essential for an agent to select and invoke this tool correctly is missing.

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 the schema already documents every parameter. The description repeats the parameter names and brief meanings without adding new semantics beyond what the schema provides, such as units or calculation rules. This matches the baseline of 3.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Calculate interest under Sections 234A, 234B, 234C.' It names the exact tax provisions and clarifies the purpose as computing penalty interest, distinguishing it from sibling calculation tools like calculate_income_tax and calculate_advance_tax.

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

Usage Guidelines4/5

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

The description explicitly states when to use this tool: 'Use when computing penalty interest for late tax filing or short advance tax payments.' It gives clear usage context, though it does not explicitly name alternative tools or exclude scenarios where this tool should not be used.

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

calculate_leave_encashment_taxA
Read-onlyIdempotent

Calculate tax-exempt portion of leave encashment under Section 10(10AA).

Use when computing leave encashment tax exemption or planning retirement benefits.

Args: leave_encashment_amount: Actual amount received average_monthly_salary: Average of last 10 months basic + DA earned_leave_balance_days: Days of earned leave years_of_service: Total years of service is_government_employee: Government employee flag

Returns: Exemption amount and taxable portion breakdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
years_of_serviceYesTotal years of service
average_monthly_salaryYesAverage of last 10 months basic + DA
is_government_employeeNoGovernment employee flag
leave_encashment_amountYesActual amount received in INR
earned_leave_balance_daysYesDays of earned leave

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

The annotations already cover read-only and idempotent behavior. The description additionally states the statutory basis (Section 10(10AA)) and the expected output shape (exemption amount and taxable breakdown), adding useful behavioral context beyond the annotations. No contradiction exists.

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?

The description is front-loaded with purpose and usage context, and the Returns line is useful. The Args duplication is somewhat redundant with the schema, and this prevents a 5, but the overall structure is still compact and scannable.

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

Completeness4/5

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

With an output schema present and strong annotations, the description is largely complete: it names the law, the inputs, and the output type. It could benefit from clarifying how the is_government_employee flag impacts the exemption, but the core callable details are sufficiently covered.

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%, and the Args section mostly repeats the schema text without adding new meaning. The description does not explain key calculation nuances such as how years_of_service converts to months or exactly how is_government_employee changes the exemption, so it stays at the baseline.

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

Purpose5/5

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

The opening sentence clearly identifies the verb, resource, and legal basis: 'Calculate tax-exempt portion of leave encashment under Section 10(10AA).' This is specific enough to stand out from the many sibling calculators, such as calculate_gratuity and calculate_income_tax.

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

Usage Guidelines4/5

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

It gives an explicit and useful 'Use when' condition: when computing leave encashment tax exemption or planning retirement tax. It doesn't name alternatives or state when-not-to-use it, so it misses a 5, but the context is clear in practice.

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

calculate_neft_rtgs_imps_chargesA
Read-onlyIdempotent

Calculate NEFT/RTGS/IMPS/UPI transaction charges.

Use when estimating bank transfer costs or comparing payment modes.

Args: transfer_mode: "NEFT", "RTGS", "IMPS", or "UPI" amount: Transfer amount in INR account_type: "savings" or "current" is_online: True if done via online banking

Returns: Charge breakdown with base charge, GST, and total.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesTransfer amount in INR
is_onlineNoTrue if done via online banking
account_typeNo'savings' or 'current'savings
transfer_modeYesNEFT, RTGS, IMPS, or UPI

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already mark the tool as read-only and idempotent, so no additional safety disclosure is needed. The description adds useful behavioral context by specifying the return shape: 'Charge breakdown with base charge, GST, and total.' It doesn't contradict annotations.

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?

The description is compact and front-loaded with the purpose and usage context, followed by a flat Args/Returns structure. It is a bit redundant with the schema, but every section earns its place and there is no filler.

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

Completeness4/5

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

Given the output schema is present and annotations cover the read-only/idempotent profile, the description is largely complete: it names the inputs, the intended use case, and the nature of the result. It could add caveats about charge-schedule assumptions, but nothing critical is missing for basic invocation.

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 the schema already documents every parameter. The Args section largely mirrors the schema rather than adding new semantics such as amount ranges, exact transfer_mode formats, or handling of defaults.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Calculate NEFT/RTGS/IMPS/UPI transaction charges.' This unambiguously identifies the tool's function and distinguishes it from the many validation and other calculate_* siblings without needing to inspect parameters.

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

Usage Guidelines4/5

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

It explicitly states 'Use when estimating bank transfer costs or comparing payment modes', giving agents a clear trigger for selecting it. It does not enumerate when not to use it or name closer alternatives, but the guidance is clear enough for the intended scenario.

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

calculate_nps_projectionA
Read-onlyIdempotent

Calculate NPS corpus and monthly pension at retirement.

Use when planning retirement with NPS or projecting pension.

Args: monthly_contribution: Monthly NPS contribution current_age: Current age retirement_age: Retirement age (default 60) expected_annual_return: Expected annual return % annuity_rate: Annuity rate % annuity_percent: % of corpus to buy annuity (min 40%)

Returns: Projected corpus, lump sum, and monthly pension estimate.

ParametersJSON Schema
NameRequiredDescriptionDefault
current_ageYesCurrent age
annuity_rateNoAnnuity rate percentage
retirement_ageNoRetirement age
annuity_percentNoCorpus for annuity (min 40%)
monthly_contributionYesMonthly NPS contribution in INR
expected_annual_returnNoExpected annual return percentage

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already communicate readOnlyHint and idempotentHint, so the description does not need to restate that this is a safe read-only calculation. The description adds useful behavioral context by naming returned outputs: projected corpus, lump sum, and monthly pension estimate, supplemented by the 'estimate' qualifier. No side effects, mutations, or hidden dependencies are described, which is appropriate given the calculation tool.

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?

The description is purpose-first and then includes a usage line, a succinct Args list, and a Returns line. Every sentence is informative and there is no filler, but the Args block largely duplicates the schema and could be trimmed without losing meaning, so it is not a 5.

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

Completeness5/5

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

Given the tool's deterministic calculation nature, the readOnly/idempotent annotations, the fully documented schema, and the presence of an output schema, the description is complete enough for reliable usage. It states the input domain, the output nature, and the retirement-planning context. Nothing necessary for correct selection or invocation is missing.

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 coverage is 100%, and the description essentially repeats the parameter names and short meanings already present in the input schema. For example, 'annuity_rate: Annuity rate %' adds no information beyond the schema's 'Annuity rate percentage.' The only marginal addition is calling out 'corpus to buy annuity (min 40%)', but that constraint already appears in the schema. This lands at the baseline 3.

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

Purpose5/5

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

The description opens with a clear, specific verb and resource: 'Calculate NPS corpus and monthly pension at retirement.' This leaves no ambiguity about what the tool does and distinguishes it from siblings like calculate_sip_returns or calculate_sukanya_samriddhi, because it is the only NPS retirement projection tool in the list.

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

Usage Guidelines4/5

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

The description explicitly states when to use it: 'Use when planning retirement with NPS or projecting pension.' This gives clear context, though it does not explicitly say which alternative tools to use for non-NPS projections or list exclusions, so it does not fully earn a 5.

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

calculate_ppf_maturityA
Read-onlyIdempotent

Calculate PPF maturity amount with year-by-year breakdown.

Use when planning long-term savings, comparing investment options, or calculating retirement corpus.

Args: annual_investment: Amount invested per year (max ₹1,50,000). tenure_years: PPF tenure (15, 20, 25, or 30 years). annual_interest_rate: PPF rate (default 7.1% for FY2025-26).

Returns: Standard envelope with maturity amount, total invested, interest earned.

Notes: EEE tax status: exempt at investment, accumulation, and maturity. Rate is government-administered and revised quarterly.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenure_yearsNoPPF tenure in years (15, 20, 25, or 30)
annual_investmentYesAmount invested per year in INR
annual_interest_rateNoAnnual interest rate percentage (default 7.1 for FY2025-26)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds useful behavioral context beyond that: it notes the EEE tax treatment, fact that returns come in a standard envelope, and that the interest rate is government-administered and revised quarterly. No contradiction with annotations exists.

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

Conciseness5/5

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

The description is compact, highly structured, and every section earns its place: purpose, use cases, arguments, return, and notes. The information is front-loaded with the core action and use case before detailed parameter/return details. There is no fluff or redundant filler.

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

Completeness5/5

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

Given a rich input schema, output schema, and annotations, the description covers all necessary decision-making signals: when to use it, key constraints, what it returns, and important tax/rate context. It is sufficiently complete for the agent to invoke the tool correctly without missing critical context.

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

Parameters4/5

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

The schema is good, but the description adds meaningful value by specifying constraints not fully in the schema: annual_investment is capped at ₹1,50,000, tenure_years should be one of 15/20/25/30, and the default interest rate is explicitly tied to FY2025-26. This goes beyond the schema descriptions and provides practical limits.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Calculate PPF maturity amount with year-by-year breakdown.' This clearly identifies what the tool does and differentiates it by the maturation product and the breakdown style, distinguishing it from sibling calculators like FD or RD maturity.

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

Usage Guidelines4/5

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

The description gives explicit use contexts: 'when planning long-term savings, comparing investment options, or calculating retirement corpus.' It does not explicitly say when NOT to use this tool or mention sibling alternatives, but the stated scenarios are clear enough for an agent to select this tool confidently.

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

calculate_presumptive_taxA
Read-onlyIdempotent

Calculate tax under presumptive scheme (Sections 44AD, 44ADA).

Use when computing tax for small businesses or professionals under presumptive taxation.

Args: scheme: "44AD" or "44ADA" gross_receipts: Total gross receipts digital_receipt_percent: % of receipts via digital mode regime: "new" or "old" age: Assessee age deductions_80c: Section 80C deductions (old regime)

Returns: Presumptive income and total tax payable.

ParametersJSON Schema
NameRequiredDescriptionDefault
ageNoAssessee age
regimeNo'new' or 'old' tax regimenew
schemeYes'44AD' for business or '44ADA' for professionals
deductions_80cNoSection 80C deductions (old regime)
gross_receiptsYesTotal gross receipts in INR
digital_receipt_percentNoPercentage via digital mode

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, so the description doesn't need to discuss destructive side effects. The description adds a basic return summary ('Presumptive income and total tax payable') but no deeper behavioral context such as calculation assumptions or edge-case handling; a neutral 3 is appropriate.

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?

The description is fairly concise and front-loads the core purpose before listing parameters. The Args block duplicates schema information, which is slightly redundant, but it is still readable and focused, earning it a 4 rather than a 5.

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

Completeness4/5

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

For a tool with 6 parameters, 100% schema coverage, a rich annotation profile, and an output schema, the description is adequately complete. It conveys the main use case, the two schemes, and the expected return. It could add more nuance about how digital_receipt_percent or regime affects the calculation, but it is not incomplete enough to prevent correct tool invocation.

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?

The schema description coverage is 100%, so the baseline is 3. The narrative Args block mostly restates the schema's parameter descriptions without adding meaningful new semantics about how the parameters affect the calculation. It provides no extra insight beyond the schema.

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

Purpose5/5

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

The description clearly states the verb 'calculate' and the resource: tax under the presumptive scheme, with explicit sections (44AD, 44ADA). This separates it from sibling tax calculators like calculate_income_tax or calculate_professional_tax.

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

Usage Guidelines4/5

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

Explicit guidance is given: 'Use when computing tax for small businesses or professionals under presumptive taxation.' It does not explicitly name alternatives or when-not-to-use, so it is not a perfect 5, but the usage context is clear enough for an agent to select this tool appropriately.

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

calculate_professional_taxA
Read-onlyIdempotent

Calculate state-wise professional tax.

Use when computing total tax liability including professional tax deductions.

Args: gross_salary_monthly: Monthly gross salary state_code: 2-char state code (e.g., "MH", "KA", "TN")

Returns: Monthly and annual professional tax amount.

ParametersJSON Schema
NameRequiredDescriptionDefault
state_codeYes2-char state code (e.g., MH, KA, TN)
gross_salary_monthlyYesMonthly gross salary in INR

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds that the tool is state-wise and returns both monthly and annual amounts, which is useful but does not go much beyond the schema. No contradictions.

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

Conciseness5/5

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

The description is compact, front-loaded with the main purpose, and has a short usage line plus essential args and returns. No unnecessary filler or redundant detail beyond a reasonable reminder of the two key arguments.

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

Completeness5/5

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

For a simple calculation with two fully documented parameters, output schema present, and annotations covering read-only/idempotent behavior, the description is complete enough for an agent to select and invoke the tool correctly without further clarification.

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% and both parameters are already described with units and examples. The description repeats the parameter names without adding substantive semantic detail beyond what the schema provides, so a baseline score is appropriate.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Calculate state-wise professional tax.' This clearly identifies the tool's unique function among many sibling tax calculators like calculate_income_tax and calculate_tds, and the subject is not confused with any other calculation.

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

Usage Guidelines4/5

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

It explicitly states when to use the tool: 'Use when computing total tax liability including professional tax deductions.' This gives a clear trigger context, though it does not mention alternatives or exclusions; still, it is sufficient to guide an agent toward this tool.

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

calculate_rd_maturityA
Read-onlyIdempotent

Calculate Recurring Deposit maturity amount.

Use when projecting RD returns or planning recurring deposits.

Args: monthly_installment: Monthly deposit amount annual_interest_rate: Annual rate as percentage tenure_months: Deposit tenure in months

Returns: Maturity amount with total interest earned.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenure_monthsYesDeposit tenure in months
monthly_installmentYesMonthly deposit amount in INR
annual_interest_rateYesAnnual interest rate as percentage

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate read-only behavior and idempotency. The description adds the return value detail ('Maturity amount with total interest earned'), which is helpful but doesn't disclose calculation assumptions or edge cases. This is adequate but not rich behavioral context.

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

Conciseness5/5

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

The description is concise and well-structured, with a brief action line, a usage note, a parameter list, and a return note. Each section earn its place, and the flow makes it easy for an agent to quickly extract key usage criteria.

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

Completeness4/5

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

The description covers the essential information for invoking the tool: what it does, when to use it, the required parameters, and what it returns. Since the output schema is noted as present, the return-value explanation may be redundant, but the description remains complete for a straightforward calculation tool.

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%, with each parameter already documented meaningfully in the input schema. The description repeats those parameter descriptions without adding extra context or edge-case information that the schema lacks, so the baseline score of 3 applies.

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

Purpose5/5

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

The description uses a specific verb 'Calculate' with a clear resource ('Recurring Deposit maturity amount'), immediately identifying the tool's function. This clearly distinguishes it from siblings like calculate_fd_maturity or calculate_sip_returns without needing to inspect schema details.

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

Usage Guidelines4/5

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

The description includes 'Use when projecting RD returns or planning recurring deposits,' which provides a clear usage context. However, it does not explicitly mention alternative tools for similar calculations (e.g., FD or SIP), so it stops short of giving when-not-to-use guidance.

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

calculate_salary_restructuringA
Read-onlyIdempotent

Calculate salary restructuring options for tax optimization.

Use when advising employees on tax-efficient salary structures, comparing restructuring options, or planning CTC optimization.

Args: current_gross: Current gross annual salary in INR current_basic_ratio: Current basic salary as ratio of gross structure_type: Structure option (standard, optimized, startup) include_meal_card: Include Sodexo/Food card allowance include_wallet_allowance: Include flexible wallet allowance has_hra: Employee receives HRA rent_in_metro: Rent paid in metro city (higher HRA) family_medical: Include family medical insurance parents_medical: Include parents medical insurance

Returns: Standard envelope with tax-optimized structure, deductions, and estimated tax

ParametersJSON Schema
NameRequiredDescriptionDefault
has_hraNoEmployee receives HRA
current_grossYesCurrent gross annual salary in INR
rent_in_metroNoRent paid in metro city (higher HRA)
family_medicalNoInclude family medical insurance
structure_typeNoStructure option: standard, optimized, or startupstandard
parents_medicalNoInclude parents medical insurance (additional)
include_meal_cardNoInclude Sodexo/Food card allowance
current_basic_ratioNoCurrent basic salary as ratio of gross (0.40-0.60)
include_wallet_allowanceNoInclude flexible wallet allowance

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already convey readOnlyHint=true and idempotentHint=true, so the safe, non-mutating nature is covered. The description adds that it returns a standard envelope with tax-optimized structure and deductions, but it does not disclose much behavior beyond what the annotations and output schema already provide. No contradiction exists.

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?

The description is front-loaded with the purpose and usage context, then organized into Args and Returns sections. It is reasonably sized for nine parameters, though the Args list duplicates parameter details already present in the schema.

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

Completeness5/5

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

Given the rich input schema, annotations, and output schema, the description supplies the missing context: when to use the tool and what the result conceptually contains. All parameters are present and defaults/constraints are handled by the schema, so the description is complete for its scope.

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 the input schema already documents every parameter. The description's Args section largely repeats the schema's text and adds no new constraints, formats, or usage semantics beyond what the schema provides.

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

Purpose5/5

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

The description clearly states a specific verb and resource: it calculates salary restructuring options for tax optimization. It is readily distinguishable from sibling calculators like calculate_income_tax or calculate_hra_exemption because it targets the overall salary structure and CTC planning, not a single tax computation.

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

Usage Guidelines4/5

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

The description gives explicit use context: 'Use when advising employees on tax-efficient salary structures, comparing restructuring options, or planning CTC optimization.' It does not explicitly list when not to use it or name an alternative sibling tool, but the context is clear enough for an agent to select it.

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

calculate_sip_returnsA
Read-onlyIdempotent

Calculate SIP maturity with inflation-adjusted returns.

Use when projecting mutual fund SIP returns or planning systematic investments.

Args: monthly_investment: Monthly SIP amount expected_annual_return: Expected CAGR % tenure_years: Investment tenure inflation_rate: Expected inflation %

Returns: Corpus with wealth gained and inflation-adjusted value.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenure_yearsYesInvestment tenure in years
inflation_rateNoExpected inflation rate percentage
monthly_investmentYesMonthly SIP amount in INR
expected_annual_returnYesExpected CAGR as percentage

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

The annotations already cover readOnlyHint and isOpenWorldHint, indicating the tool is a safe, deterministic calculation. The description adds that the return is a corpus with wealth gained and inflation-adjusted value, which provides some context, but the description mostly states the mapping rather than exposing new behavioral content like calculation assumptions or response shape. No annotation contradiction.

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?

The description is well-structured: a short clear purpose, a usage signal, a preliminary contract, and a return summary. The Args and Returns blocks are slightly redundant with the schema and output schema, but the overall length is appropriate and easy for an agent to parse.

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

Completeness5/5

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

Given this is a deterministic calculation tool with a readOnlyHint, idempotentHint, a complete input schema, and a known output schema, the description is adequate for an agent to select and invoke it correctly. It identifies the domain, lists the core parameters, and indicates what kind of result the caller should expect.

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 the input JSON schema fully documents monthly_investment, expected_annual_return, tenure_years, and inflation_rate. The description repeats these parameters but adds little meaningful semantics beyond naming them, and does not clarify edge cases such as sign, currency, or validation beyond the schema's existing descriptions.

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 clearly states the tool's purpose: calculating SIP maturity with inflation-adjusted returns, with a specific mention of mutual fund SIP and systematic investment planning. However, within a large family of investment calculators, it does not explicitly differentiate itself from siblings like calculate_step_up_sip or calculate_ppf_maturity, though the focus on SIP and inflation-adjustment gives reasonable clarity.

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

Usage Guidelines4/5

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

The description explicitly says when to use the tool: when projecting mutual fund SIP returns or planning systematic investments. It provides a clear usage context but does not state when it should not be used or which sibling alternatives might be more appropriate for step-up SIP, PPF, FD, or RD calculations.

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

calculate_step_up_sipA
Read-onlyIdempotent

Calculate SIP with annual step-up increment.

Use when comparing step-up SIP vs flat SIP or planning salary-linked investments.

Args: initial_monthly_investment: Starting SIP amount annual_step_up_percent: % increase each year expected_annual_return: Expected CAGR % tenure_years: Investment tenure

Returns: Corpus comparison between step-up and flat SIP.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenure_yearsYesInvestment tenure in years
annual_step_up_percentYesAnnual step-up percentage
expected_annual_returnYesExpected CAGR as percentage
initial_monthly_investmentYesStarting SIP amount in INR

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, so no side-effect warning is needed. The description adds some output context ('Corpus comparison between step-up and flat SIP') but does not disclose computation assumptions such as timing of annual increments or whether returns are pre-tax; this is plausible but not fully transparent.

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?

The description is compact and front-loaded with the core purpose followed by a use-case and expected return. The Args list is slightly redundant with the input schema, but it keeps the description self-contained and readable.

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

Completeness5/5

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

The tool is simple, fully annotated, has a complete input schema, and has an output schema signal. The description covers the scenario, arguments, and what is returned, so an agent has enough context to select and invoke it correctly.

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?

All four parameters have complete schema descriptions, so the baseline is 3. The Args section mostly mirrors the schema descriptions without adding units, constraints, or examples, so the description does not meaningfully increase semantic richness beyond what the schema already provides.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Calculate SIP with annual step-up increment.' It also clarifies the comparison use case ('step-up SIP vs flat SIP'), which distinguishes it from plain SIP calculators like calculate_sip_returns.

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

Usage Guidelines4/5

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

The description explicitly states when to use it: 'Use when comparing step-up SIP vs flat SIP or planning salary-linked investments.' However, it does not explicitly name an alternative or state when not to use it, so it misses the exclusion-level guidance needed for a top score.

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

calculate_sukanya_samriddhiA
Read-onlyIdempotent

Calculate SSY or SCSS maturity amount.

Use when planning long-term savings for girl child (SSY) or retirement (SCSS).

Args: scheme: "ssy" or "scss" annual_investment: Annual deposit amount annual_interest_rate: Interest rate (default 8.2%)

Returns: Maturity amount with interest breakdown and tax status.

ParametersJSON Schema
NameRequiredDescriptionDefault
schemeYes'ssy' for Sukanya Samriddhi or 'scss' for Senior Citizen Savings Scheme
annual_investmentYesAnnual deposit amount in INR
annual_interest_rateNoInterest rate as percentage

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish that this is read-only and idempotent. The description adds useful behavioral context by stating the output includes 'interest breakdown and tax status,' which helps the agent understand what the calculation returns. No contradiction with annotations exists.

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?

The description is compact, front-loaded with purpose, and organized into clear usage, args, and returns sections. The Args block is somewhat redundant with the schema, but it does not make the description bloated or hard to use.

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

Completeness5/5

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

With complete parameter documentation, an output schema, and annotations covering read-only and idempotent behavior, the description includes enough contextual guidance for an agent to select and call the tool correctly. Nothing material left missing.

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 the parameter baseline is 3. The Args section in the description largely repeats the schema's parameter descriptions, adding no significant new meaning beyond what is already available.

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

Purpose5/5

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

The description starts with a specific verb and resource: 'Calculate SSY or SCSS maturity amount.' This clearly distinguishes the tool from sibling calculators like calculate_ppf_maturity, calculate_fd_maturity, and calculate_sip_returns by naming the exact schemes it handles.

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

Usage Guidelines4/5

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

The description gives explicit usage context: 'Use when planning long-term savings for girl child (SSY) or retirement (SCSS).' This is clear guidance on when to invoke the tool, though it does not explicitly name alternatives or list when-not-to-use conditions.

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

calculate_surchargeA
Read-onlyIdempotent

Calculate surcharge and marginal relief for a given income and base tax.

Use when computing surcharge as a standalone calculation, separate from the full income tax tool. The income tax tool uses this logic internally.

Args: total_income: Total income in rupees. base_tax: Base tax amount before surcharge. regime: 'new' (capped at 25%) or 'old' (up to 37%).

Returns: Standard envelope with surcharge rate, before/after marginal relief, and cess base.

Notes: FY2025-26 rates. New regime surcharge capped at 25%.

ParametersJSON Schema
NameRequiredDescriptionDefault
regimeYes'new' or 'old' tax regime
base_taxYesBase tax amount before surcharge
total_incomeYesTotal income in rupees

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already specify readOnlyHint=true and idempotentHint=true, so the description does not need to repeat that this is non-mutating. It goes beyond annotations by adding relevant rate context: FY2025-26 rates, new regime cap of 25%, and the old regime up to 37%. It also describes the return envelope (surcharge rate, before/after marginal relief, cess base), which adds useful behavioral detail.

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

Conciseness5/5

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

The description is organized into a short lead statement, usage guidance, an Args block, a Returns line, and a Notes line. Every part adds at least one distinct fact, and no words are wasted on filler. The most important purpose and usage guidance are front-loaded.

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

Completeness5/5

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

Assuming an output schema is present, the description already explains when to use the tool, what inputs are, what the surcharge rates and caps are, and what kind of result is returned. There is no obvious missing context needed to correctly call this tool for an agent.

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

Parameters4/5

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

Input schema descriptions already cover all three parameters, so the baseline is 3. The description repeats the schema for total_income and base_tax but meaningfully extends the regime parameter by adding the new-regime bracket cap (25%) and the old-regime max (37%). This added combination context is useful for selecting the correct parameter value.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Calculate surcharge and marginal relief for a given income and base tax.' It then explicitly distinguishes itself from the full income tax tool by stating it is a standalone calculation. This differentiates it from the sibling calculate_income_tax without needing to open that tool's schema.

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

Usage Guidelines5/5

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

The description gives an explicit usage instruction: 'Use when computing surcharge as a standalone calculation, separate from the full income tax tool.' It even notes that the income tax tool uses this logic internally, which helps an agent choose this tool versus the full income tax alternative. This is direct context, not implied.

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

calculate_tdsA
Read-onlyIdempotent

Calculate TDS for a given section and payment amount (FY2025-26).

Use when computing withholding tax on contractor payments, professional fees, interest, rent, commissions, or purchase of goods.

Args: section: TDS section key from supported sections. payment_amount: Gross payment in rupees. pan_available: Whether payee PAN is available (affects rate). is_senior_citizen: For 194A bank interest threshold. aggregate_payments_ytd: Prior payments to same payee in current FY. payee_type: 'individual_huf' or 'other' - affects 194C rate.

Returns: Standard envelope with TDS applicability, rate, amount, net payment.

Notes: FY2025-26 rates. Actual rates may vary by DTAA or Form 15G/15H.

ParametersJSON Schema
NameRequiredDescriptionDefault
sectionYesTDS section key, e.g. '194C_individual', '194J_professional'
payee_typeNoPayee type: 'individual_huf' or 'other' (affects 194C rate)individual_huf
pan_availableYesWhether payee has provided PAN
payment_amountYesGross payment amount in rupees
is_senior_citizenNoFor 194A bank interest — applies higher threshold for seniors
aggregate_payments_ytdNoPrior payments to same payee under this section in current FY

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds valuable behavioral context: it is scoped to FY2025-26 rates, rates may vary due to DTAA or Form 15G/15H, and the result is a standard envelope with applicability, rate, amount, and net payment. This is not contradicted by the annotations.

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?

The description is appropriately sized for a six-parameter calculation tool, with clearly separated Args, Returns, and Notes sections. It front-loads the core purpose and usage context. There is a stray trailing 'P' in the provided text, which slightly detracts from polish but does not meaningfully harm clarity.

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

Completeness4/5

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

Given six parameters, full schema coverage, read-only annotations, and an output schema, the description covers the key operational details: purpose, when to use it, parameter roles, and return shape. The main gap is that 'section' refers to 'supported sections' without enumerating them, but the schema's examples and the tool's nature make this acceptable.

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 the schema already documents all six parameters. The description mostly restates the same parameter meanings, though it adds small nuances like 'affects rate' for PAN and payee type and clarifies that aggregate_payments_ytd is prior payments 'to same payee' under the section. This is incremental but does not significantly compensate beyond the schema.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Calculate TDS for a given section and payment amount,' which makes the tool's core function immediately unambiguous. It also clarifies the fiscal year (FY2025-26) and lists concrete payee/payment contexts, clearly distinguishing it from sibling calculation tools like calculate_income_tax or calculate_advance_tax.

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

Usage Guidelines4/5

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

The description explicitly states when to use the tool: 'Use when computing withholding tax on contractor payments, professional fees, interest, rent, commissions, or purchase of goods.' It provides clear usage context, though it does not explicitly name alternatives or state when not to use it, so it falls short of a perfect 5.

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

decode_aa_fi_typeA
Read-onlyIdempotent

Decode AA Financial Information type and get MCP tool pairings.

Use when mapping FI types to validation/calculation tools.

Args: fi_type: FI type code (e.g., "DEPOSIT", "MUTUAL_FUNDS")

Returns: FI type description, typical fields, and MCP tool pairings.

ParametersJSON Schema
NameRequiredDescriptionDefault
fi_typeYesFI type code (e.g., DEPOSIT, MUTUAL_FUNDS)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already mark the tool as read-only and idempotent. The description adds useful behavioral context by stating that it returns an FI type description, typical fields, and MCP tool pairings. No contradiction with annotations.

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?

The description is compact and organized, with purpose, usage, argument, and return sections front-loaded. Minor redundancy exists between 'get MCP tool pairings' and the Returns line, but overall every sentence adds value.

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

Completeness4/5

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

For a single-parameter, read-only decode tool with an output schema and clear return description, the definition covers the necessary ground: what it does, when to use it, what input is expected, and what output to expect. No significant gaps remain for this simplicity level.

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%, with the fi_type field already documented as 'FI type code (e.g., DEPOSIT, MUTUAL_FUNDS)'. The description simply repeats this example, adding no new semantic depth beyond what the schema already provides.

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

Purpose5/5

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

The description clearly identifies the tool as decoding an AA Financial Information type, with a concrete outcome: getting MCP tool pairings. This distinguishes it from sibling decode tools like decode_pan_type and decode_state_code.

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

Usage Guidelines4/5

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

The phrase 'Use when mapping FI types to validation/calculation tools' gives explicit context for when to call this tool. It does not explicitly mention when not to use it or compare against alternatives, but the usage context is clear enough for a simple decode operation.

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

decode_digilocker_uriA
Read-onlyIdempotent

Decode DigiLocker document URI and map to validator. # PermissionTier: READ_ONLY

ParametersJSON Schema
NameRequiredDescriptionDefault
uriYesDigiLocker document URI

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and an open-world hint, so the safety profile is established. The description adds that the tool does not simply decode the URI but also maps it to a validator, clarifying the expected conversion behavior beyond what the annotations alone provide.

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

Conciseness5/5

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

The description is a single concise sentence that clearly conveys the main purpose and behavior. The appended '# PermissionTier: READ_ONLY' is redundant with the annotations but does not meaningfully bloat the description, and the key information is front-loaded.

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

Completeness4/5

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

Given only one parameter, existing annotations, and an output schema, the description is nearly complete. It does not elaborate on how the 'map to validator' result should be used or how it relates to sibling validate_* tools, but the presence of an output schema reduces the need for the description to enumerate return values.

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?

There is only one parameter, and the schema description covers it completely ('DigiLocker document URI'), so the schema already documents the needed meaning. The description adds no extra information about format, URI structure, examples, or constraints, so a baseline score of 3 is appropriate.

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 states the specific action ('Decode') on a specific resource ('DigiLocker document URI') and adds that it maps the URI to a validator. This clearly identifies the tool's role and distinguishes it from other decode_* siblings, though it could be slightly more explicit about the final output.

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

Usage Guidelines3/5

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

The description implies a usage context: a DigiLocker URI should be decoded and then routed to a validator. However, it does not explicitly say when to prefer this tool over the many validate_* or other decode_* siblings, and it gives no exclusions or comparative guidance.

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

decode_isinA
Read-onlyIdempotent

Decode ISIN (International Securities Identification Number) with Luhn check.

Use when validating ISIN for Indian securities.

Args: isin: 12-character ISIN

Returns: Decoded fields with country, NSIN, security type, and Luhn validation.

ParametersJSON Schema
NameRequiredDescriptionDefault
isinYes12-character ISIN (e.g., INE1234567890)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already mark the tool as read-only and idempotent, and the description adds meaningful behavioral context: it performs a Luhn check and returns country, NSIN, security type, and Luhn validation. It does not describe behavior on invalid or malformed ISINs, but for a simple read-only decoder this is a minor gap.

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

Conciseness5/5

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

The description is compact and well-structured with a summary line, a usage line, an args section, and a returns section. There is no filler, and the most important information is front-loaded.

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

Completeness5/5

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

For a single-parameter read-only tool with an output schema, the description provides all necessary selection and invocation information. It names the scope, the key validation behavior, and the returned fields, making it complete enough for an agent to call it correctly.

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?

The input schema already documents the single 'isin' parameter fully with a 100% schema description coverage and an example. The description only restates '12-character ISIN' without adding new semantics, so the schema carries the explanatory burden.

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

Purpose5/5

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

The description clearly states the operation with a specific verb ('Decode ISIN') and expands the abbreviation to International Securities Identification Number. It adds 'with Luhn check,' making the purpose distinct from other validation and decoding tools for PAN, GSTIN, state codes, and Aadhaar. The tool is easy to tell apart from siblings without opening the schema.

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

Usage Guidelines4/5

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

The description explicitly says to use it when validating ISINs, specifically for Indian securities. It gives a clear usage context but does not explicitly name alternatives or state when not to use the tool, so a small amount of inference about sibling decoders/validators remains.

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

decode_pan_typeA
Read-onlyIdempotent

Decode PAN entity type from 4th character. # PermissionTier: READ_ONLY

ParametersJSON Schema
NameRequiredDescriptionDefault
panYes10-character PAN

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and the description's 'README_ONLY' permission tag aligns. The description adds meaningful behavioral detail by revealing that the operation depends on the 4th character of the PAN, which is not visible in the schema.

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

Conciseness5/5

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

The description is a single, focused sentence with no wasted words. The permission comment is redundant with annotations but does not significantly harm conciseness.

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

Completeness5/5

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

For a simple one-parameter read-only decoding tool with a complete schema, output schema, and annotations, the description is sufficient. An agent knows what it does, what input to provide, and has the output schema for the result.

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

Parameters4/5

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

Schema coverage is 100% and the schema says '10-character PAN'. The description adds semantic value by stating the 4th character is the relevant part, giving an agent insight into how the pan parameter is interpreted.

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

Purpose5/5

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

The description uses a specific verb ('decode') and identifies the exact resource and logic: 'PAN entity type from 4th character'. This makes the tool's purpose immediately clear and distinguishes it from sibling tools like validate_pan or decode_state_code.

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

Usage Guidelines3/5

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

The description implies this tool is for decoding entity type rather than validation, but it does not explicitly state when to prefer this over sibling tools like validate_pan or bulk_validate_pan. Usage context is inferable from the tool name and sibling list, but no direct guidance or exclusions are provided.

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

decode_state_codeA
Read-onlyIdempotent

Decode Indian GST state code metadata from a code or GSTIN prefix.

Use when you need canonical state name, abbreviation, capital, and GST zone mapping.

Args: value: Two-digit code like 27 or GSTIN like 27AAPFU0939F1ZV.

Returns: Standard envelope containing decoded state metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYes2-digit state code or GSTIN

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so safety is covered. The description adds behavioral details beyond annotations: it can accept either a two-digit code or a full GSTIN with prefix, and it returns a standard envelope containing metadata. This is useful context without contradicting the annotations.

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

Conciseness5/5

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

The description is compact and front-loaded. The main purpose appears in the first sentence, with a usage hint, argument example, and return note in brief structured sections. Every sentence contributes information without unnecessary detail.

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

Completeness5/5

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

For a single-parameter, read-only tool with an output schema and safe idempotent annotations, the description covers the input formats, what data comes back, and when to use it. The output schema handles the return structure, so describing the envelope as 'standard' is sufficient.

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

Parameters4/5

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

The schema already covers the parameter with a description of '2-digit state code or GSTIN' and length constraints. The description adds concrete examples ('27' and '27AAPFU0939F1ZV') and clarifies that GSTIN prefixes are accepted, enriching the semantic understanding of the value parameter beyond the raw schema.

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

Purpose5/5

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

The description uses a specific verb 'Decode' with a precise resource: Indian GST state code metadata, and specifies the two accepted input forms (two-digit code or GSTIN prefix). It clearly distinguishes itself from siblings like validate_gstin and decode_pan_type by stating it returns canonical state name, abbreviation, capital, and GST zone.

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

Usage Guidelines4/5

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

It explicitly states when to use the tool: 'Use when you need canonical state name, abbreviation, capital, and GST zone mapping.' However, it does not explicitly mention alternatives or exclusions, such as choosing validate_gstin for validation instead of decoding.

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

get_regulatory_deadlinesA
Read-onlyIdempotent

Get India's tax & regulatory compliance calendar for FY2025-26.

Use when planning tax compliance schedules, setting reminders for deadlines, or building financial compliance dashboards.

Args: category: Filter by category (Income Tax, TDS, GST, PF/ESIC, ROC, etc.) from_date: Start date filter (YYYY-MM-DD) to_date: End date filter (YYYY-MM-DD)

Returns: Standard envelope with deadlines grouped by month for FY2025-26

Notes: Covers ITR filing, TDS deposits, GST returns, PF/ESIC, ROC filings, advance tax, and professional tax deadlines.

ParametersJSON Schema
NameRequiredDescriptionDefault
to_dateNoEnd date filter (YYYY-MM-DD)
categoryNoFilter by category (Income Tax, TDS, GST, PF/ESIC, ROC, etc.)
from_dateNoStart date filter (YYYY-MM-DD)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare the tool read-only and idempotent. The description adds useful behavioral context beyond that: results are 'deadlines grouped by month' and the coverage spans ITR, TDS, GST, PF/ESIC, ROC, advance tax, and professional tax. This goes beyond the structured hints without contradicting them.

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

Conciseness5/5

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

The description is compact and scannable, with a front-loaded summary followed by short Args, Returns, and Notes sections. Every line contributes information: scope, use cases, parameters, return format, and covered compliance types.

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

Completeness5/5

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

Given an output schema exists, the description does not need to detail return fields. It clearly communicates the fiscal year, optional filters, return shape ('standard envelope with deadlines grouped by month'), and regulatory coverage. This is sufficient for an agent to select and call the tool correctly.

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?

Input schema descriptions cover 100% of parameters, so the description is not required to carry the full burden. The Args section largely repeats the schema, including category examples and YYYY-MM-DD date formats, without adding deeper semantics such as allowed category enumeration or date boundary behavior. Baseline 3 is appropriate.

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

Purpose5/5

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

The description states a clear verb-resource pair: 'Get India's tax & regulatory compliance calendar for FY2025-26.' It names the exact domain, fiscal year, and deliverable, distinguishing it from the sibling tools, which are mostly validators and calculators rather than calendar/deadline queries.

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

Usage Guidelines4/5

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

Provides explicit context for when to use the tool: 'planning tax compliance schedules, setting reminders for deadlines, or building financial compliance dashboards.' It does not name alternatives or exclusion criteria, but no sibling offers comparable deadline-calendar functionality, so clear context is sufficient.

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

get_stock_historyA
Read-onlyIdempotent

Fetch historical end-of-day data for a given Indian stock ticker.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoTime period to fetch data for. Valid periods: 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max1mo
symbolYesStock symbol/ticker to fetch. Examples: RELIANCE.NS, INFY.NS

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already cover read-only, idempotent, and open-world behavior, so the description's job is lighter. It adds useful context about data granularity (end-of-day) and market (India), but does not disclose rate limits, result size, or other edge behavior. No contradiction with annotations.

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

Conciseness5/5

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

The description is a single clear, front-loaded sentence with no filler. It communicates the essential scope and resource type efficiently.

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

Completeness5/5

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

The tool is simple, read-only, and has a full input schema and output schema. The description adds the only missing contextual detail: that this is historical end-of-day data for Indian tickers. No critical information is absent.

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%, with both symbol and period already explained. The description adds no parameter-specific semantics beyond what the schema provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states what the tool does: fetch historical end-of-day data for an Indian stock ticker. This is specific enough to distinguish it from the sibling get_stock_quote, which is about current quote data.

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

Usage Guidelines4/5

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

The phrase 'historical end-of-day data' gives clear context for when to use the tool, especially relative to get_stock_quote. However, it does not explicitly name alternatives or state when not to use this tool.

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

get_stock_quoteA
Read-onlyIdempotent

Fetch current (delayed) price and summary for a given Indian stock ticker.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesStock symbol/ticker to fetch. Examples: RELIANCE.NS, INFY.NS, TCS.BO

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already establish that the call is read-only, idempotent, and open-world, so the bar is lower. The description adds a meaningful behavioral detail: the price is delayed rather than real-time. This informs agent expectations beyond the structured hints.

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

Conciseness5/5

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

The description is a single sentence that immediately states the action, the object, the delivery latency, and the market scope. There is no filler, and every phrase earns its place.

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

Completeness5/5

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

Given the simple single-parameter schema with complete explanation, existing output schema, and annotations covering safety/idempotency, this description is fully sufficient for an agent to correctly select and invoke the tool.

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?

The input schema already covers 100% of the single parameter with a clear description and examples like RELIANCE.NS, INFY.NS, TCS.BO. The tool description does not add extra parameter-level meaning beyond what the schema already provides, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Fetch') with a clear resource ('current (delayed) price and summary for a given Indian stock ticker'). It clearly distinguishes itself from sibling get_stock_history by emphasizing current/delayed quote retrieval.

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

Usage Guidelines4/5

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

The phrase 'current (delayed)' clearly signals this tool is for current quote lookups, not historical analysis, which is enough context given the sibling get_stock_history. However, it does not explicitly say 'use this for current prices and get_stock_history for historical trends.'

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

lookup_bankA
Read-onlyIdempotent

Look up bank details from RBI master list. # PermissionTier: READ_ONLY

ParametersJSON Schema
NameRequiredDescriptionDefault
name_or_codeYesBank name or IFSC code prefix

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already cover the read-only, idempotent, and bounded-result behaviors, so the description only needs to add context. It adds the data source 'RBI master list' and echoes 'READ_ONLY' via PermissionTier, giving minor useful context beyond the annotations without contradicting them.

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

Conciseness5/5

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

The description is one clear sentence plus a permission tag. Every part contributes either to what the tool does or which access tier it belongs to, with no filler or redundancy.

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

Completeness5/5

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

For a simple one-parameter lookup tool, the description plus annotations and schema cover the necessary context: the operation, the data source, safety traits, and the accepted input. The output schema exists, so return-value explanation is unnecessary.

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%, and the parameter description already defines 'Bank name or IFSC code prefix'. The tool description does not need to add parameter-level detail; it only confirms the lookup scope. This meets the baseline but does not go beyond it.

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 clearly states the verb 'look up' and the resource 'bank details from RBI master list', so an agent knows exactly what entity the tool queries. It does not explicitly call out the closely related sibling lookup_ifsc, but the RBI master-list wording differentiates it from generic IFSC validation enough.

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

Usage Guidelines4/5

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

The description gives a clear context: bank details come from the RBI master list, implying this is the authoritative source for bank identification. It does not explicitly state exclusions or mention lookup_ifsc as an alternative, so it stops short of a 5.

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

lookup_bbps_billerA
Read-onlyIdempotent

Look up BBPS (Bharat Bill Payment System) biller details.

Use when setting up bill payments for electricity, gas, DTH, water, broadband, FASTag, insurance, or mobile recharges.

Args: category: Category of biller to filter by. state: State to filter by (or 'all' for pan-India). biller_id: Direct biller ID for specific lookup.

Returns: Standard envelope with matching billers and parameter schemas.

Notes: Data is bundled offline. For real-time directory, check NPCI BBPS.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoState name (e.g., 'Maharashtra', 'Delhi') or 'all'
categoryNoelectricity, gas, dth, water, broadband, fastag, insurance, mobile
biller_idNoDirect biller ID lookup

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

The annotations already signal read-only and idempotent behavior. The description adds meaningful context by noting the data is bundled offline, so agents know it is not a real-time directory, and by describing the return as a standard envelope with matching billers and parameter schemas.

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?

The description is well-organized with purpose, usage, args, returns, and notes sections, and the most important caveat is placed last in Notes. The Args section somewhat duplicates the schema descriptions, but the overall length is still reasonable and front-loaded with the tool purpose.

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

Completeness4/5

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

For a read-only, idempotent lookup tool with 0 required parameters and an output schema, the description provides enough guidance for an agent to invoke it correctly. It covers the use case, filtering options, result shape, and the critical offline-data limitation.

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?

The input schema already documents all three parameters with 100% coverage. The description mostly restates the same semantics, such as filtering by category, using 'all' for state, and direct lookup by biller_id. This provides minimal additional meaning beyond the schema.

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

Purpose5/5

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

The description clearly states a specific action and resource: look up BBPS biller details. The list of supported payment categories further clarifies what the tool covers, distinguishing it from sibling validator and calculator tools.

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

Usage Guidelines4/5

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

It explicitly says to use this when setting up bill payments for utilities, DTH, broadband, FASTag, insurance, or mobile recharges. It also warns that the data is bundled offline and directs users to NPCI BBPS for real-time directory lookup, but it does not compare directly with sibling tools like lookups for IFSC, bank, pincode, or HSN.

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

lookup_hsn_codeA
Read-onlyIdempotent

Lookup HSN/SAC by exact code or search by keyword in code descriptions.

Use for GST classification workflows where users provide a code or only a product keyword.

Args: code: Optional exact HSN/SAC code (2, 4, 6, or 8 digits). keyword: Optional plain-text search token over description field.

Returns: Standard envelope with exact match data or top 5 keyword matches.

Notes: Returns static master data; GST applicability can vary by conditions.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoHSN/SAC code (2-8 digits) for exact lookup
keywordNoKeyword for description search, example: coffee

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

The annotations already mark the tool read-only and idempotent, and the description adds useful behavioral context: it returns a standard envelope with exact matches or top 5 keyword matches, uses static master data, and notes GST applicability can vary. It leaves the exact envelope shape undefined, but an output schema is present.

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

Conciseness5/5

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

The description is compact, front-loaded with the main operation, and organized into Args, Returns, and Notes. Every sentence adds useful information, and there is no redundant filler.

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

Completeness4/5

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

For a read-only lookup tool, the description covers the triggering use case, both parameters, return behavior, and an important GST caveat. The only real gap is that both parameters are optional and the description does not state what happens when both or neither are provided.

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

Parameters4/5

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

The description maps the two parameters to exact-code lookup and keyword search, and it adds concrete details such as valid code lengths and the top-5 match behavior. This goes beyond the schema, which only says 'HSN/SAC code (2-8 digits)' and 'keyword for description search'.

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

Purpose5/5

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

The description clearly states the tool is a lookup for HSN/SAC codes by exact code or by description keyword. It names the resource and the operation, and the GST classification context distinguishes it from the many validation and calculation siblings.

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

Usage Guidelines4/5

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

'Use for GST classification workflows where users provide a code or only a product keyword' gives a clear, actionable condition for when to invoke the tool. It does not explicitly list alternative tools to avoid, but the context is clear enough to route an agent.

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

lookup_ifscA
Read-onlyIdempotent

Look up an Indian IFSC code from bundled dataset with live fallback support.

Use this when you need bank branch details from an IFSC code in invoices, onboarding forms, or payment validation workflows.

Args: ifsc_code: IFSC string to validate and lookup. Case-insensitive; whitespace is trimmed.

Returns: Standard envelope containing found flag, branch details, payment rails, and source.

Notes: If not found locally, attempts live lookup at ifsc.razorpay.com with 3s timeout.

ParametersJSON Schema
NameRequiredDescriptionDefault
ifsc_codeYesIFSC code, expected 11 chars. Example: HDFC0000001

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior1/5

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

This is an annotation contradiction: the description says the tool 'attempts live lookup at ifsc.razorpay.com with 3s timeout,' which is an open-world/external-network behavior, while annotations declare openWorldHint=false. The description helpfully discloses the fallback, but the metadata is internally inconsistent, so the behavioral signal is unreliable.

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?

The description is well-organized with a one-line purpose, a usage context, Args, Returns, and Notes. No sentence is wasted, though the Args section partially restates schema information. Overall it is compact and scannable.

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

Completeness4/5

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

For a single-parameter lookup tool, the description covers the key agent-relevant details: when to use it, normalized input handling, return envelope, fallback behavior, and timeout. It is only pulled back from a 5 by the contradictory open-world annotation and the lack of explicit routing guidance to bulk or alternative lookup siblings.

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

Parameters4/5

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

The schema already documents the parameter with example and length constraints, so schema coverage is 100%. The description adds meaningful behavior beyond the schema by stating that input is case-insensitive and that whitespace is trimmed, which is useful for validating user-supplied IFSC codes.

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

Purpose5/5

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

The description names a specific verb and resource: look up an Indian IFSC code, with a clear distinction from validate-only tools by offering bank branch details. It also signals the bundled dataset plus live fallback, so an agent can distinguish it from bulk/validation sibling tools without opening the schema.

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

Usage Guidelines4/5

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

It clearly states when to use the tool: 'when you need bank branch details from an IFSC code in invoices, onboarding forms, or payment validation workflows.' However, it does not explicitly say when not to use alternatives like bulk_validate_ifsc or lookup_bank, so exclusions are incomplete.

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

lookup_pincodeA
Read-onlyIdempotent

Look up India pincode details and return all post offices for that code.

Use for address normalization, district/state extraction, and GST state crosswalk use-cases.

Args: pincode: 6-digit pincode; spaces/hyphens are accepted and normalized.

Returns: Standard envelope with location hierarchy and post_offices array.

Notes: One pincode may map to multiple post offices and all are returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
pincodeYes6-digit pincode

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=true, idempotentHint=true), the description adds meaningful behavioral details: input normalization of spaces/hyphens, the fact that one pincode may map to multiple post offices and all are returned, and the standard envelope with location hierarchy. This gives an agent clear expectations about behavior and edge cases.

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

Conciseness5/5

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

The description is compact and well-organized with a summary, use-cases, Args, Returns, and Notes sections. Every sentence earns its place with no redundancy or filler.

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

Completeness5/5

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

For a single-parameter read-only lookup with an output schema present, the definition covers the essential context: purpose, when to use, input formatting, output envelope shape, and cardinality notes. Nothing an agent needs to call it correctly is missing.

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

Parameters4/5

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

The schema already covers the parameter with 100% description coverage, providing the baseline of 3. The description adds value by detailing that spaces/hyphens are accepted and normalized and confirming the 6-digit format, which is useful semantic detail beyond the schema's simple '6-digit pincode'.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Look up India pincode details and return all post offices for that code.' This clearly differentiates it from sibling lookup tools such as lookup_ifsc, lookup_bank, and lookup_hsn_code, which target different identifiers.

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

Usage Guidelines4/5

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

The description explicitly states when to use it: 'Use for address normalization, district/state extraction, and GST state crosswalk use-cases.' It does not mention exclusions or alternatives, but the use-cases are specific enough to guide selection among the sibling tools.

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

validate_aadhaarA
Read-onlyIdempotent

Validate an Indian Aadhaar number with Verhoeff checksum verification.

Use when checking Aadhaar format and checksum in KYC, identity verification, or government benefit workflows.

Args: aadhaar: 12-digit Aadhaar number. Spaces and hyphens are stripped.

Returns: Standard envelope containing validity, checksum result, formatted display, and first-digit check.

Notes: Validates format and Verhoeff checksum only. Not connected to UIDAI.

ParametersJSON Schema
NameRequiredDescriptionDefault
aadhaarYes12-digit Aadhaar number. Spaces and hyphens accepted. Example: 2959 4583 7261

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, and the description does not contradict these. It adds useful behavioral detail: spaces and hyphens are stripped, the validation is limited to format and Verhoeff checksum, and the return envelope includes validity, checksum result, formatted display, and first-digit check. The UIDAI caveat is especially helpful for avoiding expectations beyond the local validation.

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

Conciseness5/5

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

The description is short, front-loaded with the primary purpose, and organized into Purpose, Use-when, Args, Returns, and Notes. It includes the critical caveat about UIDAI without any filler, and every line contributes actionable information for an agent.

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

Completeness5/5

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

For a single-parameter validation tool with 100% schema coverage, output schema present, and read-only/idempotent annotations, the description is complete. It tells the agent what the tool validates, when to use it, how the input is normalized, what the return envelope contains, and the important limitation that it is not connected to UIDAI. Nothing needed to invoke it correctly is missing.

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 the schema already fully documents the parameter. The description's Args section mostly restates that aadhaar is a 12-digit number and that spaces and hyphens are allowed. It adds that spaces and hyphens are 'stripped' prior to validation, which is slight extra operational detail, but not a substantial semantic addition.

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 clearly identifies the verb ('Validate') and resource ('an Indian Aadhaar number'), and the phrase 'Verhoeff checksum verification' makes its function specific. It also states that it is format/checksum-only and 'not connected to UIDAI', which distinguishes it from identity-lookup style tools. It does not explicitly contrast it with bulk_validate_aadhaar or other related sibling validators, but the purpose itself is unambiguous.

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

Usage Guidelines4/5

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

The description gives an explicit usage context: 'Use when checking Aadhaar format and checksum in KYC, identity verification, or government benefit workflows.' It also provides a meaningful limitation with 'Not connected to UIDAI', which warns agents not to use it for live UIDAI verification. It stops short of naming alternatives such as bulk_validate_aadhaar, so it is not a perfect routing guide.

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

validate_cinA
Read-onlyIdempotent

Validate and decode an Indian CIN (Company Identification Number).

Use when verifying company registration data, extracting listing status, NIC code, state, year, and company type from a CIN.

Args: cin: 21-character CIN string. Spaces and hyphens stripped automatically.

Returns: Standard envelope containing decoded fields: listing status, NIC code, state, year of incorporation, company type, and serial number.

Notes: Format validation with field decoding. No public checksum.

ParametersJSON Schema
NameRequiredDescriptionDefault
cinYes21-character CIN (spaces/hyphens allowed). Example: L17110MH1973PLC019786

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already establish the read-only and idempotent behavior, so the description adds useful behavioral detail: spaces and hyphens are stripped automatically, the output is a standard envelope, and there is no public checksum. This helps the agent set correct expectations without contradicting the annotations.

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

Conciseness5/5

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

The description is compact, well-sectioned, and front-loaded with the core purpose. Each section (Use when, Args, Returns, Notes) earns its place and provides practical information without filler.

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

Completeness5/5

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

For a single-parameter, read-only tool with an output schema, this description covers the input contract, normalization behavior, output structure, and a key validation limitation. Nothing essential appears to be missing for a successful invocation.

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

Parameters4/5

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

The schema already documents the cin parameter fully, but the description adds the operational note that spaces/hyphens are automatically stripped and reinforces the canonical 21-character format. That goes beyond the schema's 'spaces/hyphens allowed' wording and clarifies input normalization.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Validate and decode an Indian CIN.' It also lists concrete outputs such as listing status, NIC code, state, year, company type, and serial number, which makes the tool's purpose easy to distinguish from sibling validators like validate_pan or validate_din.

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

Usage Guidelines4/5

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

The description gives explicit trigger conditions: use when verifying company registration data or extracting structured fields from a CIN. It doesn't name alternatives or state when not to use this tool, but the context is clear enough for an agent to route correctly.

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

validate_dinA
Read-onlyIdempotent

Validate an Indian DIN (Director Identification Number) format.

Use when verifying director identity numbers in MCA compliance workflows.

Args: din: 8-digit numeric DIN string. Shorter inputs zero-padded. Spaces stripped.

Returns: Standard envelope containing validity and normalized DIN.

Notes: Format validation only. Cannot verify director status with MCA.

ParametersJSON Schema
NameRequiredDescriptionDefault
dinYes8-digit DIN (spaces allowed). Example: 00012345

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already mark the tool as read-only and idempotent. The description adds valuable behavior beyond annotations: shorter inputs are zero-padded, spaces are stripped, and only format validation is performed, not director status verification. No contradiction with annotations.

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?

The description is compact and front-loaded with the core action and use case. The Args block is somewhat redundant with the schema, but every sentence still carries useful information and the total length is appropriate.

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

Completeness5/5

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

This is a simple single-parameter validation tool with an output schema, so no hidden behavior remains. The description fully covers what is validated, input normalization, read-only nature, and the explicitly excluded status verification.

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

Parameters4/5

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

Input schema has 100% coverage for the single parameter, which is the baseline. The description adds extra meaning by specifying that the 8-digit value is numeric, shorter values are zero-padded, and spaces are stripped—details absent from the schema.

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

Purpose5/5

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

States a specific verb plus resource: 'Validate an Indian DIN (Director Identification Number) format'. This distinguishes it from sibling tools like validate_cin, validate_pan, or validate_aadhaar, and ties it to MCA compliance.

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

Usage Guidelines4/5

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

Explicitly says when to use: 'Use when verifying director identity numbers in MCA compliance workflows.' It also clearly states a limitation ('Format validation only. Cannot verify director status with MCA'), but does not name an alternative tool for the more comprehensive verification.

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

validate_driving_licenseA
Read-onlyIdempotent

Validate an Indian driving license number format and decode segments.

Use when verifying DL format, extracting state/RTO/year in KYC workflows.

Args: dl_number: Driving license number. Hyphens/spaces stripped automatically.

Returns: Standard envelope containing validity, state code, state name, RTO code, year of issue, and serial number.

Notes: Format validation only. Handles non-standard pre-Sarathi formats gracefully.

ParametersJSON Schema
NameRequiredDescriptionDefault
dl_numberYesIndian DL number, 15 chars (spaces/hyphens allowed). Ex: MH0220191234567

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Given the annotations already declare readOnlyHint and idempotentHint, the description adds meaningful behavioral details: it states the tool is format-validation-only and that non-standard pre-Sarathi formats are handled gracefully. It also discloses auto-stripping of hyphens/spaces. These are not redundant with annotations.

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?

The description is logically organized into Args/Returns/Notes, and is not overly long. The Args section is slightly redundant with the schema, but each other part earns its place. Minor redundancy is not enough to warrant a stronger penalty.

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

Completeness4/5

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

With a complete output schema and useful annotations, the description still contributes important context: what the tool does not do (format validation only), and graceful handling of old formats. This places it above the threshold for a simple tool description, though it could add edge-case behavior or explicit error handling notes.

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?

The schema already covers the parameter fully (description, type, min/max). The description's Args section adds little semantic value, only repeating the field. However, it does clarify that hyphens/spaces are stripped automatically, which is a small extension beyond the schema text. Baseline of 3 is appropriate overall.

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

Purpose5/5

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

The description states a specific verb ('Validate') and a clear resource ('Indian driving license number') and explicitly says it decodes segments. The scope is narrowed with examples (state/RTO/year), and it is easily distinguished from sibling validators like validate_aadhaar or decode_state_code. The sentence is specific and usable.

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

Usage Guidelines4/5

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

The 'Use when' line provides concrete usage context ('verifying DL format, extracting state/RTO/year in KYC workflows') which is above-average guidance. However, it does not explicitly name sibling tools that should be used instead in related cases (e.g., decode_state_code), so it lacks full alternative exclusions.

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

validate_epf_codeB
Read-onlyIdempotent

Validate EPF establishment code. # PermissionTier: READ_ONLY

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesEPF establishment code (XX/XXXXX/XXXXXX/XXX)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

The description adds no real behavioral context beyond the 'PermissionTier: READ_ONLY' comment, which simply restates the readOnlyHint annotation. It does not disclose whether validation checks format, existence, registration status, or whether it makes network requests, leaving the agent uninformed about practical behavior.

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?

The main description is a single, front-loaded sentence: 'Validate EPF establishment code.' This is concise and does not waste words. The PermissionTier tag is redundant with annotations, but the overall length is appropriate and the key purpose appears first.

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?

With one parameter, read-only and idempotent annotations, and an output schema, the essential calling contract is covered. However, the description does not clarify what 'validate' means beyond the format hint in the schema—specifically, whether it checks only format or also verifies the code against an authoritative source—so an agent might make incorrect assumptions about the result.

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?

The input schema already provides the full description for the only parameter, including the expected format (XX/XXXXX/XXXXXX/XXX). The tool description itself adds no extra parameter semantics, so an agent relies entirely on the schema to understand the argument.

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 'Validate EPF establishment code' uses a specific verb and resource, effectively conveying the tool's single responsibility. The EPF code type is distinct from sibling validators like validate_tan or validate_gstin, though the description does not elaborate on the scope or manner of validation.

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

Usage Guidelines3/5

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

The description only implies usage: it is used when one needs to validate an EPF establishment code. It provides no explicit context about when to choose this tool over other validators, no exclusions, and no mention of alternative tools or preconditions.

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

validate_esic_codeA
Read-onlyIdempotent

Validate ESIC employer code. # PermissionTier: READ_ONLY

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesESIC employer code (XX-XXXXX-XXXXX)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior2/5

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

The description adds no behavioral detail beyond the annotations: '# PermissionTier: READ_ONLY' just restates the existing readOnlyHint, and the annotations already declare read-only and idempotent behavior. It does not disclose any validation side effects, network calls, or edge-case behavior.

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

Conciseness5/5

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

The description is a single clear sentence that states the operation and resource with no filler. The permission line is minimal and the information is front-loaded.

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

Completeness5/5

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

For a simple, single-parameter, read-only validation tool with an output schema, the description plus schema annotations provide sufficient context to call the tool correctly. No return-value explanation is needed since the output schema exists.

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?

The schema already covers the one parameter fully, including the required flag and the expected format 'XX-XXXXX-XXXXX'. The description itself adds no additional semantic meaning beyond what the input schema provides, so the baseline 3 applies.

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

Purpose5/5

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

The description uses a specific verb 'Validate' and a specific resource 'ESIC employer code', so an agent immediately knows the operation and subject. It clearly distinguishes itself from sibling tools like validate_gstin and validate_pan by naming the exact code type.

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

Usage Guidelines3/5

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

Usage is implied rather than explicit: the tool is for validating ESIC employer codes, but the description provides no when-to-use conditions, no exclusions, and no pointers to alternatives. With many sibling validators, more explicit routing guidance would help.

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

validate_fssaiA
Read-onlyIdempotent

Validate FSSAI (Food Safety) license number format and decode details.

Use when verifying food business operator licenses in compliance checks.

Args: license_number: 14-digit FSSAI license. Spaces/hyphens stripped.

Returns: Standard envelope with validation, state, license type, year decoded.

Notes: The 14-digit format encodes: state(2) + year(2) + type(1) + sequence(9). Type: 1=Central, 2=State, 3=State (turnover-based).

ParametersJSON Schema
NameRequiredDescriptionDefault
license_numberYes14-digit FSSAI license (spaces/hyphens allowed). Ex: 10019000000001

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior5/5

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

The description discloses that spaces/hyphens are stripped, what the 14-digit format encodes, and that the return values include validation, state, license type, and year. This adds meaningful behavioral detail beyond annotations, which already indicate a read-only, idempotent operation.

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?

The description is compact and organized with clear sections (Usage, Args, Returns, Notes). Each section contributes useful context, though the Args block is somewhat redundant with the schema. Overall it is appropriately sized and front-loaded.

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

Completeness5/5

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

The tool takes a single parameter, the safety profile is captured by annotations, and the decode logic and output fields are described. With an output schema already present, there are no significant gaps left unanswered.

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?

The schema already covers the parameter at 100% with details about the 14-digit format and spaces/hyphens allowed. The description's Args section largely restates the same information, so it adds no new parameter-level meaning. Baseline 3 is appropriate since the schema does the heavy lifting.

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

Purpose5/5

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

Description clearly states the tool's specific verb 'Validate' and resource 'FSSAI (Food Safety) license number format', and additionally says it 'decodes details.' This differentiates it from sibling validation tools by naming the exact license type and domain.

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

Usage Guidelines4/5

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

'Use when verifying food business operator licenses in compliance checks' explicitly identifies the triggering context. It doesn't mention when not to use it or point to alternatives, but for a single-purpose validator that context is sufficient.

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

validate_gstinA
Read-onlyIdempotent

Validate and decode an Indian GSTIN with checksum verification.

Use when checking supplier/customer GSTINs before invoicing, reconciliation, or compliance workflows.

Args: gstin: 15-character GSTIN (e.g., 27AAPFU0939F1ZV). Spaces/hyphens stripped.

Returns: Standard envelope containing validity, state decode, embedded PAN, entity number, category, and checksum information.

Notes: Validates structure and checksum only; does not verify active GSTN registration status.

ParametersJSON Schema
NameRequiredDescriptionDefault
gstinYes15-character GSTIN (spaces/hyphens allowed)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover read-only and idempotent behavior. The description adds meaningful behavior beyond those: it performs checksum verification, strips spaces/hyphens from input, and explicitly disclaims live GSTN registration-status checking. This is valuable for an agent deciding whether to use this tool for a compliance workflow.

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?

The description is well-organized with clear sections (Args, Returns, Notes) and front-loads the core purpose in the first line. It has a little redundancy with the schema description, but every section contributes something practical and there is no filler.

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

Completeness5/5

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

Given the single parameter, full schema coverage, an output schema, and read-only/idempotent annotations, the description covers the essential operational context: what it validates, what it returns, when to use it, and a critical limitation. An agent can invoke this tool correctly without guessing.

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

Parameters4/5

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

Schema coverage is already 100%, giving a baseline of 3. The description adds a concrete example ('27AAPFU0939F1ZV') and clarifies that spaces/hyphens are stripped despite the schema only saying they are allowed. This extra semantic detail helps the agent understand normalization behavior 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 starts with a specific verb ('Validate and decode') and a specific resource ('Indian GSTIN') followed by a key behavior ('checksum verification'). It does not explicitly contrast with the closest sibling 'bulk_validate_gstin', but the singular framing and tool name make the single-item scope reasonably clear.

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

Usage Guidelines4/5

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

It gives concrete triggering scenarios: 'checking supplier/customer GSTINs before invoicing, reconciliation, or compliance workflows.' It also provides an exclusion by noting that it does not verify active GSTN registration status, which tells an agent when this tool is insufficient. It does not mention alternatives such as bulk_validate_gstin for batch needs, so it falls short of explicit when-not-to-use guidance.

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

validate_llpinA
Read-onlyIdempotent

Validate LLPIN (Limited Liability Partnership Identification Number).

Use when verifying LLP registration numbers.

Args: llpin: LLPIN in format AAA-XXXX

Returns: Validation result with decoded segments.

ParametersJSON Schema
NameRequiredDescriptionDefault
llpinYesLLPIN in format AAA-XXXX or AAAXXXX

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, covering the safety profile. The description adds that the tool 'Returns validation result with decoded segments,' which is meaningful behavioral information, but it does not discuss edge cases, error patterns, or any other behavioral nuance beyond that.

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?

The description is compact and front-loaded: a short purpose line, a use-case line, and a minimal Args/Returns breakdown. There is no filler or redundant background, though the Args block does overlap with the schema.

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

Completeness4/5

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

For a simple single-parameter, read-only validation tool with an output schema present, this description covers the essential points: what it validates, when to use it, and that the result includes decoded segments. It just misses minor edge-case and format-variant detail, but the output schema and annotations fill most remaining gaps.

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

Parameters2/5

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

Schema description coverage is 100%, so the schema already fully documents the llpin parameter. The description's Args line merely repeats 'LLPIN in format AAA-XXXX' but omits the additional accepted variant 'AAAXXXX' that the schema explicitly permits, which is a narrowing that could mislead an agent rather than adding value.

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

Purpose5/5

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

The description opens with 'Validate LLPIN (Limited Liability Partnership Identification Number)', a specific verb and resource. The 'Use when verifying LLP registration numbers' line further clarifies the target, distinguishing it from the many sibling validation tools.

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

Usage Guidelines4/5

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

The explicit instruction 'Use when verifying LLP registration numbers' gives a clear when-to-use context. It does not enumerate alternatives or explicit when-not-to-use conditions, but given the sibling context of separate validators for other document types, the intended use is clear.

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

validate_mobile_numberA
Read-onlyIdempotent

Validate Indian mobile number and detect operator/circle.

Use when validating mobile numbers for KYC or contact verification.

Args: mobile: Mobile number with or without +91/0

Returns: Validation result with operator and telecom circle.

ParametersJSON Schema
NameRequiredDescriptionDefault
mobileYes10-digit mobile number with or without +91/0

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already cover readOnlyHint, idempotentHint, and openWorldHint, so safety and side-effect expectations are already disclosed. The description adds that the tool detects operator and telecom circle, which is useful context, but it does not discuss edge cases like invalid formats or not-found operators; this is acceptable but slightly limited for a validation tool.

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

Conciseness5/5

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

The description is compact and front-loaded: it opens with the core purpose, follows with a direct use-case sentence, and finishes with concise Args/Returns lines. There is no filler, repetition of the tool name, or unnecessary explanation.

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

Completeness5/5

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

For a single-parameter, read-only validation tool with 100% schema coverage, annotations, and an output schema present, nothing essential is missing. The description also states the relevant returned concepts (validation result, operator, circle), making it fully actionable for an agent.

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?

The input schema describes 'mobile' as a 10-digit number with or without +91/0, and the description's Args section only restates that. Since schema coverage is 100%, the description does not add meaningful semantic value beyond the schema.

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

Purpose5/5

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

The first sentence states a concrete action ('Validate'), a specific resource ('Indian mobile number'), and an additional result ('detect operator/circle'). This clearly distinguishes the tool from the many validate_*/lookup_* sibling tools and avoids any tautology or vagueness.

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

Usage Guidelines4/5

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

The description explicitly says to use this tool when validating mobile numbers for KYC or contact verification, which gives the agent a clear trigger condition. It does not enumerate when-not-to-use scenarios or alternatives, but the tool's narrow scope makes confusion with siblings unlikely.

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

validate_panA
Read-onlyIdempotent

Validate Indian PAN format and decode entity type from the 4th character.

Use when normalizing tax identity records in KYC, invoicing, or vendor onboarding.

Args: pan: PAN string, example: AAAPL1234C. Spaces and hyphens stripped automatically.

Returns: Standard envelope containing format validity, entity type, and decoded segments.

Notes: PAN check character is not publicly verifiable algorithmically.

ParametersJSON Schema
NameRequiredDescriptionDefault
panYes10-char PAN (spaces/hyphens allowed)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already provide readOnlyHint and idempotentHint, so there is no contradiction. The description adds useful behavioral details beyond annotations: spaces and hyphens are stripped automatically, the PAN check character is not publicly verifiable, and the result comes in a standard envelope.

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

Conciseness5/5

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

The description is well-structured with Purpose, Usage, Args, Returns, and Notes sections. It is concise, front-loaded with the key operation, and each part provides distinct value without redundant fluff.

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

Completeness5/5

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

Given the single parameter, rich annotations, and existing output schema, the description covers everything needed to invoke the tool correctly. The note about the check character limitation is an important extra that prevents customer assumptions.

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

Parameters4/5

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

The schema already covers type, length, and allowed spaces/hyphens, so the baseline is 3. The description adds value with a concrete example and the automatic stripping behavior, which clarifies how the input should be supplied.

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

Purpose5/5

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

The description states a specific verb and resource: 'Validate Indian PAN format and decode entity type from the 4th character.' It clearly distinguishes itself from the sibling tool 'decode_pan_type' by combining validation with entity type decoding. There is no ambiguity about what the tool does.

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

Usage Guidelines4/5

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

It explicitly says to use the tool when normalizing tax identity records in KYC, invoicing, or vendor onboarding. It does not mention alternatives or when not to use it, which is a minor gap, but the context is clearly stated.

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

validate_passportA
Read-onlyIdempotent

Validate an Indian passport number format.

Use when verifying passport format in KYC, travel, or identity workflows.

Args: passport_number: 1 letter + 7 digits. Spaces and hyphens stripped automatically.

Returns: Standard envelope containing validity, series letter, and serial number.

Notes: Format validation only. No public checksum algorithm exists.

ParametersJSON Schema
NameRequiredDescriptionDefault
passport_numberYes8-char Indian passport (spaces/hyphens allowed). Ex: A1234567

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior5/5

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

Building on the read-only and idempotent annotations, the description explains that spaces and hyphens are automatically stripped, the response is a standard envelope with validity, series letter, and serial number, and there is no checksum so this is syntactic validation only. These are non-obvious behavioral details that materially change how an agent should interpret the result.

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?

The Use when, Args, Returns, and Notes sections structure the description well, and the most important selection logic is front-loaded. The text is compact and readable. There is slight redundancy in saying 'format validation' both in the opening and in Notes, but that does not harm overall quality.

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

Completeness4/5

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

For a single-parameter tool with a full output schema and read-only/idempotent annotations, the description covers all the essential context: when to use it, input handling, returned fields, and limitations. The only substantive reliability problem is the incorrect digit count mentioned in the Args section. Correcting that would make this description very complete.

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

Parameters2/5

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

Since the schema already covers the parameter fully, the baseline is 3. However, the description claims '1 letter + 8 digits', which contradicts the schema's '8-char' format and the example 'A1234567' (which has 7 digits). This is a factual error that could mislead an AI agent. The useful note about stripping spaces and hyphens cannot compensate for teaching the wrong pattern.

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

Purpose5/5

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

The description begins with 'Validate an Indian passport number format', identifying the specific verb and resource. It clearly distinguishes this tool from sibling validators for PAN, Aadhaar, GSTIN, and similar formats. The KYC, travel, and identity workflow context adds further clarity about the tool's intended purpose.

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

Usage Guidelines4/5

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

The phrase 'Use when verifying passport format in KYC, travel, or identity workflows' explicitly states the intended usage context. The notes about format-only validation and the absence of a checksum algorithm clarify limits, but the description does not mention alternatives or state when not to use this tool.

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

validate_pranA
Read-onlyIdempotent

Validate PRAN (Permanent Retirement Account Number) for NPS.

Use when verifying NPS account numbers.

Args: pran: 12-digit PRAN

Returns: Validation result with subscriber category.

ParametersJSON Schema
NameRequiredDescriptionDefault
pranYes12-digit PRAN

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is supplied by the metadata. The description adds only the scope (NPS) and return hint, without extra behavioral details such as error handling or constraints, which is adequate for this low-risk read-only validation.

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

Conciseness5/5

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

The description is short: an opening definition, a usage directive, and clearly labeled Args/Returns sections. Every sentence earns its place and the key purpose is front-loaded.

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

Completeness4/5

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

With a single typed parameter, an output schema, and annotations covering read-only/idempotency, the detection covers the essentials: what it does, when to use it, what goes in, and what comes back. It doesn't explore edge cases like value eligibility or invalid formats, but given the low complexity and metadata available, and it is nearly complete.

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 coverage is 100%: the only parameter 'pran' is fully described as a '12-digit PRAN' in both the schema and the description's Args section. The description adds no further parameter semantics, which is fine since the schema fully documents it.

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

Purpose5/5

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

The description is explicit: it names the resource (PRAN), the action (validate), and the domain (NPS). It also spells out the intended use ('Use when verifying NPS account numbers'), which differentiates it from dozens of sibling validation tools.

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

Usage Guidelines4/5

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

It clearly states when to use: 'Use when verifying NPS account numbers.' It does not name alternatives to exclude, but the NPS-scoped instruction is strong enough for an agent to select this tool over the many generic validate_* siblings.

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

validate_tanA
Read-onlyIdempotent

Validate TAN (Tax Deduction Account Number) format.

Use when verifying TAN format for TDS compliance.

Args: tan: 10-character TAN

Returns: Validation result with decoded segments.

ParametersJSON Schema
NameRequiredDescriptionDefault
tanYes10-character TAN (e.g., ABCD12345E)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so safety is well-covered. The description adds that the return includes 'decoded segments,' which is useful but still vague about the exact shape of the result. It does not conflict with the annotations, but it also doesn't fully disclose validation behavior for invalid inputs.

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?

The description is compact, front-loaded, and formatted with clear sections: purpose, usage context, args, and returns. It lacks filler. The only minor redundancy is repeating the tan parameter description already present in the schema, but this is acceptable and doesn't hurt scannability.

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

Completeness4/5

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

For a single-parameter validation tool with rich annotations and an output schema, this description is adequate. It tells the agent what the TAN is, when to use the tool, and that the result is a validation result with decoded segments. Additional detail about invalid-input behavior would strengthen it but is not essential here.

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 the parameter is fully documented in the input schema. The description does repeat that `tan` is a 10-character TAN, but adds only marginal semantic value beyond the schema. A baseline score of 3 fits because the schema carries the documentation weight.

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

Purpose5/5

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

The description clearly identifies the tool's purpose: validating TAN format for TDS compliance. The verb 'Validate' plus the explicit resource 'TAN (Tax Deduction Account Number)' leaves no ambiguity about what the tool does, and it naturally distinguishes this from sibling validation tools for PAN, GSTIN, Aadhaar, etc.

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

Usage Guidelines4/5

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

The description states exactly when to use the tool: 'Use when verifying TAN format for TDS compliance.' This provides clear, specific context. It does not explicitly list when not to use it or name alternative tools, but given the clearly distinct resource type, this is a minor omission.

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

validate_upi_vpaA
Read-onlyIdempotent

Validate UPI VPA structure and decode known provider handles.

Use when checking whether a UPI address is structurally valid before payment routing.

Args: vpa: UPI virtual payment address in username@handle format.

Returns: Standard envelope containing normalized VPA, known_provider flag, and provider metadata.

Notes: Unknown handles are not auto-invalidated because NPCI handle lists evolve over time.

ParametersJSON Schema
NameRequiredDescriptionDefault
vpaYesUPI VPA, example: user@okaxis

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior1/5

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

The annotations declare openWorldHint=false, implying a closed, deterministic world context. However, the description states that NPCI handle lists evolve over time and that unknown handles are not auto-invalidated, which suggests the tool's recognition behavior depends on changing external state. This directly contradicts the openWorldHint annotation, so the behavioral transparency score must be minimal.

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

Conciseness5/5

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

The description is well-structured with clear Args, Returns, and Notes sections, and every sentence serves a purpose. It is compact and front-loaded with the core purpose before diving into details.

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

Completeness4/5

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

For a single-parameter tool with an output schema, the description covers the use case, argument format, return envelope fields, and a critical behavioral caveat about unknown handles. The only completeness issue is the contradiction with openWorldHint, which prevents the overall definition from being fully reliable.

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

Parameters4/5

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

The schema already documents the VPA parameter with an example, but the description adds meaningful semantic guidance by specifying the exact username@handle format. The Returns note about a normalized VPA and known_provider flag also clarifies how the input parameter is used, exceeding what the schema alone provides.

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

Purpose5/5

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

The description clearly states the tool validates UPI VPA structure and decodes known provider handles. This is specific and effectively differentiates it from the sibling validation tools, which target different entities such as PAN, GSTIN, or Aadhaar.

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

Usage Guidelines4/5

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

The description explicitly says to use this tool when checking whether a UPI address is structurally valid before payment routing, which is a clear context. It does not explicitly rule out other tools or name alternatives, but the target domain is already distinctive enough among siblings.

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

validate_voter_idA
Read-onlyIdempotent

Validate an Indian Voter ID (EPIC) number format.

Use when verifying voter ID format in KYC, identity, or electoral workflows.

Args: voter_id: EPIC number (3 letters + 7 digits). Spaces/hyphens stripped.

Returns: Standard envelope containing validity, prefix, serial, and format type.

Notes: Format validation only. Detects possible legacy EPIC formats.

ParametersJSON Schema
NameRequiredDescriptionDefault
voter_idYes10-character EPIC number (spaces/hyphens allowed). Example: ABC1234567

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Beyond the read-only and idempotent annotations, the description adds useful behavioral context: it performs 'format validation only', strips spaces/hyphens, detects possible legacy EPIC formats, and returns a standard envelope. This gives agents a good mental model of what the tool will and will not do.

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

Conciseness5/5

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

The description is well-organized into use case, arguments, returns, and notes. It is compact, front-loaded, and every line adds relevant information with no fluff.

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

Completeness5/5

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

For a single-parameter, read-only validation tool with an output schema, the description is complete: it explains what the tool validates, when to use it, what the input should look like, what the response contains, and that DB-level verification is not performed.

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

Parameters4/5

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

Schema coverage is 100%, but the description adds meaningful parameter semantics: 'EPIC number (3 letters + 7 digits)' and 'Spaces/hyphens stripped.' This clarifies acceptable input beyond the schema's simple '10-character EPIC number' description.

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

Purpose5/5

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

States a specific verb and resource: 'Validate an Indian Voter ID (EPIC) number format.' It clearly distinguishes this tool from sibling validators like validate_aadhaar or validate_pan because the target document type is explicit.

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

Usage Guidelines4/5

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

The description gives an explicit use context: 'Use when verifying voter ID format in KYC, identity, or electoral workflows.' It does not explicitly name which sibling tools to use instead, but the context is clear enough to route an agent correctly.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 60 tool updatesv0.5.0
    • Changedbuild_aa_consent_request12 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / consent_expiry_days / title
        Added value: +"Consent Expiry Days"
      • addedInput schema / properties / customer_id / title
        Added value: +"Customer Id"
      • addedInput schema / properties / date_range_from / title
        Added value: +"Date Range From"
      • addedInput schema / properties / date_range_to / title
        Added value: +"Date Range To"
      • addedInput schema / properties / fetch_type / title
        Added value: +"Fetch Type"
      • addedInput schema / properties / fi_types / title
        Added value: +"Fi Types"
      • addedInput schema / properties / frequency_unit / title
        Added value: +"Frequency Unit"
      • addedInput schema / properties / frequency_value / title
        Added value: +"Frequency Value"
      • addedInput schema / properties / purpose_code / title
        Added value: +"Purpose Code"
      • addedInput schema / title
        Added value: +"build_aa_consent_requestArguments"
      • addedOutput schema / title
        Added value: +"build_aa_consent_requestDictOutput"
    • Changedbulk_validate_aadhaar4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / numbers / title
        Added value: +"Numbers"
      • addedInput schema / title
        Added value: +"bulk_validate_aadhaarArguments"
      • addedOutput schema / title
        Added value: +"bulk_validate_aadhaarDictOutput"
    • Changedbulk_validate_gstin4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / gstins / title
        Added value: +"Gstins"
      • addedInput schema / title
        Added value: +"bulk_validate_gstinArguments"
      • addedOutput schema / title
        Added value: +"bulk_validate_gstinDictOutput"
    • Changedbulk_validate_ifsc4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / ifscs / title
        Added value: +"Ifscs"
      • addedInput schema / title
        Added value: +"bulk_validate_ifscArguments"
      • addedOutput schema / title
        Added value: +"bulk_validate_ifscDictOutput"
    • Changedbulk_validate_pan4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / pans / title
        Added value: +"Pans"
      • addedInput schema / title
        Added value: +"bulk_validate_panArguments"
      • addedOutput schema / title
        Added value: +"bulk_validate_panDictOutput"
    • Changedcalculate_advance_tax7 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / estimated_income / title
        Added value: +"Estimated Income"
      • addedInput schema / properties / existing_tds / title
        Added value: +"Existing Tds"
      • addedInput schema / properties / regime / title
        Added value: +"Regime"
      • addedInput schema / properties / taxpayer_type / title
        Added value: +"Taxpayer Type"
      • addedInput schema / title
        Added value: +"calculate_advance_taxArguments"
      • addedOutput schema / title
        Added value: +"calculate_advance_taxDictOutput"
    • Changedcalculate_capital_gains11 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / asset_type / title
        Added value: +"Asset Type"
      • addedInput schema / properties / expenses_on_sale / title
        Added value: +"Expenses On Sale"
      • addedInput schema / properties / holding_period_days / title
        Added value: +"Holding Period Days"
      • addedInput schema / properties / improvements / title
        Added value: +"Improvements"
      • addedInput schema / properties / inflation_index_purchase / title
        Added value: +"Inflation Index Purchase"
      • addedInput schema / properties / inflation_index_sale / title
        Added value: +"Inflation Index Sale"
      • addedInput schema / properties / purchase_price / title
        Added value: +"Purchase Price"
      • addedInput schema / properties / sale_price / title
        Added value: +"Sale Price"
      • addedInput schema / title
        Added value: +"calculate_capital_gainsArguments"
      • addedOutput schema / title
        Added value: +"calculate_capital_gainsDictOutput"
    • Changedcalculate_emi7 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / annual_interest_rate / title
        Added value: +"Annual Interest Rate"
      • addedInput schema / properties / loan_type / title
        Added value: +"Loan Type"
      • addedInput schema / properties / principal / title
        Added value: +"Principal"
      • addedInput schema / properties / tenure_months / title
        Added value: +"Tenure Months"
      • addedInput schema / title
        Added value: +"calculate_emiArguments"
      • addedOutput schema / title
        Added value: +"calculate_emiDictOutput"
    • Changedcalculate_epf_esic6 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / basic_wages / title
        Added value: +"Basic Wages"
      • addedInput schema / properties / gross_wages / title
        Added value: +"Gross Wages"
      • addedInput schema / properties / include_employer_share / title
        Added value: +"Include Employer Share"
      • addedInput schema / title
        Added value: +"calculate_epf_esicArguments"
      • addedOutput schema / title
        Added value: +"calculate_epf_esicDictOutput"
    • Changedcalculate_fd_maturity9 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / annual_interest_rate / title
        Added value: +"Annual Interest Rate"
      • addedInput schema / properties / compounding / title
        Added value: +"Compounding"
      • addedInput schema / properties / is_senior_citizen / title
        Added value: +"Is Senior Citizen"
      • addedInput schema / properties / principal / title
        Added value: +"Principal"
      • addedInput schema / properties / tds_applicable / title
        Added value: +"Tds Applicable"
      • addedInput schema / properties / tenure_days / title
        Added value: +"Tenure Days"
      • addedInput schema / title
        Added value: +"calculate_fd_maturityArguments"
      • addedOutput schema / title
        Added value: +"calculate_fd_maturityDictOutput"
    • Changedcalculate_gratuity6 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / is_covered_under_act / title
        Added value: +"Is Covered Under Act"
      • addedInput schema / properties / last_drawn_salary / title
        Added value: +"Last Drawn Salary"
      • addedInput schema / properties / years_of_service / title
        Added value: +"Years Of Service"
      • addedInput schema / title
        Added value: +"calculate_gratuityArguments"
      • addedOutput schema / title
        Added value: +"calculate_gratuityDictOutput"
    • Changedcalculate_gst8 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / amount / title
        Added value: +"Amount"
      • addedInput schema / properties / amount_includes_gst / title
        Added value: +"Amount Includes Gst"
      • addedInput schema / properties / cess_category / title
        Added value: +"Cess Category"
      • addedInput schema / properties / gst_rate / title
        Added value: +"Gst Rate"
      • addedInput schema / properties / transaction_type / title
        Added value: +"Transaction Type"
      • addedInput schema / title
        Added value: +"calculate_gstArguments"
      • addedOutput schema / title
        Added value: +"calculate_gstDictOutput"
    • Changedcalculate_gst_late_fee7 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / annual_turnover / title
        Added value: +"Annual Turnover"
      • addedInput schema / properties / days_delayed / title
        Added value: +"Days Delayed"
      • addedInput schema / properties / has_nil_liability / title
        Added value: +"Has Nil Liability"
      • addedInput schema / properties / return_type / title
        Added value: +"Return Type"
      • addedInput schema / title
        Added value: +"calculate_gst_late_feeArguments"
      • addedOutput schema / title
        Added value: +"calculate_gst_late_feeDictOutput"
    • Changedcalculate_home_vs_rent12 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / analysis_years / title
        Added value: +"Analysis Years"
      • addedInput schema / properties / annual_rent_increase / title
        Added value: +"Annual Rent Increase"
      • addedInput schema / properties / down_payment_percent / title
        Added value: +"Down Payment Percent"
      • addedInput schema / properties / expected_property_appreciation / title
        Added value: +"Expected Property Appreciation"
      • addedInput schema / properties / home_price / title
        Added value: +"Home Price"
      • addedInput schema / properties / investment_return / title
        Added value: +"Investment Return"
      • addedInput schema / properties / loan_interest_rate / title
        Added value: +"Loan Interest Rate"
      • addedInput schema / properties / loan_tenure_years / title
        Added value: +"Loan Tenure Years"
      • addedInput schema / properties / monthly_rent / title
        Added value: +"Monthly Rent"
      • addedInput schema / title
        Added value: +"calculate_home_vs_rentArguments"
      • addedOutput schema / title
        Added value: +"calculate_home_vs_rentDictOutput"
    • Changedcalculate_hra_exemption8 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / basic_salary / title
        Added value: +"Basic Salary"
      • addedInput schema / properties / city_type / title
        Added value: +"City Type"
      • addedInput schema / properties / hra_received / title
        Added value: +"Hra Received"
      • addedInput schema / properties / is_government_employee / title
        Added value: +"Is Government Employee"
      • addedInput schema / properties / rent_paid / title
        Added value: +"Rent Paid"
      • addedInput schema / title
        Added value: +"calculate_hra_exemptionArguments"
      • addedOutput schema / title
        Added value: +"calculate_hra_exemptionDictOutput"
    • Changedcalculate_income_tax13 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / deduction_24b / title
        Added value: +"Deduction 24B"
      • addedInput schema / properties / deduction_80c / title
        Added value: +"Deduction 80C"
      • addedInput schema / properties / deduction_80ccd_nps / title
        Added value: +"Deduction 80Ccd Nps"
      • addedInput schema / properties / deduction_80d_parents / title
        Added value: +"Deduction 80D Parents"
      • addedInput schema / properties / deduction_80d_self / title
        Added value: +"Deduction 80D Self"
      • addedInput schema / properties / deduction_80d_senior_parents / title
        Added value: +"Deduction 80D Senior Parents"
      • addedInput schema / properties / gross_income / title
        Added value: +"Gross Income"
      • addedInput schema / properties / other_deductions / title
        Added value: +"Other Deductions"
      • addedInput schema / properties / regime / title
        Added value: +"Regime"
      • addedInput schema / properties / taxpayer_type / title
        Added value: +"Taxpayer Type"
      • addedInput schema / title
        Added value: +"calculate_income_taxArguments"
      • addedOutput schema / title
        Added value: +"calculate_income_taxDictOutput"
    • Changedcalculate_income_tax_interest8 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / advance_tax_paid / title
        Added value: +"Advance Tax Paid"
      • addedInput schema / properties / due_date / title
        Added value: +"Due Date"
      • addedInput schema / properties / filing_date / title
        Added value: +"Filing Date"
      • addedInput schema / properties / tds_deducted / title
        Added value: +"Tds Deducted"
      • addedInput schema / properties / total_tax_liability / title
        Added value: +"Total Tax Liability"
      • addedInput schema / title
        Added value: +"calculate_income_tax_interestArguments"
      • addedOutput schema / title
        Added value: +"calculate_income_tax_interestDictOutput"
    • Changedcalculate_leave_encashment_tax8 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / average_monthly_salary / title
        Added value: +"Average Monthly Salary"
      • addedInput schema / properties / earned_leave_balance_days / title
        Added value: +"Earned Leave Balance Days"
      • addedInput schema / properties / is_government_employee / title
        Added value: +"Is Government Employee"
      • addedInput schema / properties / leave_encashment_amount / title
        Added value: +"Leave Encashment Amount"
      • addedInput schema / properties / years_of_service / title
        Added value: +"Years Of Service"
      • addedInput schema / title
        Added value: +"calculate_leave_encashment_taxArguments"
      • addedOutput schema / title
        Added value: +"calculate_leave_encashment_taxDictOutput"
    • Changedcalculate_neft_rtgs_imps_charges7 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / account_type / title
        Added value: +"Account Type"
      • addedInput schema / properties / amount / title
        Added value: +"Amount"
      • addedInput schema / properties / is_online / title
        Added value: +"Is Online"
      • addedInput schema / properties / transfer_mode / title
        Added value: +"Transfer Mode"
      • addedInput schema / title
        Added value: +"calculate_neft_rtgs_imps_chargesArguments"
      • addedOutput schema / title
        Added value: +"calculate_neft_rtgs_imps_chargesDictOutput"
    • Changedcalculate_nps_projection9 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / annuity_percent / title
        Added value: +"Annuity Percent"
      • addedInput schema / properties / annuity_rate / title
        Added value: +"Annuity Rate"
      • addedInput schema / properties / current_age / title
        Added value: +"Current Age"
      • addedInput schema / properties / expected_annual_return / title
        Added value: +"Expected Annual Return"
      • addedInput schema / properties / monthly_contribution / title
        Added value: +"Monthly Contribution"
      • addedInput schema / properties / retirement_age / title
        Added value: +"Retirement Age"
      • addedInput schema / title
        Added value: +"calculate_nps_projectionArguments"
      • addedOutput schema / title
        Added value: +"calculate_nps_projectionDictOutput"
    • Changedcalculate_ppf_maturity6 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / annual_interest_rate / title
        Added value: +"Annual Interest Rate"
      • addedInput schema / properties / annual_investment / title
        Added value: +"Annual Investment"
      • addedInput schema / properties / tenure_years / title
        Added value: +"Tenure Years"
      • addedInput schema / title
        Added value: +"calculate_ppf_maturityArguments"
      • addedOutput schema / title
        Added value: +"calculate_ppf_maturityDictOutput"
    • Changedcalculate_presumptive_tax9 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / age / title
        Added value: +"Age"
      • addedInput schema / properties / deductions_80c / title
        Added value: +"Deductions 80C"
      • addedInput schema / properties / digital_receipt_percent / title
        Added value: +"Digital Receipt Percent"
      • addedInput schema / properties / gross_receipts / title
        Added value: +"Gross Receipts"
      • addedInput schema / properties / regime / title
        Added value: +"Regime"
      • addedInput schema / properties / scheme / title
        Added value: +"Scheme"
      • addedInput schema / title
        Added value: +"calculate_presumptive_taxArguments"
      • addedOutput schema / title
        Added value: +"calculate_presumptive_taxDictOutput"
    • Changedcalculate_professional_tax5 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / gross_salary_monthly / title
        Added value: +"Gross Salary Monthly"
      • addedInput schema / properties / state_code / title
        Added value: +"State Code"
      • addedInput schema / title
        Added value: +"calculate_professional_taxArguments"
      • addedOutput schema / title
        Added value: +"calculate_professional_taxDictOutput"
    • Changedcalculate_rd_maturity6 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / annual_interest_rate / title
        Added value: +"Annual Interest Rate"
      • addedInput schema / properties / monthly_installment / title
        Added value: +"Monthly Installment"
      • addedInput schema / properties / tenure_months / title
        Added value: +"Tenure Months"
      • addedInput schema / title
        Added value: +"calculate_rd_maturityArguments"
      • addedOutput schema / title
        Added value: +"calculate_rd_maturityDictOutput"
    • Changedcalculate_salary_restructuring12 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / current_basic_ratio / title
        Added value: +"Current Basic Ratio"
      • addedInput schema / properties / current_gross / title
        Added value: +"Current Gross"
      • addedInput schema / properties / family_medical / title
        Added value: +"Family Medical"
      • addedInput schema / properties / has_hra / title
        Added value: +"Has Hra"
      • addedInput schema / properties / include_meal_card / title
        Added value: +"Include Meal Card"
      • addedInput schema / properties / include_wallet_allowance / title
        Added value: +"Include Wallet Allowance"
      • addedInput schema / properties / parents_medical / title
        Added value: +"Parents Medical"
      • addedInput schema / properties / rent_in_metro / title
        Added value: +"Rent In Metro"
      • addedInput schema / properties / structure_type / title
        Added value: +"Structure Type"
      • addedInput schema / title
        Added value: +"calculate_salary_restructuringArguments"
      • addedOutput schema / title
        Added value: +"calculate_salary_restructuringDictOutput"
    • Changedcalculate_sip_returns7 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / expected_annual_return / title
        Added value: +"Expected Annual Return"
      • addedInput schema / properties / inflation_rate / title
        Added value: +"Inflation Rate"
      • addedInput schema / properties / monthly_investment / title
        Added value: +"Monthly Investment"
      • addedInput schema / properties / tenure_years / title
        Added value: +"Tenure Years"
      • addedInput schema / title
        Added value: +"calculate_sip_returnsArguments"
      • addedOutput schema / title
        Added value: +"calculate_sip_returnsDictOutput"
    • Changedcalculate_step_up_sip7 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / annual_step_up_percent / title
        Added value: +"Annual Step Up Percent"
      • addedInput schema / properties / expected_annual_return / title
        Added value: +"Expected Annual Return"
      • addedInput schema / properties / initial_monthly_investment / title
        Added value: +"Initial Monthly Investment"
      • addedInput schema / properties / tenure_years / title
        Added value: +"Tenure Years"
      • addedInput schema / title
        Added value: +"calculate_step_up_sipArguments"
      • addedOutput schema / title
        Added value: +"calculate_step_up_sipDictOutput"
    • Changedcalculate_sukanya_samriddhi6 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / annual_interest_rate / title
        Added value: +"Annual Interest Rate"
      • addedInput schema / properties / annual_investment / title
        Added value: +"Annual Investment"
      • addedInput schema / properties / scheme / title
        Added value: +"Scheme"
      • addedInput schema / title
        Added value: +"calculate_sukanya_samriddhiArguments"
      • addedOutput schema / title
        Added value: +"calculate_sukanya_samriddhiDictOutput"
    • Changedcalculate_surcharge6 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / base_tax / title
        Added value: +"Base Tax"
      • addedInput schema / properties / regime / title
        Added value: +"Regime"
      • addedInput schema / properties / total_income / title
        Added value: +"Total Income"
      • addedInput schema / title
        Added value: +"calculate_surchargeArguments"
      • addedOutput schema / title
        Added value: +"calculate_surchargeDictOutput"
    • Changedcalculate_tds9 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / aggregate_payments_ytd / title
        Added value: +"Aggregate Payments Ytd"
      • addedInput schema / properties / is_senior_citizen / title
        Added value: +"Is Senior Citizen"
      • addedInput schema / properties / pan_available / title
        Added value: +"Pan Available"
      • addedInput schema / properties / payee_type / title
        Added value: +"Payee Type"
      • addedInput schema / properties / payment_amount / title
        Added value: +"Payment Amount"
      • addedInput schema / properties / section / title
        Added value: +"Section"
      • addedInput schema / title
        Added value: +"calculate_tdsArguments"
      • addedOutput schema / title
        Added value: +"calculate_tdsDictOutput"
    • Changeddecode_aa_fi_type4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / fi_type / title
        Added value: +"Fi Type"
      • addedInput schema / title
        Added value: +"decode_aa_fi_typeArguments"
      • addedOutput schema / title
        Added value: +"decode_aa_fi_typeDictOutput"
    • Changeddecode_digilocker_uri4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / uri / title
        Added value: +"Uri"
      • addedInput schema / title
        Added value: +"decode_digilocker_uriArguments"
      • addedOutput schema / title
        Added value: +"decode_digilocker_uriDictOutput"
    • Changeddecode_isin4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / isin / title
        Added value: +"Isin"
      • addedInput schema / title
        Added value: +"decode_isinArguments"
      • addedOutput schema / title
        Added value: +"decode_isinDictOutput"
    • Changeddecode_pan_type4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / pan / title
        Added value: +"Pan"
      • addedInput schema / title
        Added value: +"decode_pan_typeArguments"
      • addedOutput schema / title
        Added value: +"decode_pan_typeDictOutput"
    • Changeddecode_state_code4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / value / title
        Added value: +"Value"
      • addedInput schema / title
        Added value: +"decode_state_codeArguments"
      • addedOutput schema / title
        Added value: +"decode_state_codeDictOutput"
    • Changedget_regulatory_deadlines6 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / category / title
        Added value: +"Category"
      • addedInput schema / properties / from_date / title
        Added value: +"From Date"
      • addedInput schema / properties / to_date / title
        Added value: +"To Date"
      • addedInput schema / title
        Added value: +"get_regulatory_deadlinesArguments"
      • addedOutput schema / title
        Added value: +"get_regulatory_deadlinesDictOutput"
    • Addedget_stock_history
    • Addedget_stock_quote
    • Changedlookup_bank4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / name_or_code / title
        Added value: +"Name Or Code"
      • addedInput schema / title
        Added value: +"lookup_bankArguments"
      • addedOutput schema / title
        Added value: +"lookup_bankDictOutput"
    • Changedlookup_bbps_biller6 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / biller_id / title
        Added value: +"Biller Id"
      • addedInput schema / properties / category / title
        Added value: +"Category"
      • addedInput schema / properties / state / title
        Added value: +"State"
      • addedInput schema / title
        Added value: +"lookup_bbps_billerArguments"
      • addedOutput schema / title
        Added value: +"lookup_bbps_billerDictOutput"
    • Changedlookup_hsn_code5 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / code / title
        Added value: +"Code"
      • addedInput schema / properties / keyword / title
        Added value: +"Keyword"
      • addedInput schema / title
        Added value: +"lookup_hsn_codeArguments"
      • addedOutput schema / title
        Added value: +"lookup_hsn_codeDictOutput"
    • Changedlookup_ifsc4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / ifsc_code / title
        Added value: +"Ifsc Code"
      • addedInput schema / title
        Added value: +"lookup_ifscArguments"
      • addedOutput schema / title
        Added value: +"lookup_ifscDictOutput"
    • Changedlookup_pincode4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / pincode / title
        Added value: +"Pincode"
      • addedInput schema / title
        Added value: +"lookup_pincodeArguments"
      • addedOutput schema / title
        Added value: +"lookup_pincodeDictOutput"
    • Changedvalidate_aa_consent_artifact4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / artifact / title
        Added value: +"Artifact"
      • addedInput schema / title
        Added value: +"validate_aa_consent_artifactArguments"
      • addedOutput schema / title
        Added value: +"validate_aa_consent_artifactDictOutput"
    • Changedvalidate_aadhaar4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / aadhaar / title
        Added value: +"Aadhaar"
      • addedInput schema / title
        Added value: +"validate_aadhaarArguments"
      • addedOutput schema / title
        Added value: +"validate_aadhaarDictOutput"
    • Changedvalidate_cin4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / cin / title
        Added value: +"Cin"
      • addedInput schema / title
        Added value: +"validate_cinArguments"
      • addedOutput schema / title
        Added value: +"validate_cinDictOutput"
    • Changedvalidate_din4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / din / title
        Added value: +"Din"
      • addedInput schema / title
        Added value: +"validate_dinArguments"
      • addedOutput schema / title
        Added value: +"validate_dinDictOutput"
    • Changedvalidate_driving_license4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / dl_number / title
        Added value: +"Dl Number"
      • addedInput schema / title
        Added value: +"validate_driving_licenseArguments"
      • addedOutput schema / title
        Added value: +"validate_driving_licenseDictOutput"
    • Changedvalidate_epf_code4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / code / title
        Added value: +"Code"
      • addedInput schema / title
        Added value: +"validate_epf_codeArguments"
      • addedOutput schema / title
        Added value: +"validate_epf_codeDictOutput"
    • Changedvalidate_esic_code4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / code / title
        Added value: +"Code"
      • addedInput schema / title
        Added value: +"validate_esic_codeArguments"
      • addedOutput schema / title
        Added value: +"validate_esic_codeDictOutput"
    • Changedvalidate_fssai4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / license_number / title
        Added value: +"License Number"
      • addedInput schema / title
        Added value: +"validate_fssaiArguments"
      • addedOutput schema / title
        Added value: +"validate_fssaiDictOutput"
    • Changedvalidate_gstin4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / gstin / title
        Added value: +"Gstin"
      • addedInput schema / title
        Added value: +"validate_gstinArguments"
      • addedOutput schema / title
        Added value: +"validate_gstinDictOutput"
    • Changedvalidate_llpin4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / llpin / title
        Added value: +"Llpin"
      • addedInput schema / title
        Added value: +"validate_llpinArguments"
      • addedOutput schema / title
        Added value: +"validate_llpinDictOutput"
    • Changedvalidate_mobile_number4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / mobile / title
        Added value: +"Mobile"
      • addedInput schema / title
        Added value: +"validate_mobile_numberArguments"
      • addedOutput schema / title
        Added value: +"validate_mobile_numberDictOutput"
    • Changedvalidate_pan4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / pan / title
        Added value: +"Pan"
      • addedInput schema / title
        Added value: +"validate_panArguments"
      • addedOutput schema / title
        Added value: +"validate_panDictOutput"
    • Changedvalidate_passport4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / passport_number / title
        Added value: +"Passport Number"
      • addedInput schema / title
        Added value: +"validate_passportArguments"
      • addedOutput schema / title
        Added value: +"validate_passportDictOutput"
    • Changedvalidate_pran4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / pran / title
        Added value: +"Pran"
      • addedInput schema / title
        Added value: +"validate_pranArguments"
      • addedOutput schema / title
        Added value: +"validate_pranDictOutput"
    • Changedvalidate_tan4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / tan / title
        Added value: +"Tan"
      • addedInput schema / title
        Added value: +"validate_tanArguments"
      • addedOutput schema / title
        Added value: +"validate_tanDictOutput"
    • Changedvalidate_upi_vpa4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / vpa / title
        Added value: +"Vpa"
      • addedInput schema / title
        Added value: +"validate_upi_vpaArguments"
      • addedOutput schema / title
        Added value: +"validate_upi_vpaDictOutput"
    • Changedvalidate_voter_id4 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / voter_id / title
        Added value: +"Voter Id"
      • addedInput schema / title
        Added value: +"validate_voter_idArguments"
      • addedOutput schema / title
        Added value: +"validate_voter_idDictOutput"
  2. 29 tool updatesv0.4.2
    • Addedbuild_aa_consent_request
    • Addedbulk_validate_aadhaar
    • Addedcalculate_emi
    • Addedcalculate_epf_esic
    • Addedcalculate_fd_maturity
    • Addedcalculate_gratuity
    • Addedcalculate_gst_late_fee
    • Addedcalculate_home_vs_rent
    • Addedcalculate_income_tax_interest
    • Addedcalculate_leave_encashment_tax
    • Addedcalculate_neft_rtgs_imps_charges
    • Addedcalculate_nps_projection
    • Addedcalculate_ppf_maturity
    • Addedcalculate_presumptive_tax
    • Addedcalculate_professional_tax
    • Addedcalculate_rd_maturity
    • Addedcalculate_salary_restructuring
    • Addedcalculate_sip_returns
    • Addedcalculate_step_up_sip
    • Addedcalculate_sukanya_samriddhi
    • Changedcalculate_tds2 fields changed
      • addedInput schema / properties / aggregate_payments_ytd
        Added value: +{
        +  "default": 0,
        +  "description": "Prior payments to same payee under this section in current FY",
        +  "type": "number"
        +}
      • addedInput schema / properties / payee_type
        Added value: +{
        +  "default": "individual_huf",
        +  "description": "Payee type: 'individual_huf' or 'other' (affects 194C rate)",
        +  "type": "string"
        +}
    • Addeddecode_aa_fi_type
    • Addeddecode_isin
    • Addedget_regulatory_deadlines
    • Addedvalidate_aa_consent_artifact
    • Addedvalidate_llpin
    • Addedvalidate_mobile_number
    • Addedvalidate_pran
    • Addedvalidate_tan
  3. 30 tool updatesv0.3.0
    • First observedbulk_validate_gstin
    • First observedbulk_validate_ifsc
    • First observedbulk_validate_pan
    • First observedcalculate_advance_tax
    • First observedcalculate_capital_gains
    • First observedcalculate_gst
    • First observedcalculate_hra_exemption
    • First observedcalculate_income_tax
    • First observedcalculate_surcharge
    • First observedcalculate_tds
    • First observeddecode_digilocker_uri
    • First observeddecode_pan_type
    • First observeddecode_state_code
    • First observedlookup_bank
    • First observedlookup_bbps_biller
    • First observedlookup_hsn_code
    • First observedlookup_ifsc
    • First observedlookup_pincode
    • First observedvalidate_aadhaar
    • First observedvalidate_cin
    • First observedvalidate_din
    • First observedvalidate_driving_license
    • First observedvalidate_epf_code
    • First observedvalidate_esic_code
    • First observedvalidate_fssai
    • First observedvalidate_gstin
    • First observedvalidate_pan
    • First observedvalidate_passport
    • First observedvalidate_upi_vpa
    • First observedvalidate_voter_id

TDQS

A3.7/5.0
Disambiguation4/5

Most tools have a distinct resource and action, with clear domains like validate_*, lookup_*, calculate_*, and decode_*. However, decode_pan_type heavily overlaps with validate_pan, and the bulk_validate_* variants introduce near-duplicate surface next to single validate tools.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern, using categorized verbs such as validate, lookup, calculate, decode, get, and build. Names are predictable and uniform across the entire server.

Tool Count1/5

60 tools dwarfs the typical 3-15 tool well-scoped range and far exceeds the 50+ extreme mismatch threshold. The server covers many domains, but the sheer number makes it unwieldy for an agent to reliably scan and choose among.

Completeness4/5

The surface is broad and covers the core financial/India stack workflows: identity validators, tax estimators, lookups, biller references, AA consents, and stock data. Some minor gaps exist (e.g., no direct GST registration activation status, no UAN validator, and missing a unified advisory comparison tool), but no major domain causing dead ends is absent.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Provides AI agents with Indian fintech utilities including IFSC bank lookups, PAN/GSTIN validation, mutual fund NAVs, UPI VPA identification, pincode lookups, and INR formatting, all with zero authentication and zero cost.
    7
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Local-first MCP server for Indian income tax computation, enabling users to compute taxes, compare regimes, plan advance tax, and parse Form 26AS without sending data to the cloud.
    12
    20
    8
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables LLMs to query real-time Indian bank branch details, postal PIN codes, validate GSTIN/PAN structures, check e-commerce serviceability, and compute GST breakdowns using free public APIs and offline verification logic.
    6
    17
    1
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    Turns any MCP host into a finance & tax copilot for Indian taxpayers, using live keyless data and deterministic advisory.
    16
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rehan1020/MCP-India-Stack'

If you have feedback or need assistance with the MCP directory API, please join our Discord server