# DFX Real Estate Intelligence (remote · exchange-production-9123.up.railway.app)

Free, no key. US commercial real estate: FHA/CMBS maturities, LIHTC/HUD expiries, bank CRE exposure.

- Trust score: 77/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-21

## Components

- remote · `exchange-production-9123.up.railway.app`: 77/100 (this document), [markdown](https://verifymcp.io/servers/capital-w-holdings-us-property-parcel-real-estate-debt/exchange-production-9123.md), [page](https://verifymcp.io/servers/capital-w-holdings-us-property-parcel-real-estate-debt/exchange-production-9123)

## Channel facts

- Endpoint: `https://exchange-production-9123.up.railway.app/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.14.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-21.

- **Endpoint Security**: 74/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 61/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 25402 tokens (~302/item across 84 items; 84 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 70/100
  - Stability observed for 21 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 84/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 51% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 84 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 85 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the DFX Real Estate Intelligence MCP server?

DFX Real Estate Intelligence is a hosted endpoint at https://exchange-production-9123.up.railway.app/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http capital-w-holdings-us-property-parcel-real-estat 'https://exchange-production-9123.up.railway.app/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "capital-w-holdings-us-property-parcel-real-estat": {
      "url": "https://exchange-production-9123.up.railway.app/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "capital-w-holdings-us-property-parcel-real-estat": {
      "type": "http",
      "url": "https://exchange-production-9123.up.railway.app/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.capital-w-holdings-us-property-parcel-real-estat]
url = "https://exchange-production-9123.up.railway.app/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "capital-w-holdings-us-property-parcel-real-estat": {
      "type": "remote",
      "url": "https://exchange-production-9123.up.railway.app/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add capital-w-holdings-us-property-parcel-real-estat --url 'https://exchange-production-9123.up.railway.app/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  capital-w-holdings-us-property-parcel-real-estat:
    url: "https://exchange-production-9123.up.railway.app/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "capital-w-holdings-us-property-parcel-real-estat": {
      "Transport": "http",
      "Url": "https://exchange-production-9123.up.railway.app/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add capital-w-holdings-us-property-parcel-real-estat -t streamable-http -u 'https://exchange-production-9123.up.railway.app/mcp'
```

### Other

```json
{
  "mcpServers": {
    "capital-w-holdings-us-property-parcel-real-estat": {
      "type": "http",
      "url": "https://exchange-production-9123.up.railway.app/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-21 (score 77, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “search_property_events” rewrote its description, which is the text the model reads
- [functional] New tool “find_lenders_for_financing”
- [cosmetic] “search_property_events” reworded the description of “within_days”

### 2026-09-20 (score 77, +1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “search_property_events” rewrote its description, which is the text the model reads
- [cosmetic] “search_property_events” reworded the description of “within_days”

### 2026-09-19 (score 76, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “resolve_name” rewrote its description, which is the text the model reads
- [security] Tool “search_people” rewrote its description, which is the text the model reads
- [security] Tool “search_property_events” rewrote its description, which is the text the model reads
- [functional regression] Tool coverage: 57% → 51%
- [functional regression] Schema quality: 13944 → 25021
- [functional] New tool “get_allocator”
- [functional] New tool “get_bdc_portfolio”
- [functional] New tool “get_borrower_capital_structure”
- [functional] New tool “get_borrower_facilities”
- [functional] New tool “get_capital_paths”
- [functional] New tool “get_commitments”
- [functional] New tool “get_credit_facility”
- [functional] New tool “get_credit_provider”
- [functional] New tool “get_re_fund_manager”
- [functional] New tool “get_re_fund_trends”
- [functional] New tool “get_re_fund_vehicle”
- [functional] New tool “get_ria_advisor”
- [functional] New tool “get_ria_capital_links”
- [functional] New tool “get_ria_firm”
- [functional] New tool “get_ria_practice”
- [functional] New tool “get_ria_trends”
- [functional] New tool “get_sponsor_lenders”
- [functional] New tool “resolve_ria_advisor”
- [functional] New tool “search_allocator_commitments”
- [functional] New tool “search_allocators”
- [functional] New tool “search_capital_changes”
- [functional] New tool “search_credit_maturities”
- [functional] New tool “search_private_credit”
- [functional] New tool “search_private_credit_changes”
- [functional] New tool “search_re_fund_managers”
- [functional] New tool “search_re_fund_vehicles”
- [functional] New tool “search_ria”
- [functional] New tool “search_ria_advisor_moves”
- [functional] New tool “search_ria_anomalies”
- [functional] New tool “search_ria_changes”
- [functional] New tool “search_ria_funds”
- [functional] New tool “search_ria_ma”
- [functional] New tool “search_ria_offices”
- [functional] New tool “search_ria_practices”
- [functional] New tool “search_ria_teams”
- [functional] New tool “search_sponsor_lender”
- [cosmetic] “explain_match” reworded the description of “dfx_id_a”
- [cosmetic] “explain_match” reworded the description of “dfx_id_b”
- [cosmetic] “find_capital_for_opportunity” reworded the description of “dfx_id”
- [cosmetic] “find_opportunities_for_capital” reworded the description of “dfx_id”
- [cosmetic] “get_entity” reworded the description of “dfx_id”
- [cosmetic] “get_family_office” reworded the description of “dfx_id”
- [cosmetic] “get_independent_sponsor” reworded the description of “dfx_id”
- [cosmetic] “get_vc_firm” reworded the description of “dfx_id”
- [cosmetic] “relationship_path” reworded the description of “from_dfx_id”
- [cosmetic] “relationship_path” reworded the description of “to_dfx_id”
- [cosmetic] “resolve_name” reworded the description of “domain”
- [cosmetic] “search_entities” reworded the description of “domain”
- [cosmetic] “search_entities” reworded the description of “entity_type”
- [cosmetic] “search_events” reworded the description of “dfx_id”
- [cosmetic] “search_family_office_investments” reworded the description of “office_dfx_id”
- [cosmetic] “search_people” reworded the description of “organization_dfx_id”
- [cosmetic] “search_property_events” reworded the description of “within_days”
- [cosmetic] “search_relationships” reworded the description of “dfx_id”
- [cosmetic] “search_sponsor_deals” reworded the description of “sponsor_dfx_id”
- [cosmetic] “search_sponsor_deals” reworded the description of “target_dfx_id”
- [cosmetic] “search_vc_funds” reworded the description of “organization_dfx_id”
- [cosmetic] “search_vc_investments” reworded the description of “company_dfx_id”
- [cosmetic] “search_vc_investments” reworded the description of “investor_dfx_id”
- [cosmetic] “search_vc_investments” reworded the description of “partner_dfx_id”
- [cosmetic] “verify” reworded the description of “object_dfx_id”
- [cosmetic] “verify” reworded the description of “subject_dfx_id”
- [cosmetic] “who_should_care” reworded the description of “dfx_id”
- [cosmetic] “why_now” reworded the description of “dfx_id”

### 2026-09-18 (score 76, +1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “search_property_events” rewrote its description, which is the text the model reads
- [cosmetic] “search_property_events” reworded the description of “within_days”

### 2026-09-17 (score 75, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “search_property_events” rewrote its description, which is the text the model reads
- [cosmetic] “search_property_events” reworded the description of “within_days”

### 2026-09-16 (score 75, +1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “search_property_events” rewrote its description, which is the text the model reads
- [cosmetic] “search_property_events” reworded the description of “within_days”

### 2026-09-15 (score 74, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “debt_maturity_schedule” rewrote its description, which is the text the model reads
- [security] Tool “find_capital_for_opportunity” rewrote its description, which is the text the model reads
- [security] Tool “get_independent_sponsor” rewrote its description, which is the text the model reads
- [security] Tool “search_entities” rewrote its description, which is the text the model reads
- [security] Tool “search_events” rewrote its description, which is the text the model reads
- [security] Tool “search_independent_sponsors” rewrote its description, which is the text the model reads
- [security] Tool “search_property_events” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 10874 → 13944
- [functional] New tool “find_pe_addons_for_platform”
- [functional] New tool “find_pe_buyers_for_company”
- [functional] New tool “find_pe_companies_for_buyer”
- [functional] New tool “get_pe_firm”
- [functional] New tool “get_pe_fund”
- [functional] New tool “resolve_name”
- [functional] New tool “search_pe_firms”
- [functional] New tool “search_pe_funds”
- [functional] New tool “search_pe_platforms”
- [functional] New tool “search_pe_transactions”
- [functional] New tool “search_pending_ownership_changes”
- [cosmetic] “search_independent_sponsors” added an optional parameter “include_unverified”
- [cosmetic] “explain_match” reworded the description of “dfx_id_a”
- [cosmetic] “explain_match” reworded the description of “dfx_id_b”
- [cosmetic] “find_capital_for_opportunity” reworded the description of “dfx_id”
- [cosmetic] “find_capital_for_opportunity” reworded the description of “investor_types”
- [cosmetic] “find_opportunities_for_capital” reworded the description of “dfx_id”
- [cosmetic] “get_entity” reworded the description of “dfx_id”
- [cosmetic] “get_family_office” reworded the description of “dfx_id”
- [cosmetic] “get_independent_sponsor” reworded the description of “dfx_id”
- [cosmetic] “get_vc_firm” reworded the description of “dfx_id”
- [cosmetic] “relationship_path” reworded the description of “from_dfx_id”
- [cosmetic] “relationship_path” reworded the description of “to_dfx_id”
- [cosmetic] “search_entities” reworded the description of “domain”
- [cosmetic] “search_entities” reworded the description of “entity_type”
- [cosmetic] “search_events” reworded the description of “dfx_id”
- [cosmetic] “search_family_office_investments” reworded the description of “office_dfx_id”
- [cosmetic] “search_people” reworded the description of “organization_dfx_id”
- [cosmetic] “search_people” reworded the description of “role”
- [cosmetic] “search_property_events” reworded the description of “within_days”
- [cosmetic] “search_relationships” reworded the description of “dfx_id”
- [cosmetic] “search_sponsor_deals” reworded the description of “sponsor_dfx_id”
- [cosmetic] “search_sponsor_deals” reworded the description of “target_dfx_id”
- [cosmetic] “search_vc_funds” reworded the description of “organization_dfx_id”
- [cosmetic] “search_vc_investments” reworded the description of “company_dfx_id”
- [cosmetic] “search_vc_investments” reworded the description of “investor_dfx_id”
- [cosmetic] “search_vc_investments” reworded the description of “partner_dfx_id”
- [cosmetic] “verify” reworded the description of “object_dfx_id”
- [cosmetic] “verify” reworded the description of “subject_dfx_id”
- [cosmetic] “who_should_care” reworded the description of “dfx_id”
- [cosmetic] “why_now” reworded the description of “dfx_id”
- [cosmetic] Tool “search_people” changed its title: People across the family office, sponsor and venture graphs → People across the family office, sponsor, venture and private equity graphs

### 2026-09-14 (score 74, +1)

- [security regression] A breaking change shipped without a version bump: still 0.15.0
- [security regression] Tool “dfx_payment_status” was removed
- [security regression] Tool “fund_dfx_account” was removed
- [security regression] Tool “open_dfx_account” was removed
- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “changes_since” rewrote its description, which is the text the model reads
- [security] Tool “debt_maturity_schedule” rewrote its description, which is the text the model reads
- [security] Tool “dfx_coverage” rewrote its description, which is the text the model reads
- [security] Tool “get_entity” rewrote its description, which is the text the model reads
- [security] Tool “get_family_office” rewrote its description, which is the text the model reads
- [security] Tool “get_independent_sponsor” rewrote its description, which is the text the model reads
- [security] Tool “get_occupancy” rewrote its description, which is the text the model reads
- [security] Tool “get_property_record” rewrote its description, which is the text the model reads
- [security] Tool “get_vc_firm” rewrote its description, which is the text the model reads
- [security] Tool “resolve_address” rewrote its description, which is the text the model reads
- [security] Tool “search_entities” rewrote its description, which is the text the model reads
- [security] Tool “search_events” rewrote its description, which is the text the model reads
- [security] Tool “search_family_offices” rewrote its description, which is the text the model reads
- [security] Tool “search_independent_sponsors” rewrote its description, which is the text the model reads
- [security] Tool “search_parcels” rewrote its description, which is the text the model reads
- [security] Tool “search_people” rewrote its description, which is the text the model reads
- [security] Tool “search_private_companies” rewrote its description, which is the text the model reads
- [security] Tool “search_property_events” rewrote its description, which is the text the model reads
- [security] Tool “search_subsidised_housing” rewrote its description, which is the text the model reads
- [security] Tool “search_vc_firms” rewrote its description, which is the text the model reads
- [security] Tool “verify” rewrote its description, which is the text the model reads
- [security] Tool “what_can_dfx_answer” rewrote its description, which is the text the model reads
- [security] Tool “who_should_care” rewrote its description, which is the text the model reads
- [cosmetic] “search_family_office_investments” added an optional parameter “include_candidates”
- [cosmetic] “changes_since” reworded the description of “domain”
- [cosmetic] “changes_since” reworded the description of “event_type”
- [cosmetic] “changes_since” reworded the description of “limit”
- [cosmetic] “changes_since” reworded the description of “since”
- [cosmetic] “debt_maturity_schedule” reworded the description of “limit”
- [cosmetic] “debt_maturity_schedule” reworded the description of “state”
- [cosmetic] “dfx_coverage” reworded the description of “event_type”
- [cosmetic] “get_occupancy” reworded the description of “address”
- [cosmetic] “get_occupancy” reworded the description of “company”
- [cosmetic] “get_occupancy” reworded the description of “dfx_id”
- [cosmetic] “get_property_record” reworded the description of “dfx_id”
- [cosmetic] “resolve_address” reworded the description of “city”
- [cosmetic] “resolve_address” reworded the description of “limit”
- [cosmetic] “resolve_organization” reworded the description of “name”
- [cosmetic] “search_family_office_investments” reworded the description of “investment_kind”
- [cosmetic] “search_people” reworded the description of “query”
- [cosmetic] “search_property_events” reworded the description of “cursor”
- [cosmetic] “search_property_events” reworded the description of “event_type”
- [cosmetic] “search_property_events” reworded the description of “limit”
- [cosmetic] “search_property_events” reworded the description of “within_days”
- [cosmetic] “search_vc_firms” reworded the description of “sector”
- [cosmetic] “what_can_dfx_answer” reworded the description of “domain”
- [cosmetic] “what_can_dfx_answer” reworded the description of “objective”
- [cosmetic] “debt_maturity_schedule” dropped the optional parameter “authorize”
- [cosmetic] Tool “debt_maturity_schedule” changed its title: PAID, $1.00: confirmed commercial mortgage maturities for one state → Confirmed commercial mortgage maturities for one state

## MCP tools (84)

### `resolve_address` (~222 tokens)

Resolve a US street address to a property or parcel

Turn a street address into canonical DFX object ids, with the match basis and any ambiguity stated. Returns typed objects: a 'property' (national federal programme multifamily) and/or a 'parcel' (Massachusetts assessor and registry layer). These are separate populations that barely overlap, so an address may return one, the other, or both. Free. The ids returned are the canonical property and parcel ids used across this server.

Input parameters:

- `address` (string, required): Street address including the house number, for example '100 Binney St'
- `city` (string): City or town, for example 'Cambridge'. Optional: a one-line address carrying its own city and state is accepted whole in `address` and split server side. A value given here takes precedence over anyt…
- `limit` (integer): Max 50. This is candidates for ONE address, not a page of a search. `address_group_size` on a result reports when several published records share the address.
- `state` (string): Two letter state code

### `resolve_organization` (~141 tokens)

Resolve a company name to a DFX entity

Turn an owner, manager, lender or servicer name into canonical DFX entity ids. A name is treated as a blocking key and never as an identity, so all candidates are returned rather than a guess. Free. Person lookup is deliberately not offered.

Input parameters:

- `limit` (integer): Max 50. Every candidate is returned rather than a best guess, so a common name spends this whole budget.
- `name` (string, required): Company name as written anywhere: owner, manager, lender or servicer, for example 'KeyBank'. It is matched as a blocking key, so a partial or differently punctuated name returns several candidates ra…

### `get_occupancy` (~326 tokens)

Who occupies a property, or where a company operates

Two directions from one call. A PROPERTY dfx_id returns the tenants observed at that building: tenant name and dfx_id, occupancy class, leased area, share of the property, and the lease expiration date where the source discloses one. A COMPANY dfx_id returns where that company is observed to operate. `company` with `address` (plus city and state) checks ONE claim: does DFX hold this company at this building. Every row carries its evidence tier and its freshness. Free.
not_observed IS NOT VACANT. The published tenancy sources name only the largest tenant of a building, so most real occupiers are outside the disclosure entirely and an absent row is an absent disclosure, never a statement about the space. Accepts the canonical property and company dfx_ids carried by address and name resolution results and by event rows.

Input parameters:

- `address` (string): Street address for the one-claim check. Used together with `company`.
- `city` (string): Municipality. The parcel key includes it, so an address without a city resolves poorly.
- `company` (string): Company name, for the one-claim check. Used together with `address`; a company name alone is refused.
- `dfx_id` (string): A property dfx_id (returns its tenants) or a company dfx_id (returns its locations). The direction is read from the object, not from a flag.
- `limit` (integer): Max rows. A large building can disclose several tenants.
- `state` (string): Two-letter US state code.

### `get_property_record` (~194 tokens)

Everything DFX holds about one property or parcel

Given a DFX id, return current state, dated events, ownership and management relationships, debt with maturity dates and maturity basis, recorded sales with consideration plus registry book and page, and the provenance of each. Sales carry BOTH the instrument total and this parcel's allocated share, because a deed repeats its full price on every parcel it covers. Free.
THIS IS ALSO THE PARCEL LOOKUP. The id can name a property or a parcel, and both come back in full, including the `dfx_id` carried on every address resolution object and every parcel search row.

Input parameters:

- `dfx_id` (string, required): A DFX id for a property OR a parcel. Both work and both come back in full. Accepted forms: the `dfx_id` on an address resolution object, the `dfx_id` on a parcel search row, or the evidence `dfx_id`…

### `search_property_events` (~1041 tokens)

Find dated property events by type, state and time window

Dated events over US properties and parcels, with provenance and a human-readable headline. Covers LIHTC compliance period endings (the Year 15 recapitalisation trigger, 11,956 of them), HUD subsidy contract expiries (4,721), scheduled loan maturities (3,395) now national rather than Massachusetts, CMBS distress and workout reporting (163 delinquency flags across 26 states, 123 foreclosures across 21), issued building permits and demolition filings (Boston only), and recorded sales (43,680, 2 states). 9,368 events fall inside the next 548 days, measured 2026-09-21. Filter by event type, state and days ahead. An unrecognised event type is REFUSED with the served vocabulary, never answered with an empty list. Free. ORDER: results are sorted by `occurred_at`. A family whose events lie AHEAD is returned soonest first, so the first row is the next thing to happen. A family whose events have already happened is returned NEWEST first, so the first row is the most recent thing that did. The tie-break is stable, so paging never reorders what you have already seen. FORWARD, soonest first: COMPLIANCE_PERIOD_ENDING, LEASE_EXPIRING, LOAN_MATURITY_SCHEDULED, SUBSIDY_CONTRACT_EXPIRING. HISTORICAL, newest first: BANKRUPTCY_EVENT, CERTIFICATE_OF_OCCUPANCY, DEMOLITION_FILED, DISTRESS_FLAG_RAISED, FORECLOSURE_EVENT, LOAN_MODIFIED, PERMIT_ISSUED, PORTFOLIO_CONTRACTED, PORTFOLIO_EXPANDED, PROPERTY_SOLD, USE_CONVERSION_PERMITTED. Measured 2026-09-21. Passing `within_days` asks about a future whatever the family, so it sorts soonest first. PAGING: a full page carries `next_cursor`. Supplied as `cursor` with every other argument unchanged, it continues the traversal; `next_cursor` is null on the last page, and that is the only signal the traversal has ended. The cursor carries the sort it was issued under, so a cursor replayed against a different `event_type` is REFUSED rather than quietly paging you back through rows you have seen. The counts above are therefore all reachable.

Input parameters:

- `cursor` (string): The `next_cursor` from a previous page. With EVERY other argument identical it returns the rows after that page. `next_cursor` is null only once the whole result set has been read: a short page is no…
- `event_type` (string): ONE family per call. Left unset, every family is searched together, which mixes populations of very different sizes. The list is generated from what this server actually publishes today, so it grows…
- `include_past` (boolean): Return the whole tape including events already past, instead of the default forward window applied to expiry families. Has no effect when `within_days` is given, which sets its own window, and none o…
- `limit` (integer): Max 50. Results are ordered by occurred_at ASCENDING. For the expiry families (maturities, compliance periods, subsidy contracts, leases) a call with no `within_days` now returns events dated TODAY O…
- `state` (string): Two letter state code
- `within_days` (integer): FORWARD ONLY: it filters to events occurring between today and N days from now, and it cannot reach the past. A historical event fails every forward window, so any value here returns an empty list fo…

### `search_bank_cre_exposure` (~456 tokens)

FDIC-insured banks by commercial real estate concentration

Search 4,313 FDIC-insured banks by their commercial real estate book at the June 2026 call report: total CRE, construction and multifamily in dollars and against equity and assets, noncurrent and net charge-off ratios, ROA, and two screens against the 2006 Interagency CRE guidance (construction over 100%, total CRE over 300%). For 4,242 of them, UBPR's peer-group and national percentile RANKS on the same concentrations. Filter by state, name, CRE-to-equity range, guidance screen, minimum assets or minimum noncurrent ratio; sort by cre_to_equity (default), construction_to_equity, noncurrent, cre_total, assets or multifamily. Free.
THE GUIDANCE IS QUOTED, NOT APPLIED: it tests TOTAL RISK BASED CAPITAL; the ratios here are on equity and the ranks on Tier 1 plus the allowance, so above_*_guidance_on_equity is a screen against a proxy. Every row states its quarter. No person appears in this data.

Input parameters:

- `above_guidance` (boolean): true: only banks whose total CRE exceeds 300% of equity (the guidance line, on a proxy denominator). false: only banks under it.
- `limit` (integer): Rows to return, 1 to 50. `matched` states the true total regardless.
- `max_cre_to_equity_pct` (integer): Ceiling on the same ratio.
- `min_assets_usd` (integer): Floor on total assets in dollars, e.g. 1000000000 for $1B.
- `min_cre_to_equity_pct` (integer): Floor on total CRE as a percent of equity, e.g. 300.
- `min_noncurrent_pct` (integer): Floor on the CRE noncurrent ratio in percent.
- `name` (string): Substring of the institution name, case-insensitive, e.g. 'riverhills'.
- `sort` (string): Descending on the named measure. Default cre_to_equity.
- `state` (string): Two-letter US state, district or territory code of the bank's home office. Unknown codes are refused, not searched.

### `search_subsidised_housing` (~462 tokens)

HUD-subsidised projects by place, programme, occupancy and waiting list

Search HUD's project-level Picture of Subsidized Households: 29,455 subsidised projects nationally, one row per project and programme, with units AVAILABLE (HUD's subsidised units available, which excludes units offline for rehab or disposition; occupancy is measured against these, so 100% of 20 available can be 20 of 50 built), occupied units, occupancy percent, MONTHS ON THE WAITING LIST, average rent, average household income, average tenure and what HUD pays per unit per month. Filter by state, city, programme (Public Housing, Section 8 NC/SR, Section 236, 202/PRAC, 811/PRAC, Mod Rehab), minimum waiting list, occupancy range and minimum units. Ordered by waiting list, deepest queue first. Every row carries the canonical property dfx_id. Free.
ONE ANNUAL CAPTURE, effective 2025-12-31, stated on every row: this is a snapshot of demand, not a change over time. A NULL waiting list is an absent disclosure (housing authorities report it, private owners under a HAP contract mostly do not), never an empty queue; min_waiting_months EXCLUDES such rows and the answer states how many projects in the same place report one. Tenant composition is not published here.

Input parameters:

- `city` (string): City as HUD records it, case-insensitive exact match, e.g. Akron.
- `limit` (integer): Rows to return, 1 to 50. `matched` states the true total regardless.
- `max_occupancy` (integer): Occupancy percent ceiling, 0 to 100.
- `min_occupancy` (integer): Occupancy percent floor, 0 to 100.
- `min_units` (integer): Only projects with at least this many units.
- `min_waiting_months` (integer): Only projects reporting a waiting list of at least this many months. Excludes projects that report none.
- `program` (string): Substring of the HUD programme name, e.g. 'Public Housing' or 'Section 8'.
- `state` (string): Two-letter US state, district or territory code. Unknown codes are refused, not searched.

### `search_parcels` (~384 tokens)

Find parcels by place, use, tenure, vintage and assessed value

Search the assessor parcel layer with filters instead of one exact address. Filter by state, municipality, assessor land use code, owner-occupancy, tax-exempt status, year built and assessed value range; results carry assessed value, gross building area, assessed value per square foot, the annual tax and the year built. This is the way to ask a QUESTION of the parcel layer without an address in hand. Every answer states the true match count alongside the sample, and a search that matches nothing names the filter that emptied it rather than returning a bare empty list. At least one filter is required. Free.
EVERY ROW CARRIES A `dfx_id` AND IT IS A HANDLE, NOT A LABEL: the canonical parcel id this server uses for that parcel's events, ownership, debt and recorded sales.

Input parameters:

- `built_after` (integer): Exclusive lower bound on year built
- `built_before` (integer): Exclusive upper bound on year built
- `land_use` (string): Assessor land use code, for example 'R3' for a three family dwelling
- `limit` (integer): Max 50. This sizes the SAMPLE only: every answer states the true match count beside it, so a small limit never hides how big the result really is.
- `max_assessed` (integer): Maximum assessed total, in dollars
- `min_assessed` (integer): Minimum assessed total, in dollars
- `municipality` (string): City or town, for example 'Boston'
- `owner_occupied` (boolean): true for owner-occupied, false for investor or institutionally held. Parcels whose roll does not state it are excluded either way.
- `state` (string): Two letter state code
- `tax_exempt` (boolean): true for the institutional universe (churches, universities, authorities), false for the taxable one

### `what_can_dfx_answer` (~279 tokens)

Ask in plain language whether DFX can help

Takes an objective in natural language and returns whether DFX can help, the tool name and arguments that answer it, and a free sample of the result. Says no clearly when the answer is no. Accepts objectives that do not yet map to a specific query.
READ ONLY, and the annotation means it: nothing is created, nothing you or anyone else can read back is changed. The question itself is kept in DFX's own interaction ledger, as every call on this server is, and unmet asks are what decide what DFX builds next.

Input parameters:

- `constraints` (object): Structured overrides for what was parsed out of `objective`, applied last so they outrank the prose. ONLY `state`, `event_type`, `within_days` and `limit` are honoured; any other key is ignored witho…
- `domain` (string): One domain's coverage and tools, answered instead of routing a real estate objective.
- `objective` (string): What you are trying to do, in one sentence and in your own words, for example 'commercial real estate loans in Ohio maturing in the next year'. A place named in the sentence is what the free sample i…
- `topic` (string): A topic in your own words ('family office direct investing', 'venture fundraising'); answers with the domains that cover it.

### `changes_since` (~355 tokens)

What DFX has learned since your last call

A feed of what is NEW since a cursor, ordered by when DFX learned it rather than by when it happened. The first call, made without a cursor, returns ZERO events and a starting position by design; a later call with that cursor returns what DFX learned in between. It answers what is new, not what exists. Filter by event type, state, or a specific property or parcel id. Deterministic and indexed, so frequent polling is cheap. Free.
HISTORICAL FAMILIES DO FLOW THROUGH HERE. This feed is ordered by when DFX LEARNED a fact, not when the fact happened, so a foreclosure that occurred months ago and was ingested today arrives in today's delta. A distress or sales feed built on this works.

Input parameters:

- `dfx_id` (string): With `domain`: watch one entity (dfx:fo:, dfx:isi: or dfx:vc: id).
- `domain` (string): An intelligence domain instead of real estate; with it, `since` is an ISO timestamp.
- `event_type` (string): One served event family.
- `limit` (integer): Max 50. A full page sets `complete: false` in the envelope, which means the backlog was longer than one page and more rows are available immediately with the returned cursor. The cursor is the last r…
- `place_dfx_id` (string): Watch one property or parcel
- `since` (string): Opaque cursor from a previous call. Unset on the first call, which establishes a position and returns no events by design.
- `state` (string): Two letter state code

### `debt_maturity_schedule` (~276 tokens)

Confirmed commercial mortgage maturities for one state

Free, keyless and unauthenticated.
Returns the LOAN rather than the event: for one US state and one forward window, up to 200 loans with maturity date, original and current principal, interest rate, lender name, instrument type, origination date and the secured property's address, deduplicated to one row per loan and ordered by maturity.
Every maturity_basis is 'confirmed': 19,821 of 19,821 loans carry a date filed with the SEC by a servicer or recorded by HUD, and none is estimated or inferred from a term length.
Every response states how many loans DFX holds for the filter and whether the delivery is complete, so an answer capped at 200 rows is never presented as the whole population. Each row says whether a maturity event was published for the loan. A missing event does not mean the loan is defeased: loans filed as defeased (ABS-EE code F, or IP for a portion) are withheld, and code X means defeasance is not allowable, so an X loan must refinance or pay off at maturity.

Input parameters:

- `limit` (integer): Maximum loans, up to 200.
- `state` (string, required): Two letter state code. Required.
- `within_days` (integer): Forward window from today. Default 548, eighteen months.

### `dfx_coverage` (~189 tokens)

What DFX actually covers, and what it does not

Measured coverage, served sources, object types and the known gaps stated plainly, including where geography is a single state and where nothing carries a calibrated probability. It separates an empty result from an absent market.
With NO arguments: the full grid, every event family, every state, measured. With `state` and/or `event_type`: a direct verdict on that one slice (COVERED, NOT_COVERED or UNKNOWN) with the basis it was decided on, which is one small answer instead of a grid to parse. Free, and it queries no data: the verdict comes from a coverage registry, so a NOT_COVERED is measured rather than inferred from an empty search.

Input parameters:

- `event_type` (string): Optional: narrows the answer to this served event family.
- `state` (string): Two letter state code. Optional: narrows the answer to this state.

### `search_family_offices` (~327 tokens)

Search US family offices

Family offices as compact cards: class (single, multi, embedded...) with confidence, whether they invest directly, sectors and asset classes on record, check size where stated, direct investment count, latest deployment, and counts of people, sponsor and real estate relationships. Filter by state, sector, direct investing, recent activity or AUM. Returns dfx:fo: ids. People and individual investments are not on these cards.

Input parameters:

- `asset_class` (string)
- `city` (string)
- `class` (string): The classifier's verdict. A CANDIDATE is a name, never a class. NOT_FAMILY_OFFICE rows are excluded unless asked for.
- `cursor` (string)
- `has_real_estate` (boolean): Offices with a real estate relationship on the rollup. Answers NOT_COVERED while none carries one; asset_class='real_estate' reads the stated asset classes instead.
- `has_sponsor_relationships` (boolean): Offices with a CO_INVESTED_WITH or capital-provider edge to the sponsor graph. Answers NOT_COVERED with the count while no office carries one.
- `invests_directly` (boolean)
- `limit` (integer)
- `min_aum_usd` (number)
- `query` (string): Name contains.
- `recent_activity_days` (integer)
- `sector` (string): A sector on the office's record, e.g. industrial services, healthcare, real estate.
- `sort` (string)
- `state` (string): Two-letter US state code.

### `get_family_office` (~209 tokens)

One family office in full

The full card for one family office: profile, AUM / RAUM / 13F value kept apart with their as-of dates, behaviour, the people who run it with roles, its observed investments, relationships, recent events, evidence rows and cross-graph links (same_as by shared CRD/CIK/EIN). Contact points are withheld over MCP. Accepts dfx:fo: ids.

Input parameters:

- `dfx_id` (string, required): A DFX id: dfx:fo:<uuid> (family office graph), dfx:isi:<uuid> (sponsor graph), dfx:vc:<uuid> (venture graph), dfx:pe:<uuid> (private equity graph), dfx:ria:<uuid> (registered investment adviser graph…

### `search_family_office_investments` (~360 tokens)

Observed family office investments

Dated investments family offices have been observed making: target, sector, asset class, structure, control or minority, lead or participant, amounts where disclosed (with basis), board seats, exits, and the source quote. Filter by office, sector, asset class, state, kind or since-date. The evidence behind 'this office backs X'.

Input parameters:

- `asset_class` (string)
- `include_candidates` (boolean): Without an office id the tape covers family-capital offices only (confirmed and probable SFOs, confirmed MFOs, family investment companies and vehicles), the same rule as dfxintel.com. true widens to…
- `investment_kind` (string): portfolio_listing is a company named on the office's own portfolio page without a dated transaction; round_participation, direct_investment, recapitalization and credit come from dated press releases…
- `limit` (integer)
- `office_dfx_id` (string): A DFX id: dfx:fo:<uuid> (family office graph), dfx:isi:<uuid> (sponsor graph), dfx:vc:<uuid> (venture graph), dfx:pe:<uuid> (private equity graph), dfx:ria:<uuid> (registered investment adviser graph…
- `sector` (string)
- `since` (string): ISO date.
- `state` (string): Two-letter US state code.

### `search_independent_sponsors` (~284 tokens)

Search independent sponsors

Verified independent sponsor firms (deal-by-deal acquirers of lower middle market companies) as compact cards: verification status, classification, mandate summary, principals, vehicle count and latest vehicle, and how many companies resemble the sponsor's observed deals. Only firms whose identity evidence names them (eligibility VERIFIED_SPONSOR_FIRM) are returned unless include_unverified is true, which returns the unverified filing groups and candidates as a labelled research list. With `sector`, the answer is OBSERVED behaviour: verified sponsors with observed deals in that vertical first. Returns dfx:isi: ids. Capital providers and target companies are not in these results.

Input parameters:

- `city` (string)
- `include_unverified` (boolean): true returns the research list instead: unverified Form D filing groups and candidates, never paired with companies. Default false.
- `kind` (string)
- `limit` (integer)
- `min_confidence` (number)
- `query` (string)
- `sector` (string): Free text mapped onto the eight verticals (business_services, industrial_manufacturing, industrial_services, healthcare_services, consumer_services, specialty_distribution, transportation_logistics,…
- `sort` (string)
- `state` (string): Two-letter US state code.

### `get_independent_sponsor` (~226 tokens)

One sponsor, provider or private company in full

The full card for any entity on the sponsor graph: a sponsor (with its verification status, the companies resembling its observed deals as counted facts and reasons with no score, its announced transactions and its observed capital relationships), a capital provider (with fund size, average investment, SBIC status, strategy, whether making new investments) or a private company (with its transition signals and sponsor matches). Plus relationships, events, evidence and cross-graph links. Accepts dfx:isi: ids.

Input parameters:

- `dfx_id` (string, required): A DFX id: dfx:fo:<uuid> (family office graph), dfx:isi:<uuid> (sponsor graph), dfx:vc:<uuid> (venture graph), dfx:pe:<uuid> (private equity graph), dfx:ria:<uuid> (registered investment adviser graph…

### `search_sponsor_capital_providers` (~213 tokens)

Capital providers that fund independent sponsors

SBICs, mezzanine and private equity funds, and family offices observed providing capital to independent sponsors: provider type, strategy, fund style, fund size and average investment (kept apart), vintage, SBIC licence, whether making new investments, mandate summary. Filter by state, type, sector text, SBIC status or fund size.

Input parameters:

- `limit` (integer)
- `making_new_investments` (boolean)
- `min_fund_size_usd` (number)
- `provider_type` (string): sbic: SBA-licensed funds. family_office: providers that are the same entity as a family office on the family office graph (shared CRD, CIK or EIN), never a name match.
- `query` (string)
- `sbic_licensed` (boolean)
- `sector` (string): Free text against the mandate, strategy and description.
- `sort` (string)
- `state` (string): Two-letter US state code.

### `search_private_companies` (~258 tokens)

Private companies with an ownership transition coming

US private companies whose filings (Form 5500 plan history, final filings, ownership changes) show a transition: vertical, plan participants as a size proxy, EBITDA band where derivable, and scores 0 to 100 for opportunity, dealability, transition readiness and urgency, each backed by observations. Filter by vertical, state, NAICS prefix, size and minimum opportunity. Returns dfx:isi: ids.

Input parameters:

- `city` (string)
- `limit` (integer)
- `max_participants` (integer)
- `min_opportunity` (integer): 0 to 100; the median company scores 21 and the top decile above 28.
- `min_participants` (integer)
- `naics_prefix` (string)
- `query` (string)
- `record_status` (string)
- `sort` (string)
- `state` (string): Two-letter US state code.
- `subsector` (string): Free text on the subsector (slower).
- `vertical` (string): One of business_services, industrial_manufacturing, industrial_services, healthcare_services, consumer_services, specialty_distribution, transportation_logistics, tech_enabled_services (free text is…

### `search_sponsor_deals` (~342 tokens)

Announced sponsor transactions

Announced acquisitions, recapitalisations and exits by independent sponsors: sponsor, target, dates, enterprise value range where disclosed, structure, parties and source. Filter by sponsor, target, type, state, since-date or name text.

Input parameters:

- `limit` (integer)
- `query` (string): Matches the sponsor's or the target's name.
- `since` (string)
- `sponsor_dfx_id` (string): A DFX id: dfx:fo:<uuid> (family office graph), dfx:isi:<uuid> (sponsor graph), dfx:vc:<uuid> (venture graph), dfx:pe:<uuid> (private equity graph), dfx:ria:<uuid> (registered investment adviser graph…
- `state` (string): Two-letter US state code.
- `target_dfx_id` (string): A DFX id: dfx:fo:<uuid> (family office graph), dfx:isi:<uuid> (sponsor graph), dfx:vc:<uuid> (venture graph), dfx:pe:<uuid> (private equity graph), dfx:ria:<uuid> (registered investment adviser graph…
- `txn_type` (string)

### `search_pending_ownership_changes` (~263 tokens)

Official pending nursing home ownership changes

OFFICIAL state records that a skilled nursing facility's ownership, control or operator is changing, before the change takes effect (Kentucky, New York, Rhode Island, New Jersey, Maine): facility, CCN, beds, current and proposed operator, real estate owner where public, the state's own stage, record class (OFFICIAL_PENDING_FILING, DERIVED_STATUS, CONFIRMED_EFFECTIVE_CHANGE, WITHDRAWN_OR_DENIED), first public record date, days pending, planned close, evidence tags with their facts, source URL and last checked. With changed_since, returns what changed (new application, agenda, vote, withdrawal, effective) instead. Not predictions. Each state's audited fields are listed; proposed owners and percentages are not returned as fact.

Input parameters:

- `changed_since` (string): YYYY-MM-DD: return change alerts observed on or after this date.
- `limit` (integer)
- `query` (string): Matches facility, current or proposed operator, or real estate owner.
- `state` (string)
- `tag` (string): An evidence tag, e.g. OPERATOR_CHANGE_PENDING, PORTFOLIO_BATCH, HUD_FHA_EXPOSURE, PLANNED_CLOSE_PASSED.
- `view` (string)

### `search_vc_firms` (~260 tokens)

Search venture capital firms

Venture firms as compact cards: stated sectors, stages, geography and check size beside OBSERVED behaviour (investments in the last 6 and 12 months, lead count, behaviour summary and divergence from the stated thesis), funds with the latest vintage and Form D, people and partner counts. Filter by sector, stage, state, active or raising, emerging manager. Returns dfx:vc: ids. Funds, people and individual deals are not on these cards.

Input parameters:

- `active_only` (boolean): investments observed in the last 12 months
- `city` (string)
- `emerging_manager` (boolean)
- `limit` (integer)
- `min_investments` (integer)
- `query` (string)
- `raising_only` (boolean): a fund with a Form D in the last 18 months
- `recent_activity_days` (integer)
- `sector` (string): Against stated sectors, thesis, description and behaviour summary. Answers NOT_COVERED while no firm carries one (websites unread this cycle); firms remain reachable through the investors recorded on…
- `sort` (string)
- `stage` (string)
- `state` (string): Two-letter US state code.

### `get_vc_firm` (~206 tokens)

One venture firm, person, fund or company in full

The full card for any entity on the venture graph: a firm (with recent investments, co-investors and funds), a person (with attributed investments and board seats), a fund (with all seven fund amounts kept apart and its lifecycle state) or a portfolio company (with its investors). Plus relationships, events, evidence and cross-graph links. Accepts dfx:vc: ids.

Input parameters:

- `dfx_id` (string, required): A DFX id: dfx:fo:<uuid> (family office graph), dfx:isi:<uuid> (sponsor graph), dfx:vc:<uuid> (venture graph), dfx:pe:<uuid> (private equity graph), dfx:ria:<uuid> (registered investment adviser graph…

### `search_vc_investments` (~494 tokens)

Venture round participations

Investor-by-investor participations in rounds: investor, company, fund, the partner attributed (with attribution level), role (lead or participant), new or follow-on, board seat, round type, stage and amount (the round's, never the check), and the source quote. Filter by investor, company, partner, stage, state, since-date or lead only.

Input parameters:

- `company_dfx_id` (string): A DFX id: dfx:fo:<uuid> (family office graph), dfx:isi:<uuid> (sponsor graph), dfx:vc:<uuid> (venture graph), dfx:pe:<uuid> (private equity graph), dfx:ria:<uuid> (registered investment adviser graph…
- `investor_dfx_id` (string): A DFX id: dfx:fo:<uuid> (family office graph), dfx:isi:<uuid> (sponsor graph), dfx:vc:<uuid> (venture graph), dfx:pe:<uuid> (private equity graph), dfx:ria:<uuid> (registered investment adviser graph…
- `lead_only` (boolean)
- `limit` (integer)
- `partner_dfx_id` (string): A DFX id: dfx:fo:<uuid> (family office graph), dfx:isi:<uuid> (sponsor graph), dfx:vc:<uuid> (venture graph), dfx:pe:<uuid> (private equity graph), dfx:ria:<uuid> (registered investment adviser graph…
- `query` (string): Matches the company's or the investor's name.
- `since` (string)
- `stage` (string)
- `state` (string): Two-letter US state code.

### `search_vc_funds` (~266 tokens)

Venture funds and their amounts

Funds with every amount under its own name (target, first close, final close, announced size, Form D offering and sold, ADV gross asset value), vintage and basis, lifecycle state, investor counts, LP count. Filter by manager, lifecycle, vintage range, strategy or Form D sold.

Input parameters:

- `lifecycle_state` (string): Only WOUND_DOWN is assigned today; other funds carry null.
- `limit` (integer)
- `max_vintage` (integer)
- `min_form_d_sold_usd` (number)
- `min_vintage` (integer)
- `organization_dfx_id` (string): A DFX id: dfx:fo:<uuid> (family office graph), dfx:isi:<uuid> (sponsor graph), dfx:vc:<uuid> (venture graph), dfx:pe:<uuid> (private equity graph), dfx:ria:<uuid> (registered investment adviser graph…
- `query` (string)
- `sort` (string)
- `strategy` (string)

### `search_pe_firms` (~440 tokens)

Search private equity firms

Private equity firms (management companies and advisers) as compact cards: the classifier's class with its state, confidence and basis; size band with the evidence it was sized on; fund counts, latest vintage and Form ADV gross assets reported for private equity funds since 2024 (reported gross assets, NOT fund size or dry powder); portfolio and transaction counts (36 and 12 months); team counts; acquisition appetite and investment velocity values. Filter by name, class, class_state, size_band, state or minimum transactions in 36 months. Returns dfx:pe: ids. Funds, people, transactions, scores with their components and counterparties are on get_pe_firm, not on these cards. Not for family offices, independent sponsors or venture firms (search_family_offices, search_independent_sponsors, search_vc_firms).

Input parameters:

- `class` (string): The classifier's verdict. CANDIDATE_PE is a name on the universe that has not been ruled on; firms with no class yet are also candidates and are excluded by any class filter. NOT_PE rows are never pu…
- `class_state` (string): How settled the class is. confirmed means evidence the classifier treats as decisive; probable is a strong inference.
- `cursor` (string): next_cursor from a previous page of this tool, unchanged.
- `limit` (integer)
- `min_transactions_36m` (integer): At least this many transactions as sponsor, buyer, co-investor or minority investor announced in the last 36 months.
- `query` (string): Firm name contains, e.g. 'Audax'. Punctuation is ignored.
- `size_band` (string): LOWER_MIDDLE_MARKET, MIDDLE_MARKET, UPPER_MIDDLE_MARKET, LARGE_CAP, or UNSIZED (no size evidence yet, not 'small'). Each card names the basis the band was assigned on.
- `sort` (string): transactions (default): most deals in 36 months; gav: reported PE gross assets; recent: latest event; funds: private equity fund count.
- `state` (string): Two-letter US state code.

### `get_pe_firm` (~203 tokens)

One private equity firm in full

The full card for a private equity firm: identity (website, HQ, ADV filing dates), classification with basis and the size band's definition and evidence, classification history, stated criteria (sectors, EBITDA, EV, equity check, control) kept apart from observed behaviour, funds summary and its ten latest funds, team summary and current people with titles, portfolio summary with recent investments and transactions, top counterparties (lenders, advisers, placement agents, co-investors with shared-deal counts), every score WITH its components and missing_inputs, recent events, evidence, and same_as links to the family office, sponsor and venture graphs by shared identifier. Also accepts a dfx:pe: person, fund or company id and returns that card.

Input parameters:

- `dfx_id` (string, required): A private equity graph id of the form dfx:pe:<uuid>, as returned by search_pe_firms, search_pe_funds, search_pe_platforms or search_entities.

### `search_pe_funds` (~292 tokens)

Private equity funds and their amounts

Funds on the private equity graph with every amount under its own name and beside its basis: target, first close, final close, announced size, Form D offering and sold, and the Form ADV gross asset value with its as-of date. adv_gross_asset_value is the gross assets the adviser REPORTED for the fund: it is not fund size, not commitments and not dry powder. Also vintage with basis, ADV fund type, lifecycle state, owner and LP counts. Filter by name, manager, ADV fund type, vintage range, lifecycle or minimum reported gross assets.

Input parameters:

- `adv_fund_type` (string): The fund type the adviser swore on Form ADV Schedule D.
- `cursor` (string)
- `lifecycle_state` (string)
- `limit` (integer)
- `max_vintage` (integer): Four-digit year.
- `min_adv_gav_usd` (number): Minimum reported Form ADV gross asset value in US dollars (reported gross assets, not fund size).
- `min_vintage` (integer): Four-digit year.
- `organization_dfx_id` (string): A private equity graph id of the form dfx:pe:<uuid>, as returned by search_pe_firms, search_pe_funds, search_pe_platforms or search_entities.
- `query` (string): Fund name contains, e.g. 'Fund IV'.
- `sort` (string)

### `get_pe_fund` (~145 tokens)

One private equity fund in full

One fund: manager, vintage and basis, every amount kept apart with its basis (adv_gross_asset_value is reported gross assets, not fund size or dry powder), the year-by-year Form ADV reporting tape (gross assets, owners, minimum investment, ownership percentages), LP commitments where disclosed, relationships (placement agents, auditors, principals), events and evidence. Refuses an id that is not a fund; use get_pe_firm for the manager.

Input parameters:

- `dfx_id` (string, required): A private equity graph id of the form dfx:pe:<uuid>, as returned by search_pe_firms, search_pe_funds, search_pe_platforms or search_entities.

### `search_pe_transactions` (~346 tokens)

Private equity transactions

Acquisitions, add-ons, recapitalisations, carve-outs, secondary sales and exits on the private equity graph: type, status, announced and closed dates, target with industry and state, platform for an add-on (with the basis for calling it one), control, every party with role, side and attribution, and money (enterprise value, purchase price, equity value, target revenue and EBITDA) ONLY where disclosed, each beside its basis. An undisclosed amount is absent, never estimated. Filter by firm (any party), target, platform, type, target state, since-date, add-ons only, control or target name.

Input parameters:

- `add_on_only` (boolean)
- `control_status` (string)
- `firm_dfx_id` (string): A dfx:pe: firm or person id; returns transactions where it is any party (sponsor, buyer, seller, co-investor, lender, adviser, deal partner).
- `limit` (integer)
- `platform_dfx_id` (string): A private equity graph id of the form dfx:pe:<uuid>, as returned by search_pe_firms, search_pe_funds, search_pe_platforms or search_entities.
- `query` (string): Target company name contains.
- `since` (string): ISO date; transactions announced on or after.
- `state` (string): Two-letter US state code of the target.
- `target_dfx_id` (string): A private equity graph id of the form dfx:pe:<uuid>, as returned by search_pe_firms, search_pe_funds, search_pe_platforms or search_entities.
- `transaction_type` (string)

### `search_pe_platforms` (~206 tokens)

Private equity platform companies

Companies that act as a platform (a sponsor's platform investment, or a company that has made add-ons): industry, add-on counts (total and last 24 months) and latest add-on date, current owners with role, status and dates, ownership since, and the platform acquisition activity and exit readiness scores. Filter by name, state, industry text, minimum add-ons in 24 months or owner firm. Returns dfx:pe: company ids for find_pe_addons_for_platform.

Input parameters:

- `limit` (integer)
- `min_add_ons_24m` (integer)
- `owner_dfx_id` (string): A dfx:pe: firm id; only platforms it owns or has owned.
- `query` (string): Company name contains.
- `sector` (string): Industry contains, e.g. 'healthcare', 'software', 'distribution'.
- `sort` (string)
- `state` (string): Two-letter US state code.

### `find_pe_buyers_for_company` (~179 tokens)

Private equity firms that could buy this company

Computed buyer_for_company matches from the private equity matcher for one company (a dfx:pe:, dfx:isi: or dfx:vc: company id): each firm with the matcher's reasons, blockers, why_now and comparable transactions verbatim, the deal partner where attributed, score, confidence, model version and computed date. When the matcher has scored nothing for the company the answer is NOT_COVERED with the population count: that means DFX has not computed buyers for it, never that no buyer exists. For sponsors, family offices and capital providers as well, use find_capital_for_opportunity.

Input parameters:

- `dfx_id` (string, required): A company id: dfx:pe:<uuid>, dfx:isi:<uuid> or dfx:vc:<uuid>.
- `limit` (integer)

### `find_pe_companies_for_buyer` (~149 tokens)

Companies a private equity firm should look at

Computed company_for_buyer matches for one private equity firm (dfx:pe: id): each company (on the private equity, sponsor or venture graph, with its dfx id) with the matcher's reasons, blockers, why_now and comparables verbatim, score, confidence and computed date. NOT_COVERED when the matcher has scored nothing for the firm, which is not a statement that nothing fits.

Input parameters:

- `dfx_id` (string, required): A private equity graph id of the form dfx:pe:<uuid>, as returned by search_pe_firms, search_pe_funds, search_pe_platforms or search_entities.
- `limit` (integer)

### `find_pe_addons_for_platform` (~144 tokens)

Add-on candidates for a platform company

Computed addon_for_platform matches for one platform (a dfx:pe: company id from search_pe_platforms): each candidate company with the matcher's reasons, blockers, why_now and comparable add-ons verbatim, the platform's owner, score, confidence and computed date. NOT_COVERED when the matcher has scored nothing for the platform, which is not a statement that no add-on fits.

Input parameters:

- `dfx_id` (string, required): A private equity graph id of the form dfx:pe:<uuid>, as returned by search_pe_firms, search_pe_funds, search_pe_platforms or search_entities.
- `limit` (integer)

### `search_ria` (~522 tokens)

Search RIA firms, advisors and private funds

Registered investment advisers (Form ADV: RAUM, clients by type, employees, advisors on IAPD, private funds, class such as INDEPENDENT_WEALTH or WIREHOUSE), registered advisors (IAPD: current firm, registration history counts, exams, designations) and the private funds advisers report, as compact cards with dfx:ria: ids. `query` takes a name, a firm CRD number, an SEC file number (801-...), an individual CRD (with entity_type=advisor) or an SEC private fund id (805-...). Filter firms by state, class, wealth managers only, RAUM band, advisor headcount or private funds; advisors by firm CRD or state; funds by firm CRD or type. Every row names its fact class (reported: filed on Form ADV; fact_from_registration: IAPD registration dates; derived: a rule or arithmetic over filed inputs). RAUM double counts affiliates; no advisor book size exists or is estimated; the IAPD tape is survivor-biased before 2026-09-15. Nothing here is predictive. Not for private equity or venture managers as investors (search_pe_firms, search_vc_firms), though the same adviser may appear on both graphs (get_entity same_as).

Input parameters:

- `city` (string)
- `cursor` (string): next_cursor from a previous page of this tool, unchanged.
- `entity_type` (string)
- `firm_class` (string): The RIA lane's printed classification of the firm (wirehouses are curated, the rest are rules over Item 5.D shares).
- `firm_crd` (string): For advisors and funds: the adviser's CRD.
- `fund_type` (string)
- `include_former` (boolean): Firms include state-registered advisers, former SEC advisers and firms off the roster; default SEC-registered only.
- `limit` (integer)
- `max_raum_usd` (number)
- `min_advisors` (integer): At least this many advisors on IAPD.
- `min_raum_usd` (number)
- `private_funds_only` (boolean)
- `query` (string): Name contains, or an identifier (firm CRD, 801- SEC number, individual CRD, 805- fund id).
- `sort` (string)
- `state` (string): Two-letter US state code.
- `wealth_only` (boolean): Firms in the six wealth management classes only.

### `get_ria_firm` (~287 tokens)

One RIA firm in full

The full card for one registered investment adviser plus its people flows (joins, departures, net, rates over 90 days, 12 and 36 months), growth between annual amendments (RAUM, employees, offices, funds one and three years back), offices (city, state, postal, employees), owners with control persons first (Schedule A and B), affiliates (Item 7.A related persons with roles), its ten largest private funds with the count still reported, teams that left or arrived, the latest departures and arrivals, recent events, and same_as links to the private equity, venture, family office and sponsor graphs by shared CRD, CIK or fund id. Every section is a page with its size stated. Every row names its fact class (reported: filed on Form ADV; fact_from_registration: IAPD registration dates; derived: a rule or arithmetic over filed inputs). RAUM double counts affiliates; no advisor book size exists or is estimated; the IAPD tape is survivor-biased before 2026-09-15. Nothing here is predictive. Accepts dfx:ria: ids or a CRD.

Input parameters:

- `dfx_id` (string, required): An RIA graph id of the form dfx:ria:<uuid> (from search_ria, resolve_name or search_entities), or the firm's CRD number as a string.

### `get_ria_advisor` (~157 tokens)

One registered advisor in full

One IAPD-registered advisor: name, current firm with class and tenure, employment history as dated registration spans in order (firm, begin, end, current), every firm change as two registration dates (bulk re-registrations and departures included and labelled), the teams the person moved with, exams, designations, industry start, and recent events. States plainly that no book size is public or estimated. Disclosure flags, outside business text and street addresses are withheld. Accepts a dfx:ria: id or the individual CRD number.

Input parameters:

- `dfx_id` (string, required): A dfx:ria:<uuid> advisor id, or the individual's CRD number (IAPD id) as a string.

### `resolve_ria_advisor` (~215 tokens)

A person's name plus a firm to one advisor card

Resolve an advisor by name AND a firm (name or CRD), or by individual CRD, to one person card. A name alone is never resolved to one person: 439,425 registrants share many names, so with only a name the answer lists labelled candidates and `resolved` is false. With a firm name, the current firm is tried first, then prior registrations with that firm. The card that comes back is the same as get_ria_advisor's summary; call get_ria_advisor(dfx_id) for the history.

Input parameters:

- `crd` (string): The individual's own CRD number (IAPD id); resolves directly.
- `firm` (string): The firm's name or part of it (current or prior registration).
- `firm_crd` (string): The firm's CRD number; current registration only.
- `limit` (integer)
- `name` (string, required): The person's name or part of it.
- `state` (string): Two-letter US state code.

### `search_ria_funds` (~364 tokens)

Private funds an adviser reports on Form ADV

Private funds from Form ADV Schedule D 7.B.(1): fund name, SEC fund id (805-...), type, gross asset value with its as-of date (reported gross assets, NOT fund size or commitments), owners, minimum investment, ownership percentages, 3(c)(1) or 3(c)(7), master or feeder, first and last reported, status (reported or dropped) and the Form D file number where the adviser gave one. With include_custodians, each fund's custodians (question 25) with city, state, SEC number and LEI. Filter by adviser (dfx:ria: id or CRD), name, type, status, state, Form D number or minimum gross assets. Fund reporting after 2024-12-31 is roster counts only.

Input parameters:

- `cursor` (string): next_cursor from a previous page of this tool, unchanged.
- `firm_dfx_id` (string): An RIA graph id of the form dfx:ria:<uuid> (from search_ria, resolve_name or search_entities), or the firm's CRD number as a string.
- `form_d_file_number` (string)
- `fund_type` (string)
- `include_custodians` (boolean): Attach custodian rows to each fund on the page.
- `limit` (integer)
- `min_gav_usd` (number)
- `query` (string): Fund name contains, an 805- fund id, or a 021- Form D file number.
- `sort` (string)
- `state` (string): Two-letter US state code.
- `status` (string): reported: on the adviser's latest filing; dropped: no longer reported.

### `search_ria_advisor_moves` (~340 tokens)

Advisor firm changes as registration dates

Advisors who left one firm and registered at another: the person, from and to firms with class, the registration end and begin dates, the gap, and the move type (WIREHOUSE_TO_RIA, IBD_TO_RIA, RIA_TO_RIA, ...). Filter by from firm, to firm, advisor, move type and date window. Bulk corporate re-registrations (an acquirer re-registering a roster on one day, 99,737 rows) are EXCLUDED unless include_bulk; departures with no registered destination are excluded unless include_departures. A move is two dates on IAPD, never a statement about why. Not a prediction of who will move.

Input parameters:

- `advisor_dfx_id` (string): A dfx:ria: advisor id or an individual CRD.
- `cursor` (string): next_cursor from a previous page of this tool, unchanged.
- `from_dfx_id` (string): An RIA graph id of the form dfx:ria:<uuid> (from search_ria, resolve_name or search_entities), or the firm's CRD number as a string.
- `include_bulk` (boolean)
- `include_departures` (boolean)
- `limit` (integer)
- `move_type` (string)
- `since` (string): ISO date; registration ended on or after.
- `to_dfx_id` (string): An RIA graph id of the form dfx:ria:<uuid> (from search_ria, resolve_name or search_entities), or the firm's CRD number as a string.
- `until` (string): ISO date.

### `search_ria_teams` (~392 tokens)

Advisors who moved together

Teams: clusters of advisors who left the same firm for the same firm from the same branch state within a 14-day chain, with member count, dates, spread, the from firm's headcount that day and the share that left (an estimate on a survivor-biased tape), whether a succession was filed, and the kind as a printed rule: TEAM_LIFT_OUT (2 to 49), LARGE_TRANSFER (50 or more), FIRM_ABSORBED (half or more of the firm, or a succession naming it), CHANNEL_CHANGE (the two CRDs are one enterprise: same name, same 75%+ owner around the move, or one name a prefix of the other; enterprise_evidence says which; left out unless asked for by kind). Filter by from or to firm, kind, move type, state, minimum members or date; include_members lists the people. A team is a rule over dates, never a claim about intent.

Input parameters:

- `cursor` (string): next_cursor from a previous page of this tool, unchanged.
- `from_dfx_id` (string): An RIA graph id of the form dfx:ria:<uuid> (from search_ria, resolve_name or search_entities), or the firm's CRD number as a string.
- `include_members` (boolean)
- `kind` (string)
- `limit` (integer)
- `min_members` (integer)
- `move_type` (string)
- `since` (string): ISO date; first departure on or after.
- `sort` (string)
- `state` (string): Two-letter US state code.
- `to_dfx_id` (string): An RIA graph id of the form dfx:ria:<uuid> (from search_ria, resolve_name or search_entities), or the firm's CRD number as a string.
- `until` (string)

### `search_ria_ma` (~263 tokens)

RIA acquisitions and exits as filed facts

RIA M&A from three factual sources, each labelled: successions the acquirer swore on Form ADV Item 4 (succession); firms whose advisors re-registered whole at one other firm (absorbed, a rule over registration dates); and firms that left the SEC adviser roster (roster_exit; the reason is not stated). Each row carries the target and, where there is one, the acquirer as dfx:ria: ids, the date, headline, advisor count or RAUM as magnitude, and the source. Filter by kind, acquirer or target CRD, firm id, date window or minimum advisors. No press, no rumours, no predictions.

Input parameters:

- `acquirer_crd` (string)
- `cursor` (string): next_cursor from a previous page of this tool, unchanged.
- `firm_dfx_id` (string): A dfx:ria: firm id or CRD on either side of the event.
- `kind` (string)
- `limit` (integer)
- `min_advisors` (integer): Absorbed only: at least this many advisors moved.
- `since` (string): ISO date.
- `target_crd` (string)
- `until` (string)

### `search_ria_changes` (~273 tokens)

What changed on the RIA graph since a timestamp

The RIA event tape by OBSERVATION time: advisor firm changes and departures, team lift-outs and absorptions, successions, RAUM and headcount changes, control persons joining or leaving, first ADV filings, roster exits, each with occurred_at (the registration or filing date), observed_at (when DFX wrote it), fact class, magnitude, previous and new state, evidence and source. `since` is an ISO timestamp; poll with the `next_since` the answer returns. The historical backfill was written on 2026-09-15, so a `since` before that day returns history in bulk; the Data Factory's first-seen accrual for RIA begins when its event arm exists. Filter by event type, signal family (people, ownership, firm, consolidation) or subject id.

Input parameters:

- `cursor` (string): next_cursor from a previous page of this tool, unchanged.
- `dfx_id` (string): A dfx:ria: firm, advisor or fund id; events where it is the subject or the related entity.
- `event_type` (string)
- `limit` (integer)
- `signal_family` (string)
- `since` (string, required): ISO timestamp, exclusive lower bound on observed_at.
- `until` (string)

### `get_ria_trends` (~226 tokens)

RIA state statistics, advisor flows and firm growth

Three derived views from the RIA lane's aggregates: state_stats (SEC-registered firms, wealth firms, RAUM, private funds, advisors, joins, departures and new firms in the last year, by state); flows (firms ranked by departures, joins, net, departure rate or join rate over 12 months, with 90-day and 36-month counts, filter by state, class or size); growth (firms ranked by RAUM growth or decline between annual amendments, with employees, offices and fund counts one and three years back; under $100M RAUM excluded by default). Counts are over registration dates with bulk re-registrations excluded; RAUM sums double count affiliates. Nothing predictive.

Input parameters:

- `firm_class` (string)
- `limit` (integer)
- `min_advisors` (integer)
- `min_raum_usd` (number)
- `sort` (string)
- `state` (string): Two-letter US state code.
- `view` (string)
- `wealth_only` (boolean)

### `get_ria_capital_links` (~204 tokens)

An adviser's identifier links to the private capital graphs

For one RIA firm (or one private fund): every link to the private equity, venture, family office and sponsor graphs written on a shared identifier, with the basis printed on each link: the firm's own CRD or CIK, and each private fund of the firm that a private equity or venture graph row holds under the same SEC fund id (805-...). Answers 'which PE or VC graph entities hold vehicles this wealth manager advises'. The 200 largest funds are checked. A link is an identifier match; its precision by basis is not yet sampled, and a name is never a basis. Accepts a dfx:ria: firm or fund id, or a firm CRD.

Input parameters:

- `dfx_id` (string, required): An RIA graph id of the form dfx:ria:<uuid> (from search_ria, resolve_name or search_entities), or the firm's CRD number as a string.
- `limit` (integer)

### `get_ria_practice` (~303 tokens)

One adviser's practice profile, anomalies, offices, retention and public contact path

What a practice looks like from what it filed: reported Form ADV fields (RAUM, discretionary, accounts, employees, advisors, clients and RAUM by type, private funds, wrap, custody, compensation methods, advisory activities, affiliations, the Item 6.A, 8 and 9 answers by item number), derived operating metrics each with its formula (RAUM per advisor, clients per advisor, average HNW client, average account, discretionary and institutional shares, employees per advisor, advisors per office, one-year growth), the practice archetypes with the printed rule that admitted each (19 rules; a firm can carry several), the peer group, ADV anomalies against that peer group with the peer median, percentile and filing behind each (a place to look, never a conclusion; data quality rows kept apart), office-level movement, post-acquisition retention when the firm is an acquirer, and the public business contact path (principal office phone and website as filed on Form ADV, the firm's LinkedIn page, and what the firm publishes on its own site) with source, date and rights class. Advisor book size and revenue are marked UNKNOWN and never estimated. Accepts a dfx:ria: id or a CRD.

Input parameters:

- `dfx_id` (string, required): An RIA graph id of the form dfx:ria:<uuid> (from search_ria, resolve_name or search_entities), or the firm's CRD number as a string.

### `search_ria_practices` (~484 tokens)

Screen advisers by practice archetype, operating metrics and flags

SEC-registered advisers screened on the practice layer: by archetype (HNW_WEALTH_MANAGER, UHNW_PRIVATE_WEALTH, MASS_AFFLUENT_RIA, INSTITUTIONAL_ASSET_MANAGER, RETIREMENT_PLAN_ADVISER, MULTI_FAMILY_OFFICE_LIKE, RIA_WITH_PRIVATE_FUNDS, RIA_WITH_HEAVY_ALTERNATIVES, BANK_AFFILIATED, BROKER_DEALER_AFFILIATED, PE_BACKED, CONSOLIDATOR, INDEPENDENT_BOUTIQUE, MULTI_OFFICE_GROWTH_PLATFORM, SOLO_SMALL_TEAM, OCIO_INSTITUTIONAL_ADVISORY, DUAL_WEALTH_AND_ASSET_MANAGER, WRAP_PROGRAM_SPONSOR, PLANNING_LED_PRACTICE; each a printed rule), class, RAUM band, advisors, one-year RAUM growth, RAUM per advisor, private-client and HNW shares, private funds, and flags (PE owner on Schedule A, bank owner, custody, performance fees, wrap, pension consulting, financial planning), sorted by RAUM, growth, RAUM per advisor, advisors, clients per advisor, average HNW client or headcount growth. Every metric is derived from filed fields with its formula in get_ria_practice; no book size, no revenue.

Input parameters:

- `archetype` (string)
- `bank_owned` (boolean)
- `cursor` (string): next_cursor from a previous page of this tool, unchanged.
- `custody` (boolean)
- `financial_planning` (boolean)
- `firm_class` (string)
- `limit` (integer)
- `max_raum_usd` (number)
- `min_advisors` (integer)
- `min_hnw_of_private` (number)
- `min_private_client_share` (number)
- `min_private_funds` (integer)
- `min_raum_growth_1y` (number): 0.2 means at least 20 percent.
- `min_raum_per_advisor` (number)
- `min_raum_usd` (number)
- `pe_backed` (boolean)
- `pension_consulting` (boolean)
- `performance_fees` (boolean)
- `sort` (string)
- `wrap` (boolean)

### `search_ria_anomalies` (~360 tokens)

ADV anomalies against comparable advisers

Reported values and filing-to-filing changes that stand out against a peer group (segment by RAUM band, 30 or more advisers), each with the metric, current and prior value, peer median, percentile, robust deviations (median absolute deviation, floored), the filing date, a sentence saying why it triggered, a confidence and a severity. Families: STATIC (2nd/98th percentile and 3 robust deviations), TEMPORAL (a change between the last two annual amendments beyond a base-size threshold and in the top or bottom decile of peer changes), COMBINATION (two changes together: RAUM down with advisors stable, a control person gone and departures doubled, a firm absorbed and its advisors gone within a year), DATA_QUALITY (likely filing errors, excluded unless asked for). Filter by family, anomaly_type, class, state, severity, minimum RAUM, firm CRD or date. A place to look, never a conclusion; there is no master score.

Input parameters:

- `anomaly_type` (string): One anomaly type, e.g. RAUM_DOWN_25_PERCENT, ADVISOR_COUNT_DROP, VERY_HIGH_RAUM_PER_ADVISOR, ACQUIRED_ADVISORS_LEFT_WITHIN_A_YEAR.
- `cursor` (string): next_cursor from a previous page of this tool, unchanged.
- `family` (string)
- `firm_class` (string)
- `firm_crd` (string)
- `limit` (integer)
- `min_raum_usd` (number)
- `severity` (string)
- `since` (string): Filing date on or after, ISO.
- `sort` (string)
- `state` (string): Two-letter US state code.

### `search_ria_offices` (~174 tokens)

Branch-level advisor movement

Offices (a firm and an IAPD branch city) ranked by departures, joins, net flow, departure rate, team lift-outs out or in, breakaways in formation (advisors at the office who own a newly registered adviser), or size, with advisors today and 12 and 36 month flows. Filter by firm CRD, state, class and minimum advisors. From branch city and state with registration dates; street addresses are never read.

Input parameters:

- `cursor` (string): next_cursor from a previous page of this tool, unchanged.
- `firm_class` (string)
- `firm_crd` (string)
- `limit` (integer)
- `min_advisors` (integer)
- `sort` (string)
- `state` (string): Two-letter US state code.

### `search_private_credit` (~405 tokens)

Search lenders, BDCs, borrowers, sponsors and credit funds

The capital structure graph behind private markets, built from every BDC's schedule of investments each quarter since 2022. `query` is a name (trigram matched across names and aliases: Ares, Ares Capital and ARCC resolve to the adviser, the BDC and its ticker as distinct rows); without a query, filters list providers (class, state, BDC advisers only) or borrowers (sponsor, industry, minimum BDC lenders, maturity before a date, sort). Every row names its fact class (filed: the BDC's own figure; derived: arithmetic over filed figures, a sum of pieces is a lower bound; carried: from another DFX graph with its source; inferred: an attribution by rule with confidence). A mark below cost is a mark, not impairment; a moved maturity is an observed term change, not an amendment; non-accrual and default are not on the tape and are never inferred.

Input parameters:

- `bdc_advisers_only` (boolean)
- `class` (string): Provider class (probable or confirmed).
- `cursor` (string): next_cursor from a previous page of this tool, unchanged.
- `entity_type` (string): Default: any type with a query; providers without one. borrower lists exclude grade C groups.
- `held_only` (boolean)
- `industry` (string): Industry as a filer wrote it (contains).
- `limit` (integer)
- `maturity_before` (string): ISO date: borrowers whose next dated maturity is on or before it.
- `min_lenders` (integer): Borrowers held by at least this many BDCs.
- `query` (string)
- `sort` (string)
- `sponsor_dfx_id` (string): A private credit graph id of the form dfx:pc:<uuid> (from search_private_credit, resolve_name or search_entities).
- `state` (string): Two-letter US state code.

### `get_credit_provider` (~174 tokens)

One credit provider or BDC in full

A credit manager: its classes with basis, the BDCs it advises (from each BDC's own 10-K) with their latest schedules, its credit funds on Form ADV, its sponsor relationships ranked by borrowers financed, and its links to the RIA and private equity graphs by shared CRD or CIK. A BDC: its portfolio every quarter end (fair value, principal held, borrowers, mark on cost, PIK positions, average spread), its largest facilities held with the co-lenders, and the sponsors it finances. Accepts a dfx:pc: provider or BDC id, or a BDC's CIK.

Input parameters:

- `dfx_id` (string, required): A dfx:pc:<uuid> provider or BDC id, or a BDC CIK number as a string.

### `get_bdc_portfolio` (~170 tokens)

One BDC's schedule of investments at a quarter end

Every position a BDC tagged at one quarter end (the latest unless as_of is given), each in the filer's own figures: borrower, instrument, kind, lien, principal, fair value, cost, spread, PIK, all-in rate, maturity, unfunded commitment. Debt only by default. Paged at 25.

Input parameters:

- `as_of` (string): A quarter end (YYYY-MM-DD) on the BDC's tape; default the latest.
- `cursor` (string): next_cursor from a previous page of this tool, unchanged.
- `dfx_id` (string, required): A dfx:pc:<uuid> BDC id or a CIK.
- `include_equity` (boolean)
- `limit` (integer)
- `sort` (string)

### `get_borrower_capital_structure` (~212 tokens)

One borrower as its BDC lenders see it

The borrower group (its spellings and grade), every facility (kind, lien, principal held across lenders as a lower bound, mark, pricing, PIK, maturity with basis), every BDC piece at the latest quarter end, the borrower's tape quarter by quarter, every sponsor attribution with its basis and confidence, and the non-routine events. Every row names its fact class (filed: the BDC's own figure; derived: arithmetic over filed figures, a sum of pieces is a lower bound; carried: from another DFX graph with its source; inferred: an attribution by rule with confidence). A mark below cost is a mark, not impairment; a moved maturity is an observed term change, not an amendment; non-accrual and default are not on the tape and are never inferred.

Input parameters:

- `dfx_id` (string, required): A private credit graph id of the form dfx:pc:<uuid> (from search_private_credit, resolve_name or search_entities).

### `get_credit_facility` (~121 tokens)

One facility with its lender group and history

A facility (one borrower group in one instrument class): size as the sum of BDC pieces with its basis, pricing modal and ranged across pieces, maturity with basis, the lender group (every BDC that holds or held a piece, each row the lender's own figures, plus lenders named on a deal), the facility through time, and every change at facility grain.

Input parameters:

- `dfx_id` (string, required): A dfx:pc:<uuid> facility id from get_borrower_capital_structure, search_credit_maturities or an event.

### `search_credit_maturities` (~186 tokens)

The maturity wall: facilities maturing inside a window

Debt facilities still on a BDC schedule whose tagged or written maturity falls inside the window (default the next 24 months from today), ordered by date: borrower, sponsor with basis, lien, principal held (a lower bound), mark on cost, the BDCs holding it. Filter by sponsor, lien and minimum principal. A BDC that tags no maturity contributes nothing here.

Input parameters:

- `cursor` (string): next_cursor from a previous page of this tool, unchanged.
- `from` (string): ISO date; default today.
- `lien` (string)
- `limit` (integer)
- `min_principal_usd` (number)
- `months` (integer)
- `sponsor_dfx_id` (string): A private credit graph id of the form dfx:pc:<uuid> (from search_private_credit, resolve_name or search_entities).

### `search_sponsor_lender` (~205 tokens)

Which lenders finance which sponsors

Sponsor x lender pairs counted once per borrower held (the lender is the adviser behind the BDCs, or the BDC where the adviser is not read): borrowers, facilities, principal held, first and latest quarter, new borrowers in the last four quarters against the prior four, quarters since the last new borrower, and the weakest sponsor attribution basis in the pair. Filter by sponsor or lender id.

Input parameters:

- `cursor` (string): next_cursor from a previous page of this tool, unchanged.
- `lender_dfx_id` (string): A private credit graph id of the form dfx:pc:<uuid> (from search_private_credit, resolve_name or search_entities).
- `limit` (integer)
- `min_borrowers` (integer)
- `sort` (string)
- `sponsor_dfx_id` (string): A private credit graph id of the form dfx:pc:<uuid> (from search_private_credit, resolve_name or search_entities).

### `find_lenders_for_financing` (~381 tokens)

Which lenders have funded deals like this one

Lenders ranked on the comparable facilities they CURRENTLY HOLD on BDC schedules: same lien, a borrower industry containing the term (as the filer wrote it: health, software, industrial, business services), a facility size lower bound inside the band, entered since the window. Score = comparables 35%, recency 20%, size fit 15%, mark on the comparable book 15%, sponsors named 15%. Refuses one stale comparable, a book marked under 0.85 and passive holds under $2M. Sizes are lower bounds (BDC pieces), never the commitment. `states` filters on borrower headquarters where DFX holds one (GLEIF, about one comparable in six today); the answer reports geo_coverage, so say how many comparables carried a state. This is the answer to 'find lenders for a $60M unitranche for a sponsor-backed healthcare services business': use it before search_private_credit, whose industry filter lists borrowers.

Input parameters:

- `band_max_usd` (number)
- `band_min_usd` (number): The financing's own size band, for the size-fit factor; defaults to size_min_usd.
- `industry` (string, required): A word from the filer-written industry: health, software, industrial, business services, consumer, education.
- `lien` (string): A unitranche is filed as first lien.
- `limit` (integer)
- `since` (string): ISO date; comparables entered on or after it. Default 24 months ago.
- `size_max_usd` (number)
- `size_min_usd` (number): Smallest comparable facility (lower bound) to count.
- `states` (array): Two-letter borrower headquarters states, e.g. ["TX","FL"]. Thins the universe to borrowers with a known state.

### `search_private_credit_changes` (~200 tokens)

What changed on the private credit tape

Dated changes by effective date (the quarter end where the change is visible) or by first-seen: new borrowers on any schedule, lenders joining and leaving facilities, facilities leaving every schedule, markdowns across lenders, PIK appearing or rising, maturities and spreads moving (observed term changes, not amendments), maturities approaching, sponsor x lender pairs forming and repeating. Routine changes (each new piece, increase, decrease, single-lender mark) only with include_routine.

Input parameters:

- `by` (string)
- `cursor` (string): next_cursor from a previous page of this tool, unchanged.
- `dfx_id` (string): A dfx:pc: id; events where it is the subject or related.
- `event_type` (string)
- `include_routine` (boolean)
- `limit` (integer)
- `since` (string, required): ISO date or timestamp.
- `until` (string)

### `search_allocators` (~358 tokens)

Search institutional allocators, consultants, managers and funds

The capital-owner graph: public pensions (every Census unit), corporate and Taft-Hartley DB plans (Form 5500), endowments and foundations (IRS), state pools and investment offices, as compact cards with dfx:al: ids carrying reported assets and basis, funded status, policy targets, commitment counts and adviser counts. entity_type=consultant lists consultants and OCIOs by their own ADV filing with client counts on the tape; entity_type=manager lists managers by the public LPs that disclose a fund of theirs (who backs this manager); entity_type=fund lists funds by public LPs. A bare query with no entity_type runs the alias-aware search (CalPERS resolves). A target is never an actual, a disclosed holding is never an approval, commitment dollars repeat across reports, re-ups are the plan's own words, estimates are labelled and nothing predictive is published.

Input parameters:

- `allocator_class` (string)
- `consultant_class` (string)
- `cursor` (string): next_cursor from a previous page of this tool, unchanged.
- `entity_type` (string)
- `include_components` (boolean): Also list units that are components of a larger system (a division, a plan an office invests for).
- `limit` (integer)
- `min_assets_usd` (number)
- `min_private_markets_target_pct` (number)
- `query` (string): Name contains, or an alias (CalPERS, a Census spelling).
- `sort` (string)
- `state` (string): Two-letter US state code.
- `with_commitments` (boolean)
- `with_consultant` (boolean)
- `with_policy` (boolean)

### `get_allocator` (~199 tokens)

One allocator, consultant, manager or fund in full

For an allocator: the card with reported assets and basis, funded status, the latest allocation policy rows (target, range, actual as printed with the subject's own label beside DFX's bucket), size and funding readings with source, investment staff and executives with the quote they were read from, plus relationships (advisers, managers, the systems an office invests for), events and same_as links through get_entity. For a consultant: client counts on the tape and its ADV institutional numbers. For a manager or fund: which public LPs back it and its pe / vc reference. A target is never an actual, a disclosed holding is never an approval, commitment dollars repeat across reports, re-ups are the plan's own words, estimates are labelled and nothing predictive is published.

Input parameters:

- `dfx_id` (string, required): An allocator graph id of the form dfx:al:<uuid> (from search_allocators, resolve_name or search_entities).

### `search_allocator_commitments` (~422 tokens)

The commitment tape: who committed to which fund, when, in the plan's own words

One row per line of a plan's own disclosure: allocator, fund as printed, manager and fund resolved to the pe / vc graphs where the resolver matched, bucket, the plan's commitment amount, status (COMMITTED with the plan's closing date; DISCLOSED_HOLDING as of the report date), vintage, re-up / first-time-manager in the plan's words, the plan's own paid-in, distributed, remaining value, IRR and multiple where printed, and the source URL with a quote. Filter by allocator, manager (who backs this manager), fund, consultant, status, bucket, re-ups only, first-time only, since date; sort by date, amount or vintage. A target is never an actual, a disclosed holding is never an approval, commitment dollars repeat across reports, re-ups are the plan's own words, estimates are labelled and nothing predictive is published.

Input parameters:

- `allocator_dfx_id` (string): An allocator graph id of the form dfx:al:<uuid> (from search_allocators, resolve_name or search_entities).
- `bucket` (string)
- `consultant_dfx_id` (string): An allocator graph id of the form dfx:al:<uuid> (from search_allocators, resolve_name or search_entities).
- `cursor` (string): next_cursor from a previous page of this tool, unchanged.
- `first_time_only` (boolean)
- `fund_dfx_id` (string): An allocator graph id of the form dfx:al:<uuid> (from search_allocators, resolve_name or search_entities).
- `limit` (integer)
- `manager_dfx_id` (string): An allocator graph id of the form dfx:al:<uuid> (from search_allocators, resolve_name or search_entities).
- `query` (string): Fund or manager name contains.
- `re_ups_only` (boolean)
- `since` (string): ISO date; effective date on or after.
- `sort` (string)
- `status` (string)

### `search_re_fund_managers` (~423 tokens)

Search real estate fund managers

Advisers that swear a Real Estate Fund vehicle on Form ADV Schedule D 7.B.(1): one manager is one CRD, with its registration and latest filing, regulatory assets under management, the summed gross asset value of its non-feeder, non-quarantined real estate vehicles with its size band, vehicles current and ever, strategy class with its state and basis, operator model, property types and markets with their bases, validated property bindings and their loans, and the public plans that disclose commitments. Filter by state, strategy class, size band, operator model, gross asset value, vehicles, property type, holdings or public LPs. Gross asset value is a fund's assets on a filing date: never fund size, never commitments, never dry powder, and a quarantined reading enters no sum. The sworn tape runs 2011 to 2024, so a first report is a first sighting and nothing here is a 2025 fact. Holdings, properties and loans appear only where a binding passed its blind labels.

Input parameters:

- `crd` (string)
- `cursor` (string): next_cursor from a previous page of this tool, unchanged.
- `include_former` (boolean): Also managers whose latest filing no longer swears a real estate fund.
- `limit` (integer)
- `max_gav_usd` (number)
- `min_gav_usd` (number)
- `min_vehicles` (integer)
- `operator_model` (string)
- `property_type` (string): A property type on the manager's own list (MULTIFAMILY, INDUSTRIAL, OFFICE, RETAIL, ...).
- `query` (string): Manager name contains, or a CRD.
- `size_band` (string)
- `sort` (string)
- `state` (string): Two-letter US state code.
- `strategy_class` (string)
- `with_holdings` (boolean): Only managers with at least one validated property binding.
- `with_public_lps` (boolean)

### `get_re_fund_manager` (~205 tokens)

One real estate fund manager in full

The manager card, its ten largest vehicles and the whole family by vintage, validated property bindings with the rule and confidence behind each and the properties, loans and lenders underneath, property events attributed through those bindings, the public plans that disclosed commitments, the people on its Schedule A, recent events and the same institution's records on other graphs by shared identifier. Accepts a dfx:ref: id or the manager's CRD. Gross asset value is a fund's assets on a filing date: never fund size, never commitments, never dry powder, and a quarantined reading enters no sum. The sworn tape runs 2011 to 2024, so a first report is a first sighting and nothing here is a 2025 fact. Holdings, properties and loans appear only where a binding passed its blind labels.

Input parameters:

- `dfx_id` (string, required): A dfx:ref:<uuid> manager id, or the manager's CRD as a string.

### `search_re_fund_vehicles` (~441 tokens)

Search real estate fund vehicles

Vehicles sworn as Real Estate Funds by their SEC fund id (805-...): the fund and its family and sequence, master, feeder or fund of funds, gross asset value latest, first and peak with the filing date, years reported, vintage with its basis, owners and minimum investment, the Form D file number, lifecycle state with the components behind it, and the public plans that disclosed a commitment. `query` takes a name, an 805- fund id or an 021- Form D number. Feeders are excluded unless asked for (a feeder's assets are its master's, counted twice). Gross asset value is a fund's assets on a filing date: never fund size, never commitments, never dry powder, and a quarantined reading enters no sum. The sworn tape runs 2011 to 2024, so a first report is a first sighting and nothing here is a 2025 fact. Holdings, properties and loans appear only where a binding passed its blind labels.

Input parameters:

- `cursor` (string): next_cursor from a previous page of this tool, unchanged.
- `exclude_feeders` (boolean)
- `first_reported_year` (integer)
- `include_dropped` (boolean): Also vehicles no longer reported on the latest filing.
- `limit` (integer)
- `manager_crd` (string)
- `manager_dfx_id` (string): A real estate fund graph id of the form dfx:ref:<uuid> (from search_re_fund_managers, search_re_fund_vehicles, resolve_name or search_entities).
- `min_gav_usd` (number)
- `query` (string): Fund name contains, an 805- ADV fund id, or an 021- Form D file number.
- `sort` (string)
- `state` (string): Two-letter organisation state of the vehicle.
- `strategy_hint` (string): The strategy read from the vehicle's own name (a hint, never a claim).
- `vehicle_kind` (string)
- `vintage_year` (integer)
- `with_public_lps` (boolean)

### `get_re_fund_vehicle` (~229 tokens)

One real estate fund vehicle in full

The vehicle card with its reporting history year by year as filed (gross asset value, owners, minimum investment, the fund type and name as filed that year), its family in sequence, the public plans that disclosed a commitment, any validated holdings, and its events. A gap in the history is a year the adviser did not report the vehicle, never a year of zero assets. Accepts a dfx:ref: id, an 805- ADV fund id or an 021- Form D number. Gross asset value is a fund's assets on a filing date: never fund size, never commitments, never dry powder, and a quarantined reading enters no sum. The sworn tape runs 2011 to 2024, so a first report is a first sighting and nothing here is a 2025 fact. Holdings, properties and loans appear only where a binding passed its blind labels.

Input parameters:

- `dfx_id` (string, required): A dfx:ref:<uuid> vehicle id, an 805- ADV fund id, or an 021- Form D file number.

### `get_re_fund_trends` (~173 tokens)

Real estate fund trends by year

Derived series over the sworn tape, each with its population, derivation and caveat printed beside it: vehicles first reported by year (with the managers filing them), managers filing a real estate fund for the first time by year, reported gross asset value by year (feeders and quarantined readings excluded), vehicle vintages by year, vehicles that stopped being reported by year, and the largest managers by summed gross asset value. The tape starts in 2011 and ends with the 2024 filings, so the first years carry funds that already existed and the last year is not this year. Nothing here is predictive.

Input parameters:

- `limit` (integer)
- `min_gav_usd` (number): top_managers only: a floor on summed gross asset value.
- `view` (string)

### `get_capital_paths` (~287 tokens)

How capital reaches this institution, and where it goes next

Published capital flow paths through one institution: which allocators back this manager and through which fund, which lenders finance this sponsor's borrowers and on what facilities, which properties sit under this real estate manager where a binding is validated. Each path names every hop with its graph, id, type and role, the amount where one is disclosed, the as-of date, the bases the hops rest on and a confidence. Paths are built only from identity-grade or measured links; a candidate link is labelled and carries a confidence below 0.5. NOT_COVERED means the path layer has not computed this, never that no relationship exists.

Input parameters:

- `dfx_id` (string, required): A DFX id: dfx:fo:<uuid> (family office graph), dfx:isi:<uuid> (sponsor graph), dfx:vc:<uuid> (venture graph), dfx:pe:<uuid> (private equity graph), dfx:ria:<uuid> (registered investment adviser graph…
- `kind` (string): One path kind as the summary names it (for example ALLOCATOR_TO_PE_FUND_TO_MANAGER).
- `limit` (integer)

### `get_commitments` (~219 tokens)

Who committed to this manager or fund, or what this allocator committed to

The commitment tapes, in one call, for any id they reference: the allocator tape (a public plan's own disclosure, with the plan, the fund as printed, the manager and fund resolved to the private equity, venture or real estate record, the amount, the status, the vintage, re-up and first-time-manager in the plan's words, the plan's own paid-in, distributed, remaining value, IRR and multiple, and the source with a quote) and the real estate fund LP tape. Dated commitments with an amount by default; value-only holdings (a line in a performance report, never an approval) only with include_holdings. A commitment is the plan's number, never the fund's size, and dollars repeat across successive reports of the same plan.

Input parameters:

- `dfx_id` (string, required): An allocator (dfx:al:), or a manager or fund on the allocator, private equity, venture or real estate fund graph.
- `include_holdings` (boolean)
- `limit` (integer)

### `get_borrower_facilities` (~177 tokens)

One borrower's facilities and the lender group on each

Every facility a borrower group has on the BDC tape (kind, lien, principal held across lenders as a lower bound, mark on cost, pricing, PIK, maturity with its basis) with the lender group on each: every BDC holding or that held a piece, its own principal, fair value and spread, the quarters it held, and the credit manager behind it. Principal is the sum of BDC pieces: a lower bound, never the commitment, and a lender that files no schedule is invisible here.

Input parameters:

- `dfx_id` (string, required): A private credit graph id of the form dfx:pc:<uuid> (from search_private_credit, resolve_name or search_entities).
- `held_only` (boolean): Facilities still on a schedule at the latest quarter end.
- `limit` (integer)

### `get_sponsor_lenders` (~157 tokens)

Which lenders finance this sponsor's borrowers

Sponsor by lender pairs counted once per borrower held: borrowers, facilities, principal held, first and latest quarter, new borrowers in the last four quarters against the prior four, quarters since the last new borrower, and the weakest sponsor attribution basis in the pair. Accepts a private credit sponsor id or a private equity id, which is resolved through the credit graph's own cross-reference with its basis printed. A pair whose weakest basis is an inference is an inference.

Input parameters:

- `dfx_id` (string, required): A dfx:pc: sponsor id, or a dfx:pe: id the credit graph carries.
- `limit` (integer)
- `min_borrowers` (integer)
- `sort` (string)

### `search_capital_changes` (~222 tokens)

What changed on the allocator, private credit and real estate fund graphs

The change tape for the three capital graphs by FIRST SIGHT: the day DFX first saw each row, which is the only order a poller can trust. Commitments and re-ups disclosed by public plans, allocation targets moved, consultants changed, new borrowers and lenders on the credit tape, facilities marked down, maturities moving, sponsor and lender pairs forming, vehicles reported and dropped. Rows that existed when the arm was created are excluded, so history never reads as this week. Poll with the `next_since` the answer returns.

Input parameters:

- `dfx_id` (string): An id on that graph; rows where it is the subject or the related entity.
- `event_type` (string)
- `graph` (string, required): al (allocators), pc (private credit), ref (real estate funds).
- `include_seeded` (boolean): Also rows seeded when the arm was created (the history, not this week's change).
- `limit` (integer)
- `since` (string, required): ISO date or timestamp; rows first seen after it.

### `search_entities` (~346 tokens)

Search every DFX domain at once

One search across family offices, independent sponsors and their capital providers, private companies, venture firms, private equity firms and funds, and real estate organisations: by name, or by filters (entity_type, domain, state, sector, ...). Compact cards with stable dfx ids and a per-domain coverage note. Breadth across every domain in one query, with fewer per-domain filters than the domain searches.

Input parameters:

- `active_only` (boolean)
- `asset_class` (string)
- `city` (string)
- `cursor` (string)
- `domain` (string): Comma-separated: real_estate, family_office, independent_sponsor, venture_capital, private_equity, ria, allocators, private_credit, real_estate_funds. Default: all.
- `entity_type` (string): family_office, sponsor, capital_provider, company, vc_firm, pe_firm, platform, fund, person, property, organization, ria_firm, advisor, private_fund, allocator, consultant, manager, credit_provider,…
- `has_real_estate` (boolean)
- `has_sponsor_relationships` (boolean)
- `invests_directly` (boolean)
- `limit` (integer)
- `min_aum_usd` (number)
- `min_opportunity` (integer)
- `query` (string): A name (contains).
- `recent_activity_days` (integer)
- `sector` (string)
- `sort` (string)
- `stage` (string)
- `state` (string): Two-letter US state code.
- `vertical` (string)

### `resolve_name` (~282 tokens)

A name to DFX ids, fast, across every private capital graph

Resolve a firm, fund, person or company name to canonical dfx ids from the Data Factory's index of every published name and alias (former names, dbas, legal names) on the family office, sponsor, venture, private equity, RIA, allocator, private credit and real estate fund graphs as each graph is indexed. Each row carries the ROLES the institution holds across graphs where the identity layer publishes them, so one institution that is a private equity manager, a registered adviser, a private credit manager, a real estate fund manager and a manager holding allocator capital comes back as one identity with the id on each graph, never as five unrelated firms. Ranked exact, prefix, then word match; one row per entity; typically under 200 ms. The first call before get_entity. Real estate organisations are resolved by resolve_organization instead.

Input parameters:

- `domain` (string): Comma-separated: family_office, independent_sponsor, venture_capital, private_equity, ria, allocators, private_credit, real_estate_funds. Default: all.
- `entity_type` (string): Comma-separated graph types: organization, office, sponsor, capital_provider, fund, person, company.
- `limit` (integer)
- `name` (string, required): The name, or a word of it (Blackstone, Horowitz, Thoma).

### `get_entity` (~251 tokens)

Everything DFX knows about one id

For any DFX id: the full card, published relationships with sources and dates, recent events, evidence rows (the observation each fact traces to), cross-graph same_as links by shared identifier, same-name candidates on other graphs (labelled as candidates), and pointers to deeper views. One answer to 'show me everything on X'.

Input parameters:

- `dfx_id` (string, required): A DFX id: dfx:fo:<uuid> (family office graph), dfx:isi:<uuid> (sponsor graph), dfx:vc:<uuid> (venture graph), dfx:pe:<uuid> (private equity graph), dfx:ria:<uuid> (registered investment adviser graph…
- `event_limit` (integer)
- `evidence_limit` (integer)
- `include` (array): Default: relationships, events, evidence, same_as. Add name_candidates to also search the other graphs by name (slower; candidates only).
- `relationship_limit` (integer)

### `search_people` (~442 tokens)

People across the family office, sponsor, venture and private equity graphs

Investment professionals, principals and family office staff as names with titles, roles, seniority, investment responsibility, organisation and tenure, from public filings and firm pages; with domain=ria, IAPD-registered advisors by name or firm. By name, or by organization_dfx_id, or by role. cross_graph_only=true answers 'which venture people are connected to family offices' in one call. At least one of query, organization_dfx_id, role, investment_responsibility or cross_graph_only is required; a call with none of them is refused with INVALID_ARGUMENT. Contact points are withheld over MCP; the site publishes them per office.

Input parameters:

- `cross_graph_only` (boolean): Only people who are the same person on two graphs (a venture professional who is also on a family office's ADV Schedule A), linked by shared individual CRD; returns both cards.
- `current_only` (boolean)
- `domain` (string)
- `investment_responsibility` (boolean)
- `limit` (integer)
- `organization_dfx_id` (string): A DFX id: dfx:fo:<uuid> (family office graph), dfx:isi:<uuid> (sponsor graph), dfx:vc:<uuid> (venture graph), dfx:pe:<uuid> (private equity graph), dfx:ria:<uuid> (registered investment adviser graph…
- `query` (string): A person's name (contains).
- `role` (string): family_office: leadership, cio, direct_investments, operations, board, venture, real_estate, family_principal, other. venture_capital: managing_partner, general_partner, partner, principal, vice_pres…

### `search_relationships` (~216 tokens)

Published edges on one entity

Every published relationship touching one entity (EMPLOYS, PRINCIPAL_OF, INVESTED_IN, CO_INVESTED_WITH, MANAGES, OWNS, BOARD_MEMBER_OF, VEHICLE_OF, ...), each with role, dates, currency, confidence, evidence class and source. Plus same_as links to the same entity on other graphs.

Input parameters:

- `current_only` (boolean)
- `dfx_id` (string, required): A DFX id: dfx:fo:<uuid> (family office graph), dfx:isi:<uuid> (sponsor graph), dfx:vc:<uuid> (venture graph), dfx:pe:<uuid> (private equity graph), dfx:ria:<uuid> (registered investment adviser graph…
- `limit` (integer)
- `rel_type` (string)

### `relationship_path` (~319 tokens)

How two entities are connected

An evidence-backed path between two DFX ids across every graph: each hop is a published relationship with its source, or a SAME_AS identity link by shared CRD/CIK/EIN. Bidirectional search up to max_hops (default 3). NO_MATCH means no observed path within budget, not that they are unconnected.

Input parameters:

- `from_dfx_id` (string, required): A DFX id: dfx:fo:<uuid> (family office graph), dfx:isi:<uuid> (sponsor graph), dfx:vc:<uuid> (venture graph), dfx:pe:<uuid> (private equity graph), dfx:ria:<uuid> (registered investment adviser graph…
- `max_hops` (integer)
- `to_dfx_id` (string, required): A DFX id: dfx:fo:<uuid> (family office graph), dfx:isi:<uuid> (sponsor graph), dfx:vc:<uuid> (venture graph), dfx:pe:<uuid> (private equity graph), dfx:ria:<uuid> (registered investment adviser graph…

### `search_events` (~301 tokens)

The change tape across domains

Dated events across family offices, sponsors, venture, private equity and real estate: investments announced, vehicles formed, Form D and ADV filings, people joining and leaving, funds raised, acquisitions, plan final filings, record departures, loan maturities. Filter by domain, subject dfx_id, event_type, state, significance and window. Routine 13F position and fund-reporting noise is excluded unless asked for. Ordered and windowed by when events occurred.

Input parameters:

- `dfx_id` (string): A DFX id: dfx:fo:<uuid> (family office graph), dfx:isi:<uuid> (sponsor graph), dfx:vc:<uuid> (venture graph), dfx:pe:<uuid> (private equity graph), dfx:ria:<uuid> (registered investment adviser graph…
- `domain` (string)
- `event_type` (string)
- `exclude_routine` (boolean)
- `limit` (integer)
- `min_significance` (integer)
- `signal_family` (string)
- `since` (string): ISO date; events that occurred on or after.
- `state` (string): Two-letter US state code.
- `within_days` (integer)

### `verify` (~378 tokens)

Check a claim against DFX's evidence

SUPPORTED, PARTIALLY_SUPPORTED, CONTRADICTED or UNKNOWN for a claim, with the observations. Give a sentence ('Family Office X invested in Company Y in 2025', 'Z is a family office') or a structured subject / predicate / object / year. DFX contradicts only what its own record contradicts; absence of evidence is UNKNOWN, never CONTRADICTED. Its predicates cover investment, acquisition, co-investment, employment and identity claims; property facts are outside them.

Input parameters:

- `claim` (string)
- `object` (string)
- `object_dfx_id` (string): A DFX id: dfx:fo:<uuid> (family office graph), dfx:isi:<uuid> (sponsor graph), dfx:vc:<uuid> (venture graph), dfx:pe:<uuid> (private equity graph), dfx:ria:<uuid> (registered investment adviser graph…
- `predicate` (string)
- `subject` (string)
- `subject_dfx_id` (string): A DFX id: dfx:fo:<uuid> (family office graph), dfx:isi:<uuid> (sponsor graph), dfx:vc:<uuid> (venture graph), dfx:pe:<uuid> (private equity graph), dfx:ria:<uuid> (registered investment adviser graph…
- `year` (integer)

### `find_capital_for_opportunity` (~374 tokens)

Who could buy, fund or finance this

Investors for a company (dfx_id) or a described opportunity (sector, state, deal size, stage, control): verified independent sponsors with observed acquisitions in the sector (listed, not paired or ranked; company to sponsor pairs are withdrawn), family offices with observed investments or stated sectors in it, venture firms when the opportunity is venture-shaped, and private equity matcher rows where that graph computes them. DFX does not recommend first-time capital providers. Every row says its basis (observed_behaviour, computed_match, observed_investments, derived).

Input parameters:

- `asset_class` (string)
- `check_size_usd` (number)
- `control` (boolean)
- `deal_size_usd` (number)
- `dfx_id` (string): A DFX id: dfx:fo:<uuid> (family office graph), dfx:isi:<uuid> (sponsor graph), dfx:vc:<uuid> (venture graph), dfx:pe:<uuid> (private equity graph), dfx:ria:<uuid> (registered investment adviser graph…
- `investor_types` (array): Default: independent_sponsor, capital_provider, family_office, venture_capital. private_equity adds the private equity matcher's computed buyers for a company id (always included for a dfx:pe: compan…
- `limit` (integer)
- `sector` (string)
- `sponsor_involved` (boolean)
- `stage` (string)
- `state` (string): Two-letter US state code.
- `vertical` (string)

### `find_opportunities_for_capital` (~209 tokens)

What this investor should be looking at

For a family office, sponsor, capital provider or venture firm: the opportunities DFX knows that fit its DEMONSTRATED behaviour: computed matches where the graph has them (with reasons and blockers), then private companies with transition signals in the sectors it has actually invested in, sponsors seeking capital, companies raising in its stated sectors. Returns the behaviour it reasoned from.

Input parameters:

- `dfx_id` (string, required): A DFX id: dfx:fo:<uuid> (family office graph), dfx:isi:<uuid> (sponsor graph), dfx:vc:<uuid> (venture graph), dfx:pe:<uuid> (private equity graph), dfx:ria:<uuid> (registered investment adviser graph…
- `limit` (integer)

### `explain_match` (~324 tokens)

Why these two fit, and why not

For an investor and an opportunity (either order): MATCH REASONS, BLOCKERS, SUPPORTING OBSERVATIONS, COMPARABLE HISTORY (the investor's dated investments in the same sector, with sources), RELATIONSHIPS (a path on the graph if one exists), RECENT EVENTS on both, the computed match if the graph has one, and a confidence label. Facts, not a score.

Input parameters:

- `dfx_id_a` (string, required): A DFX id: dfx:fo:<uuid> (family office graph), dfx:isi:<uuid> (sponsor graph), dfx:vc:<uuid> (venture graph), dfx:pe:<uuid> (private equity graph), dfx:ria:<uuid> (registered investment adviser graph…
- `dfx_id_b` (string, required): A DFX id: dfx:fo:<uuid> (family office graph), dfx:isi:<uuid> (sponsor graph), dfx:vc:<uuid> (venture graph), dfx:pe:<uuid> (private equity graph), dfx:ria:<uuid> (registered investment adviser graph…

### `why_now` (~183 tokens)

Why this entity is relevant now

Evidence-backed reasons an entity matters now: recent filings, vehicles formed, deployments, people moves, fundraising, transition signals, loan maturities, each dated with its source. Empty means DFX observed no change in the window, not that nothing is happening.

Input parameters:

- `dfx_id` (string, required): A DFX id: dfx:fo:<uuid> (family office graph), dfx:isi:<uuid> (sponsor graph), dfx:vc:<uuid> (venture graph), dfx:pe:<uuid> (private equity graph), dfx:ria:<uuid> (registered investment adviser graph…
- `within_days` (integer)

### `who_should_care` (~232 tokens)

The economic counterparties to an entity or event

Given an entity or an event id: who is likely to care and why. A company transition names sponsors, capital providers and family offices with the observed reason; a family office names its co-investors and fitting opportunities; a venture firm names its co-investors; a property names its owner, lender and the next query for exposed lenders and real estate offices. Needs an entity or event id; a description of a situation without an id is not accepted.

Input parameters:

- `dfx_id` (string): A DFX id: dfx:fo:<uuid> (family office graph), dfx:isi:<uuid> (sponsor graph), dfx:vc:<uuid> (venture graph), dfx:pe:<uuid> (private equity graph), dfx:ria:<uuid> (registered investment adviser graph…
- `event_id` (string)
- `limit` (integer)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/capital-w-holdings-us-property-parcel-real-estate-debt/exchange-production-9123#diagnostics

## Score history

- 2026-09-21: 77
- 2026-09-20: 77
- 2026-09-19: 76
- 2026-09-18: 76
- 2026-09-17: 75
- 2026-09-16: 75
- 2026-09-15: 74
- 2026-09-14: 74
- 2026-09-13: 73
- 2026-09-12: 74
- 2026-09-11: 74
- 2026-09-10: 73
- 2026-09-09: 73
- 2026-09-08: 72
- 2026-09-07: 71
- 2026-09-06: 71
- 2026-09-05: 71
- 2026-09-04: 70
- 2026-09-03: 70
- 2026-09-02: 69
- 2026-09-01: 69
- 2026-08-31: 68

## Common questions

### What is the DFX Real Estate Intelligence MCP server?

DFX Real Estate Intelligence is an MCP server listed in the public MCP registry as io.github.Capital-W-Holdings/us-property-parcel-real-estate…. Free, no key. US commercial real estate: FHA/CMBS maturities, LIHTC/HUD expiries, bank CRE exposure. This page covers its hosted endpoint (https://exchange-production-9123.up.railway.app/mcp).

### Is the DFX Real Estate Intelligence MCP server safe to use?

DFX Real Estate Intelligence scores 77 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the DFX Real Estate Intelligence MCP server expose?

DFX Real Estate Intelligence exposes 84 tools: resolve_address, resolve_organization, get_occupancy, get_property_record, search_property_events, and 79 more. Their descriptions and schemas cost roughly 24,124 tokens of context every time the server is loaded.

### Does the DFX Real Estate Intelligence MCP server require authentication?

No. We connected to DFX Real Estate Intelligence without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the DFX Real Estate Intelligence MCP server still maintained?

DFX Real Estate Intelligence is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://exchange-production-9123.up.railway.app/mcp
- Repository: https://github.com/Capital-W-Holdings/us-property-parcel-real-estate-debt
- Website: https://dfxintel.com/ai/real-estate-mcp
- Changelog RSS feed: https://verifymcp.io/servers/capital-w-holdings-us-property-parcel-real-estate-debt/exchange-production-9123.xml
- Changelog JSON feed: https://verifymcp.io/servers/capital-w-holdings-us-property-parcel-real-estate-debt/exchange-production-9123.json
- HTML version of this page: https://verifymcp.io/servers/capital-w-holdings-us-property-parcel-real-estate-debt/exchange-production-9123
