Intangible Asset Valuation MCP Server
Server Details
Intangible asset valuation: 14 tools, 124+ formulas for IP, technology, goodwill, PPA, impairment.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP ยท MCP 2025-06-18
- URL
- Repository
- simonplmak-cloud/intangible-valuation
- GitHub Stars
- 0
- Server Listing
- Intangible Asset Valuation
TDQS
Scored across 14 tools
Each tool targets a distinct valuation approach, asset class, or lifecycle step, and the descriptions explicitly route users to the correct tool when overlaps exist (e.g., income methods vs. asset-specific tools). The extensive cross-references and method-specific guidance make misselection unlikely for an agent that reads the descriptions.
All tool names use a consistent snake_case pattern with the shared valuation_ prefix followed by a clear domain or approach label. There are no mixed conventions or vague verbs, so the naming is predictable throughout the set.
With 14 tools, the server is well-scoped for the breadth of intangible asset valuation. Each tool earns its place by covering a distinct methodology or asset category, and the count stays within a reasonable range for an MCP server.
The surface covers the major valuation approaches, asset classes, discount-rate construction, time value, compliance, and uncertainty analysis, leaving few gaps. A dedicated reconciliation tool for combining multiple valuation indications is absent, but this is a minor gap that agents can work around.
Available Tools
14 toolsvaluation_complianceTransfer Pricing & LitigationARead-onlyIdempotentInspect
Transfer pricing and litigation: the Comparable Uncontrolled Price arm's-length range and patent infringement damages with pre-judgment interest. Method selects the formula. Use for OECD transfer-pricing pricing of intercompany intangibles and for patent infringement damages awards. For royalty-rate benchmarking to set a rate use valuation_royalty_analysis; for the substantive asset valuation use valuation_ip or valuation_income_methods. Per method: cup_transfer_price needs controlled_price + uncontrolled_prices; patent_infringement_damages needs lost_profits_or_royalty + infringement_period + discount_rate + prejudgment_interest_rate. uncontrolled_prices must contain at least one comparable price for the arm's-length range. Only method is required; other parameters are method-dependent, so supply those named for the selected method and omit the rest (documented defaults apply where defined). Pure arithmetic: no I/O and no external calls, and numeric results are returned rounded to 2 decimals. Parameters belonging to other methods of this tool are accepted and ignored. Supplying an unknown method, or leaving unset a parameter that the chosen method requires, returns an error instead of a value.
| Name | Required | Description | Default |
|---|---|---|---|
| method | Yes | Formula to apply. Options: cup_transfer_price = Arm's-length range from comparable uncontrolled prices.; patent_infringement_damages = Lost profits or reasonable royalty plus prejudgment interest. | |
| discount_rate | No | Per-period discount rate as a decimal (0.10 = 10%). | |
| controlled_price | No | Intercompany (controlled) price, in currency units. | |
| infringement_period | No | Infringement period in years. | |
| uncontrolled_prices | No | Comparable uncontrolled prices, in currency units. | |
| lost_profits_or_royalty | No | Annual lost profits or reasonable royalty, in currency units. | |
| prejudgment_interest_rate | No | Pre-judgment interest rate as a decimal. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message when the call fails. |
| steps | No | Intermediate calculation steps for traceability (one string per step). |
| value | Yes | Computed valuation, rate, or metric. |
| method | No | Formula / method name that produced the result. |
| assumptions | No | Modelling assumptions applied (list of strings or key/value object). |
| formula_reference | No | Mathematical formula or reference applied. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/closed-world, but the description adds real value: pure arithmetic with no I/O or external calls, results rounded to 2 decimals, parameters of non-selected methods silently accepted and ignored, and an explicit error contract for unknown methods or missing required method params. It does not, however, describe output shape in detail (though an output schema exists).
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?
Dense but front-loaded: purpose, then routing to siblings, then per-method parameter requirements, then behavioral/error notes. Every sentence carries information, though the block is longer than strictly necessary for a single calculator tool.
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?
All seven parameters are documented in the schema, an output schema exists so return values need no prose, and the description supplies the method-to-parameter mapping plus error and rounding behavior. An agent has everything needed to invoke either branch correctly.
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% for individual fields, yet the description adds cross-parameter semantics the schema cannot express: which parameters belong to which method (cup_transfer_price needs controlled_price + uncontrolled_prices; patent_infringement_damages needs lost_profits_or_royalty + infringement_period + discount_rate + prejudgment_interest_rate), and the constraint that uncontrolled_prices must contain at least one comparable.
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?
States a specific computation (Comparable Uncontrolled Price arm's-length range and patent infringement damages with pre-judgment interest) and explicitly scopes it to OECD intercompany-intangible pricing and patent damages. It also names the sibling tools it is NOT (valuation_royalty_analysis, valuation_ip, valuation_income_methods), so an agent can route without opening schemas.
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?
Gives explicit when-to-use cases ('OECD transfer-pricing pricing of intercompany intangibles', 'patent infringement damages awards') and names the correct alternatives for adjacent tasks (royalty-rate benchmarking, substantive asset valuation). Method selection is also described per branch, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
valuation_cost_approachCost ApproachARead-onlyIdempotentInspect
Cost approach: depreciated reproduction cost from a cost breakdown and depreciated replacement cost with equivalent utility, both reduced by obsolescence. Method selects the formula. Use when no income or market evidence exists, or to corroborate income and market indications for internally developed intangibles. For income-based indications use valuation_income_methods; for market evidence use valuation_market_approach. Per method: reproduction_cost needs development_costs (optional: obsolescence_factors); replacement_cost needs current_cost (optional: obsolescence_factors). obsolescence_factors values are decimals that are summed and applied to the cost base; omit them for no obsolescence. Only method is required; other parameters are method-dependent, so supply those named for the selected method and omit the rest (documented defaults apply where defined). Pure arithmetic: no I/O and no external calls, and numeric results are returned rounded to 2 decimals. Parameters belonging to other methods of this tool are accepted and ignored. Supplying an unknown method, or leaving unset a parameter that the chosen method requires, returns an error instead of a value.
| Name | Required | Description | Default |
|---|---|---|---|
| method | Yes | Formula to apply. Options: reproduction_cost = Sum of cost categories less total obsolescence.; replacement_cost = Current cost of equivalent utility less obsolescence. | |
| current_cost | No | Current cost to replace the asset with equivalent utility, in currency units. | |
| development_costs | No | Cost breakdown by category, e.g. {"r_and_d": 1000000, "testing": 250000}, in currency units. | |
| obsolescence_factors | No | Obsolescence factors, e.g. {"functional": 0.10, "technological": 0.15, "economic": 0.05}. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message when the call fails. |
| steps | No | Intermediate calculation steps for traceability (one string per step). |
| value | Yes | Computed valuation, rate, or metric. |
| method | No | Formula / method name that produced the result. |
| assumptions | No | Modelling assumptions applied (list of strings or key/value object). |
| formula_reference | No | Mathematical formula or reference applied. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/idempotent annotations: declares pure arithmetic with no I/O or external calls, rounding to 2 decimals, that parameters of other methods are accepted and ignored, and that an unknown method or a missing required method-parameter yields an error rather than a value. These are exactly the behavioral traits an agent needs.
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?
Front-loaded with the core definition and routing, then method-specific requirements and edge-case behavior. Dense but each sentence carries information; the method-dependent parameter detail makes it longer than strictly minimal, without waste.
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?
An output schema exists so return values need no explanation, and the description still covers method selection, required vs optional parameters, defaults, error conditions, and the arithmetic nature of the tool. Complete for a four-parameter computational 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%, but the description still adds real meaning: which parameters each method requires, that obsolescence_factors are decimals summed and applied to the cost base, that omission means no obsolescence, and that unneeded parameters should be omitted. Slightly less precise on how development_costs categories aggregate, but clearly above the 3 baseline.
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?
States the specific resource (cost approach valuation) and the two concrete formulas it computes (depreciated reproduction cost, depreciated replacement cost). It also distinguishes itself from valuation_income_methods and valuation_market_approach, so an agent can route correctly without opening schemas.
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?
Explicit when-to-use ('no income or market evidence exists, or to corroborate income and market indications') and names the two alternative sibling tools with their conditions. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
valuation_customerCustomer-Related AssetsARead-onlyIdempotentInspect
Customer-related intangibles: customer relationships with attrition, distribution networks by channel profitability, and non-compete agreements on protected profits. Method selects the formula. Use for customer relationships, distribution networks, and non-compete assets; customer_relationships projects multi-period revenue with a retention rate. For the workforce and key-person assets use valuation_human_capital; for technology assets use valuation_technology. Per method: customer_relationships needs customer_count + avg_revenue_per_customer + retention_rate + profit_margin + discount_rate + projection_period; distribution_network needs channel_count + revenue_per_channel + channel_margin + useful_life + discount_rate; non_compete needs protected_revenue + profit_margin + term + enforcement_probability + discount_rate. retention_rate and enforcement_probability are in [0,1]; projection_period sets the number of discounted periods. Only method is required; other parameters are method-dependent, so supply those named for the selected method and omit the rest (documented defaults apply where defined). Pure arithmetic: no I/O and no external calls, and numeric results are returned rounded to 2 decimals. Parameters belonging to other methods of this tool are accepted and ignored. Supplying an unknown method, or leaving unset a parameter that the chosen method requires, returns an error instead of a value.
| Name | Required | Description | Default |
|---|---|---|---|
| term | No | Non-compete term in years. | |
| method | Yes | Formula to apply. Options: customer_relationships = Multi-period revenue net of attrition, discounted.; distribution_network = Channel revenue times margin over the useful life.; non_compete = Protected profit under an enforcement probability, discounted. | |
| useful_life | No | Useful life in years n. | |
| channel_count | No | Number of distribution channels. | |
| discount_rate | No | Per-period discount rate as a decimal (0.10 = 10%). | |
| profit_margin | No | Profit margin as a decimal (0.20 = 20%). | |
| channel_margin | No | Channel profit margin as a decimal. | |
| customer_count | No | Number of customers. | |
| retention_rate | No | Annual customer retention rate, in [0,1]. | |
| projection_period | No | Projection horizon in years. | |
| protected_revenue | No | Annual revenue protected by the non-compete, in currency units. | |
| revenue_per_channel | No | Annual revenue per channel, in currency units. | |
| enforcement_probability | No | Probability the non-compete is enforceable, in [0,1]. | |
| avg_revenue_per_customer | No | Average annual revenue per customer, in currency units. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message when the call fails. |
| steps | No | Intermediate calculation steps for traceability (one string per step). |
| value | Yes | Computed valuation, rate, or metric. |
| method | No | Formula / method name that produced the result. |
| assumptions | No | Modelling assumptions applied (list of strings or key/value object). |
| formula_reference | No | Mathematical formula or reference applied. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered; the description nonetheless adds real behavioral context: pure arithmetic with no I/O or external calls, results rounded to 2 decimals, extraneous method parameters accepted and ignored, and an error (not a value) for unknown methods or missing required params. It does not restate annotations. A 4 rather than 5 only because it never describes default values beyond noting 'documented defaults apply where defined.'
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?
Lengthy, but front-loaded with the asset scope and method routing before the parameter detail, and every sentence carries distinct information (routing, per-method params, error behavior, output rounding). The dense per-method parameter list is the only part that reads as a wall of text.
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 14-parameter, method-dispatching calculator with an output schema, the description fully covers method selection, required-vs-ignored parameters, constraints, error semantics, and result formatting; nothing an agent needs to invoke it correctly is missing.
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 goes beyond the flat schema by grouping parameters per method and stating which set to supply, plus clarifying units/constraints (retention_rate and enforcement_probability in [0,1], projection_period = number of discounted periods), which the flat schema alone does not organize.
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?
Opens with a specific resource class (customer-related intangibles) and enumerates the three assets it values: customer relationships, distribution networks, and non-compete agreements. It explicitly routes similar-sounding needs to siblings (valuation_human_capital, valuation_technology), so the agent can distinguish it without opening schemas.
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?
Gives explicit when-to-use conditions per method and names the alternative tools for adjacent asset classes (workforce/key-person vs technology). The 'Only method is required; other parameters are method-dependent' rule tells the agent exactly how to compose a call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
valuation_discount_rateDiscount & Capitalization RatesARead-onlyIdempotentInspect
Construct discount and capitalization rates: build-up, CAPM, WACC, tax-amortization benefit, control premium, Finnerty DLOM, and currency/country-risk adjustment. Method selects the formula. Use to derive the rate that feeds every income-based method; build_up and capm estimate cost of equity, wacc blends debt and equity. For a cross-border rate with currency and country premia use method currency_adjusted; for the cash flows the rate discounts use valuation_time_value. Per method: build_up needs risk_free_rate + equity_risk_premium (optional: size_premium, industry_risk_premium, specific_risk_premium); capm needs risk_free_rate + beta + market_return; wacc needs equity_value + debt_value + cost_of_equity + cost_of_debt + tax_rate; tax_amortization_benefit needs discount_rate + useful_life + tax_rate + asset_value; control_premium needs minority_price + control_price; dlom_finnerty needs restricted_period + volatility + risk_free_rate; currency_adjusted needs base_rate (optional: currency_risk_premium, country_risk_premium). All rates and premiums are decimals; wacc requires both equity_value and debt_value, and dlom_finnerty volatility is an annualized decimal. Only method is required; other parameters are method-dependent, so supply those named for the selected method and omit the rest (documented defaults apply where defined). Pure arithmetic: no I/O and no external calls, and numeric results are returned rounded to 2 decimals. Parameters belonging to other methods of this tool are accepted and ignored. Supplying an unknown method, or leaving unset a parameter that the chosen method requires, returns an error instead of a value.
| Name | Required | Description | Default |
|---|---|---|---|
| beta | No | Systematic risk beta (market = 1.0). | |
| method | Yes | Formula to apply. Options: build_up = r = Rf + ERP + size + industry + specific premiums.; capm = r = Rf + beta * (Rm - Rf).; wacc = WACC = (E/V) Re + (D/V) Rd (1 - Tc).; tax_amortization_benefit = PV of the tax shield from amortizing the asset.; control_premium = (Control price - minority price) / minority price.; dlom_finnerty = Finnerty average-strike put option DLOM.; currency_adjusted = r = base rate + currency premium + country premium. | |
| tax_rate | No | Marginal tax rate as a decimal (0.25 = 25%). | |
| base_rate | No | Base discount rate before currency/country adjustment, as a decimal. | |
| debt_value | No | Market value of debt D, in currency units. | |
| volatility | No | Annualized volatility sigma as a decimal (0.30 = 30%). | |
| asset_value | No | Asset value the tax amortization benefit is computed on, in currency units. | |
| useful_life | No | Useful life in years n. | |
| cost_of_debt | No | Pre-tax cost of debt Rd as a decimal. | |
| equity_value | No | Market value of equity E, in currency units. | |
| size_premium | No | Small-size premium as a decimal. | |
| control_price | No | Controlling-interest share price or value, in currency units. | |
| discount_rate | No | Per-period discount rate as a decimal (0.10 = 10%). | |
| market_return | No | Expected market return as a decimal (0.10 = 10%). | |
| cost_of_equity | No | Cost of equity Re as a decimal. | |
| minority_price | No | Minority (pre-control) share price or value, in currency units. | |
| risk_free_rate | No | Risk-free rate as a decimal (0.04 = 4%). | |
| restricted_period | No | Restricted / marketability period in years t. | |
| equity_risk_premium | No | Equity risk premium as a decimal (0.06 = 6%). | |
| country_risk_premium | No | Country risk premium as a decimal. | |
| currency_risk_premium | No | Currency risk premium as a decimal. | |
| industry_risk_premium | No | Industry risk premium as a decimal. | |
| specific_risk_premium | No | Company-specific risk premium as a decimal. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message when the call fails. |
| steps | No | Intermediate calculation steps for traceability (one string per step). |
| value | Yes | Computed valuation, rate, or metric. |
| method | No | Formula / method name that produced the result. |
| assumptions | No | Modelling assumptions applied (list of strings or key/value object). |
| formula_reference | No | Mathematical formula or reference applied. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior, but the description adds valuable behavioral context: pure arithmetic with no I/O or external calls, numeric results rounded to 2 decimals, unknown methods or missing required parameters return an error, and parameters belonging to other methods are accepted and ignored.
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 dense but appropriately sized for a tool with 23 parameters and 7 distinct formulas. It is front-loaded with purpose and method-selection guidance, then systematically lists per-method parameter needs, and every sentence contributes necessary information without repetition or fluff.
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 complex multi-method calculation tool with full schema coverage, annotations, and an output schema, the description is complete. It covers method selection, per-method prerequisites, default behavior, error handling, numeric rounding, and the fact that irrelevant parameters are ignored, leaving no gaps an agent would need to fill.
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 schema already documents each parameter individually, but the description adds crucial method-dependent semantics: it maps each of the seven methods to its required and optional parameters, notes that wacc requires both equity_value and debt_value, specifies that dlom_finnerty volatility is annualized, and clarifies that only method is required while other parameters are method-specific.
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?
States a specific verb (Construct) and resources (discount and capitalization rates), lists all seven supported methods, and explicitly distinguishes itself from the sibling valuation_time_value for discounted cash flows. An agent can identify exactly what the tool does and how it relates to the income-based methods.
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?
Gives explicit when-to-use guidance: method selects the formula, use for the rate that feeds income-based methods, use currency_adjusted for cross-border rates, and use valuation_time_value for the cash flows themselves. It names the alternative tool and the condition that selects it, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
valuation_goodwill_ppaGoodwill & Purchase Price AllocationARead-onlyIdempotentInspect
Goodwill and purchase price allocation: goodwill as the residual, a full PPA waterfall across identified intangibles, and useful-life estimation. Method selects the formula. Use for ASC 805 / IFRS 3 business combinations; purchase_price_allocation allocates consideration to identified intangibles with the remainder to goodwill. For subsequent goodwill and intangible impairment testing use valuation_impairment; for individual intangible fair values feed valuation_ip, valuation_technology or valuation_customer into the allocation. Per method: goodwill needs purchase_price + fair_value_net_identifiable_assets; purchase_price_allocation needs purchase_price + tangible_assets_fv + identified_intangibles (optional: liabilities_fv); useful_life needs asset_type (optional: legal_life, economic_factors, obsolescence_rate). identified_intangibles values are summed before goodwill is taken as the residual; liabilities_fv reduces net identifiable assets. Only method is required; other parameters are method-dependent, so supply those named for the selected method and omit the rest (documented defaults apply where defined). Pure arithmetic: no I/O and no external calls, and numeric results are returned rounded to 2 decimals. Parameters belonging to other methods of this tool are accepted and ignored. Supplying an unknown method, or leaving unset a parameter that the chosen method requires, returns an error instead of a value.
| Name | Required | Description | Default |
|---|---|---|---|
| method | Yes | Formula to apply. Options: goodwill = Goodwill = purchase price - fair value of net identifiable assets.; purchase_price_allocation = Allocate consideration across identified intangibles.; useful_life = Estimate economic/legal useful life of an intangible. | |
| asset_type | No | Asset type, e.g. "patent", "trademark", "software", "customer_list". | |
| legal_life | No | Legal protection period in years (overrides the asset-type default). | |
| liabilities_fv | No | Fair value of assumed liabilities, in currency units. | |
| purchase_price | No | Total consideration / purchase price, in currency units. | |
| economic_factors | No | Economic adjustment factors, e.g. {"market_growth": 0.05, "competition": 0.4, "tech_change": 0.1}. | |
| obsolescence_rate | No | Annual obsolescence rate as a decimal. | |
| tangible_assets_fv | No | Fair value of tangible assets, in currency units. | |
| identified_intangibles | No | Identified intangibles, each {name, value} or {name, fair_value}. | |
| fair_value_net_identifiable_assets | No | Fair value of net identifiable assets, in currency units. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message when the call fails. |
| steps | No | Intermediate calculation steps for traceability (one string per step). |
| value | Yes | Computed valuation, rate, or metric. |
| method | No | Formula / method name that produced the result. |
| assumptions | No | Modelling assumptions applied (list of strings or key/value object). |
| formula_reference | No | Mathematical formula or reference applied. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, idempotent, non-destructive), the description discloses that only method is required and the rest are method-dependent, that foreign-method params are accepted and ignored, that unknown/missing params error out, and that results are rounded to 2 decimals with no I/O. This is rich behavioral context the structured fields do not carry.
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?
Front-loaded with purpose, then routing, then per-method parameter needs. Dense but every sentence carries information; the long run-on per-method clause is the only mild readability cost.
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?
With an output schema present the description need not explain returns, and it covers everything else an agent needs: scope standard, method branching, required vs optional params, error behavior, and determinism. Nothing material is missing for a 10-param, 3-method 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 baseline is 3, but the description adds real semantic value: per-method required params, that identified_intangibles are summed before goodwill is the residual, and that liabilities_fv reduces net identifiable assets. It stops short of syntax detail for nested economic_factors, hence not a 5.
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?
States a specific verb+resource (goodwill residual, full PPA waterfall, useful-life estimation) and immediately distinguishes siblings by naming valuation_impairment for subsequent testing and valuation_ip/technology/customer for feeding individual intangibles. An agent can route correctly without opening schemas.
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?
Explicitly scopes to ASC 805 / IFRS 3 business combinations and names the when-not alternative (subsequent impairment โ valuation_impairment) plus the feeder tools. The method-selection sentence ('Method selects the formula') tells the agent exactly which branch to take.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
valuation_human_capitalHuman CapitalARead-onlyIdempotentInspect
Human capital: assembled-workforce value by replacement cost and key-person value from revenue contribution and departure risk. Method selects the formula. Use for assembled workforce and key-person intangibles; assembled_workforce nets training and attrition into a replacement cost. For customer-related assets use valuation_customer; for technology assets use valuation_technology. Per method: assembled_workforce needs employee_count + avg_replacement_cost + training_cost + productivity_factor + attrition_rate; key_person needs revenue_contribution + replacement_cost + departure_probability + discount_rate. attrition_rate is in [0,1]; productivity_factor scales the replacement cost (1.0 = parity). Only method is required; other parameters are method-dependent, so supply those named for the selected method and omit the rest (documented defaults apply where defined). Pure arithmetic: no I/O and no external calls, and numeric results are returned rounded to 2 decimals. Parameters belonging to other methods of this tool are accepted and ignored. Supplying an unknown method, or leaving unset a parameter that the chosen method requires, returns an error instead of a value.
| Name | Required | Description | Default |
|---|---|---|---|
| method | Yes | Formula to apply. Options: assembled_workforce = Replacement cost including training, net of attrition.; key_person = Revenue contribution and replacement cost under departure risk. | |
| discount_rate | No | Per-period discount rate as a decimal (0.10 = 10%). | |
| training_cost | No | Training cost per employee, in currency units. | |
| attrition_rate | No | Annual attrition rate, in [0,1]. | |
| employee_count | No | Number of employees. | |
| replacement_cost | No | Cost to replace the key person, in currency units. | |
| productivity_factor | No | Productivity factor on replacement cost (1.0 = parity). | |
| avg_replacement_cost | No | Average cost to replace one employee, in currency units. | |
| revenue_contribution | No | Annual revenue contribution, in currency units. | |
| departure_probability | No | Annual probability the key person departs, in [0,1]. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message when the call fails. |
| steps | No | Intermediate calculation steps for traceability (one string per step). |
| value | Yes | Computed valuation, rate, or metric. |
| method | No | Formula / method name that produced the result. |
| assumptions | No | Modelling assumptions applied (list of strings or key/value object). |
| formula_reference | No | Mathematical formula or reference applied. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/no-open-world, and the description adds substantial non-obvious behavior: pure arithmetic with no I/O, results rounded to 2 decimals, error on unknown method or missing method-required parameter, and extra method parameters silently ignored. These are failure modes an agent must know and are not derivable from annotations.
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?
Front-loads purpose, then routing, then per-method parameters, then edge-case behavior โ a sensible order with no filler. It is dense and long, with some restatement of schema-documented ranges, but nearly every sentence carries operational weight.
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 10-parameter, method-branching calculator with an output schema, the description covers required vs optional params, defaults, ignore semantics, and error conditions. Return-value explanation is correctly omitted since the output schema exists.
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 units and ranges are already documented; the description's value-add is the per-method parameter grouping (assembled_workforce needs five named params, key_person needs four) and the guidance to supply only the selected method's params and omit the rest. It repeats the [0,1] and 1.0=parity notes already in the schema, so it stops short of a 5.
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?
States a specific output (assembled-workforce value by replacement cost, key-person value from revenue contribution and departure risk) and explicitly names the sibling tools it is not (valuation_customer, valuation_technology). An agent can route to it without opening the schema.
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?
Gives explicit use cases ('use for assembled workforce and key-person intangibles') plus exclusion routing to valuation_customer and valuation_technology. The method-selection rule ('Method selects the formula') tells the agent how to choose between the two internal paths.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
valuation_impairmentImpairment TestingARead-onlyIdempotentInspect
Impairment testing: goodwill impairment and intangible impairment under US GAAP (ASC 350) or IFRS (IAS 36). Method selects the formula. Use for annual or triggering-event impairment testing; goodwill_impairment compares a reporting unit's carrying value with its fair value. To compute the initial goodwill or allocation use valuation_goodwill_ppa; for the underlying asset fair values use the relevant asset-type tool. Per method: goodwill_impairment needs carrying_value + fair_value (optional: reporting_unit, standard); intangible_impairment needs carrying_value (optional: fair_value, recoverable_amount, standard). fair_value is required for ASC350; recoverable_amount is required for IAS36. Only method is required; other parameters are method-dependent, so supply those named for the selected method and omit the rest (documented defaults apply where defined). Pure arithmetic: no I/O and no external calls, and numeric results are returned rounded to 2 decimals. Parameters belonging to other methods of this tool are accepted and ignored. Supplying an unknown method, or leaving unset a parameter that the chosen method requires, returns an error instead of a value.
| Name | Required | Description | Default |
|---|---|---|---|
| method | Yes | Formula to apply. Options: goodwill_impairment = Impairment = carrying value - fair value (if positive).; intangible_impairment = Impairment of an intangible under ASC 350 or IAS 36. | |
| standard | No | Accounting standard: ASC350 for US GAAP, IAS36 for IFRS. | |
| fair_value | No | Fair value of the reporting unit or asset, in currency units. | |
| carrying_value | No | Carrying value of the reporting unit or asset, in currency units. | |
| reporting_unit | No | Reporting unit name (goodwill only). | |
| recoverable_amount | No | Recoverable amount (IAS 36), in currency units. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message when the call fails. |
| steps | No | Intermediate calculation steps for traceability (one string per step). |
| value | Yes | Computed valuation, rate, or metric. |
| method | No | Formula / method name that produced the result. |
| assumptions | No | Modelling assumptions applied (list of strings or key/value object). |
| formula_reference | No | Mathematical formula or reference applied. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world, non-destructive, so the safety profile is covered. The description adds genuinely new behavior: pure arithmetic with no I/O or external calls, results rounded to 2 decimals, other methods' parameters accepted and ignored, and error-on-unknown-method/missing-required behavior. It does not describe output shape, but an output schema exists.
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?
Front-loaded with purpose and routing, then the per-method parameter contract, then error semantics. Dense but mostly earns its place; the repeated restatement of method-dependence ('other parameters are method-dependent, so supply those named...') is somewhat redundant.
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 calculator tool with an output schema and full annotation coverage, the description supplies everything an agent needs: method enumeration, per-method required/optional inputs, standard-conditional requirements, and error behavior. Nothing essential to correct invocation is missing.
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, but the description adds cross-parameter conditional logic the schema lacks: which parameters each method needs, that fair_value is required for ASC350 and recoverable_amount for IAS36, and that non-selected methods' parameters are ignored. Minor tension between calling fair_value 'optional' for goodwill_impairment and 'required for ASC350' slightly muddies the guidance.
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 states a specific verb+resource (impairment testing of goodwill and intangibles) and frames it under named accounting standards (ASC 350 / IAS 36). It explicitly distinguishes itself from valuation_goodwill_ppa (initial goodwill/allocation) and points to asset-type siblings for underlying fair values, so an agent can route correctly without opening schemas.
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?
Gives explicit when-to-use ('annual or triggering-event impairment testing') and per-method selection rules (goodwill_impairment vs intangible_impairment). It names the sibling to use instead for initial goodwill/allocation work and for asset fair values, and states the failure conditions (unknown method or missing required parameter errors out) rather than returning a value.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
valuation_income_methodsIncome MethodsARead-onlyIdempotentInspect
Income approach: relief from royalty, multi-period and single-period excess earnings, incremental cash flow, and contributory asset charges. Method selects the formula. Use for the income-approach arithmetic: relief_from_royalty for IP with observable royalty rates, and excess earnings (mpeem or single_period_excess_earnings) for the residual intangible. For a complete asset-specific valuation of customer, technology, IP or workforce assets, prefer the dedicated valuation_customer, valuation_technology, valuation_ip and valuation_human_capital tools. For royalty-rate inputs use valuation_royalty_analysis; for asset-specific income valuations use valuation_customer, valuation_technology, valuation_ip or valuation_human_capital; for cost or market indications use valuation_cost_approach and valuation_market_approach. Per method: relief_from_royalty needs revenue_projections + royalty_rate + discount_rate + tax_rate + useful_life (optional: tab_enabled); mpeem needs cash_flow_projections + contributory_asset_charges + discount_rate + tax_rate (optional: tab_enabled); single_period_excess_earnings needs normalized_earnings + contributory_asset_charges + capitalization_rate; incremental_cashflow needs cash_flows_with + cash_flows_without + discount_rate; contributory_asset_charges needs assets. cash_flow_projections and contributory_asset_charges must be period-aligned; cash_flows_with and cash_flows_without must be equal length. Only method is required; other parameters are method-dependent, so supply those named for the selected method and omit the rest (documented defaults apply where defined). Pure arithmetic: no I/O and no external calls, and numeric results are returned rounded to 2 decimals. Parameters belonging to other methods of this tool are accepted and ignored. Supplying an unknown method, or leaving unset a parameter that the chosen method requires, returns an error instead of a value.
| Name | Required | Description | Default |
|---|---|---|---|
| assets | No | Contributory assets, each {value, return_rate}. | |
| method | Yes | Formula to apply. Options: relief_from_royalty = PV of after-tax royalties avoided by ownership.; mpeem = PV of excess earnings after contributory asset charges.; single_period_excess_earnings = Capitalize one period of excess earnings.; incremental_cashflow = PV of cash flows with the asset minus without it.; contributory_asset_charges = Total contributory asset charges. | |
| tax_rate | No | Marginal tax rate as a decimal (0.25 = 25%). | |
| tab_enabled | No | Whether to include the tax amortization benefit in the result. | |
| useful_life | No | Useful life in years n. | |
| royalty_rate | No | Royalty rate as a decimal (0.05 = 5% of revenue). | |
| discount_rate | No | Per-period discount rate as a decimal (0.10 = 10%). | |
| cash_flows_with | No | Cash flows per period with the asset, in currency units. | |
| cash_flows_without | No | Cash flows per period without the asset, in currency units. | |
| capitalization_rate | No | Capitalization rate as a decimal (0.15 = 15%). | |
| normalized_earnings | No | Single-period normalized earnings, in currency units. | |
| revenue_projections | No | Projected revenue per period t=1..n, in currency units. | |
| cash_flow_projections | No | Projected after-tax cash flows per period t=1..n, in currency units. | |
| contributory_asset_charges | No | Contributory asset charge per period t=1..n, in currency units. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message when the call fails. |
| steps | No | Intermediate calculation steps for traceability (one string per step). |
| value | Yes | Computed valuation, rate, or metric. |
| method | No | Formula / method name that produced the result. |
| assumptions | No | Modelling assumptions applied (list of strings or key/value object). |
| formula_reference | No | Mathematical formula or reference applied. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive, and the description adds substantial context beyond them: pure arithmetic with no I/O or external calls, results rounded to 2 decimals, extra method parameters are accepted and ignored, and unknown methods or missing method-required parameters raise an error rather than returning a value. This is exactly the error/failure behavior an agent needs.
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?
Dense but well front-loaded: purpose, then routing, then per-method parameter contracts, then behavioral notes. One flaw is mild redundancy โ the asset-specific sibling list ('valuation_customer, valuation_technology, valuation_ip or valuation_human_capital') is repeated twice in adjacent sentences, which could be tightened.
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 14-parameter, method-branching arithmetic tool with an output schema present, the description covers routing, per-method required inputs, alignment constraints, defaults, and error behavior. Nothing needed to invoke it correctly is missing, and return-value formatting is not required since an output schema exists (the 2-decimal rounding note is a bonus).
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 already 100%, yet the description adds the cross-parameter contract the schema cannot express: per-method required inputs, the period-alignment constraint between cash_flow_projections and contributory_asset_charges, the equal-length requirement for cash_flows_with/cash_flows_without, tab_enabled as optional, and the rule that only 'method' is required.
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?
States a specific verb/resource ('income-approach arithmetic' via enumerated formulas: relief_from_royalty, mpeem, single_period_excess_earnings, incremental_cashflow, contributory_asset_charges) and explicitly names the siblings it is not (valuation_customer, valuation_technology, valuation_ip, valuation_human_capital). An agent can select it over the cost/market approach tools without opening any schema.
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?
Gives explicit when-to-use routing: 'relief_from_royalty for IP with observable royalty rates' and excess earnings 'for the residual intangible', plus a stated preference rule ('for a complete asset-specific valuation... prefer the dedicated valuation_customer, valuation_technology, valuation_ip and valuation_human_capital tools'). Alternatives for royalty inputs, cost and market indications are named directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
valuation_ipIntellectual PropertyARead-onlyIdempotentInspect
Intellectual property: risk-adjusted patent value, trademark/brand value, copyright income value, and trade-secret value under secrecy risk. Method selects the formula. Use to value a specific IP right; patent weights projected cash flows by probability of success, trademark uses brand strength to set the royalty. For technology, software, data, and platform assets use valuation_technology; for customer and workforce assets use valuation_customer and valuation_human_capital. Per method: patent needs remaining_life + cash_flow_projections + probability_of_success + discount_rate (optional: comparable_license_rates); trademark needs revenue + profit_margin + brand_strength_index + discount_rate + useful_life (optional: brand_method); copyright needs projected_revenue + useful_life + discount_rate + royalty_rate; trade_secret needs development_cost + economic_life + competitive_advantage_period + discount_rate + secrecy_probability. cash_flow_projections for patent run over remaining_life. Only method is required; other parameters are method-dependent, so supply those named for the selected method and omit the rest (documented defaults apply where defined). Pure arithmetic: no I/O and no external calls, and numeric results are returned rounded to 2 decimals. Parameters belonging to other methods of this tool are accepted and ignored. Supplying an unknown method, or leaving unset a parameter that the chosen method requires, returns an error instead of a value.
| Name | Required | Description | Default |
|---|---|---|---|
| method | Yes | Formula to apply. Options: patent = Risk-adjusted DCF over the patent's remaining life.; trademark = Brand value by relief-from-royalty or excess earnings.; copyright = PV of expected copyright royalty income.; trade_secret = Value under secrecy risk over the economic life. | |
| revenue | No | Annual revenue attributable to the asset, in currency units. | |
| useful_life | No | Useful life in years n. | |
| brand_method | No | Trademark method: relief_from_royalty adjusts the royalty rate by brand strength; excess_earnings capitalizes excess earnings. | |
| royalty_rate | No | Royalty rate as a decimal (0.05 = 5% of revenue). | |
| discount_rate | No | Per-period discount rate as a decimal (0.10 = 10%). | |
| economic_life | No | Economic life in years. | |
| profit_margin | No | Profit margin as a decimal (0.20 = 20%). | |
| remaining_life | No | Remaining legal/economic life of the patent in years. | |
| development_cost | No | Development or acquisition cost, in currency units. | |
| projected_revenue | No | Projected annual revenue subject to the copyright royalty, in currency units. | |
| secrecy_probability | No | Probability the trade secret remains secret, in [0,1]. | |
| brand_strength_index | No | Brand strength index on a 0-100 scale (75 = strong). | |
| cash_flow_projections | No | Projected after-tax cash flows per period t=1..n, in currency units. | |
| probability_of_success | No | Probability of technical and commercial success, in [0,1]. | |
| comparable_license_rates | No | Comparable license royalty rates as decimals. | |
| competitive_advantage_period | No | Years the competitive advantage is expected to persist. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message when the call fails. |
| steps | No | Intermediate calculation steps for traceability (one string per step). |
| value | Yes | Computed valuation, rate, or metric. |
| method | No | Formula / method name that produced the result. |
| assumptions | No | Modelling assumptions applied (list of strings or key/value object). |
| formula_reference | No | Mathematical formula or reference applied. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), but the description adds genuinely non-derivable behavior: pure arithmetic with no I/O or external calls, results rounded to 2 decimals, parameters for other methods silently accepted and ignored, and errors returned for unknown methods or missing method-required params. The one thing it doesn't do is describe what the returned value looks like, though an output schema exists.
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?
Front-loaded with purpose and routing, then method-by-method parameter requirements. It is long, but for 17 parameters across four formulas most sentences carry necessary conditional detail. Minor redundancy between 'Method selects the formula' and the later required/optional explanation.
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 an output schema exists, return formatting need not be explained, and the description covers the remaining gaps an agent needs: method selection, per-method inputs, default behavior, ignored cross-method params, and error conditions. Nothing needed to invoke it correctly is missing.
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, but the description adds conditional information the flat schema cannot express: the exact required parameter set per method (e.g. patent = remaining_life + cash_flow_projections + probability_of_success + discount_rate), which parameters are optional, and that cash_flow_projections span remaining_life. It doesn't restate units or decimal conventions, which the schema already handles.
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?
States a specific verb and resource ('value a specific IP right') and enumerates the four method variants (patent, trademark, copyright, trade_secret) with the formula each applies. It explicitly names the siblings it is not (valuation_technology, valuation_customer, valuation_human_capital), so an agent can route without opening any schema.
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?
Gives an explicit when-to-use ('value a specific IP right') plus when-not-to-use with named alternatives for technology/software/data/platform and for customer/workforce assets. The condition selecting each alternative is stated, not implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
valuation_market_approachMarket ApproachARead-onlyIdempotentInspect
Market approach: value from comparable transaction revenue multiples or capitalize a royalty stream into a perpetuity value. Method selects the formula. Use when reliable comparable transactions or royalty rates exist for the subject asset. For income-based excess earnings use valuation_income_methods; for royalty-rate selection and adjustment use valuation_royalty_analysis. Per method: comparable_transactions needs comparables + subject_revenue (optional: adjustments); royalty_capitalization needs revenue + royalty_rate + discount_rate. Each comparable is {revenue, multiple}; comparable_transactions applies the comparable multiple to subject_revenue. Only method is required; other parameters are method-dependent, so supply those named for the selected method and omit the rest (documented defaults apply where defined). Pure arithmetic: no I/O and no external calls, and numeric results are returned rounded to 2 decimals. Parameters belonging to other methods of this tool are accepted and ignored. Supplying an unknown method, or leaving unset a parameter that the chosen method requires, returns an error instead of a value.
| Name | Required | Description | Default |
|---|---|---|---|
| method | Yes | Formula to apply. Options: comparable_transactions = Subject revenue times the median comparable multiple.; royalty_capitalization = Value = (revenue * royalty rate) / discount rate. | |
| revenue | No | Annual revenue attributable to the asset, in currency units. | |
| adjustments | No | Optional multiplicative adjustments, e.g. {"size": 0.9, "growth": 1.1}. | |
| comparables | No | Comparable transactions, each {revenue, multiple}. | |
| royalty_rate | No | Royalty rate as a decimal (0.05 = 5% of revenue). | |
| discount_rate | No | Per-period discount rate as a decimal (0.10 = 10%). | |
| subject_revenue | No | Subject company revenue, in currency units. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message when the call fails. |
| steps | No | Intermediate calculation steps for traceability (one string per step). |
| value | Yes | Computed valuation, rate, or metric. |
| method | No | Formula / method name that produced the result. |
| assumptions | No | Modelling assumptions applied (list of strings or key/value object). |
| formula_reference | No | Mathematical formula or reference applied. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only/idempotent/closed-world/no-destruction, and the description adds substantial context beyond them: pure arithmetic with no I/O or external calls, results rounded to 2 decimals, unknown methods and missing required params return errors rather than values, and parameters for other methods are accepted and ignored.
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?
Front-loaded with the method definition, then usage routing, then per-method parameter guidance. Dense but each sentence carries distinct information; the description is somewhat long but not padded.
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 an existing output schema, the description needn't explain return values, and it covers the remaining gaps: method selection, per-method required parameters, error behavior, and the arithmetic nature of the tool. Nothing an agent needs to invoke it correctly is missing.
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, but the description goes further: it maps which parameters each method requires (comparables + subject_revenue; revenue + royalty_rate + discount_rate), explains the comparable object shape, and specifies that method-dependent parameters may be omitted with defaults applying. It does not add syntax detail beyond the schema for the numbers themselves.
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?
States a specific valuation method (comparable transaction multiples / royalty capitalization) with the actual formulas, and explicitly distinguishes itself from siblings valuation_income_methods and valuation_royalty_analysis. An agent can tell exactly what this tool computes.
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?
Names the conditions for use ('when reliable comparable transactions or royalty rates exist') and routes to the two alternatives by name with their respective use cases. When-to-use and when-not-to-use are both covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
valuation_royalty_analysisRoyalty Rate AnalysisARead-onlyIdempotentInspect
Royalty analysis: benchmark royalty-rate ranges by IP type and industry, adjust a base rate for deal factors, and apply the 25% rule of thumb. Method selects the formula. Use to select and support a royalty rate before a relief-from-royalty or royalty-capitalization valuation. To apply the chosen rate in a valuation use valuation_income_methods (relief_from_royalty) or valuation_market_approach (royalty_capitalization); for transfer-pricing pricing use valuation_compliance. Per method: benchmark needs ip_type + industry (optional: comparable_database); adjust needs base_royalty_rate + adjustment_factors; twenty_five_percent_rule needs licensee_expected_profit (optional: profit_attribution_to_ip). adjustment_factors multiply the base rate, so values above 1.0 raise the rate. Only method is required; other parameters are method-dependent, so supply those named for the selected method and omit the rest (documented defaults apply where defined). Pure arithmetic: no I/O and no external calls, and numeric results are returned rounded to 2 decimals. Parameters belonging to other methods of this tool are accepted and ignored. Supplying an unknown method, or leaving unset a parameter that the chosen method requires, returns an error instead of a value.
| Name | Required | Description | Default |
|---|---|---|---|
| method | Yes | Formula to apply. Options: benchmark = Benchmark royalty-rate range by IP type and industry.; adjust = Adjusted rate = base rate * product of factors.; twenty_five_percent_rule = Royalty = licensee profit * IP attribution * 25%. | |
| ip_type | No | Intellectual-property type, e.g. "patent", "trademark", "copyright", "trade_secret". | |
| industry | No | Industry, e.g. "software", "pharmaceutical". | |
| base_royalty_rate | No | Base royalty rate before adjustment, as a decimal (0.05 = 5%). | |
| adjustment_factors | No | Multiplicative adjustment factors, e.g. {"profitability": 1.1, "market": 0.9}. | |
| comparable_database | No | Optional comparable licenses, each {rate} or {royalty_rate}. | |
| licensee_expected_profit | No | Licensee expected profit, in currency units. | |
| profit_attribution_to_ip | No | Fraction of profit attributable to the IP, in [0,1]. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message when the call fails. |
| steps | No | Intermediate calculation steps for traceability (one string per step). |
| value | Yes | Computed valuation, rate, or metric. |
| method | No | Formula / method name that produced the result. |
| assumptions | No | Modelling assumptions applied (list of strings or key/value object). |
| formula_reference | No | Mathematical formula or reference applied. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior. The description adds substantial context beyond that: it is pure arithmetic with no I/O or external calls, results are rounded to 2 decimals, method-specific required parameters cause errors when missing, unknown methods return errors, and parameters for other methods are accepted and ignored.
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: purpose and method selection come first, then usage routing, then per-method parameter requirements, then behavioral constraints. Every sentence earns its place for a multi-method tool with method-dependent parameters; there is 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 tool with three distinct formulas, eight parameters, and method-dependent requirements, the description covers method selection, required and optional parameters per method, error conditions, I/O behavior, rounding, and sibling routing. With an output schema present, return format need not be explained, and nothing an agent needs to call it correctly is missing.
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 each parameter is already documented in the input schema. The description still adds value by mapping parameters to specific methods (e.g., benchmark needs ip_type + industry; adjust needs base_royalty_rate + adjustment_factors; twenty_five_percent_rule needs licensee_expected_profit), clarifying that adjustment_factors multiply the base rate, and noting that other method parameters are ignored.
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 states a specific verb+resource (royalty-rate analysis) and enumerates the three formulas it supports: benchmark, adjust, and the 25% rule. It distinguishes itself from siblings by naming valuation_income_methods, valuation_market_approach, and valuation_compliance as the tools for downstream application and transfer pricing.
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?
It explicitly says when to use this tool (to select and support a royalty rate before a relief-from-royalty or royalty-capitalization valuation) and when to use alternatives (valuation_income_methods, valuation_market_approach, valuation_compliance). The routing guidance is unambiguous and leaves nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
valuation_simulationUncertainty & SensitivityARead-onlyIdempotentInspect
Uncertainty analysis: Monte Carlo valuation, Monte Carlo sensitivity ranking, decision-tree expected values, and one-at-a-time sensitivity analysis. Method selects the formula. Use to quantify and stress the uncertainty around a point valuation; monte_carlo simulates all listed inputs, monte_carlo_sensitivity ranks the drivers. For a single deterministic point value use the relevant valuation tool; sensitivity_analysis varies one parameter of a core function only. Per method: monte_carlo needs input_distributions (optional: iterations, seed); monte_carlo_sensitivity needs base_params + distributions (optional: iterations, seed); decision_tree needs tree; sensitivity_analysis needs function_name + parameter_name + parameter_range + fixed_parameters. monte_carlo_sensitivity requires iterations between 1000 and 100000. Only method is required; other parameters are method-dependent, so supply those named for the selected method and omit the rest (documented defaults apply where defined). Pure arithmetic: no I/O and no external calls, and numeric results are returned rounded to 2 decimals. Parameters belonging to other methods of this tool are accepted and ignored. Supplying an unknown method, or leaving unset a parameter that the chosen method requires, returns an error instead of a value.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Random seed for reproducible simulations. | |
| tree | No | Decision tree {"nodes": [...], "edges": [...]}; node types decision, chance, terminal. | |
| method | Yes | Formula to apply. Options: monte_carlo = Simulate all listed inputs, sum-based valuation.; monte_carlo_sensitivity = Rank parameters by their impact on the valuation.; decision_tree = Backward induction over a decision tree.; sensitivity_analysis = One-at-a-time sensitivity of a core function. | |
| iterations | No | Simulation iterations; monte_carlo_sensitivity requires 1000-100000. | |
| base_params | No | Base values for all parameters, including those held fixed. | |
| distributions | No | Map of parameter name to {distribution, params} for the simulated inputs. | |
| function_name | No | Core function to vary, e.g. "present_value", "capm_discount_rate", "wacc". | |
| parameter_name | No | Name of the parameter to vary. | |
| parameter_range | No | Values to test for the varied parameter. | |
| fixed_parameters | No | Values for all other parameters, held constant. | |
| input_distributions | No | Inputs to simulate, each {name, distribution, params}; distribution is normal (mean, std), uniform (low, high) or triangular (low, high, mode). |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message when the call fails. |
| steps | No | Intermediate calculation steps for traceability (one string per step). |
| value | Yes | Computed valuation, rate, or metric. |
| method | No | Formula / method name that produced the result. |
| assumptions | No | Modelling assumptions applied (list of strings or key/value object). |
| formula_reference | No | Mathematical formula or reference applied. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/non-destructive annotations, it discloses that computations are pure arithmetic with no I/O or external calls, that results are rounded to 2 decimals, that foreign-method parameters are silently accepted and ignored, and that unknown methods or missing required parameters return an error rather than a value. It also carries the 1000-100000 iterations constraint on monte_carlo_sensitivity.
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?
Front-loaded with the purpose and routing rule before the per-method parameter inventory, and every sentence carries operational content. The middle section is a dense list, but the information density justifies the length.
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 complex 11-parameter multi-method tool, the description covers routing, per-method parameter requirements, error behavior, and computational side-effects, and an output schema exists so return payloads need not be re-explained. Nothing an agent needs to invoke it correctly is missing.
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, but the description adds real value the flat schema lacks: a per-method required/optional breakdown (monte_carlo needs input_distributions; decision_tree needs tree; sensitivity_analysis needs function_name + parameter_name + parameter_range + fixed_parameters) and the rule that only method is required while others are method-dependent. It stops short of documenting the base_params/distributions shapes beyond what the schema already gives.
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 names the concrete capability set (Monte Carlo valuation, sensitivity ranking, decision-tree expected values, one-at-a-time sensitivity) with a clear verb+resource framing, and the method enum maps each formula to a distinct operation. It also names the sibling class it is not ('the relevant valuation tool') for point values, so an agent can separate it from the thirteen valuation_* siblings.
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?
It states when to use the tool ('quantify and stress the uncertainty around a point valuation'), when not (single deterministic point value -> relevant valuation tool), and how sensitivity_analysis differs from the core functions it wraps. Routing conditions are explicit rather than inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
valuation_technologyTechnology AssetsARead-onlyIdempotentInspect
Technology assets: developed technology under life-cycle risk, software under cost and income, data assets with a quality adjustment, and platforms with network effects. Method selects the formula. Use for developed technology, software, data, and platform intangibles; developed_technology and software blend cost and income evidence. For patents, trademarks, copyrights, and trade secrets use valuation_ip; for customer relationships use valuation_customer. Per method: developed_technology needs rd_costs + life_cycle_stage + competitive_advantage + discount_rate + cash_flow_projections; software needs development_cost + maintenance_cost + user_base + revenue_model + useful_life + discount_rate; data_asset needs acquisition_cost + quality_score + revenue_contribution + useful_life + discount_rate; platform needs network_size + network_effects_coefficient + revenue_per_user + growth_rate + discount_rate. cash_flow_projections for developed_technology run over the remaining useful life. Only method is required; other parameters are method-dependent, so supply those named for the selected method and omit the rest (documented defaults apply where defined). Pure arithmetic: no I/O and no external calls, and numeric results are returned rounded to 2 decimals. Parameters belonging to other methods of this tool are accepted and ignored. Supplying an unknown method, or leaving unset a parameter that the chosen method requires, returns an error instead of a value.
| Name | Required | Description | Default |
|---|---|---|---|
| method | Yes | Formula to apply. Options: developed_technology = Cost and income value adjusted for life-cycle stage.; software = Software value from development, maintenance, and revenue.; data_asset = Quality-adjusted revenue contribution plus acquisition cost.; platform = Network-effect revenue grown and discounted. | |
| rd_costs | No | Cumulative research and development costs, in currency units. | |
| user_base | No | Number of users. | |
| growth_rate | No | Per-period growth rate as a decimal (0.03 = 3%). | |
| useful_life | No | Useful life in years n. | |
| network_size | No | Number of network participants. | |
| discount_rate | No | Per-period discount rate as a decimal (0.10 = 10%). | |
| quality_score | No | Data quality score, in [0,1]. | |
| revenue_model | No | Revenue model, e.g. {"subscription_price": 20, "paying_users": 10000}. | |
| acquisition_cost | No | Cost to acquire the data, in currency units. | |
| development_cost | No | Development or acquisition cost, in currency units. | |
| life_cycle_stage | No | Life-cycle stage, e.g. "growth", "mature", "decline". | |
| maintenance_cost | No | Annual maintenance cost, in currency units. | |
| revenue_per_user | No | Revenue per user, in currency units. | |
| revenue_contribution | No | Annual revenue contribution, in currency units. | |
| cash_flow_projections | No | Projected after-tax cash flows per period t=1..n, in currency units. | |
| competitive_advantage | No | Years of competitive advantage. | |
| network_effects_coefficient | No | Network-effects coefficient scaling revenue with network size. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message when the call fails. |
| steps | No | Intermediate calculation steps for traceability (one string per step). |
| value | Yes | Computed valuation, rate, or metric. |
| method | No | Formula / method name that produced the result. |
| assumptions | No | Modelling assumptions applied (list of strings or key/value object). |
| formula_reference | No | Mathematical formula or reference applied. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/non-destructive annotations, the description discloses that the tool is pure arithmetic with no I/O or external calls, rounds results to two decimals, accepts and ignores parameters from other methods, and returns an error for unknown methods or missing required parameters. This is rich behavioral context that goes well beyond the annotations.
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 dense but front-loaded: purpose first, then usage and sibling routing, then method-specific parameters, then behavioral notes. Every sentence serves a clear need, and the long parameter mapping is necessary given the 18-parameter schema.
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?
With an output schema present, the description does not need to explain return values. It fully covers purpose, usage, method-parameter dependencies, error conditions, and computational behavior, leaving no significant gap for an agent to invoke it correctly.
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?
Although schema coverage is 100%, the description adds critical semantic value by mapping each method to its required parameters (e.g., developed_technology needs rd_costs, life_cycle_stage, competitive_advantage, discount_rate, cash_flow_projections) and clarifying that only method is required and other parameters are method-dependent. This conditional grouping is not present in the schema.
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 states a specific domain โ technology asset valuation โ and enumerates the four method-specific assets it handles (developed technology, software, data, platform). It explicitly distinguishes itself from siblings by directing patents/trademarks/copyrights/trade secrets to valuation_ip and customer relationships to valuation_customer.
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?
It gives explicit when-to-use guidance, names the alternative sibling tools for other asset classes, and provides per-method parameter requirements so the agent knows exactly which inputs to supply for each selected method.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
valuation_time_valueTime Value of MoneyARead-onlyIdempotentInspect
Time value of money: discount or compound a single sum, value level and growing annuities and perpetuities, and compute a terminal value by Gordon growth or exit multiple. Method selects the formula. Use to move cash flows through time or to value a terminal value in a DCF; combine with a rate from valuation_discount_rate. For uneven multi-period cash flows use valuation_income_methods; for rate construction use valuation_discount_rate. Per method: present_value needs future_value + discount_rate + periods; future_value needs present_value + discount_rate + periods; annuity_pv needs payment + discount_rate + periods; perpetuity_pv needs payment + discount_rate; growing_annuity_pv needs payment + discount_rate + growth_rate + periods; terminal_value_gordon_growth needs final_year_cashflow + perpetual_growth_rate + discount_rate; terminal_value_exit_multiple needs final_year_cashflow + exit_multiple. Rates and growth are decimals (0.10 = 10%); for terminal_value_gordon_growth the discount rate must exceed the perpetual growth rate. Only method is required; other parameters are method-dependent, so supply those named for the selected method and omit the rest (documented defaults apply where defined). Pure arithmetic: no I/O and no external calls, and numeric results are returned rounded to 2 decimals. Parameters belonging to other methods of this tool are accepted and ignored. Supplying an unknown method, or leaving unset a parameter that the chosen method requires, returns an error instead of a value.
| Name | Required | Description | Default |
|---|---|---|---|
| method | Yes | Formula to apply. Options: present_value = PV = FV / (1 + r)^n.; future_value = FV = PV * (1 + r)^n.; annuity_pv = PV = PMT * [1 - (1 + r)^-n] / r.; perpetuity_pv = PV = PMT / r.; growing_annuity_pv = PV of a constant-growth annuity.; terminal_value_gordon_growth = TV = FCF * (1 + g) / (r - g).; terminal_value_exit_multiple = TV = FCF * exit multiple. | |
| payment | No | Recurring payment per period, in currency units. | |
| periods | No | Number of periods n (non-negative). | |
| growth_rate | No | Per-period growth rate as a decimal (0.03 = 3%). | |
| future_value | No | Future cash amount to discount, in currency units. | |
| discount_rate | No | Per-period discount rate as a decimal (0.10 = 10%). | |
| exit_multiple | No | Exit multiple applied to the final-year cash flow (e.g. 8.0 for 8x). | |
| present_value | No | Present amount to compound, in currency units. | |
| final_year_cashflow | No | Final-year projected cash flow (FCF), in currency units. | |
| perpetual_growth_rate | No | Perpetual growth rate g as a decimal; must be below discount_rate for Gordon growth. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message when the call fails. |
| steps | No | Intermediate calculation steps for traceability (one string per step). |
| value | Yes | Computed valuation, rate, or metric. |
| method | No | Formula / method name that produced the result. |
| assumptions | No | Modelling assumptions applied (list of strings or key/value object). |
| formula_reference | No | Mathematical formula or reference applied. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds substantial behavior beyond them: pure arithmetic with no I/O, results rounded to 2 decimals, out-of-method parameters silently accepted and ignored, and error (rather than a value) on unknown method or missing required parameter. It also states the Gordon-growth constraint that discount rate must exceed perpetual growth.
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?
Front-loaded with purpose, then usage, then per-method requirements, then edge-case behavior; each block is dense and purposeful. It runs long and restates some formula/parameter detail the schema already carries, which costs a point on conciseness.
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 10-parameter, method-dispatched arithmetic tool with an output schema present, the description covers what it computes, when to use it, what each method requires, unit conventions, error behavior, and rounding. Return values need not be explained given the output schema; nothing needed to invoke it correctly is missing.
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% with per-parameter descriptions, so the baseline is 3; however, the description adds the method-to-parameter requirement mapping that the flat schema does not express (e.g. perpetuity_pv needs only payment + discount_rate, terminal_value_exit_multiple needs final_year_cashflow + exit_multiple), plus the decimal convention. That is real meaning beyond the schema, though it duplicates some formula text already in the enum description.
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?
States a specific verb family (discount/compound/value/terminal value) over a specific resource (cash flows, annuities, perpetuities) and explicitly distinguishes itself from valuation_income_methods and valuation_discount_rate. An agent can route between this and its siblings without opening a schema.
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?
Gives explicit when-to-use ('move cash flows through time or value a terminal value in a DCF'), names two alternatives with the conditions that select them ('uneven multi-period cash flows' -> valuation_income_methods; 'rate construction' -> valuation_discount_rate), and prescribes combining with valuation_discount_rate. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
14 tool updates
- First observed
valuation_compliance - First observed
valuation_cost_approach - First observed
valuation_customer - First observed
valuation_discount_rate - First observed
valuation_goodwill_ppa - First observed
valuation_human_capital - First observed
valuation_impairment - First observed
valuation_income_methods - First observed
valuation_ip - First observed
valuation_market_approach - First observed
valuation_royalty_analysis - First observed
valuation_simulation - First observed
valuation_technology - First observed
valuation_time_value
Related MCP Connectors
IFRS engine: 31 standards, 21 tools. Journal entries, XBRL tags, ECL, CGU impairment, deferred tax.
Free SME valuation, sell-readiness, M&A pricing, partner and deal-referral tools in EN/FR/ES/PT.
13-model stock valuation engine for AI agents - fair values for 5,900+ US stocks, updated daily.
Intrinsic stock value from SEC filings: DCF, EPV, Graham, moat signals. Deterministic, not guessed.
Related MCP Servers
- AlicenseAqualityAmaintenanceStartup valuation calculators for AI agents: 14 MCP tools covering 80+ formulas from the Startup Valuation textbook โ probability, time value, CAPM, pre-revenue methods (Scorecard, Berkus, VC Method), options, comparables, SaaS, marketplace, fintech, biotech, hardware, international, stakeholder equity, and emerging methods.11141MIT
- AlicenseNot gradedqualityAmaintenanceProvides startup valuation methods with auditable calculations, readiness checks, and explanations through MCP tools.MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to perform multi-stage residual income projections, discounting, and enterprise value bridging analysis using standardized financial data inputs.1MIT
- AlicenseCqualityCmaintenanceAI-powered skills for financial professionals. Comprehensive collection of finance, accounting, audit, and compliance skills for AI agents. IFRS/GAAP compliant with industry-specific applications.10024MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.