Skip to main content
Glama

Search US family offices

search_family_offices
Read-onlyIdempotent

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 investing activity (private or public 13F/13D), and counts of people, sponsor and real estate relationships. A list filter sorted by one column: for a ranked answer to a buyer's criteria use rank_family_offices. Filter by states or region, canonical industries, direct investing, manager allocation, recent activity, AUM, an event type since a date, or a named co-investor. Returns dfx:fo: ids. ACCESS: without a paid DFX plan on the vertical, a list returns its first 5 rows in full and a count of the rest by type (locked.count, locked.by_type), never the rows; a record names its subject and the first 3 related names per section; contact values (email, phone, profile URLs) and decision-maker names are never returned, only their types and counts. Every answer says what it withheld in entitlement and locked. Full access: DFX Intelligence, 7 days free at https://dfxintel.com/data-factory/plans.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cityNo
sortNo
classNoThe classifier's verdict. A CANDIDATE is a name, never a class. NOT_FAMILY_OFFICE rows are excluded unless asked for.
limitNo
queryNoName contains.
stateNoTwo-letter US state code.
cursorNo
regionNo
sectorNoA sector word or canonical code (industrial, fintech, healthcare, real estate); matched on the canonical industries array.
statesNoTwo-letter codes, any of.
industriesNoCanonical industry codes, any of.
asset_classNo
event_sinceNoISO date for has_event_type; default two years back.
min_aum_usdNo
has_event_typeNoOffices with one of these events since event_since.
has_real_estateNoOffices 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.
co_invested_withNoFirm names the office has co-invested with.
invests_directlyNo
counterparty_kindNo
recent_activity_daysNo
allocates_to_managersNoOffices with a manager or fund commitment on record, or a stated allocation.
has_sponsor_relationshipsNoOffices with a CO_INVESTED_WITH or capital-provider edge to the sponsor graph. Answers NOT_COVERED with the count while no office carries one.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changed
    • addedInput schema / properties / allocates_to_managers
      Added value: +{
      +  "description": "Offices with a manager or fund commitment on record, or a stated allocation.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / co_invested_with
      Added value: +{
      +  "description": "Firm names the office has co-invested with.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / counterparty_kind
      Added value: +{
      +  "enum": [
      +    "pe",
      +    "vc",
      +    "family_office",
      +    "lender",
      +    "independent_sponsor",
      +    "capital_provider"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / event_since
      Added value: +{
      +  "description": "ISO date for has_event_type; default two years back.",
      +  "type": "string"
      +}
    • addedInput schema / properties / has_event_type
      Added value: +{
      +  "description": "Offices with one of these events since event_since.",
      +  "items": {
      +    "enum": [
      +      "FAMILY_LIQUIDITY_EVENT",
      +      "CIO_HIRED",
      +      "CIO_JOINED",
      +      "CIO_LEFT",
      +      "INVESTMENT_PROFESSIONAL_JOINED",
      +      "INVESTMENT_PROFESSIONAL_LEFT",
      +      "INVESTMENT_TEAM_EXPANDED",
      +      "SUCCESSION_EVENT",
      +      "NEW_INVESTMENT_VEHICLE",
      +      "FORM_D_FILED",
      +      "FUND_COMMITMENT_DISCLOSED",
      +      "NEW_MANAGER_RELATIONSHIP",
      +      "DIRECT_INVESTMENT_ANNOUNCED",
      +      "PORTFOLIO_ADD_ON",
      +      "PORTFOLIO_EXITED",
      +      "OFFICE_FORMED",
      +      "ADVISER_REGISTERED",
      +      "DIRECT_INVESTMENT_PROGRAM_LAUNCHED",
      +      "NEW_ASSET_CLASS",
      +      "OFFICE_EXPANDED",
      +      "OFFICE_RELOCATED",
      +      "REAL_ESTATE_LINKED",
      +      "PRIVATE_FUND_REPORTED",
      +      "CO_INVESTMENT_RELATIONSHIP_OBSERVED"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / industries
      Added value: +{
      +  "description": "Canonical industry codes, any of.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / region
      Added value: +{
      +  "enum": [
      +    "new_england",
      +    "mid_atlantic",
      +    "southeast",
      +    "midwest",
      +    "southwest",
      +    "mountain",
      +    "pacific",
      +    "northeast",
      +    "west",
      +    "west_coast",
      +    "south",
      +    "sunbelt",
      +    "east_coast",
      +    "rockies",
      +    "great_lakes",
      +    "tri_state"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / sector / description
      Previous value: -"A sector on the office's record, e.g. industrial services, healthcare, real estate."New value: +"A sector word or canonical code (industrial, fintech, healthcare, real estate); matched on the canonical industries array."
    • addedInput schema / properties / states
      Added value: +{
      +  "description": "Two-letter codes, any of.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  2. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare read-only/idempotent/non-destructive; the description goes well beyond them by disclosing the access model: unpaid lists return the first 5 full rows plus locked.count/locked.by_type, records expose only the subject and first 3 related names per section, and contact values and decision-maker names are masked to types and counts. It also tells the agent that every answer self-reports what it withheld via `entitlement` and `locked`, which is exactly the behavioral context the schema and annotations cannot supply.

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

Conciseness4/5

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

Front-loads the return shape before filters, alternatives and access rules, so the most important information lands first, and sentences are dense rather than padded. The closing plan/upsell sentence ('7 days free at https://...') is arguably promotional rather than definitional, which keeps it from being a clean 5.

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

Completeness5/5

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

With 22 params, no output schema and only 55% schema description coverage, the description carries the burden well: it describes the returned card contents, the ID format, the filtering vocabulary, the sibling alternative, and the full entitlement/truncation model. An agent can predict both the request contract and the response shape without additional fields.

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

Parameters4/5

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

At 55% schema coverage across 22 params, the description compensates by mapping filter phrases to parameters: 'states or region' (state/states/region), 'canonical industries' (sector/industries), 'direct investing' (invests_directly), 'manager allocation' (allocates_to_managers), 'recent activity' (recent_activity_days), 'AUM' (min_aum_usd), 'an event type since a date' (has_event_type/event_since) and 'a named co-investor' (co_invested_with). It adds the sorted-by-one-column semantics for `sort` too, but leaves query, city, counterparty_kind, limit and cursor untouched.

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

Purpose5/5

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

States a specific verb+resource ('Family offices as compact cards') and enumerates the returned fields (class with confidence, direct investing, sectors, check size, activity, relationship counts) plus the ID namespace (dfx:fo:). It also names the sibling it is NOT ('for a ranked answer to a buyer's criteria use rank_family_offices'), so an agent can separate it from rank_family_offices and search_family_office_investments without opening a schema.

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

Usage Guidelines4/5

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

Explicitly routes the ranked-answer use case to rank_family_offices, and enumerates the filter axes that this tool is for (states/region, industries, direct investing, manager allocation, activity, AUM, event-since, co-investor). Context is clear, but it never states when to prefer get_family_office for a single record or search_family_office_investments for deal-level data, so a full when/when-not matrix is not present.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.