Server definition
- Hash
- sha256:fbecacf43a96d71ed41b3e88e7feaa7684fbc15afbf833ab3eb2c1761da375f7
- What it is
- What a remote MCP server returned when asked what it offers: 13 tools
The blob, as servednamed by its sha256
{
"instructions": "\n You are a commercial real estate analyst with access to live market data.\n Use these tools to provide accurate, data-driven CRE analysis.\n\n All interest rate data comes directly from the Federal Reserve (FRED) — never guess at rates.\n All demographic data comes from the US Census Bureau — never estimate demographics.\n Always use get_current_rates() before building any DCF model.\n Always use get_market_demographics() when analyzing a specific property location.\n Use get_radius_demographics() for 1/3/5-mile trade-area analysis around a property.\n ",
"tools": [
{
"description": "Extract all key terms from a commercial lease document.\nReturns term, base rent schedule, escalations, TI allowance, CAM structure,\nrenewal options, termination rights, exclusivity, co-tenancy, and red flags.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"text": {
"description": "Raw text copied from a commercial lease PDF",
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"name": "abstract_lease",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Extract structured tenant and lease data from a rent roll document.\nPaste the text content of your rent roll PDF here (copy-paste from PDF reader).\nReturns tenant list, suite/SF, lease dates, monthly rent, escalations, and options.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"property_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional property name for context"
},
"text": {
"description": "Raw text copied from a rent roll PDF",
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"name": "analyze_rent_roll",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Build a levered DCF model using live Federal Reserve rates.\nAutomatically fetches current SOFR to derive the loan rate if not provided.\nReturns: annual cash flows, IRR, equity multiple, cash-on-cash, DSCR, and exit analysis.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"amortization_years": {
"default": 30,
"description": "Loan amortization period (default 30 years)",
"type": "integer"
},
"equity_pct": {
"default": 35,
"description": "Equity as % of purchase price (default 35%)",
"type": "number"
},
"exit_cap_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Exit cap rate % — if None, uses entry cap + 25bps (conservative)"
},
"hold_years": {
"default": 10,
"description": "Hold period in years (default 10)",
"type": "integer"
},
"loan_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Loan interest rate % — if None, fetches live SOFR + 175bps"
},
"noi_growth_rate": {
"default": 3,
"description": "Annual NOI growth rate % (default 3.0)",
"type": "number"
},
"noi_year1": {
"description": "Year 1 Net Operating Income ($)",
"type": "number"
},
"purchase_price": {
"description": "Acquisition price ($)",
"type": "number"
}
},
"required": [
"noi_year1",
"purchase_price"
],
"type": "object"
},
"name": "build_dcf_model",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Generate a downloadable Excel (.xlsx) underwriting model with LIVE formulas —\neditable assumptions, PMT/FV amortization, IRR, equity multiple, a sensitivity\ngrid, live Fed rates, and (if an address is given) Census trade-area demographics.\nReturns a download link valid for 60 minutes.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"address": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional property address — adds a demographics sheet"
},
"amortization_years": {
"default": 30,
"description": "Amortization (default 30)",
"type": "integer"
},
"equity_pct": {
"default": 35,
"description": "Equity as % of price (default 35)",
"type": "number"
},
"exit_cap_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Exit cap % — default entry cap + 25bps"
},
"hold_years": {
"default": 10,
"description": "Hold period (default 10)",
"type": "integer"
},
"loan_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Loan rate % — default live SOFR + 175bps"
},
"noi_growth_rate": {
"default": 3,
"description": "Annual NOI growth % (default 3.0)",
"type": "number"
},
"noi_year1": {
"description": "Year 1 Net Operating Income ($)",
"type": "number"
},
"property_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional label for the model header"
},
"purchase_price": {
"description": "Acquisition price ($)",
"type": "number"
}
},
"required": [
"noi_year1",
"purchase_price"
],
"type": "object"
},
"name": "export_dcf_excel",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Analyze a parsed rent roll for investment risks.\nFeed the output from analyze_rent_roll directly into this tool.\nReturns: rollover risk, tenant concentration, credit risk, and actionable recommendations.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"rent_roll_json": {
"description": "JSON string from the analyze_rent_roll tool output",
"type": "string"
}
},
"required": [
"rent_roll_json"
],
"type": "object"
},
"name": "flag_lease_risks",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Generate a formatted CRE acquisition memo / Investment Committee memo.\nAutomatically pulls live rates from FRED and demographics from Census Bureau\nto provide real market context — not guesses.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"additional_context": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Any additional deal notes, seller info, market color"
},
"asking_price": {
"description": "Asking price ($)",
"type": "number"
},
"noi": {
"description": "Net Operating Income ($)",
"type": "number"
},
"property_address": {
"description": "Full property address",
"type": "string"
},
"property_type": {
"description": "Multifamily / Office / Retail / Industrial / Mixed-Use",
"type": "string"
},
"rent_roll_summary": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional: paste output from analyze_rent_roll or flag_lease_risks"
}
},
"required": [
"property_address",
"property_type",
"noi",
"asking_price"
],
"type": "object"
},
"name": "generate_deal_memo",
"outputSchema": {
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Get Commercial Real Estate price index and broader market data from the Federal Reserve.\nReturns CRE price trends, office/retail/industrial vacancy proxies, and credit spreads.\nProvides macro context for deal underwriting and cap rate analysis.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_cre_market_data",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Get live interest rates from the Federal Reserve (FRED).\nReturns SOFR, 10-year Treasury, 5-year Treasury, Fed Funds Rate, and 30-day SOFR average.\nAlso calculates implied cap rate ranges based on current treasury spreads.\n\nUse this BEFORE any DCF model or loan underwriting. These are real-time numbers\nClaude cannot access on its own.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_current_rates",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Get current CPI and rent inflation data from the Federal Reserve.\nReturns overall inflation, shelter inflation, and rent-specific CPI with YoY changes.\nUse this to calibrate rent growth assumptions in your DCF model — don't guess.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_inflation_data",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Get Census Bureau demographics for any US property address.\nReturns median income, population, employment rate, housing vacancy,\nmedian rents, and education levels for the census tract.\n\nThis is address-specific data from the actual Census tract — not estimates.\nClaude cannot access this without the MCP.\nFor 1/3/5-mile trade-area rings, use get_radius_demographics instead.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"address": {
"description": "Full US property address (e.g. \"1234 Main St, Charlotte, NC 28202\")",
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "get_market_demographics",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Get aggregated Census demographics for radius rings around a US property address —\nthe standard 1/3/5-mile trade-area format used in CRE site analysis.\nAggregates every census tract whose centroid falls within each radius:\npopulation, household-weighted median income, employment rate, college attainment,\nhousing vacancy, renter share, and median rent.\n\nUse this for trade-area / site analysis. Use get_market_demographics for the\nsingle census tract immediately around the address.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"address": {
"description": "Full US property address (e.g. \"1234 Main St, Charlotte, NC 28202\")",
"type": "string"
},
"radii_miles": {
"default": "1,3,5",
"description": "Comma-separated radii in miles (default \"1,3,5\", each capped at 15)",
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "get_radius_demographics",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Screen a US county as a LAND-INVESTING market (raw-land flip / Podolsky style).\nGrades the county on the signals that matter for buying cheap rural land and\nreselling on terms: population growth, demographics, owner share, and affordability.\n\nIMPORTANT: This screens on FREE Census data only (growth + demographics + a\nhome-value affordability proxy). It does NOT include actual land sale prices or\ncomps — those require county records or a paid service, and must be verified\nper-parcel before buying. Use this to rank/shortlist markets, not to buy.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"county": {
"description": "County name (e.g. \"Mohave\" or \"Mohave County\")",
"type": "string"
},
"state": {
"description": "2-letter state abbreviation (e.g. \"AZ\") or 2-digit state FIPS",
"type": "string"
}
},
"required": [
"state",
"county"
],
"type": "object"
},
"name": "screen_land_market",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Pre-screen a land parcel's location for the AUTOMATABLE due-diligence red flags:\nFEMA flood zone and federal wetlands. Pulls live from FEMA's National Flood Hazard\nLayer and the US Fish & Wildlife National Wetlands Inventory.\n\nUse this to kill obviously-bad parcels (flood zone, wetlands) at scale BEFORE\nspending time on manual due diligence.\n\nIMPORTANT: Checks flood + wetlands only. It does NOT check legal ACCESS\n(landlocked — the #1 land deal-killer), title/liens, or zoning — those stay MANUAL,\nper-parcel checks via county records. A clean screen here is necessary, NOT sufficient.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"lat": {
"description": "Parcel latitude (decimal degrees)",
"type": "number"
},
"lng": {
"description": "Parcel longitude (decimal degrees)",
"type": "number"
}
},
"required": [
"lat",
"lng"
],
"type": "object"
},
"name": "screen_parcel_dd",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:fbecacf43a96d71ed41b3e88e7feaa7684fbc15afbf833ab3eb2c1761da375f7 | sha256sum