Skip to main content
Glama
rehan1020

mcp-india-stack

by rehan1020

calculate_surcharge

Read-onlyIdempotent

Calculate the surcharge and marginal relief applicable to a given total income and base tax, for FY2025-26 under the new (cap 25%) or old (up to 37%) tax regime.

Instructions

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%.

Input Schema

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

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv0.5.0
    • 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"
  2. First observedv0.3.0

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.

Deploy Server

Other Tools