Skip to main content
Glama

build_dcf_model

Build a levered DCF model using live Federal Reserve rates. Automatically fetches current SOFR to derive the loan rate if not provided. Returns: annual cash flows, IRR, equity multiple, cash-on-cash, DSCR, and exit analysis.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
loan_rateNoLoan interest rate % — if None, fetches live SOFR + 175bps
noi_year1YesYear 1 Net Operating Income ($)
equity_pctNoEquity as % of purchase price (default 35%)
hold_yearsNoHold period in years (default 10)
exit_cap_rateNoExit cap rate % — if None, uses entry cap + 25bps (conservative)
purchase_priceYesAcquisition price ($)
noi_growth_rateNoAnnual NOI growth rate % (default 3.0)
amortization_yearsNoLoan amortization period (default 30 years)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses automatic fetching of SOFR if loan_rate is not provided, and lists return values. This is good but doesn't cover all behavioral aspects like potential reliance on external data.

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

Conciseness5/5

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

Two focused sentences: one for purpose, one for outputs. No wasted words, front-loaded with key action. Very concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (8 parameters, output schema exists), the description adequately explains the core function and automatic behavior. It doesn't need to detail returns since output schema covers that.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds context about automatic rate fetching, but this is already in the schema's loan_rate description. No new param semantics beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool builds a levered DCF model using live Federal Reserve rates, with a specific verb and resource. It distinguishes itself from siblings like export_dcf_excel (export) and get_current_rates (just rates).

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

Usage Guidelines3/5

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

No explicit guidance on when to use versus alternatives. The description implies its purpose but doesn't mention when not to use it or suggest siblings like get_current_rates for rates-only tasks.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.3/5.0
Disambiguation5/5

Each tool targets a distinct resource and action: lease documents, rent rolls, DCF models, Excel export, risk flags, deal memos, market data, rates, inflation, demographics at two geographic levels, and land screening at two scales. No two tools have overlapping purposes.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., abstract_lease, get_current_rates, screen_parcel_dd), making the tool surface predictable and easy to navigate.

Tool Count5/5

With 13 tools, the server is well-scoped for CRE investment analysis, covering lease abstraction, rent roll analysis, DCF modeling, market data, demographics, and land screening. The count is sufficient without being bloated.

Completeness5/5

The tool set covers the full lifecycle of CRE deal analysis: document parsing (lease, rent roll), financial modeling (DCF, Excel export), risk assessment (flag risks, parcel screens), market context (rates, inflation, demographics, CRE market data), and output (deal memo). No obvious gaps for the intended purpose.