no-tax-on-tips-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@no-tax-on-tips-mcpEstimate my tip deduction: $20k tips, single, $70k MAGI, 2026"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 buildRunning
npm startOr in development (no build step):
npm run devTesting
npm testMCP 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:
IRS Tipped Occupations: https://www.irs.gov/TippedOccupations
Federal Register 2026-07104: https://www.federalregister.gov/documents/2026/04/13/2026-07104/occupations-that-customarily-and-regularly-received-tips-definition-of-qualified-tips
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 toolscheck_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.
| Name | Required | Description | Default |
|---|---|---|---|
| magi_usd | Yes | Modified Adjusted Gross Income in US dollars (e.g. 75000 for $75,000). | |
| tax_year | Yes | Tax year as integer (e.g. 2026). | |
| filing_status | Yes | Filing status: single | head_of_household | married_filing_jointly | married_filing_separately | |
| occupation_code | Yes | TTOC occupation code (descriptive slug, e.g. "bartender_barback"). Use list_eligible_occupations to see valid codes. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| magi_usd | Yes | Modified Adjusted Gross Income in US dollars (e.g. 75000 for $75,000). | |
| tax_year | Yes | Tax year as integer (e.g. 2026). | |
| filing_status | Yes | Filing status: single | head_of_household | married_filing_jointly | married_filing_separately | |
| occupation_code | Yes | TTOC occupation code (descriptive slug, e.g. "bartender_barback"). REQUIRED — estimate is gated on occupation eligibility. | |
| qualified_tips_usd | Yes | Net qualified tip income in US dollars (after tip-out, before cap). E.g. 23000 for $23,000. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
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.
All tool names follow a consistent verb_noun pattern (check_, estimate_, list_, get_) with lowercase snake_case, making them predictable.
4 tools is well-scoped for a focused tax-deduction server, covering the essential actions without unnecessary bloat.
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
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
A paid remote MCP for CLI tool MCP, built to return verdicts, receipts, usage logs, and audit-ready
MCP server for medicare-coverage
MCP server for nonprofit financials via ProPublica — IRS Form 990 data for 1.8M+ nonprofits.
MCP server exposing klokin time-tracking operations (employees, time entries, stores) to AI clients.
Related MCP Servers
- FlicenseBqualityDmaintenanceTypeScript MCP server for accessing Department of Labor enforcement data, OSHA inspections, and SAM.gov contract opportunities via natural language queries.28
- AlicenseAqualityBmaintenanceMCP 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.2492MIT
- FlicenseNot gradedqualityBmaintenanceA 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.
- AlicenseNot gradedqualityBmaintenanceA sovereign, MIT-licensed MCP server wrapping the falltax SDK for tax-related workflows, enabling offline-capable, signed, and discoverable operations.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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