Skip to main content
Glama
DojoGenesis

no-tax-on-tips-mcp

by DojoGenesis

no-tax-on-tips-mcp

MCP server exposing the OBBBA "No Tax on Tips" federal deduction logic as callable tools (stdio transport).

DISCLAIMERS

1. Informational only — NOT tax advice. This tool provides estimates based on publicly available statutory and regulatory information. It is NOT legal or tax advice. Verify all results against IRS guidance at irs.gov/TippedOccupations and consult a qualified tax professional before making any tax decision.

2. Occupation codes are placeholder slugs — NOT validated Treasury codes. The TTOC occupation codes in this server (e.g. "bartender_barback") are DESCRIPTIVE PLACEHOLDER SLUGS. They are NOT the validated 3-digit numeric Treasury codes from the IRS final regulations (Federal Register 2026-07104). Operator validation is pending (reviewed_by_operator_at_utc = 0 in source). Do not use these codes for official filings.

3. Applies to tax years 2025-2028 only (OBBBA sunset window). The OBBBA No-Tax-on-Tips deduction is effective for tax years 2025 through 2028 (inclusive). Per-filing-status caps and MAGI phase-outs apply. Tax year 2025 has transition relief (separate-reporting requirement waived).

4. module_version: 1.0.0-2026-04-13 This matches the IRS final regulations date (Federal Register 2026-07104). If IRS guidance changes, the module version must be updated and cached deduction results invalidated.


Related MCP server: hourledger-mcp

Installation

npm install
npm run build

Running

npm start

Or in development (no build step):

npm run dev

Testing

npm test

MCP Client Configuration

Add to your MCP client config (e.g. Claude Desktop claude_desktop_config.json):

{
  "mcpServers": {
    "no-tax-on-tips": {
      "command": "node",
      "args": ["C:/Users/cruzr/no-tax-on-tips-mcp/dist/index.js"]
    }
  }
}

Tools

check_tip_deduction_eligibility

Checks eligibility without computing a dollar amount.

Input:

{
  "occupation_code": "wait_staff",
  "magi_usd": 75000,
  "filing_status": "single",
  "tax_year": 2026
}

Output:

{
  "in_sunset_window": true,
  "transition_relief": false,
  "ttoc_eligible": true,
  "phase_out_fraction": 0,
  "eligible": true,
  "notes": ["..."]
}

eligible = in_sunset_window && ttoc_eligible && phase_out_fraction < 1


estimate_tip_deduction

Full deduction estimate. USD in, USD out. Internal math uses integer cents.

Input:

{
  "qualified_tips_usd": 23000,
  "filing_status": "single",
  "tax_year": 2026,
  "magi_usd": 75000
}

Output:

{
  "qualified_tips_usd": 23000,
  "cap_usd": 25000,
  "phase_out_fraction": 0,
  "deduction_usd": 23000,
  "disclaimer": "..."
}

list_eligible_occupations

Returns the onboarding picker subset (11 occupation codes + 1 lookup placeholder).


get_obbba_reference

Returns caps, phase-out bands, sunset window, module version, source URLs, and disclaimers.


Caps and Phase-Out Bands (2025-2028)

Filing Status

Cap

Phase-Out Threshold

Full Phase-Out

Single

$25,000

$150,000

$400,000

Head of Household

$25,000

$150,000

$400,000

Married Filing Jointly

$25,000

$300,000

$550,000

Married Filing Separately

$12,500

$150,000

$275,000

Phase-out is linear: $100 reduction per $1,000 (or fraction) of MAGI over threshold.


Source

Tax logic copied verbatim from nightshift-v2/src/features/tax-engine/jurisdictions/us-fed/deductions/obbba-no-tax-on-tips/ (read-only source). No formulas were re-derived. Import paths adjusted for this standalone package; no other modifications.

Source references:


Publishing

Do NOT publish to npm or push to a remote without operator sign-off. This is a local build only. Publishing is a separate operator step.

Available Tools

4 tools
check_tip_deduction_eligibilityA

Checks whether a tipped worker is eligible for the OBBBA No-Tax-on-Tips federal deduction, without computing a dollar amount. Returns sunset-window status, transition relief, TTOC occupation eligibility, MAGI phase-out fraction, and an overall eligible flag. INFORMATIONAL ONLY — NOT TAX ADVICE. Verify with IRS (irs.gov/TippedOccupations) and a qualified tax professional. Occupation codes are DESCRIPTIVE PLACEHOLDER SLUGS, not validated 3-digit numeric Treasury codes from IRS final regs (Federal Register 2026-07104). Applies to tax years 2025-2028 only.

ParametersJSON Schema
NameRequiredDescriptionDefault
magi_usdYesModified Adjusted Gross Income in US dollars (e.g. 75000 for $75,000).
tax_yearYesTax year as integer (e.g. 2026).
filing_statusYesFiling status: single | head_of_household | married_filing_jointly | married_filing_separately
occupation_codeYesTTOC occupation code (descriptive slug, e.g. "bartender_barback"). Use list_eligible_occupations to see valid codes.

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and excels: it lists exact return fields, states the informational-only nature, warns that occupation codes are placeholder slugs not validated against IRS codes, and declares the applicable tax-year window. This is thorough disclosure of behavior and limitations.

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 front-loaded with purpose and return values, then adds essential caveats. Every sentence earns its place: the disclaimers about tax advice and placeholder codes are critical for correct use, and the tax-year restriction is essential. No redundant or filler 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 no output schema, the description lists the key return components (sunset status, transition relief, TTOC occupation eligibility, MAGI phase-out fraction, overall flag) sufficiently. It also provides scope (2025-2028), placeholder warnings, and verification guidance, making it complete for an informational eligibility-check 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 baseline is 3. The description adds value by warning that occupation codes are descriptive placeholders, not numeric Treasury codes, and by linking to `list_eligible_occupations` for valid codes. This goes beyond the schema's basic parameter descriptions.

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 ('Checks whether...eligible'), the specific resource ('OBBBA No-Tax-on-Tips federal deduction'), and the scope ('without computing a dollar amount'). It distinguishes itself from siblings by explicitly excluding dollar-amount estimation and referencing `list_eligible_occupations` for code lookup.

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 implies when to use the tool: for eligibility checks only, not for dollar estimates. It also mentions using `list_eligible_occupations` for valid codes and advises verification with IRS/professional, but it does not explicitly contrast all sibling tools or specify exclusions (e.g., when to use `estimate_tip_deduction`).

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

estimate_tip_deductionA

Estimates the OBBBA No-Tax-on-Tips deduction. REQUIRES occupation_code and routes through the same applyDeduction the app uses, so the estimate is gated on TTOC occupation eligibility, the 2025-2028 sunset window, and MAGI phase-out: an ineligible occupation, out-of-window year, or fully phased-out MAGI returns deduction_usd 0 with a populated reason_if_zero. Inputs/outputs in US dollars; internal math in integer cents. Returns: qualifies, occupation_code_eligible, deduction_usd, capped_qualified_tips_usd, cap_usd, phase_out_fraction, reason_if_zero. INFORMATIONAL ONLY — NOT TAX ADVICE. Verify with IRS (irs.gov/TippedOccupations) and a qualified tax professional. Occupation codes are DESCRIPTIVE PLACEHOLDER SLUGS, not validated 3-digit numeric Treasury codes from IRS final regs (Federal Register 2026-07104). Applies to tax years 2025-2028 only.

ParametersJSON Schema
NameRequiredDescriptionDefault
magi_usdYesModified Adjusted Gross Income in US dollars (e.g. 75000 for $75,000).
tax_yearYesTax year as integer (e.g. 2026).
filing_statusYesFiling status: single | head_of_household | married_filing_jointly | married_filing_separately
occupation_codeYesTTOC occupation code (descriptive slug, e.g. "bartender_barback"). REQUIRED — estimate is gated on occupation eligibility.
qualified_tips_usdYesNet qualified tip income in US dollars (after tip-out, before cap). E.g. 23000 for $23,000.

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description fully discloses behavioral traits: gating logic, zero output with reason_if_zero for ineligible cases, integer cents math, placeholder occupation codes, informational only status, and tax year limitations. It even mentions the specific Federal Register citation, leaving little unknown about the tool's 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 description is long but every sentence carries important information: gating, outputs, currency handling, placeholder caveat, disclaimer, and tax years. It is front-loaded with the main purpose and could benefit from paragraph breaks, but no sentence is wasted.

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 no output schema and no annotations, the description is exceptionally complete. It lists all return fields, explains the gating factors, specifies applicable tax years, and adds verification guidance. For a complex financial calculation tool, this leaves no critical gaps.

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 baseline is 3. The description adds meaningful context beyond schema: 'Inputs/outputs in US dollars; internal math in integer cents' clarifies value formats, and the explicit warning that occupation codes are descriptive placeholders not official IRS codes adds critical nuance for that 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 clearly states 'Estimates the OBBBA No-Tax-on-Tips deduction' with a specific verb and resource. It also distinguishes itself from siblings by focusing on the estimation function and explicitly mentioning gating factors that affect the estimate.

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 provides clear context about when the estimate applies (gated on occupation eligibility, sunset window, MAGI phase-out) but does not explicitly mention alternatives or when not to use this tool. Sibling tools like check_tip_deduction_eligibility are implied but not named, leaving usage guidance at an implied level.

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

get_obbba_referenceA

Returns the full OBBBA reference data: per-filing-status caps, MAGI phase-out bands, sunset window (2025-2028), module version, and source URLs. INFORMATIONAL ONLY — NOT TAX ADVICE. Verify with IRS (irs.gov/TippedOccupations) and a qualified tax professional. Occupation codes are DESCRIPTIVE PLACEHOLDER SLUGS, not validated 3-digit numeric Treasury codes from IRS final regs (Federal Register 2026-07104). Applies to tax years 2025-2028 only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries the full burden of disclosure. It clearly states that the data is informational only, not tax advice, and that occupation codes are descriptive placeholders rather than validated numeric codes. It also specifies the applicable tax years (2025-2028), providing transparency about the tool's limitations and scope.

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 three sentences, each adding distinct value: the main purpose, the disclaimer/verification note, and important caveats about occupation codes and tax-year scope. It is front-loaded and contains no filler or 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 zero-parameter, no-output-schema tool, the description provides the key context: what data is returned, its limitations, and its validity period. It adequately informs the agent about the tool's scope and cautions against misuse, making it complete enough for reliable selection and 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 input schema has zero parameters, so the baseline is 4. The description adds no parameter-specific information (there are none), but it does enrich understanding by describing the output contents. This aligns with the baseline expectation for a no-parameter tool.

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 'Returns the full OBBBA reference data' which clearly identifies the verb and resource, then lists specific contents (caps, phase-out bands, sunset window, module version, source URLs). This distinguishes it from siblings like check_tip_deduction_eligibility, estimate_tip_deduction, and list_eligible_occupations, which focus on other tasks.

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 usage for retrieving reference data, and the warning 'INFORMATIONAL ONLY — NOT TAX ADVICE. Verify with IRS...' provides an exclusion for using it as official advice. However, it does not explicitly state when to use this tool versus its siblings (e.g., 'use this for reference data, not for estimates'). The guidance is implied rather than explicit.

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

list_eligible_occupationsA

Returns the onboarding picker subset of TTOC-eligible occupations plus the placeholder-slug caveat. INFORMATIONAL ONLY — NOT TAX ADVICE. Verify with IRS (irs.gov/TippedOccupations) and a qualified tax professional. Occupation codes are DESCRIPTIVE PLACEHOLDER SLUGS, not validated 3-digit numeric Treasury codes from IRS final regs (Federal Register 2026-07104). Applies to tax years 2025-2028 only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It transparently discloses that the codes are placeholder slugs, not official Treasury codes, and that the output is informational. However, it could be more explicit about the exact return format, and the phrase 'plus the placeholder-slug caveat' is slightly ambiguous.

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 main purpose and followed by necessary caveats. It is not overly long, but the disclaimer is somewhat wordy, and 'plus the placeholder-slug caveat' is an awkward construction that reduces readability.

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 parameterless list tool with no output schema, the description covers the core behavior, limitations, and applicability. It could be clearer about the exact return type (e.g., an array of occupation code strings) and what 'plus the placeholder-slug caveat' means, but it is generally complete.

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 shows zero parameters with full coverage (properties: {}), so the description naturally needs no parameter explanations. The baseline for a zero-parameter tool is 4, and the description adds no unnecessary detail.

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 it 'Returns the onboarding picker subset of TTOC-eligible occupations' with a specific verb and resource. However, it does not explicitly distinguish this from sibling tools such as check_tip_deduction_eligibility or estimate_tip_deduction, so it falls short of a 5.

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 provides clear context and boundaries: it's informational only, not tax advice, applies to tax years 2025-2028, and instructs users to verify with the IRS. This implies when to use the tool and cautions against using it for official tax decisions, but it does not explicitly name alternatives.

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

TDQS

A4.4/5.0
Disambiguation5/5

Each tool has a distinct purpose: eligibility check, deduction estimate, occupation list, and reference data. The check tool explicitly avoids computing a dollar amount, clearly differentiating it from the estimate tool.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (check_, estimate_, list_, get_) with lowercase snake_case, making them predictable.

Tool Count5/5

4 tools is well-scoped for a focused tax-deduction server, covering the essential actions without unnecessary bloat.

Completeness5/5

The tool set covers the full workflow: checking eligibility, estimating deduction, listing eligible occupations, and retrieving reference parameters. No obvious gaps for an informational/calculation server.

Maintenance

ActivitySlowing
ResponsivenessSyncing

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

  • F
    license
    B
    quality
    D
    maintenance
    TypeScript MCP server for accessing Department of Labor enforcement data, OSHA inspections, and SAM.gov contract opportunities via natural language queries.
    28
  • A
    license
    A
    quality
    B
    maintenance
    MCP server that calculates work hours, overtime, and gross pay from clock in/out entries with support for federal, California, Alaska, Colorado, and Nevada overtime rules.
    2
    49
    2
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    A public, no-auth remote MCP server that exposes Arc & Ledger's free tax calculators and intake funnel as tools inside AI assistants. Provides tools for IRS notice explanation, FBAR/FATCA, LLC vs S-Corp comparison, quarterly tax estimates, and more.
  • A
    license
    Not graded
    quality
    B
    maintenance
    A sovereign, MIT-licensed MCP server wrapping the falltax SDK for tax-related workflows, enabling offline-capable, signed, and discoverable operations.
    MIT

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/DojoGenesis/no-tax-on-tips-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server