Family Office Registry

Sourced, dated records of family offices in Switzerland, Liechtenstein, Austria, Germany and Dubai.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
91%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~428Tokens (tool definitions)
~1.6 KBTypical response size
Minimal attention impact (0.33% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "registry": {
      "url": "https://familyofficeregistry.com/api/mcp"
    }
  }
}

Remote endpoints

https://familyofficeregistry.com/api/mcpstreamable-http

What it can do

Tool inventory

Tools (2)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_registry(q, country, canton, type, alloc, ...)

Search verified family offices and related firms in Switzerland, Liechtenstein, Austria and Germany, and single-family offices in Dubai (free, with no named people). Returns one page of open records — the same fields the public site publishes. Named people, contact channels, source lists and verification notes need a subscription. Read the skill resource before answering from these results.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Free text. Without a key it looks in the open fields (name, city, register id, legal form, focus tags); with one, in the people and the purpose clauses too. For a place, filter by canton or country."
    },
    "country": {
      "type": "string",
      "enum": [
        "CH",
        "LI",
        "AT",
        "DE",
        "AE"
      ]
    },
    "canton": {
      "type": "string",
      "description": "Swiss canton code, e.g. ZH, ZG, GE."
    },
    "type": {
      "type": "string",
      "enum": [
        "SFO",
        "MFO",
        "intermediary"
      ]
    },
    "alloc": {
      "type": "string",
      "enum": [
        "fund-allocator",
        "mixed",
        "direct-only",
        "no-external-investing"
      ],
      "description": "Subscription only: list firms by how they invest. Without a key the search refuses this filter; get_record gives any one firm's call free."
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "default": 1
    },
    "size": {
      "type": "integer",
      "minimum": 1,
      "maximum": 25,
      "default": 10,
      "description": "Results per page, capped at 25 without a subscription key."
    }
  },
  "additionalProperties": false
}
🟢get_record(id)

One firm by its registry id. Without a subscription key this returns the open fields and says how many named roles the full record holds; with one it returns the named roles, the contact channels, the full source list and the verification note.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Registry id, as returned by search_registry."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded2 tools