Skip to main content
Glama

MLP Tax Computation Engine

k1_basis_multi_year

Read-onlyIdempotent

Computes a running adjusted partner basis across multiple years of Schedule K-1 data, per IRC §705, §731(a)(1), §751(a), §752 and §704(d), with §1014(a) cited for the successor's basis at death (R-1014-PTP-STEP-UP). Returns year-by-year basis trajectory, accumulated §751 recapture estimate and projected zero-basis year.

Use 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, or identify the zero-basis year.

Don't use for: Single-year basis worksheet from one K-1 — use k1_basis_compute. Long-horizon forward projection from default assumptions when no actual K-1s are in hand — use mlp_projection. 1099-DIV ETFs (AMLP, MLPX, AMZA): this tool does not model them. Multi-position portfolio basis tracking — this tool handles one position per call.

Limitations: Single position, single lot — for multi-lot or multi-position basis tracking with optimal sell ordering, see lucasandersen.ai. Federal-level only — does not include state-level basis adjustments. Accumulated §751 recapture is estimated across years; actual depends on the partnership's hot-asset disposition schedule and any year-specific §751(b) events. Full multi-year basis reconstruction with a CPA-ready workpaper is available at https://lucasandersen.ai/private-partnership-k1-basis?src=mcp&tool=k1_basis_multi_year&surface=description.

Maintained by Lucas Andersen, MS Finance, with direct positions in major midstream MLPs. Methodology auditable at lucasandersen.ai/methodology.

Input Schema

NameRequiredDescriptionDefault
unitsYes
tickerYes
k1_yearsYesArray of annual K-1 data, one per year held (max 50)
tax_bracketNo
purchase_yearNo
purchase_priceYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so safety is covered; the description adds real behavioral context: federal-only with no state adjustments, §751 recapture is an estimate dependent on hot-asset disposition schedules, and single-position/single-lot scope. It stops short of describing validation behavior or what happens with malformed/missing K-1 years, so not a full 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The functional content is well front-loaded and cleanly segmented into Use when / Don't use for / Limitations. However, two sentences are promotional rather than operational — the lucasandersen.ai upsell link and the 'Maintained by...' bio — which dilute a signal tool document and add length without helping invocation.

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?

With no output schema, the description correctly fills the gap by naming the three returns (basis trajectory, §751 recapture estimate, zero-basis year) and qualifying their accuracy. Combined with the limitations block, an agent has enough to call it correctly; the only missing piece is parameter-level detail given the low schema coverage.

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

Parameters3/5

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

Schema description coverage is only 17%, so the description must carry more of the load. It does contextualize the domain concepts that map to parameters (§752 liability adjustments, §704(d) limitations, §751 recapture) and names the ticker enum values, but it never explains box1, box11, box19a, liability_increase/decrease, tax_bracket or purchase_year semantics. Partial compensation for a genuine coverage gap.

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?

States a specific verb and resource ('Computes a running adjusted partner basis across multiple years of Schedule K-1 data') plus the statutory framework and the concrete outputs (year-by-year trajectory, §751 recapture estimate, projected zero-basis year). It is instantly distinguishable from k1_basis_compute (single-year) and mlp_projection (forward projection).

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

Usage Guidelines5/5

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

Explicit 'Use when' conditions (direct MLP position, consecutive years of K-1s, year-over-year tracking) and an explicit 'Don't use for' block that routes the agent to named siblings: k1_basis_compute for single-year, mlp_projection for no-K-1 projections. It even excludes 1099-DIV ETFs and multi-position portfolios with the right alternative.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources