Show raw JSON evidence
{
"checks": {
"action_safety_probe": {
"details": {
"auth_present": false,
"confirmation_signals": [],
"safeguard_count": 0,
"summary": {
"bulk_access_tools": 0,
"capability_distribution": {
"admin": 6,
"delete": 1,
"exec": 1,
"read": 1,
"write": 6
},
"destructive_tools": 1,
"egress_tools": 0,
"exec_tools": 1,
"high_risk_tools": 2,
"risk_distribution": {
"critical": 0,
"high": 2,
"low": 0,
"medium": 4
},
"secret_tools": 0,
"tool_count": 6
}
},
"latency_ms": null,
"status": "error"
},
"advanced_capabilities_probe": {
"details": {
"capabilities": {
"completions": false,
"elicitation": false,
"prompts": false,
"resource_links": false,
"resources": false,
"roots": false,
"sampling": false,
"structured_outputs": false
},
"enabled": [],
"enabled_count": 0,
"initialize_capability_keys": [
"tools"
]
},
"latency_ms": null,
"status": "missing"
},
"connector_publishability_probe": {
"details": {
"blockers": [
"transport_compliance",
"action_safety",
"server_card"
],
"criteria": {
"action_safety": false,
"auth_flow": true,
"connector_replay": true,
"initialize": true,
"protocol_version": true,
"remote_transport": true,
"request_association": true,
"server_card": false,
"session_resume": true,
"step_up_auth": true,
"tool_surface": true,
"tools_list": true,
"transport_compliance": false
},
"high_risk_tools": 2,
"tool_count": 6,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"connector_replay_probe": {
"details": {
"added_tools": [],
"additive_output_changes": [],
"backward_compatible": true,
"output_breaks": [],
"removed_tools": [],
"required_arg_breaks": [],
"would_break_after_refresh": false
},
"latency_ms": null,
"status": "ok"
},
"determinism_probe": {
"details": {
"attempts": 2,
"baseline_signature": "413c88ef505f897dae36964c8c50d541417903bb812e8730a3e448e7e80b316a",
"errors": [],
"matches": 2,
"stable_ratio": 1.0,
"successful": 2
},
"latency_ms": 19.29,
"status": "ok"
},
"initialize": {
"details": {
"headers": {
"content-type": "application/json; charset=utf-8",
"x-ratelimit-limit": "50",
"x-ratelimit-remaining": "48",
"x-ratelimit-reset": "2026-06-01T00:00:00.000Z"
},
"http_status": 200,
"payload": {
"id": 1,
"jsonrpc": "2.0",
"result": {
"capabilities": {
"tools": {}
},
"protocolVersion": "2024-11-05",
"serverInfo": {
"description": "Authoritative MLP and partnership K-1 tax computation. IRC-cited methodology, transparent assumptions, maintained by an MLP investor and finance professional.",
"documentation": "https://lucasandersen.ai/api",
"homepage": "https://lucasandersen.ai",
"license": "Proprietary \u2014 free tier with paid upgrades",
"maintainer": {
"credentials": "MS Finance",
"name": "Lucas Andersen",
"url": "https://lucasandersen.ai"
},
"name": "lucasandersen.ai MLP & Partnership Tax Tools",
"support_url": "https://lucasandersen.ai/contact",
"version": "0.1.0"
}
}
},
"url": "https://api.lucasandersen.ai/mcp"
},
"latency_ms": 165.0,
"status": "ok"
},
"interactive_flow_probe": {
"details": {
"oauth_supported": false,
"prompt_available": false,
"risk_hits": [],
"safe_hits": []
},
"latency_ms": null,
"status": "missing"
},
"oauth_authorization_server": {
"details": {
"reason": "no_authorization_server"
},
"latency_ms": null,
"status": "missing"
},
"oauth_protected_resource": {
"details": {
"error": "Client error '405 Method Not Allowed' for url 'https://api.lucasandersen.ai/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405",
"url": "https://api.lucasandersen.ai/.well-known/oauth-protected-resource"
},
"latency_ms": 56.46,
"status": "error"
},
"official_registry_probe": {
"details": {
"direct_match": true,
"official_peer_count": 1,
"registry_identifier": "ai.lucasandersen/mlp-tax",
"registry_source": "official_registry"
},
"latency_ms": null,
"status": "ok"
},
"openid_configuration": {
"details": {
"reason": "no_authorization_server"
},
"latency_ms": null,
"status": "missing"
},
"probe_noise_resilience": {
"details": {
"headers": {
"content-type": "application/json; charset=utf-8",
"x-ratelimit-limit": "0",
"x-ratelimit-remaining": "0",
"x-ratelimit-reset": ""
},
"http_status": 405,
"url": "https://api.lucasandersen.ai/robots.txt"
},
"latency_ms": 7.56,
"status": "error"
},
"prompt_get": {
"details": {
"reason": "not_advertised"
},
"latency_ms": null,
"status": "missing"
},
"prompts_list": {
"details": {
"headers": {
"content-type": "application/json; charset=utf-8",
"x-ratelimit-limit": "50",
"x-ratelimit-remaining": "48",
"x-ratelimit-reset": "2026-06-01T00:00:00.000Z"
},
"http_status": 200,
"payload": {
"error": {
"code": -32601,
"message": "Method not found: prompts/list"
},
"id": 3,
"jsonrpc": "2.0"
},
"reason": "not_supported",
"url": "https://api.lucasandersen.ai/mcp"
},
"latency_ms": 20.62,
"status": "missing"
},
"protocol_version_probe": {
"details": {
"claimed_version": "2024-11-05",
"lag_days": 385,
"latest_known_version": "2025-11-25",
"releases_behind": 3,
"validator_protocol_version": "2025-03-26"
},
"latency_ms": null,
"status": "warning"
},
"provenance_divergence_probe": {
"details": {
"direct_official_match": true,
"drift_fields": [],
"metadata_document_count": 1,
"registry_homepage": null,
"registry_repository": null,
"registry_title": null,
"registry_version": null,
"server_card_homepage": null,
"server_card_repository": null,
"server_card_title": null,
"server_card_version": null
},
"latency_ms": null,
"status": "ok"
},
"request_association_probe": {
"details": {
"reason": "no_request_association_capabilities_advertised"
},
"latency_ms": null,
"status": "missing"
},
"resource_read": {
"details": {
"reason": "not_advertised"
},
"latency_ms": null,
"status": "missing"
},
"resources_list": {
"details": {
"headers": {
"content-type": "application/json; charset=utf-8",
"x-ratelimit-limit": "50",
"x-ratelimit-remaining": "48",
"x-ratelimit-reset": "2026-06-01T00:00:00.000Z"
},
"http_status": 200,
"payload": {
"error": {
"code": -32601,
"message": "Method not found: resources/list"
},
"id": 5,
"jsonrpc": "2.0"
},
"reason": "not_supported",
"url": "https://api.lucasandersen.ai/mcp"
},
"latency_ms": 18.01,
"status": "missing"
},
"server_card": {
"details": {
"error": "Client error '405 Method Not Allowed' for url 'https://api.lucasandersen.ai/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405",
"url": "https://api.lucasandersen.ai/.well-known/mcp/server-card.json"
},
"latency_ms": 105.59,
"status": "error"
},
"session_resume_probe": {
"details": {
"protocol_version": "2024-11-05",
"reason": "no_session_id",
"resume_expected": true,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"step_up_auth_probe": {
"details": {
"auth_required_checks": [],
"broad_scopes": [],
"challenge_headers": [],
"minimal_scope_documented": false,
"oauth_present": false,
"scope_specificity_ratio": 0.0,
"step_up_signals": [],
"supported_scopes": []
},
"latency_ms": null,
"status": "missing"
},
"tool_snapshot_probe": {
"details": {
"added": [],
"changed_outputs": [],
"current_tool_count": 6,
"previous_tool_count": 6,
"removed": [],
"similarity": 1.0
},
"latency_ms": null,
"status": "ok"
},
"tools_list": {
"details": {
"headers": {
"content-type": "application/json; charset=utf-8",
"x-ratelimit-limit": "50",
"x-ratelimit-remaining": "48",
"x-ratelimit-reset": "2026-06-01T00:00:00.000Z"
},
"http_status": 200,
"payload": {
"id": 2,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"annotations": {
"idempotentHint": true,
"readOnlyHint": true,
"title": "MLP Multi-Year Tax Projection"
},
"description": "Computes a multi-year tax projection for a publicly traded MLP position, applying the IRS Partner's Basis Worksheet methodology (Lines 1-14) per IRC \u00a7705 (basis computation), \u00a7731(a) (distributions exceeding basis), \u00a7733 (basis reduction), \u00a7751 (hot asset recapture), \u00a7752 (liability allocation), \u00a71014 (stepped-up basis at death), and \u00a7199A (QBI deduction). Returns year-by-year basis erosion, \u00a7751 accumulation, annual federal tax, terminal FMV, \u00a71014 step-up value at death, and the break-even sell price.\n\nUse when: User holds direct units of a midstream MLP (EPD, ET, MPLX, WES, PAA, NRP, USAC, SUN) and wants to model long-term tax outcomes \u2014 when basis reaches zero, total tax paid over the hold horizon, deferred tax eliminated by \u00a71014 step-up at death, or the unit price at which selling matches holding through inheritance. Single position, single lot.\n\nDon't use for: 1099-DIV ETFs (AMLP, MLPX, AMZA \u2014 these use RIC structure, pay corporate-level tax, and issue 1099-DIV instead of K-1; use a standard cost-basis calculator instead). Multi-position estate analysis \u2014 use mlp_estate_planning. Computing basis from actual K-1 data the user has in hand \u2014 use k1_basis_compute (single year) or k1_basis_multi_year.\n\nLimitations: Single position, single lot \u2014 for multi-position portfolios and per-lot optimal sell ordering, see lucasandersen.ai. Federal-level only \u2014 does not include state-level basis adjustments or state estate tax. \u00a7751 recapture is estimated from default ROC assumptions; actual recapture depends on the partnership's hot-asset disposition schedule.\n\nMaintained by Lucas Andersen, MS Finance, with direct positions in major midstream MLPs. Methodology auditable at lucasandersen.ai/methodology.",
"inputSchema": {
"properties": {
"purchase_price": {
"description": "Purchase price per unit in USD (optional \u2014 defaults to reasonable estimate)",
"type": "number"
},
"tax_bracket": {
"description": "Federal marginal rate as decimal, e.g. 0.32 (default 0.32)",
"type": "number"
},
"ticker": {
"description": "MLP ticker symbol",
"enum": [
"EPD",
"ET",
"MPLX",
"WES",
"PAA",
"NRP",
"USAC",
"SUN"
],
"type": "string"
},
"units": {
"description": "Number of MLP units held",
"type": "number"
},
"years": {
"description": "Projection horizon in years (1-50, default 20)",
"type": "number"
}
},
"required": [
"ticker",
"units"
],
"type": "object"
},
"name": "mlp_projection"
},
{
"annotations": {
"idempotentHint": true,
"readOnlyHint": true,
"title": "MLP Estate Planning \u00a71014 Analyzer"
},
"description": "Computes \u00a71014 stepped-up basis and estate-planning analysis for one or more direct MLP positions held until death, per IRC \u00a71014(a) (basis at death), \u00a71014(b)(6) (community-property double step-up), \u00a7751(a) (ordinary recapture eliminated at death), \u00a7731 (distributions), and \u00a7705 (basis). Returns total deferred federal tax eliminated, \u00a7751 ordinary recapture eliminated, per-beneficiary inheritance split, community-property double-step-up amount when applicable, and the dollar advantage of holding to death versus selling today.\n\nUse when: User has one or more direct MLP positions (EPD, ET, MPLX, WES, PAA, NRP, USAC, SUN) and wants to quantify the \u00a71014 step-up benefit for estate planning, compare holding to death versus selling now across a portfolio, model community-property double step-up for spouses in CA/TX/WA/etc., or compute per-beneficiary inheritance values across multiple heirs.\n\nDon't use for: Trust-based estate strategies (revocable trusts preserve \u00a71014; irrevocable trusts and IDGTs typically destroy it \u2014 this tool models direct holdings only). Single-position long-horizon tax projection \u2014 use mlp_projection. Single-position sell-now-versus-hold-to-death break-even \u2014 use mlp_sell_vs_hold. 1099-DIV ETFs (AMLP, MLPX, AMZA \u2014 RIC structure receives \u00a71014 step-up but has no \u00a7751 to eliminate because no K-1; the analysis is materially different).\n\nLimitations: Direct unit holdings only \u2014 does not model trust, IDGT, FLP, or charitable structures (these can destroy the \u00a71014 benefit; for guidance on trust selection, see lucasandersen.ai). Federal-level only \u2014 does not include state estate tax. \u00a7751 recapture eliminated at death is estimated; exact figure depends on the partnership's actual hot-asset disposition schedule.\n\nMaintained by Lucas Andersen, MS Finance, with direct positions in major midstream MLPs. Methodology auditable at lucasandersen.ai/methodology.",
"inputSchema": {
"properties": {
"beneficiaries": {
"description": "Number of beneficiaries (default 1, max 20)",
"type": "number"
},
"community_property": {
"description": "Whether positions are in a community property state (doubles step-up)",
"type": "boolean"
},
"positions": {
"description": "Array of MLP positions to analyze (max 20)",
"items": {
"properties": {
"purchase_price": {
"type": "number"
},
"ticker": {
"enum": [
"EPD",
"ET",
"MPLX",
"WES",
"PAA",
"NRP",
"USAC",
"SUN"
],
"type": "string"
},
"units": {
"type": "number"
},
"years_held": {
"description": "Years held since purchase",
"type": "number"
}
},
"required": [
"ticker",
"units"
],
"type": "object"
},
"type": "array"
},
"tax_bracket": {
"type": "number"
}
},
"required": [
"positions"
],
"type": "object"
},
"name": "mlp_estate_planning"
},
{
"annotations": {
"idempotentHint": true,
"readOnlyHint": true,
"title": "MLP Sell-Now vs Hold-to-Death Break-Even"
},
"description": "Compares selling an MLP position today (triggering \u00a7751(a) hot-asset ordinary recapture plus \u00a7731(a)(1) long-term capital gain) against holding the position until death (where \u00a71014(a) step-up eliminates all deferred federal tax including \u00a7751 recapture), per IRC \u00a71(h) (LTCG rates), \u00a7199A (QBI deduction on \u00a7751 ordinary), and \u00a71411 (NIIT). Returns the break-even sell price \u2014 the unit price above which selling today produces more after-tax wealth than holding through inheritance.\n\nUse when: User holds a direct MLP position (EPD, ET, MPLX, WES, PAA, NRP, USAC, SUN), is approaching a sell decision, and wants a single break-even threshold to compare against the current market price. Useful for time-sensitive sell decisions, retirement-distribution planning, or evaluating whether an unsolicited tender offer is worth accepting versus continuing to hold for \u00a71014 step-up.\n\nDon't use for: Multi-position portfolio sell-ordering \u2014 this tool models a single position. For estate-planning analysis across multiple positions and beneficiaries, use mlp_estate_planning. For long-horizon basis-erosion modeling without a sell decision in view, use mlp_projection. 1099-DIV ETFs (AMLP, MLPX, AMZA \u2014 RIC structure has no \u00a7751 and no K-1, so the break-even logic does not apply; use a standard capital-gains calculator).\n\nLimitations: Single position, single lot \u2014 for portfolio-wide optimal sell ordering across multiple positions and lots, see lucasandersen.ai. Break-even price assumes the supplied tax bracket persists through the hold horizon. \u00a7751 recapture on the sell side is estimated from default ROC assumptions; actual hot-asset recapture depends on the partnership's disposition schedule.\n\nMaintained by Lucas Andersen, MS Finance, with direct positions in major midstream MLPs. Methodology auditable at lucasandersen.ai/methodology.",
"inputSchema": {
"properties": {
"community_property": {
"type": "boolean"
},
"purchase_price": {
"type": "number"
},
"tax_bracket": {
"type": "number"
},
"ticker": {
"enum": [
"EPD",
"ET",
"MPLX",
"WES",
"PAA",
"NRP",
"USAC",
"SUN"
],
"type": "string"
},
"units": {
"type": "number"
},
"years_held": {
"description": "Years the position has been held (default 10)",
"type": "number"
},
"years_to_project": {
"description": "Years to project the hold scenario (default 10)",
"type": "number"
}
},
"required": [
"ticker",
"units"
],
"type": "object"
},
"name": "mlp_sell_vs_hold"
},
{
"annotations": {
"idempotentHint": true,
"readOnlyHint": true,
"title": "MLP Reference Data Lookup"
},
"description": "Returns reference data for a supported MLP ticker \u2014 current cash distribution per unit, distribution growth CAGR, default return-of-capital percentage, distribution coverage ratio, K-1 entity count, operating-state count, and last-verified date.\n\nUse when: User wants to look up baseline characteristics of an MLP before modeling \u2014 e.g., comparing distribution coverage across partnerships, checking how many K-1 entities a holding generates for tax-prep complexity, or seeing the operating-state count for state-tax filing-burden estimation.\n\nDon't use for: Tax computation. Use mlp_projection (long-horizon modeling), mlp_estate_planning (estate analysis), mlp_sell_vs_hold (break-even sell price), or k1_basis_compute / k1_basis_multi_year (computing basis from actual K-1 data).\n\nNote: This tool returns reference data only \u2014 no IRC citations apply, no methodology disclosure attached. For computation, use the modeling tools above.\n\nMaintained by Lucas Andersen, MS Finance.",
"inputSchema": {
"properties": {
"ticker": {
"enum": [
"EPD",
"ET",
"MPLX",
"WES",
"PAA",
"NRP",
"USAC",
"SUN"
],
"type": "string"
}
},
"required": [
"ticker"
],
"type": "object"
},
"name": "mlp_info"
},
{
"annotations": {
"idempotentHint": true,
"readOnlyHint": true,
"title": "K-1 Single-Year Basis Worksheet"
},
"description": "Computes adjusted partner basis from a single year of Schedule K-1 data using the IRS Partner's Basis Worksheet methodology (Lines 1-14), per IRC \u00a7705 (basis computation), \u00a7722 (initial basis), \u00a7731(a)(1) (gain on distribution exceeding basis), \u00a7733 (basis reduction), \u00a7752 (liability share allocation), \u00a7704(d) (loss limitation and suspended-loss carryforward), and \u00a7199A (QBI deduction). Returns the ending adjusted basis, every worksheet line value, any \u00a7731 gain triggered when distributions exceed basis, and \u00a7704(d) suspended losses carried forward.\n\nUse when: User holds direct MLP units (EPD, ET, MPLX, WES, PAA, NRP, USAC, SUN, or similar publicly traded midstream partnerships) and has structured K-1 box values for one tax year \u2014 Box 1 ordinary income, Box 19A cash distributions, Item K liability change, optionally Box 5 interest income, Box 11 \u00a7179 deduction, Box 13W \u00a7199A QBI amount. Single tax year, single lot.\n\nDon't use for: 1099-DIV ETFs (AMLP, MLPX, AMZA \u2014 these use RIC structure, no K-1, different tax regime \u2014 use a standard cost-basis calculator instead). Multi-year basis carryforward across consecutive K-1s \u2014 use k1_basis_multi_year. General partnership interests outside publicly traded MLPs (different \u00a71402 self-employment treatment).\n\nLimitations: Single tax year only \u2014 for multi-year basis tracking with \u00a7731 gain detection across years, use k1_basis_multi_year. Single-lot only \u2014 for multi-lot allocation and optimal sell ordering, see lucasandersen.ai. Federal-level only \u2014 does not include state basis adjustments.\n\nMaintained by Lucas Andersen, MS Finance, with direct positions in major midstream MLPs. Methodology auditable at lucasandersen.ai/methodology.",
"inputSchema": {
"properties": {
"box1": {
"description": "K-1 Box 1: ordinary business income (loss)",
"type": "number"
},
"box11": {
"description": "K-1 Box 11: \u00a7179 / other deductions",
"type": "number"
},
"box13w": {
"description": "K-1 Box 13W: \u00a7199A QBI amount",
"type": "number"
},
"box19a": {
"description": "K-1 Box 19A: cash distributions",
"type": "number"
},
"box2": {
"description": "K-1 Box 2: net rental income",
"type": "number"
},
"box5": {
"description": "K-1 Box 5: interest income",
"type": "number"
},
"liability_decrease": {
"description": "\u00a7752(b) liability decrease in USD",
"type": "number"
},
"liability_increase": {
"description": "\u00a7752(a) liability increase in USD",
"type": "number"
},
"prior_basis": {
"description": "Beginning-of-year adjusted basis in USD",
"type": "number"
},
"tax_bracket": {
"type": "number"
},
"ticker": {
"enum": [
"EPD",
"ET",
"MPLX",
"WES",
"PAA",
"NRP",
"USAC",
"SUN"
],
"type": "string"
},
"units": {
"type": "number"
}
},
"required": [
"ticker",
"units",
"prior_basis",
"box1",
"box19a"
],
"type": "object"
},
"name": "k1_basis_compute"
},
{
"annotations": {
"idempotentHint": true,
"readOnlyHint": true,
"title": "Multi-Year K-1 Basis & Broker-Gap Tracker"
},
"description": "Computes a running adjusted partner basis across multiple years of Schedule K-1 data, per IRC \u00a7705 (basis computation), \u00a7731(a)(1) (gain on distributions exceeding basis), \u00a7751(a) (accumulated ordinary recapture), \u00a7752 (liability share allocation across years), \u00a7704(d) (suspended-loss carryforward), and \u00a71014(a) (step-up if death today). Returns year-by-year basis trajectory, accumulated \u00a7751 recapture estimate, projected zero-basis year, \u00a71014 step-up value if death today, and the broker-basis gap \u2014 the dollar amount by which a typical 1099-B understates true IRS-adjusted basis.\n\nUse when: User holds a direct MLP position (EPD, ET, MPLX, WES, PAA, NRP, USAC, SUN) across multiple consecutive tax years, has K-1s for those years, and wants to track adjusted basis year over year, identify the zero-basis year, quantify the gap between broker-reported basis and true IRS basis, or project \u00a71014 step-up value if death occurred today.\n\nDon't use for: Single-year basis worksheet from one K-1 \u2014 use k1_basis_compute. Long-horizon forward projection from default assumptions when no actual K-1s are in hand \u2014 use mlp_projection. 1099-DIV ETFs (AMLP, MLPX, AMZA \u2014 RIC structure, no K-1, no basis-erosion mechanism; use a standard cost-basis calculator). Multi-position portfolio basis tracking \u2014 this tool handles one position per call.\n\nLimitations: Single position, single lot \u2014 for multi-lot or multi-position basis tracking with optimal sell ordering, see lucasandersen.ai. Federal-level only \u2014 does not include state-level basis adjustments. Accumulated \u00a7751 recapture is estimated across years; actual depends on the partnership's hot-asset disposition schedule and any year-specific \u00a7751(b) events.\n\nMaintained by Lucas Andersen, MS Finance, with direct positions in major midstream MLPs. Methodology auditable at lucasandersen.ai/methodology.",
"inputSchema": {
"properties": {
"k1_years": {
"description": "Array of annual K-1 data, one per year held (max 50)",
"items": {
"properties": {
"box1": {
"type": "number"
},
"box11": {
"type": "number"
},
"box19a": {
"type": "number"
},
"liability_decrease": {
"type": "number"
},
"liability_increase": {
"type": "number"
},
"year": {
"type": "number"
}
},
"required": [
"year",
"box1",
"box19a"
],
"type": "object"
},
"type": "array"
},
"purchase_price": {
"type": "number"
},
"purchase_year": {
"type": "number"
},
"tax_bracket": {
"type": "number"
},
"ticker": {
"enum": [
"EPD",
"ET",
"MPLX",
"WES",
"PAA",
"NRP",
"USAC",
"SUN"
],
"type": "string"
},
"units": {
"type": "number"
}
},
"required": [
"ticker",
"units",
"purchase_price",
"k1_years"
],
"type": "object"
},
"name": "k1_basis_multi_year"
}
]
}
},
"url": "https://api.lucasandersen.ai/mcp"
},
"latency_ms": 20.51,
"status": "ok"
},
"transport_compliance_probe": {
"details": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json; charset=utf-8",
"x-ratelimit-limit": "50",
"x-ratelimit-remaining": "48",
"x-ratelimit-reset": "2026-06-01T00:00:00.000Z"
},
"bad_protocol_payload": {
"id": 410,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"annotations": {
"idempotentHint": true,
"readOnlyHint": true,
"title": "MLP Multi-Year Tax Projection"
},
"description": "Computes a multi-year tax projection for a publicly traded MLP position, applying the IRS Partner's Basis Worksheet methodology (Lines 1-14) per IRC \u00a7705 (basis computation), \u00a7731(a) (distributions exceeding basis), \u00a7733 (basis reduction), \u00a7751 (hot asset recapture), \u00a7752 (liability allocation), \u00a71014 (stepped-up basis at death), and \u00a7199A (QBI deduction). Returns year-by-year basis erosion, \u00a7751 accumulation, annual federal tax, terminal FMV, \u00a71014 step-up value at death, and the break-even sell price.\n\nUse when: User holds direct units of a midstream MLP (EPD, ET, MPLX, WES, PAA, NRP, USAC, SUN) and wants to model long-term tax outcomes \u2014 when basis reaches zero, total tax paid over the hold horizon, deferred tax eliminated by \u00a71014 step-up at death, or the unit price at which selling matches holding through inheritance. Single position, single lot.\n\nDon't use for: 1099-DIV ETFs (AMLP, MLPX, AMZA \u2014 these use RIC structure, pay corporate-level tax, and issue 1099-DIV instead of K-1; use a standard cost-basis calculator instead). Multi-position estate analysis \u2014 use mlp_estate_planning. Computing basis from actual K-1 data the user has in hand \u2014 use k1_basis_compute (single year) or k1_basis_multi_year.\n\nLimitations: Single position, single lot \u2014 for multi-position portfolios and per-lot optimal sell ordering, see lucasandersen.ai. Federal-level only \u2014 does not include state-level basis adjustments or state estate tax. \u00a7751 recapture is estimated from default ROC assumptions; actual recapture depends on the partnership's hot-asset disposition schedule.\n\nMaintained by Lucas Andersen, MS Finance, with direct positions in major midstream MLPs. Methodology auditable at lucasandersen.ai/methodology.",
"inputSchema": {
"properties": {
"purchase_price": {
"description": "Purchase price per unit in USD (optional \u2014 defaults to reasonable estimate)",
"type": "number"
},
"tax_bracket": {
"description": "Federal marginal rate as decimal, e.g. 0.32 (default 0.32)",
"type": "number"
},
"ticker": {
"description": "MLP ticker symbol",
"enum": [
"EPD",
"ET",
"MPLX",
"WES",
"PAA",
"NRP",
"USAC",
"SUN"
],
"type": "string"
},
"units": {
"description": "Number of MLP units held",
"type": "number"
},
"years": {
"description": "Projection horizon in years (1-50, default 20)",
"type": "number"
}
},
"required": [
"ticker",
"units"
],
"type": "object"
},
"name": "mlp_projection"
},
{
"annotations": {
"idempotentHint": true,
"readOnlyHint": true,
"title": "MLP Estate Planning \u00a71014 Analyzer"
},
"description": "Computes \u00a71014 stepped-up basis and estate-planning analysis for one or more direct MLP positions held until death, per IRC \u00a71014(a) (basis at death), \u00a71014(b)(6) (community-property double step-up), \u00a7751(a) (ordinary recapture eliminated at death), \u00a7731 (distributions), and \u00a7705 (basis). Returns total deferred federal tax eliminated, \u00a7751 ordinary recapture eliminated, per-beneficiary inheritance split, community-property double-step-up amount when applicable, and the dollar advantage of holding to death versus selling today.\n\nUse when: User has one or more direct MLP positions (EPD, ET, MPLX, WES, PAA, NRP, USAC, SUN) and wants to quantify the \u00a71014 step-up benefit for estate planning, compare holding to death versus selling now across a portfolio, model community-property double step-up for spouses in CA/TX/WA/etc., or compute per-beneficiary inheritance values across multiple heirs.\n\nDon't use for: Trust-based estate strategies (revocable trusts preserve \u00a71014; irrevocable trusts and IDGTs typically destroy it \u2014 this tool models direct holdings only). Single-position long-horizon tax projection \u2014 use mlp_projection. Single-position sell-now-versus-hold-to-death break-even \u2014 use mlp_sell_vs_hold. 1099-DIV ETFs (AMLP, MLPX, AMZA \u2014 RIC structure receives \u00a71014 step-up but has no \u00a7751 to eliminate because no K-1; the analysis is materially different).\n\nLimitations: Direct unit holdings only \u2014 does not model trust, IDGT, FLP, or charitable structures (these can destroy the \u00a71014 benefit; for guidance on trust selection, see lucasandersen.ai). Federal-level only \u2014 does not include state estate tax. \u00a7751 recapture eliminated at death is estimated; exact figure depends on the partnership's actual hot-asset disposition schedule.\n\nMaintained by Lucas Andersen, MS Finance, with direct positions in major midstream MLPs. Methodology auditable at lucasandersen.ai/methodology.",
"inputSchema": {
"properties": {
"beneficiaries": {
"description": "Number of beneficiaries (default 1, max 20)",
"type": "number"
},
"community_property": {
"description": "Whether positions are in a community property state (doubles step-up)",
"type": "boolean"
},
"positions": {
"description": "Array of MLP positions to analyze (max 20)",
"items": {
"properties": {
"purchase_price": {
"type": "number"
},
"ticker": {
"enum": [
"EPD",
"ET",
"MPLX",
"WES",
"PAA",
"NRP",
"USAC",
"SUN"
],
"type": "string"
},
"units": {
"type": "number"
},
"years_held": {
"description": "Years held since purchase",
"type": "number"
}
},
"required": [
"ticker",
"units"
],
"type": "object"
},
"type": "array"
},
"tax_bracket": {
"type": "number"
}
},
"required": [
"positions"
],
"type": "object"
},
"name": "mlp_estate_planning"
},
{
"annotations": {
"idempotentHint": true,
"readOnlyHint": true,
"title": "MLP Sell-Now vs Hold-to-Death Break-Even"
},
"description": "Compares selling an MLP position today (triggering \u00a7751(a) hot-asset ordinary recapture plus \u00a7731(a)(1) long-term capital gain) against holding the position until death (where \u00a71014(a) step-up eliminates all deferred federal tax including \u00a7751 recapture), per IRC \u00a71(h) (LTCG rates), \u00a7199A (QBI deduction on \u00a7751 ordinary), and \u00a71411 (NIIT). Returns the break-even sell price \u2014 the unit price above which selling today produces more after-tax wealth than holding through inheritance.\n\nUse when: User holds a direct MLP position (EPD, ET, MPLX, WES, PAA, NRP, USAC, SUN), is approaching a sell decision, and wants a single break-even threshold to compare against the current market price. Useful for time-sensitive sell decisions, retirement-distribution planning, or evaluating whether an unsolicited tender offer is worth accepting versus continuing to hold for \u00a71014 step-up.\n\nDon't use for: Multi-position portfolio sell-ordering \u2014 this tool models a single position. For estate-planning analysis across multiple positions and beneficiaries, use mlp_estate_planning. For long-horizon basis-erosion modeling without a sell decision in view, use mlp_projection. 1099-DIV ETFs (AMLP, MLPX, AMZA \u2014 RIC structure has no \u00a7751 and no K-1, so the break-even logic does not apply; use a standard capital-gains calculator).\n\nLimitations: Single position, single lot \u2014 for portfolio-wide optimal sell ordering across multiple positions and lots, see lucasandersen.ai. Break-even price assumes the supplied tax bracket persists through the hold horizon. \u00a7751 recapture on the sell side is estimated from default ROC assumptions; actual hot-asset recapture depends on the partnership's disposition schedule.\n\nMaintained by Lucas Andersen, MS Finance, with direct positions in major midstream MLPs. Methodology auditable at lucasandersen.ai/methodology.",
"inputSchema": {
"properties": {
"community_property": {
"type": "boolean"
},
"purchase_price": {
"type": "number"
},
"tax_bracket": {
"type": "number"
},
"ticker": {
"enum": [
"EPD",
"ET",
"MPLX",
"WES",
"PAA",
"NRP",
"USAC",
"SUN"
],
"type": "string"
},
"units": {
"type": "number"
},
"years_held": {
"description": "Years the position has been held (default 10)",
"type": "number"
},
"years_to_project": {
"description": "Years to project the hold scenario (default 10)",
"type": "number"
}
},
"required": [
"ticker",
"units"
],
"type": "object"
},
"name": "mlp_sell_vs_hold"
},
{
"annotations": {
"idempotentHint": true,
"readOnlyHint": true,
"title": "MLP Reference Data Lookup"
},
"description": "Returns reference data for a supported MLP ticker \u2014 current cash distribution per unit, distribution growth CAGR, default return-of-capital percentage, distribution coverage ratio, K-1 entity count, operating-state count, and last-verified date.\n\nUse when: User wants to look up baseline characteristics of an MLP before modeling \u2014 e.g., comparing distribution coverage across partnerships, checking how many K-1 entities a holding generates for tax-prep complexity, or seeing the operating-state count for state-tax filing-burden estimation.\n\nDon't use for: Tax computation. Use mlp_projection (long-horizon modeling), mlp_estate_planning (estate analysis), mlp_sell_vs_hold (break-even sell price), or k1_basis_compute / k1_basis_multi_year (computing basis from actual K-1 data).\n\nNote: This tool returns reference data only \u2014 no IRC citations apply, no methodology disclosure attached. For computation, use the modeling tools above.\n\nMaintained by Lucas Andersen, MS Finance.",
"inputSchema": {
"properties": {
"ticker": {
"enum": [
"EPD",
"ET",
"MPLX",
"WES",
"PAA",
"NRP",
"USAC",
"SUN"
],
"type": "string"
}
},
"required": [
"ticker"
],
"type": "object"
},
"name": "mlp_info"
},
{
"annotations": {
"idempotentHint": true,
"readOnlyHint": true,
"title": "K-1 Single-Year Basis Worksheet"
},
"description": "Computes adjusted partner basis from a single year of Schedule K-1 data using the IRS Partner's Basis Worksheet methodology (Lines 1-14), per IRC \u00a7705 (basis computation), \u00a7722 (initial basis), \u00a7731(a)(1) (gain on distribution exceeding basis), \u00a7733 (basis reduction), \u00a7752 (liability share allocation), \u00a7704(d) (loss limitation and suspended-loss carryforward), and \u00a7199A (QBI deduction). Returns the ending adjusted basis, every worksheet line value, any \u00a7731 gain triggered when distributions exceed basis, and \u00a7704(d) suspended losses carried forward.\n\nUse when: User holds direct MLP units (EPD, ET, MPLX, WES, PAA, NRP, USAC, SUN, or similar publicly traded midstream partnerships) and has structured K-1 box values for one tax year \u2014 Box 1 ordinary income, Box 19A cash distributions, Item K liability change, optionally Box 5 interest income, Box 11 \u00a7179 deduction, Box 13W \u00a7199A QBI amount. Single tax year, single lot.\n\nDon't use for: 1099-DIV ETFs (AMLP, MLPX, AMZA \u2014 these use RIC structure, no K-1, different tax regime \u2014 use a standard cost-basis calculator instead). Multi-year basis carryforward across consecutive K-1s \u2014 use k1_basis_multi_year. General partnership interests outside publicly traded MLPs (different \u00a71402 self-employment treatment).\n\nLimitations: Single tax year only \u2014 for multi-year basis tracking with \u00a7731 gain detection across years, use k1_basis_multi_year. Single-lot only \u2014 for multi-lot allocation and optimal sell ordering, see lucasandersen.ai. Federal-level only \u2014 does not include state basis adjustments.\n\nMaintained by Lucas Andersen, MS Finance, with direct positions in major midstream MLPs. Methodology auditable at lucasandersen.ai/methodology.",
"inputSchema": {
"properties": {
"box1": {
"description": "K-1 Box 1: ordinary business income (loss)",
"type": "number"
},
"box11": {
"description": "K-1 Box 11: \u00a7179 / other deductions",
"type": "number"
},
"box13w": {
"description": "K-1 Box 13W: \u00a7199A QBI amount",
"type": "number"
},
"box19a": {
"description": "K-1 Box 19A: cash distributions",
"type": "number"
},
"box2": {
"description": "K-1 Box 2: net rental income",
"type": "number"
},
"box5": {
"description": "K-1 Box 5: interest income",
"type": "number"
},
"liability_decrease": {
"description": "\u00a7752(b) liability decrease in USD",
"type": "number"
},
"liability_increase": {
"description": "\u00a7752(a) liability increase in USD",
"type": "number"
},
"prior_basis": {
"description": "Beginning-of-year adjusted basis in USD",
"type": "number"
},
"tax_bracket": {
"type": "number"
},
"ticker": {
"enum": [
"EPD",
"ET",
"MPLX",
"WES",
"PAA",
"NRP",
"USAC",
"SUN"
],
"type": "string"
},
"units": {
"type": "number"
}
},
"required": [
"ticker",
"units",
"prior_basis",
"box1",
"box19a"
],
"type": "object"
},
"name": "k1_basis_compute"
},
{
"annotations": {
"idempotentHint": true,
"readOnlyHint": true,
"title": "Multi-Year K-1 Basis & Broker-Gap Tracker"
},
"description": "Computes a running adjusted partner basis across multiple years of Schedule K-1 data, per IRC \u00a7705 (basis computation), \u00a7731(a)(1) (gain on distributions exceeding basis), \u00a7751(a) (accumulated ordinary recapture), \u00a7752 (liability share allocation across years), \u00a7704(d) (suspended-loss carryforward), and \u00a71014(a) (step-up if death today). Returns year-by-year basis trajectory, accumulated \u00a7751 recapture estimate, projected zero-basis year, \u00a71014 step-up value if death today, and the broker-basis gap \u2014 the dollar amount by which a typical 1099-B understates true IRS-adjusted basis.\n\nUse when: User holds a direct MLP position (EPD, ET, MPLX, WES, PAA, NRP, USAC, SUN) across multiple consecutive tax years, has K-1s for those years, and wants to track adjusted basis year over year, identify the zero-basis year, quantify the gap between broker-reported basis and true IRS basis, or project \u00a71014 step-up value if death occurred today.\n\nDon't use for: Single-year basis worksheet from one K-1 \u2014 use k1_basis_compute. Long-horizon forward projection from default assumptions when no actual K-1s are in hand \u2014 use mlp_projection. 1099-DIV ETFs (AMLP, MLPX, AMZA \u2014 RIC structure, no K-1, no basis-erosion mechanism; use a standard cost-basis calculator). Multi-position portfolio basis tracking \u2014 this tool handles one position per call.\n\nLimitations: Single position, single lot \u2014 for multi-lot or multi-position basis tracking with optimal sell ordering, see lucasandersen.ai. Federal-level only \u2014 does not include state-level basis adjustments. Accumulated \u00a7751 recapture is estimated across years; actual depends on the partnership's hot-asset disposition schedule and any year-specific \u00a7751(b) events.\n\nMaintained by Lucas Andersen, MS Finance, with direct positions in major midstream MLPs. Methodology auditable at lucasandersen.ai/methodology.",
"inputSchema": {
"properties": {
"k1_years": {
"description": "Array of annual K-1 data, one per year held (max 50)",
"items": {
"properties": {
"box1": {
"type": "number"
},
"box11": {
"type": "number"
},
"box19a": {
"type": "number"
},
"liability_decrease": {
"type": "number"
},
"liability_increase": {
"type": "number"
},
"year": {
"type": "number"
}
},
"required": [
"year",
"box1",
"box19a"
],
"type": "object"
},
"type": "array"
},
"purchase_price": {
"type": "number"
},
"purchase_year": {
"type": "number"
},
"tax_bracket": {
"type": "number"
},
"ticker": {
"enum": [
"EPD",
"ET",
"MPLX",
"WES",
"PAA",
"NRP",
"USAC",
"SUN"
],
"type": "string"
},
"units": {
"type": "number"
}
},
"required": [
"ticker",
"units",
"purchase_price",
"k1_years"
],
"type": "object"
},
"name": "k1_basis_multi_year"
}
]
}
},
"bad_protocol_status_code": 200,
"delete_error": null,
"delete_status_code": null,
"expired_session_error": null,
"expired_session_status_code": null,
"issues": [
"missing_session_id",
"missing_protocol_header",
"bad_protocol_not_rejected"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2024-11-05",
"session_id_present": false,
"transport": "streamable-http"
},
"latency_ms": 29.9,
"status": "error"
},
"utility_coverage_probe": {
"details": {
"completions": {
"advertised": false,
"live_probe": "not_executed",
"sample_target": null
},
"initialize_capability_keys": [
"tools"
],
"pagination": {
"metadata_signal": false,
"next_cursor_methods": [],
"supported": false
},
"tasks": {
"advertised": false,
"http_status": 200,
"probe_status": "missing"
}
},
"latency_ms": 18.14,
"status": "missing"
}
},
"failures": {
"oauth_authorization_server": {
"reason": "no_authorization_server"
},
"oauth_protected_resource": {
"error": "Client error '405 Method Not Allowed' for url 'https://api.lucasandersen.ai/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405",
"url": "https://api.lucasandersen.ai/.well-known/oauth-protected-resource"
},
"openid_configuration": {
"reason": "no_authorization_server"
},
"probe_noise_resilience": {
"headers": {
"content-type": "application/json; charset=utf-8",
"x-ratelimit-limit": "0",
"x-ratelimit-remaining": "0",
"x-ratelimit-reset": ""
},
"http_status": 405,
"url": "https://api.lucasandersen.ai/robots.txt"
},
"server_card": {
"error": "Client error '405 Method Not Allowed' for url 'https://api.lucasandersen.ai/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405",
"url": "https://api.lucasandersen.ai/.well-known/mcp/server-card.json"
},
"transport_compliance_probe": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json; charset=utf-8",
"x-ratelimit-limit": "50",
"x-ratelimit-remaining": "48",
"x-ratelimit-reset": "2026-06-01T00:00:00.000Z"
},
"bad_protocol_payload": {
"id": 410,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"annotations": {
"idempotentHint": true,
"readOnlyHint": true,
"title": "MLP Multi-Year Tax Projection"
},
"description": "Computes a multi-year tax projection for a publicly traded MLP position, applying the IRS Partner's Basis Worksheet methodology (Lines 1-14) per IRC \u00a7705 (basis computation), \u00a7731(a) (distributions exceeding basis), \u00a7733 (basis reduction), \u00a7751 (hot asset recapture), \u00a7752 (liability allocation), \u00a71014 (stepped-up basis at death), and \u00a7199A (QBI deduction). Returns year-by-year basis erosion, \u00a7751 accumulation, annual federal tax, terminal FMV, \u00a71014 step-up value at death, and the break-even sell price.\n\nUse when: User holds direct units of a midstream MLP (EPD, ET, MPLX, WES, PAA, NRP, USAC, SUN) and wants to model long-term tax outcomes \u2014 when basis reaches zero, total tax paid over the hold horizon, deferred tax eliminated by \u00a71014 step-up at death, or the unit price at which selling matches holding through inheritance. Single position, single lot.\n\nDon't use for: 1099-DIV ETFs (AMLP, MLPX, AMZA \u2014 these use RIC structure, pay corporate-level tax, and issue 1099-DIV instead of K-1; use a standard cost-basis calculator instead). Multi-position estate analysis \u2014 use mlp_estate_planning. Computing basis from actual K-1 data the user has in hand \u2014 use k1_basis_compute (single year) or k1_basis_multi_year.\n\nLimitations: Single position, single lot \u2014 for multi-position portfolios and per-lot optimal sell ordering, see lucasandersen.ai. Federal-level only \u2014 does not include state-level basis adjustments or state estate tax. \u00a7751 recapture is estimated from default ROC assumptions; actual recapture depends on the partnership's hot-asset disposition schedule.\n\nMaintained by Lucas Andersen, MS Finance, with direct positions in major midstream MLPs. Methodology auditable at lucasandersen.ai/methodology.",
"inputSchema": {
"properties": {
"purchase_price": {
"description": "Purchase price per unit in USD (optional \u2014 defaults to reasonable estimate)",
"type": "number"
},
"tax_bracket": {
"description": "Federal marginal rate as decimal, e.g. 0.32 (default 0.32)",
"type": "number"
},
"ticker": {
"description": "MLP ticker symbol",
"enum": [
"EPD",
"ET",
"MPLX",
"WES",
"PAA",
"NRP",
"USAC",
"SUN"
],
"type": "string"
},
"units": {
"description": "Number of MLP units held",
"type": "number"
},
"years": {
"description": "Projection horizon in years (1-50, default 20)",
"type": "number"
}
},
"required": [
"ticker",
"units"
],
"type": "object"
},
"name": "mlp_projection"
},
{
"annotations": {
"idempotentHint": true,
"readOnlyHint": true,
"title": "MLP Estate Planning \u00a71014 Analyzer"
},
"description": "Computes \u00a71014 stepped-up basis and estate-planning analysis for one or more direct MLP positions held until death, per IRC \u00a71014(a) (basis at death), \u00a71014(b)(6) (community-property double step-up), \u00a7751(a) (ordinary recapture eliminated at death), \u00a7731 (distributions), and \u00a7705 (basis). Returns total deferred federal tax eliminated, \u00a7751 ordinary recapture eliminated, per-beneficiary inheritance split, community-property double-step-up amount when applicable, and the dollar advantage of holding to death versus selling today.\n\nUse when: User has one or more direct MLP positions (EPD, ET, MPLX, WES, PAA, NRP, USAC, SUN) and wants to quantify the \u00a71014 step-up benefit for estate planning, compare holding to death versus selling now across a portfolio, model community-property double step-up for spouses in CA/TX/WA/etc., or compute per-beneficiary inheritance values across multiple heirs.\n\nDon't use for: Trust-based estate strategies (revocable trusts preserve \u00a71014; irrevocable trusts and IDGTs typically destroy it \u2014 this tool models direct holdings only). Single-position long-horizon tax projection \u2014 use mlp_projection. Single-position sell-now-versus-hold-to-death break-even \u2014 use mlp_sell_vs_hold. 1099-DIV ETFs (AMLP, MLPX, AMZA \u2014 RIC structure receives \u00a71014 step-up but has no \u00a7751 to eliminate because no K-1; the analysis is materially different).\n\nLimitations: Direct unit holdings only \u2014 does not model trust, IDGT, FLP, or charitable structures (these can destroy the \u00a71014 benefit; for guidance on trust selection, see lucasandersen.ai). Federal-level only \u2014 does not include state estate tax. \u00a7751 recapture eliminated at death is estimated; exact figure depends on the partnership's actual hot-asset disposition schedule.\n\nMaintained by Lucas Andersen, MS Finance, with direct positions in major midstream MLPs. Methodology auditable at lucasandersen.ai/methodology.",
"inputSchema": {
"properties": {
"beneficiaries": {
"description": "Number of beneficiaries (default 1, max 20)",
"type": "number"
},
"community_property": {
"description": "Whether positions are in a community property state (doubles step-up)",
"type": "boolean"
},
"positions": {
"description": "Array of MLP positions to analyze (max 20)",
"items": {
"properties": {
"purchase_price": {
"type": "number"
},
"ticker": {
"enum": [
"EPD",
"ET",
"MPLX",
"WES",
"PAA",
"NRP",
"USAC",
"SUN"
],
"type": "string"
},
"units": {
"type": "number"
},
"years_held": {
"description": "Years held since purchase",
"type": "number"
}
},
"required": [
"ticker",
"units"
],
"type": "object"
},
"type": "array"
},
"tax_bracket": {
"type": "number"
}
},
"required": [
"positions"
],
"type": "object"
},
"name": "mlp_estate_planning"
},
{
"annotations": {
"idempotentHint": true,
"readOnlyHint": true,
"title": "MLP Sell-Now vs Hold-to-Death Break-Even"
},
"description": "Compares selling an MLP position today (triggering \u00a7751(a) hot-asset ordinary recapture plus \u00a7731(a)(1) long-term capital gain) against holding the position until death (where \u00a71014(a) step-up eliminates all deferred federal tax including \u00a7751 recapture), per IRC \u00a71(h) (LTCG rates), \u00a7199A (QBI deduction on \u00a7751 ordinary), and \u00a71411 (NIIT). Returns the break-even sell price \u2014 the unit price above which selling today produces more after-tax wealth than holding through inheritance.\n\nUse when: User holds a direct MLP position (EPD, ET, MPLX, WES, PAA, NRP, USAC, SUN), is approaching a sell decision, and wants a single break-even threshold to compare against the current market price. Useful for time-sensitive sell decisions, retirement-distribution planning, or evaluating whether an unsolicited tender offer is worth accepting versus continuing to hold for \u00a71014 step-up.\n\nDon't use for: Multi-position portfolio sell-ordering \u2014 this tool models a single position. For estate-planning analysis across multiple positions and beneficiaries, use mlp_estate_planning. For long-horizon basis-erosion modeling without a sell decision in view, use mlp_projection. 1099-DIV ETFs (AMLP, MLPX, AMZA \u2014 RIC structure has no \u00a7751 and no K-1, so the break-even logic does not apply; use a standard capital-gains calculator).\n\nLimitations: Single position, single lot \u2014 for portfolio-wide optimal sell ordering across multiple positions and lots, see lucasandersen.ai. Break-even price assumes the supplied tax bracket persists through the hold horizon. \u00a7751 recapture on the sell side is estimated from default ROC assumptions; actual hot-asset recapture depends on the partnership's disposition schedule.\n\nMaintained by Lucas Andersen, MS Finance, with direct positions in major midstream MLPs. Methodology auditable at lucasandersen.ai/methodology.",
"inputSchema": {
"properties": {
"community_property": {
"type": "boolean"
},
"purchase_price": {
"type": "number"
},
"tax_bracket": {
"type": "number"
},
"ticker": {
"enum": [
"EPD",
"ET",
"MPLX",
"WES",
"PAA",
"NRP",
"USAC",
"SUN"
],
"type": "string"
},
"units": {
"type": "number"
},
"years_held": {
"description": "Years the position has been held (default 10)",
"type": "number"
},
"years_to_project": {
"description": "Years to project the hold scenario (default 10)",
"type": "number"
}
},
"required": [
"ticker",
"units"
],
"type": "object"
},
"name": "mlp_sell_vs_hold"
},
{
"annotations": {
"idempotentHint": true,
"readOnlyHint": true,
"title": "MLP Reference Data Lookup"
},
"description": "Returns reference data for a supported MLP ticker \u2014 current cash distribution per unit, distribution growth CAGR, default return-of-capital percentage, distribution coverage ratio, K-1 entity count, operating-state count, and last-verified date.\n\nUse when: User wants to look up baseline characteristics of an MLP before modeling \u2014 e.g., comparing distribution coverage across partnerships, checking how many K-1 entities a holding generates for tax-prep complexity, or seeing the operating-state count for state-tax filing-burden estimation.\n\nDon't use for: Tax computation. Use mlp_projection (long-horizon modeling), mlp_estate_planning (estate analysis), mlp_sell_vs_hold (break-even sell price), or k1_basis_compute / k1_basis_multi_year (computing basis from actual K-1 data).\n\nNote: This tool returns reference data only \u2014 no IRC citations apply, no methodology disclosure attached. For computation, use the modeling tools above.\n\nMaintained by Lucas Andersen, MS Finance.",
"inputSchema": {
"properties": {
"ticker": {
"enum": [
"EPD",
"ET",
"MPLX",
"WES",
"PAA",
"NRP",
"USAC",
"SUN"
],
"type": "string"
}
},
"required": [
"ticker"
],
"type": "object"
},
"name": "mlp_info"
},
{
"annotations": {
"idempotentHint": true,
"readOnlyHint": true,
"title": "K-1 Single-Year Basis Worksheet"
},
"description": "Computes adjusted partner basis from a single year of Schedule K-1 data using the IRS Partner's Basis Worksheet methodology (Lines 1-14), per IRC \u00a7705 (basis computation), \u00a7722 (initial basis), \u00a7731(a)(1) (gain on distribution exceeding basis), \u00a7733 (basis reduction), \u00a7752 (liability share allocation), \u00a7704(d) (loss limitation and suspended-loss carryforward), and \u00a7199A (QBI deduction). Returns the ending adjusted basis, every worksheet line value, any \u00a7731 gain triggered when distributions exceed basis, and \u00a7704(d) suspended losses carried forward.\n\nUse when: User holds direct MLP units (EPD, ET, MPLX, WES, PAA, NRP, USAC, SUN, or similar publicly traded midstream partnerships) and has structured K-1 box values for one tax year \u2014 Box 1 ordinary income, Box 19A cash distributions, Item K liability change, optionally Box 5 interest income, Box 11 \u00a7179 deduction, Box 13W \u00a7199A QBI amount. Single tax year, single lot.\n\nDon't use for: 1099-DIV ETFs (AMLP, MLPX, AMZA \u2014 these use RIC structure, no K-1, different tax regime \u2014 use a standard cost-basis calculator instead). Multi-year basis carryforward across consecutive K-1s \u2014 use k1_basis_multi_year. General partnership interests outside publicly traded MLPs (different \u00a71402 self-employment treatment).\n\nLimitations: Single tax year only \u2014 for multi-year basis tracking with \u00a7731 gain detection across years, use k1_basis_multi_year. Single-lot only \u2014 for multi-lot allocation and optimal sell ordering, see lucasandersen.ai. Federal-level only \u2014 does not include state basis adjustments.\n\nMaintained by Lucas Andersen, MS Finance, with direct positions in major midstream MLPs. Methodology auditable at lucasandersen.ai/methodology.",
"inputSchema": {
"properties": {
"box1": {
"description": "K-1 Box 1: ordinary business income (loss)",
"type": "number"
},
"box11": {
"description": "K-1 Box 11: \u00a7179 / other deductions",
"type": "number"
},
"box13w": {
"description": "K-1 Box 13W: \u00a7199A QBI amount",
"type": "number"
},
"box19a": {
"description": "K-1 Box 19A: cash distributions",
"type": "number"
},
"box2": {
"description": "K-1 Box 2: net rental income",
"type": "number"
},
"box5": {
"description": "K-1 Box 5: interest income",
"type": "number"
},
"liability_decrease": {
"description": "\u00a7752(b) liability decrease in USD",
"type": "number"
},
"liability_increase": {
"description": "\u00a7752(a) liability increase in USD",
"type": "number"
},
"prior_basis": {
"description": "Beginning-of-year adjusted basis in USD",
"type": "number"
},
"tax_bracket": {
"type": "number"
},
"ticker": {
"enum": [
"EPD",
"ET",
"MPLX",
"WES",
"PAA",
"NRP",
"USAC",
"SUN"
],
"type": "string"
},
"units": {
"type": "number"
}
},
"required": [
"ticker",
"units",
"prior_basis",
"box1",
"box19a"
],
"type": "object"
},
"name": "k1_basis_compute"
},
{
"annotations": {
"idempotentHint": true,
"readOnlyHint": true,
"title": "Multi-Year K-1 Basis & Broker-Gap Tracker"
},
"description": "Computes a running adjusted partner basis across multiple years of Schedule K-1 data, per IRC \u00a7705 (basis computation), \u00a7731(a)(1) (gain on distributions exceeding basis), \u00a7751(a) (accumulated ordinary recapture), \u00a7752 (liability share allocation across years), \u00a7704(d) (suspended-loss carryforward), and \u00a71014(a) (step-up if death today). Returns year-by-year basis trajectory, accumulated \u00a7751 recapture estimate, projected zero-basis year, \u00a71014 step-up value if death today, and the broker-basis gap \u2014 the dollar amount by which a typical 1099-B understates true IRS-adjusted basis.\n\nUse when: User holds a direct MLP position (EPD, ET, MPLX, WES, PAA, NRP, USAC, SUN) across multiple consecutive tax years, has K-1s for those years, and wants to track adjusted basis year over year, identify the zero-basis year, quantify the gap between broker-reported basis and true IRS basis, or project \u00a71014 step-up value if death occurred today.\n\nDon't use for: Single-year basis worksheet from one K-1 \u2014 use k1_basis_compute. Long-horizon forward projection from default assumptions when no actual K-1s are in hand \u2014 use mlp_projection. 1099-DIV ETFs (AMLP, MLPX, AMZA \u2014 RIC structure, no K-1, no basis-erosion mechanism; use a standard cost-basis calculator). Multi-position portfolio basis tracking \u2014 this tool handles one position per call.\n\nLimitations: Single position, single lot \u2014 for multi-lot or multi-position basis tracking with optimal sell ordering, see lucasandersen.ai. Federal-level only \u2014 does not include state-level basis adjustments. Accumulated \u00a7751 recapture is estimated across years; actual depends on the partnership's hot-asset disposition schedule and any year-specific \u00a7751(b) events.\n\nMaintained by Lucas Andersen, MS Finance, with direct positions in major midstream MLPs. Methodology auditable at lucasandersen.ai/methodology.",
"inputSchema": {
"properties": {
"k1_years": {
"description": "Array of annual K-1 data, one per year held (max 50)",
"items": {
"properties": {
"box1": {
"type": "number"
},
"box11": {
"type": "number"
},
"box19a": {
"type": "number"
},
"liability_decrease": {
"type": "number"
},
"liability_increase": {
"type": "number"
},
"year": {
"type": "number"
}
},
"required": [
"year",
"box1",
"box19a"
],
"type": "object"
},
"type": "array"
},
"purchase_price": {
"type": "number"
},
"purchase_year": {
"type": "number"
},
"tax_bracket": {
"type": "number"
},
"ticker": {
"enum": [
"EPD",
"ET",
"MPLX",
"WES",
"PAA",
"NRP",
"USAC",
"SUN"
],
"type": "string"
},
"units": {
"type": "number"
}
},
"required": [
"ticker",
"units",
"purchase_price",
"k1_years"
],
"type": "object"
},
"name": "k1_basis_multi_year"
}
]
}
},
"bad_protocol_status_code": 200,
"delete_error": null,
"delete_status_code": null,
"expired_session_error": null,
"expired_session_status_code": null,
"issues": [
"missing_session_id",
"missing_protocol_header",
"bad_protocol_not_rejected"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2024-11-05",
"session_id_present": false,
"transport": "streamable-http"
}
},
"remote_url": "https://api.lucasandersen.ai/mcp",
"server_card_payload": null,
"server_identifier": "ai.lucasandersen/mlp-tax"
}