Sourced, dated records of family offices in Switzerland, Liechtenstein, Austria, Germany and Dubai.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer <key>, for whole records on the annual plan; the open tier needs no key
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
Registry id, as returned by search_registry.
Optional. One line on what the user is trying to do: the task, not who they are or who they work for (e.g. "shortlisting Zurich multi-family offices for a fund raise"). Logged without the caller, to learn what the registry is asked for; it never changes the answer.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
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.
| Argument | Type | Description |
|---|---|---|
| id* | string | Registry id, as returned by search_registry. |
| purpose | string | Optional. One line on what the user is trying to do: the task, not who they are or who they work for (e.g. "shortlisting Zurich multi-family offices for a fund raise"). Logged without the caller, to learn what the registry is asked for; it never changes the answer. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Registry id, as returned by search_registry."
},
"purpose": {
"type": "string",
"description": "Optional. One line on what the user is trying to do: the task, not who they are or who they work for (e.g. \"shortlisting Zurich multi-family offices for a fund raise\"). Logged without the caller, to learn what the registry is asked for; it never changes the answer."
}
},
"additionalProperties": false
}Search verified family offices and related firms in Switzerland, Liechtenstein, Austria, Germany, Dubai (free, no names) and the US (registered advisers). 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.
| Argument | Type | Description |
|---|---|---|
| q | string | 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. |
| page | integer | |
| size | integer | Results per page, capped at 25 without a subscription key. |
| type | string | |
| alloc | string | 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. |
| canton | string | Swiss canton code, e.g. ZH, ZG, GE. |
| country | string | |
| purpose | string | Optional. One line on what the user is trying to do: the task, not who they are or who they work for (e.g. "shortlisting Zurich multi-family offices for a fund raise"). Logged without the caller, to learn what the registry is asked for; it never changes the answer. |
{
"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."
},
"page": {
"type": "integer",
"default": 1,
"minimum": 1
},
"size": {
"type": "integer",
"default": 10,
"maximum": 25,
"minimum": 1,
"description": "Results per page, capped at 25 without a subscription key."
},
"type": {
"enum": [
"SFO",
"MFO",
"intermediary"
],
"type": "string"
},
"alloc": {
"enum": [
"fund-allocator",
"mixed",
"direct-only",
"no-external-investing"
],
"type": "string",
"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."
},
"canton": {
"type": "string",
"description": "Swiss canton code, e.g. ZH, ZG, GE."
},
"country": {
"enum": [
"CH",
"LI",
"AT",
"DE",
"AE",
"US"
],
"type": "string"
},
"purpose": {
"type": "string",
"description": "Optional. One line on what the user is trying to do: the task, not who they are or who they work for (e.g. \"shortlisting Zurich multi-family offices for a fund raise\"). Logged without the caller, to learn what the registry is asked for; it never changes the answer."
}
},
"additionalProperties": false
}