Back to the catalog

io.github.jbechtel-97/dealflowpro

Multifamily real estate deal analysis — cap rate, DSCR, IRR, DFP Score, max offer price

Open source Open in the app JSON README (API)

About

Multifamily real estate deal analysis — cap rate, DSCR, IRR, DFP Score, max offer price

Details

Kind
MCP servers
Topic
No topic detected
Publisher
jbechtel-97
Origin
official
Category
ferramentas
Transport
local
Version
1.2.6
Stars
3
Last push
2026-08-24T10:33:04Z
Repository state
ativo
Language
JavaScript
License
MIT
Added
2026-08-29 04:00:14
Updated
2026-08-29 04:00:14
Origin id
io.github.jbechtel-97/dealflowpro

README

# DealFlowPro MCP Server

[![dealflowpro-mcp-server MCP server](https://glama.ai/mcp/servers/jbechtel-97/dealflowpro-mcp-server/badges/card.svg)](https://glama.ai/mcp/servers/jbechtel-97/dealflowpro-mcp-server)

Analyze multifamily real estate deals from Claude Code, Cursor, Claude Desktop, or any MCP-compatible client. The first real estate underwriting tool in the MCP ecosystem.

DealFlowPro is an AI-powered multifamily deal analysis platform. This MCP server wraps the DealFlowPro REST API, giving AI agents access to institutional-grade underwriting calculations.

## Demo

<img src="https://dealflowpro.io/images/mcp-demo.png" alt="DealFlowPro MCP Server analyzing a 24-unit deal in Claude Code" width="700">

## What You Can Do

Ask Claude naturally and it calls the right tool:

- "Analyze this 24-unit deal in Charlotte — asking $2M, $13.6K/mo rent, $5.5K expenses"
- "Score this deal: 12 units, $1.5M, $9K monthly income"
- "What's the max I should offer on a property with $28.8K/mo rent if I want 8% cash-on-cash?"
- "Is this property in a flood zone? 2909 Burgess Dr, Charlotte, NC"

## Tools

| Tool | Description |
|------|-------------|
| `analyze_deal` | Full deal analysis: cap rate, DSCR, cash-on-cash, IRR, DFP Score (0-100), max offer price, yearly cashflows |
| `score_deal` | Quick screening: DFP Score + key metrics |
| `reverse_calc` | Max offer price from target returns (cap rate, CoC, DSCR, IRR) |
| `market_data` | Flood zone, neighborhood income vs state median, job growth for any address |

All four carry MCP 2025-06-18 annotations (`title`, `readOnlyHint`, `destructiveHint`, `idempotentHint`, `openWorldHint`). Every tool is read-only.

## Install as a Claude plugin

This repo doubles as a Claude Code / Cowork plugin. The plugin connects to the
remote server at `https://dealflowpro.io/mcp` rather than the npm package above,
which means:

- **Eight tools instead of four.** Adds `list_my_deals`, `get_deal_analysis`,
  `get_my_criteria`, and `portfolio_summary` — your saved deals, buy-box
  criteria, and pipeline, scoped to your account.
- **OAuth instead of an API key.** No `DFP_API_KEY` to export; you sign in to
  your DealFlowPro account when the plugin connects.

```bash
claude --plugin-dir /path/to/dealflowpro-mcp-server
```

Use the npm package below instead if you want a local stdio server, prefer API
key auth, or are wiring DealFlowPro into a non-Claude MCP client.

## For Institutional AI Teams

DealFlowPro is built to slot into AI eval pipelines and production AI stacks. The MCP server (this package, plus the remote endpoint at `https://dealflowpro.io/mcp`) wraps the same engine as the REST API — schema-strict, idempotent, predictable.

**Auth + scoping.** Every tool call requires a Bearer API key. Calls are scoped to the account that issued the key — no cross-tenant access path. Per-tool audit lines land in your account's `logs/mcp_tool_calls.log` capturing tool name + flattened arg keys (not values) — usage is auditable without exposing deal contents.

**Rate limits per tier.**

| Tier | Daily limit | Monthly | Cost |
|------|------------:|--------:|-----:|
| Free | 5 requests, lifetime | — | free, no card |
| Pay-as-you-go | balance-based | per credits | $1/request |
| Essentials | 50 req/day | ~1,500 | $79/mo |
| Premium | 200 req/day | ~6,000 | $149/mo |
| Enterprise | 1,000 req/day | ~30,000 | $399/mo |

Rate limit headers (`X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset`) returned on every response. 429 responses include `Retry-After`.

**Error codes.** Stable, documented at [dealflowpro.io/api/docs/#errors](https://dealflowpro.io/api/docs/) — all errors are JSON `{success: false, error: {code, message}}` shape. Codes: `invalid_input` (400), `invalid_json` (400), `unauthorized` (401), `tier_required` (403), `method_not_allowed` (405), `payload_too_large` (413), `rate_limit_exceeded` (429), `internal_error` (500).

**Tool schemas.** Each MCP tool has a schema-strict input definition. Call `tools/list` against the remote endpoint to get the canonical schemas at runtime; the REST OpenAPI spec covers the same shapes (the four MCP tools map 1:1 to the four REST endpoints).

**Eval harness pattern.** For benchmarking, the recommended pattern: maintain a fixture set of (deal payload → expected metrics) pairs, run each against `score_deal` (lowest cost, ~$0.01/call), assert metrics within tolerance. The endpoint is deterministic — same inputs produce the same outputs.

**Data handling.** Request payloads are processed in memory and not persisted to disk. TLS 1.2+ in transit. Anthropic API calls (when DealFlowPro internally uses Claude for document extraction) flow through DealFlowPro's zero-data-retention Anthropic workspace. Full posture: [dealflowpro.io/security#api-mcp-data-handling](https://dealflowpro.io/security#api-mcp-data-handling).

## Setup

You have **two install paths** — pick the one that matches your client.

### Path A — Remote MCP URL (no local install)

Use this for **claude.ai web** (Custom Connectors), **Claude Code with HTTP transport**, or **Claude API mcp_servers**. The endpoint is `https://dealflowpro.io/mcp` (Streamable HTTP, MCP 2025-06-18).

**claude.ai web / Claude Desktop:** DealFlowPro is not in Anthropic's Connectors Directory, so add it as a **custom connector** — Customize → Connectors → "Add custom connector" → name it `DealFlowPro`, paste `https://dealflowpro.io/mcp` → Add → Connect → sign in to DealFlowPro → click Allow. OAuth handles auth automatically (no API key to manage). Then in a chat, click "+" → Connectors → toggle DealFlowPro on.

[**Add DealFlowPro to Claude →**](https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=DealFlowPro&connectorUrl=https%3A%2F%2Fdealflowpro.io%2Fmcp) — opens the dialog with the name and URL pre-filled. You still review and confirm before anything is added.

**Team / Enterprise plans:** members cannot add custom connectors themselves. An organization Owner adds it once under Organization settings → Connectors → Add → Custom (type: Web), and each member then connects their own DealFlowPro account from Customize → Connectors.

**Claude Code (HTTP):**

```bash
claude mcp add dealflowpro \
  --transport http \
  --url https://dealflowpro.io/mcp \
  --header "Authorization: Bearer dfp_sk_your_key_here"
```

**Claude API:**

```http
POST https://api.anthropic.com/v1/messages
anthropic-beta: mcp-client-2025-11-20

{
  "mcp_servers": [{
    "type": "url",
    "url": "https://dealflowpro.io/mcp",
    "name": "dealflowpro",
    "authorization_token": "dfp_sk_your_key_here"
  }],
  ...
}
```

Get a Bearer key (free 5-request key, no card, or pay-as-you-go credits) at [dealflowpro.io/api](https://dealflowpro.io/api).

Full setup details + Connected Apps revocation: [dealflowpro.io/api/docs#mcp](https://dealflowpro.io/api/docs/#mcp).

### Path B — Local stdio (this npm package)

Use this anywhere you want the MCP server running locally instead of remote — or for a client that has no remote-URL path of its own. Claude Desktop supports both: remote via Settings → Connectors, or the local config below.

**1. Get an API key.** Visit [dealflowpro.io/api](https://dealflowpro.io/api) to claim a free 5-request key (no card) or buy pay-as-you-go credits. Delivered by email.

**2. Add to your client.**

Claude Desktop — `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "dealflowpro": {
      "command": "npx",
      "args": ["-y", "dealflowpro-mcp"],
      "env": {
        "DFP_API_KEY": "dfp_sk_your_key_here"
      }
    }
  }
}
```

Claude Code:

```bash
claude mcp add dealflowpro -e DFP_API_KEY=dfp_sk_your_key_here -- npx -y dealflowpro-mcp
```

### Use It

Just ask Claude about a deal. It automatically picks the right tool.

## Example Output

```
## Deal Analysis Results

**DFP Score: 19/100 (Poor)**

### Key Metrics
| Metric | Value |
|--------|-------|
| Cap Rate | 4.48% |
| DSCR | 0.86 |
| Cash-on-Cash | -1.95% |
| IRR | -12.17% |
| NOI | $89,524 |

### Max Offer Price
**$1,197,476** (binding constraint: cash-on-cash)
```

## API Documentation

Full REST API docs at [dealflowpro.io/api/docs](https://dealflowpro.io/api/docs/)

## Pricing

- **Pay-as-you-go:** $1/API request, starting at $5
- **Essentials:** 50 API requests/day included ($79/mo)
- **Premium:** 200 requests/day + reverse calculator ($149/mo)
- **Enterprise:** 1,000 requests/day ($399/mo)

## Requirements

- Node.js 18+
- DealFlowPro API key

## About DealFlowPro

DealFlowPro automates multifamily underwriting for 2-200 unit properties. Upload a broker email or OM and get a full investment analysis in 10 minutes instead of 2 hours. Used by operators, syndicators, and PE firms to screen deals faster.

[dealflowpro.io](https://dealflowpro.io)

## License

MIT

More