Skip to main content
Glama

FreeDailyPro Calculators

converters_state_tax

Read-onlyIdempotent

US state income tax with a 50-state schedule lookup

Input Schema

NameRequiredDescriptionDefault
stateNoUS state (two-letter code such as NY, or the full name; DC included). Looks up that state's 2026 brackets, standard deduction and exemptions. Send this or ratePct.
incomeYesAnnual income subject to state tax, in US dollars.
ratePctNoFlat rate in percent (first-version behaviour). Takes priority over state.
localityNoA named city or county for the chosen state (id from the response's availableLocalities, e.g. ny-nyc, ny-yonkers, md-montgomery, pa-philadelphia, mi-detroit, mo-kansas-city, mo-st-louis, oh-columbus). Adds its local income tax as its own 'locality' object and replaces the typical average (includeLocal is then ignored). 'tax' is unchanged; see totalWithLocalAndPayroll.
filingStatusNoFiling status for the state schedule. Default single.
includeLocalNotrue adds an average local income tax where the state has local taxes (an estimate). Default false.
localityRoleNoWith locality: resident (default) or worker (live elsewhere, work there) where a non-resident rate was confirmed (Philadelphia, Detroit, Kansas City, St. Louis).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / locality
      Added value: +{
      +  "description": "A named city or county for the chosen state (id from the response's availableLocalities, e.g. ny-nyc, ny-yonkers, md-montgomery, pa-philadelphia, mi-detroit, mo-kansas-city, mo-st-louis, oh-columbus). Adds its local income tax as its own 'locality' object and replaces the typical average (includeLocal is then ignored). 'tax' is unchanged; see totalWithLocalAndPayroll.",
      +  "type": "string"
      +}
    • addedInput schema / properties / localityRole
      Added value: +{
      +  "description": "With locality: resident (default) or worker (live elsewhere, work there) where a non-resident rate was confirmed (Philadelphia, Detroit, Kansas City, St. Louis).",
      +  "enum": [
      +    "resident",
      +    "worker"
      +  ],
      +  "type": "string"
      +}
  2. Changed6 schema fields changed
    • addedInput schema / properties / filingStatus
      Added value: +{
      +  "description": "Filing status for the state schedule. Default single.",
      +  "enum": [
      +    "single",
      +    "married-joint",
      +    "married-separate",
      +    "head-of-household"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / includeLocal
      Added value: +{
      +  "description": "true adds an average local income tax where the state has local taxes (an estimate). Default false.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / income / description
      Added value: +"Annual income subject to state tax, in US dollars."
    • addedInput schema / properties / ratePct / description
      Added value: +"Flat rate in percent (first-version behaviour). Takes priority over state."
    • addedInput schema / properties / state
      Added value: +{
      +  "description": "US state (two-letter code such as NY, or the full name; DC included). Looks up that state's 2026 brackets, standard deduction and exemptions. Send this or ratePct.",
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "income",
      -  "ratePct"
      -]New value: +[
      +  "income"
      +]
  3. First observed

TDQS

C2.5/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety and idempotency are covered. The description adds only the coverage claim of 50 states; it says nothing about what the response contains (brackets, standard deduction, effective rate, totalWithLocalAndPayroll) or the estimate caveat for average local taxes, even though no output schema exists to carry that.

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?

It is a single eight-word fragment with no waste, but it is not front-loaded with an action verb or scope statement, and the brevity comes at the cost of under-specification rather than efficiency.

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

Completeness2/5

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

With seven parameters, no output schema, and a non-obvious interaction between state, ratePct, locality, includeLocal and localityRole, the description should explain what the tool returns and how the modes differ. It instead offers one clause, leaving the agent to reconstruct the tool's behaviour entirely from schema property text and to guess at its relationship to converters_us_income_tax.

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

Parameters3/5

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

Schema description coverage is 100%, so all seven parameters including the state/ratePct priority rule, locality IDs and filingStatus enum are already documented in the schema. The description contributes no parameter-level meaning beyond that, so the baseline of 3 applies.

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

Purpose3/5

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

The phrase 'US state income tax with a 50-state schedule lookup' identifies the resource (state income tax) and the mechanism (bracket schedule lookup covering all 50 states), but it is a noun fragment with no verb and no statement of what the tool actually returns or computes. It also does not distinguish itself from the sibling converters_us_income_tax, which an agent could easily confuse it with.

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

Usage Guidelines2/5

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

There is no when-to-use guidance at all: nothing says to prefer this over converters_us_income_tax for state-level tax, or over calculate_sales_tax for a different tax type. The only implicit signal is 'state' versus the federal/India/UK siblings, which the agent must infer from the name alone.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources