Skip to main content
Glama
dma9527

irs-taxpayer-mcp

by dma9527

process_1099_income

Read-onlyIdempotent

Calculate tax impact from multiple 1099 forms, including 1099-NEC, 1099-INT, 1099-DIV, 1099-B, 1099-MISC, and 1099-R, using filing status and tax year.

Instructions

Process multiple 1099 forms and calculate the tax impact of each income type. Handles 1099-NEC (freelance), 1099-INT (interest), 1099-DIV (dividends), 1099-B (investments), 1099-MISC.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
formsYesArray of 1099 forms
taxYearYesTax year
w2IncomeNoW-2 income (for context)
filingStatusYes
qualifiedBusinessIsSstbNo
qualifiedBusinessW2WagesNo
longTermCapitalLossCarryoverNo
shortTermCapitalLossCarryoverNo
qualifiedBusinessPropertyBasisNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
textYes
errorNo
isErrorYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changedv1.0.1
    • addedInput schema / properties / forms / items / properties / earlyDistributionSubjectToPenalty
      Added value: +{
      +  "description": "For 1099-R: taxable early-distribution amount after exceptions",
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / forms / items / properties / taxableAmount
      Added value: +{
      +  "description": "For 1099-R: taxable amount in box 2a",
      +  "minimum": 0,
      +  "type": "number"
      +}
    • changedInput schema / properties / forms / items / properties / type / enum
      Previous value: -[
      -  "1099-NEC",
      -  "1099-INT",
      -  "1099-DIV",
      -  "1099-B",
      -  "1099-MISC"
      -]New value: +[
      +  "1099-NEC",
      +  "1099-INT",
      +  "1099-DIV",
      +  "1099-B",
      +  "1099-MISC",
      +  "1099-R"
      +]
    • addedInput schema / properties / longTermCapitalLossCarryover
      Added value: +{
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / qualifiedBusinessIsSstb
      Added value: +{
      +  "type": "boolean"
      +}
    • addedInput schema / properties / qualifiedBusinessPropertyBasis
      Added value: +{
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / qualifiedBusinessW2Wages
      Added value: +{
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / shortTermCapitalLossCarryover
      Added value: +{
      +  "minimum": 0,
      +  "type": "number"
      +}
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "error": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "code": {
      +          "type": "string"
      +        },
      +        "message": {
      +          "type": "string"
      +        },
      +        "suggestion": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "code",
      +        "message",
      +        "suggestion"
      +      ],
      +      "type": "object"
      +    },
      +    "isError": {
      +      "type": "boolean"
      +    },
      +    "text": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "text",
      +    "isError"
      +  ],
      +  "type": "object"
      +}
  2. First observedv0.5.3

TDQS

B3.4/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 destructiveHint=false, covering the safety profile, so the bar is lower. The description adds that this is a batch operation on multiple forms producing per-income-type tax impact, which is useful context. However, it doesn't disclose which tax rules are applied — the schema's qualifiedBusiness* and capital-loss-carryover parameters imply QBI and capital-gain logic that the description never mentions, and 'Process' could be misread as a filing/submission action (mitigated only by 'calculate').

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?

Two sentences with zero filler. The first sentence front-loads the verb, resource, and outcome; the second earns its place by mapping supported form types to income categories. Nothing is redundant with the schema.

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?

Despite having an output schema and strong safety annotations, this is a complex 9-parameter tool with a nested forms array, six enumerated form types, and undocumented QBI and capital-loss concepts. The description omits 1099-R (present in the schema enum), never explains the qualifiedBusiness* parameters or loss carryovers, and leaves 'tax impact of each income type' ambiguous. An agent will likely misconfigure or under-specify calls involving 1099-R, qualified business income, or capital loss carryovers.

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 only 33%, so the description needed to compensate. It does add real meaning to the `type` enum by mapping form types to income categories (freelance, interest, dividends, investments). However, six parameters — qualifiedBusinessIsSstb, qualifiedBusinessW2Wages, qualifiedBusinessPropertyBasis, longTermCapitalLossCarryover, shortTermCapitalLossCarryover, and filingStatus — have no schema description and no description-level guidance, so the compensation is incomplete.

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?

States a specific verb and resource: 'Process multiple 1099 forms and calculate the tax impact of each income type.' The enumeration of supported form types with income categories (freelance, interest, dividends, investments) adds useful specificity and distinguishes it from generic tax-calc siblings like calculate_total_tax. Minor gap: the schema enum also supports 1099-R, which the description omits entirely.

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 form-type enumeration provides implied usage context: use this when the user has 1099-NEC, 1099-INT, 1099-DIV, 1099-B, or 1099-MISC forms and wants per-income-type tax impact. However, there are no explicit exclusions or named alternatives, even though overlapping siblings such as calculate_total_tax, calculate_federal_tax, and estimate_self_employment_tax exist. The agent is left to infer when this tool is the right choice.

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