🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Paragon MLS

by @earlvanze

Fetch real estate listings from Paragon MLS (paragonrels.com / fnimls.com) APIs and perform four-square rental property analysis. Use when: (1) looking up ML...

Versionv1.1.2
Downloads764
TERMINAL
clawhub install paragon-mls

πŸ“– About This Skill


name: paragon-mls description: "Fetch real estate listings from Paragon MLS (paragonrels.com / fnimls.com) APIs and perform four-square rental property analysis. Use when: (1) looking up MLS property details by MLS number or listing ID, (2) analyzing rental properties for cash flow and cash-on-cash return, (3) comparing multiple investment properties, (4) extracting structured data from Paragon MLS listings. Supports any Paragon-backed MLS region (globalmls, imls, hudson, gamls, triangle, etc.)." metadata: openclaw: requires: bins: - node mcp: paragon-mls: command: node args: - /home/umbrel/.openclaw/workspace/deal-analyst/paragon-mls-mcp/dist/index.js

Paragon MLS

Fetch real estate listings from Paragon MLS APIs and analyze rental investment properties.

Quick Start

1. Build and configure the MCP server once:

cd paragon-mls-mcp && npm install && npm run build

2. Add to mcporter config (or your MCP client config):

mcporter config add paragon-mls --command "node /home/umbrel/.openclaw/workspace/deal-analyst/paragon-mls-mcp/dist/index.js" --transport stdio

3. Use the tools:

# Fetch all listings from a shared MLS link
mcporter call paragon-mls.fetch_listings mlsId="6d70b762-36a4-4ac0-bedd-d0dae2920867" systemId="globalmls"

Fetch a single property by MLS number

mcporter call paragon-mls.fetch_property mlsNumber="201918514" systemId="globalmls"

Analyze a deal with the spreadsheet-compatible Four-Square model

mcporter call paragon-mls.analyze_deal mlsNumbers="201918514" systemId="globalmls" holdingPeriodYears:5 downPaymentPct:0.25

Analyze multiple properties with custom assumptions

mcporter call paragon-mls.analyze_deal mlsNumbers="201918514,202012345" systemId="globalmls" downPaymentPct:0.25 interestRate:0.065 monthlyInsurance:250 repairBudget:10000 landValue:35000

Compare velocity banking strategies for a deal

mcporter call paragon-mls.vb_calc debtBalance:350000 interestRate:0.05 loanTermYears:30 monthlyIncome:8000 monthlyExpenses:4878.875681 extraPayment:1000

Get raw JSON data

mcporter call paragon-mls.raw_listings mlsNumbers="201918514" systemId="globalmls"

Tools

fetch_listings

Fetch all property listings from a Paragon MLS listing GUID. Returns parsed property data for all active listings.

  • mlsId (required): Paragon MLS listing GUID from the URL
  • systemId (default: globalmls): MLS region ID (subdomain of paragonrels.com)
  • fetch_property

    Fetch a single property by its MLS number. Returns structured property data.

  • mlsNumber (required): MLS number for the property
  • systemId (default: globalmls): MLS region ID
  • mlsId (optional): Listing GUID for link generation
  • analyze_deal

    Perform a spreadsheet-compatible Four-Square analysis on one or more properties. Returns the major columns from the Google Sheet, including NOI, DSCR, principal paydown, appreciation, depreciation, ROI, ROE, and IRR.

    Key inputs:

  • mlsNumbers (required): Comma-separated MLS numbers
  • systemId (default: globalmls): MLS region ID
  • holdingPeriodYears (default: 5)
  • offerPricePct (default: 1)
  • downPaymentPct (default: 0.20)
  • interestRate (default: 0.07)
  • loanTermYears (default: 30)
  • vacancyRate / repairsPct / capexPct / mgmtPct for recurring expense assumptions
  • closingCosts / repairBudget / reservePrepaid / privateMoneyLender / landValue for capital stack and tax assumptions
  • monthlyPropertyTaxes / monthlySchoolTaxes / monthlyInsurance / monthlyWater / monthlySewer / monthlyGarbage / monthlyElectric / monthlyGas / monthlyHoa / monthlyLawnSnow / monthlyLegalAccounting for direct spreadsheet column overrides
  • unitRent1..unitRent7 / laundryIncome / storageIncome / miscIncome for income overrides
  • vb_calc

    Compare amortized debt, extra payments, chunking/basic acceleration, and advanced velocity banking.

  • debtBalance (required)
  • interestRate (required)
  • loanTermYears (default: 30)
  • extraPayment (default: 0)
  • monthlyIncome (required)
  • monthlyExpenses (required)
  • helocRate (default: 0.2399)
  • advancedRate (default: 0.08)
  • helocLimit (default: 20000)
  • chunkMonths (default: 6)
  • raw_listings

    Fetch raw JSON data from the Paragon API for custom analysis. Returns unprocessed listing data.

  • mlsNumbers (required): Comma-separated MLS numbers
  • systemId (default: globalmls): MLS region ID
  • System IDs

    Common Paragon MLS system IDs (the subdomain before .paragonrels.com):

    | Region | System ID | |--------|-----------| | Eastern NY / Southern Adirondack | globalmls | | InterMountain (Idaho) | imls | | SW Colorado | cren | | Hudson County, NJ | hudson | | Georgia | gamls | | Triangle Region, NC | triangle |

    Check your local MLS website URL to find the correct system ID.

    How It Works

    The server calls Paragon's public CollabLink API endpoints:

    1. CreateGuid β€” generates a session GUID for API calls 2. GetNotificationAppData β€” resolves a listing GUID into MLS numbers 3. GetListingDetails β€” fetches property data for each MLS number

    Property data is parsed from Paragon's nested JSON structure, handling both the "new" format (section-based DetailOptions) and "old" format (array-based).

    Limitations

  • Paragon's API is public but unofficial; it may change without notice
  • Each MLS region may format listing data differently; the parser handles common formats but edge cases may require custom handling
  • No authentication is required for public listing data
  • The API returns data over HTTP (not HTTPS) for some regions
  • Rate limiting may apply; the server processes listings sequentially with no intentional delay
  • πŸ’‘ Examples

    1. Build and configure the MCP server once:

    cd paragon-mls-mcp && npm install && npm run build
    

    2. Add to mcporter config (or your MCP client config):

    mcporter config add paragon-mls --command "node /home/umbrel/.openclaw/workspace/deal-analyst/paragon-mls-mcp/dist/index.js" --transport stdio
    

    3. Use the tools:

    # Fetch all listings from a shared MLS link
    mcporter call paragon-mls.fetch_listings mlsId="6d70b762-36a4-4ac0-bedd-d0dae2920867" systemId="globalmls"

    Fetch a single property by MLS number

    mcporter call paragon-mls.fetch_property mlsNumber="201918514" systemId="globalmls"

    Analyze a deal with the spreadsheet-compatible Four-Square model

    mcporter call paragon-mls.analyze_deal mlsNumbers="201918514" systemId="globalmls" holdingPeriodYears:5 downPaymentPct:0.25

    Analyze multiple properties with custom assumptions

    mcporter call paragon-mls.analyze_deal mlsNumbers="201918514,202012345" systemId="globalmls" downPaymentPct:0.25 interestRate:0.065 monthlyInsurance:250 repairBudget:10000 landValue:35000

    Compare velocity banking strategies for a deal

    mcporter call paragon-mls.vb_calc debtBalance:350000 interestRate:0.05 loanTermYears:30 monthlyIncome:8000 monthlyExpenses:4878.875681 extraPayment:1000

    Get raw JSON data

    mcporter call paragon-mls.raw_listings mlsNumbers="201918514" systemId="globalmls"