# GoodbyeMatrix Residency & Citizenship Index (remote · ai.goodbyematrix.com)

Residency programmes, golden visas, second passports and citizenship by investment in 80+ countries

- Trust score: 73/100 (medium)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `ai.goodbyematrix.com`: 73/100 (this document), [markdown](https://verifymcp.io/servers/com-goodbyematrix-residency-index/cbi-api-agent-v1-residency-index-mcp.md), [page](https://verifymcp.io/servers/com-goodbyematrix-residency-index/cbi-api-agent-v1-residency-index-mcp)

## Channel facts

- Endpoint: `https://ai.goodbyematrix.com/cbi/api/agent/v1/residency-index/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.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-11-05.

- **Endpoint Security**: 63/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 enforcement could not be verified: the plaintext port answered with HTTP 405, which proves neither a plaintext path nor enforcement.
  - 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**: 63/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2715 tokens (~301/item across 9 items; 9 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 57/100
  - Stability observed for 17 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 9 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 10 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 GoodbyeMatrix Residency & Citizenship Index MCP server?

GoodbyeMatrix Residency & Citizenship Index is a hosted endpoint at https://ai.goodbyematrix.com/cbi/api/agent/v1/residency-index/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 com-goodbyematrix-residency-index 'https://ai.goodbyematrix.com/cbi/api/agent/v1/residency-index/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-goodbyematrix-residency-index": {
      "url": "https://ai.goodbyematrix.com/cbi/api/agent/v1/residency-index/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-goodbyematrix-residency-index": {
      "type": "http",
      "url": "https://ai.goodbyematrix.com/cbi/api/agent/v1/residency-index/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-goodbyematrix-residency-index]
url = "https://ai.goodbyematrix.com/cbi/api/agent/v1/residency-index/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-goodbyematrix-residency-index": {
      "type": "remote",
      "url": "https://ai.goodbyematrix.com/cbi/api/agent/v1/residency-index/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-goodbyematrix-residency-index --url 'https://ai.goodbyematrix.com/cbi/api/agent/v1/residency-index/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-goodbyematrix-residency-index:
    url: "https://ai.goodbyematrix.com/cbi/api/agent/v1/residency-index/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-goodbyematrix-residency-index": {
      "Transport": "http",
      "Url": "https://ai.goodbyematrix.com/cbi/api/agent/v1/residency-index/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-goodbyematrix-residency-index -t streamable-http -u 'https://ai.goodbyematrix.com/cbi/api/agent/v1/residency-index/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-goodbyematrix-residency-index": {
      "type": "http",
      "url": "https://ai.goodbyematrix.com/cbi/api/agent/v1/residency-index/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-11-05 (score 73, +1)

No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-03 (score 72, +1)

No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-01 (score 71, +1)

No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-30 (score 70, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-28 (score 69, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-26 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-24 (score 67, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-22 (score 66, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “compare_programs” rewrote its description, which is the text the model reads
- [security] Tool “explain_term” rewrote its description, which is the text the model reads
- [security] Tool “get_cbi_quote” rewrote its description, which is the text the model reads
- [security] Tool “get_country_overview” rewrote its description, which is the text the model reads
- [security] Tool “get_program” rewrote its description, which is the text the model reads
- [security] Tool “list_cbi_programs” rewrote its description, which is the text the model reads
- [security] Tool “request_consultation_link” rewrote its description, which is the text the model reads
- [security] Tool “request_cost_breakdown_link” rewrote its description, which is the text the model reads
- [security] Tool “search_programs” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 252 → 301
- [cosmetic] “get_cbi_quote” reworded the description of “family”
- [cosmetic] “request_cost_breakdown_link” reworded the description of “family”
- [cosmetic] “request_cost_breakdown_link” dropped the optional parameter “contact”

## MCP tools (9)

### `search_programs` (~422 tokens)

Search residency and citizenship programmes

Searches the public programmes of the GoodbyeMatrix index: more than 170 residency programmes in more than 80 countries (golden visa or residence by investment, digital nomad visa, independent means visa, active investor visa, skilled worker visa) and 20 citizenship by investment (second passport) programmes. Filters: country, region, programme type, maximum budget in USD, path to citizenship and dual citizenship. Returns a page of matching programmes (total, offset, limit, nextOffset) with id, name, country, type, minimum amount, physical presence, path to citizenship, dual citizenship and the programme page in German and English. Read-only: it only retrieves and computes from the GoodbyeMatrix data set, stores nothing, sends nothing and calls no external services.

Input parameters:

- `citizenship_path` (boolean): true: programmes with a path to citizenship; false: programmes without one.
- `country` (string): Country as ISO 3166-1 alpha-2 code (for example "PT") or name in English or German.
- `dual_citizenship_allowed` (boolean): true: dual citizenship permitted; false: dual citizenship prohibited. Conditional cases match neither.
- `language` (string): Response language: "en" (English, default) or "de" (German).
- `limit` (integer): Number of programmes per page (1 to 10, default 10).
- `max_budget_usd` (number): Maximum minimum investment in USD; programmes without a known amount are not matched.
- `offset` (integer): Start position for the next page (nextOffset of the previous answer).
- `region` (string): Region: europe, americas (including the Caribbean), asia, africa, middle_east or oceania.
- `type` (string): Programme type: citizenship_by_investment, residence_by_investment (golden visa), digital_nomad, independent_means (retirees, passive income), active_investor (investor and entrepreneur visas) or ski…

Output parameters:

- `filters` (object)
- `language` (string)
- `limit` (integer)
- `nextOffset` (integer|null)
- `notice` (string): General information, not legal, tax or immigration advice.
- `offset` (integer)
- `ok` (boolean)
- `programs` (array)
- `schema` (string)
- `stand` (string|null): Date of the source data (YYYY-MM-DD).
- `tool` (string)
- `total` (integer)

### `get_program` (~203 tokens)

Get programme details

Returns one programme of the index in detail. Residency programmes: minimum amount and investment options, physical presence, time to permanent residency and to citizenship, dual citizenship, settlement area, tax system of the country, steps and excerpts of the GoodbyeMatrix programme texts (overview, qualification, costs, benefits, citizenship timeline, legal basis). Citizenship by investment programmes: routes with starting amounts, visa-free destinations, status (cost calculator, on request, coming soon or closed) and official links. Includes the programme page in German and English, the date of the source and consultationNote. Read-only: it only retrieves and computes from the GoodbyeMatrix data set, stores nothing, sends nothing and calls no external services.

Input parameters:

- `id` (string, required): Programme id from search_programs or get_country_overview, or a programme name (word order and country codes are tolerated).
- `language` (string): Response language: "en" (English, default) or "de" (German).

Output parameters:

- `candidates` (array): Only when the name matches several programmes: up to 5 matching programmes with their ids.
- `cbiQuoteNote` (string): Only for the 9 programmes with a cost calculator: get_cbi_quote calculates the costs for a specific family.
- `consultationNote` (string)
- `language` (string)
- `notice` (string): General information, not legal, tax or immigration advice.
- `ok` (boolean)
- `program` (object|null): The programme; null when the name matches several programmes (see candidates).
- `schema` (string)
- `stand` (string|null): Date of the source data (YYYY-MM-DD).
- `tool` (string)

### `compare_programs` (~147 tokens)

Compare programmes

Sets 2 to 5 programmes of the index side by side: type, country, minimum amount, physical presence, time to permanent residency and to citizenship, path to citizenship, dual citizenship, tax system of the country, visa-free destinations and the programme page in German and English, plus the date of the source and consultationNote. Read-only: it only retrieves and computes from the GoodbyeMatrix data set, stores nothing, sends nothing and calls no external services.

Input parameters:

- `ids` (array, required): 2 to 5 programme ids (as returned by search_programs).
- `language` (string): Response language: "en" (English, default) or "de" (German).

Output parameters:

- `consultationNote` (string)
- `language` (string)
- `notice` (string): General information, not legal, tax or immigration advice.
- `ok` (boolean)
- `programs` (array)
- `schema` (string)
- `stand` (string|null): Date of the source data (YYYY-MM-DD).
- `tool` (string)

### `get_country_overview` (~161 tokens)

Get country overview

Summarises a country for moving abroad: tax system (residence-based, territorial, no income tax, remittance basis or citizenship-based), the residency and citizenship by investment programmes of the index in that country with their programme pages, and the GoodbyeMatrix climate map, plus the date of the source and consultationNote. Covers about 200 countries. Read-only: it only retrieves and computes from the GoodbyeMatrix data set, stores nothing, sends nothing and calls no external services.

Input parameters:

- `country` (string, required): Country as ISO 3166-1 alpha-2 code (for example "PA") or name in English or German.
- `language` (string): Response language: "en" (English, default) or "de" (German).

Output parameters:

- `cbiPrograms` (array)
- `climateMap` (object)
- `consultationNote` (string)
- `country` (object)
- `language` (string)
- `notice` (string): General information, not legal, tax or immigration advice.
- `ok` (boolean)
- `residencyPrograms` (array)
- `schema` (string)
- `stand` (string|null): Date of the source data (YYYY-MM-DD).
- `taxSystem` (object|null)
- `tool` (string)

### `explain_term` (~181 tokens)

Explain a glossary term

Explains a term on relocation, residency, citizenship, tax and asset protection from the GoodbyeMatrix glossary (more than 120 terms, for example golden visa, 183-day rule, tax residency certificate, flag theory) with the glossary page in German and English. The definition is returned in the requested language (English or German); a term without an English entry yet comes with the German definition and a note. Related terms are listed when the search term matches several entries. Read-only: it only retrieves and computes from the GoodbyeMatrix data set, stores nothing, sends nothing and calls no external services.

Input parameters:

- `language` (string): Response language: "en" (English, default) or "de" (German).
- `term` (string, required): Term in English or German, for example "183-day rule" or "Wegzugsbesteuerung".

Output parameters:

- `definition` (object|null)
- `definitionNote` (string): Only when the English definition is not available yet and the German one is returned.
- `found` (boolean)
- `glossaryPage` (object)
- `language` (string)
- `notice` (string): General information, not legal, tax or immigration advice.
- `ok` (boolean)
- `related` (array)
- `schema` (string)
- `stand` (string|null): Date of the source data (YYYY-MM-DD).
- `term` (object|null)
- `tool` (string)

### `get_cbi_quote` (~438 tokens)

Get CBI cost estimate

Answers how much citizenship by investment or a second passport costs for a person or family, or compares programmes by total cost. Calculates the indicative cost for a family: government contribution, investment, fees, professional fees, payment phases and total in USD, plus which family members are eligible, processing time, page links and quoteRequestUrl. With one programme it returns that programme; without program it compares all 9 programmes (St Kitts and Nevis, Antigua and Barbuda, Dominica, Grenada, Saint Lucia, Vanuatu, Sao Tome and Principe, Nauru, Argentina). Nationality and country of birth count for every person in the family, not only for the main applicant. Figures are calculated live at request time from the current GoodbyeMatrix price and rule data; the data status is the date of the response (updatedAt), not an older date. Figures are rounded indicative figures (total to the nearest 1,000 USD), binding only after a pre-check; the user receives the exact amounts by requesting the cost breakdown through quoteRequestUrl. Read-only: it only retrieves and computes from the GoodbyeMatrix data set, stores nothing, sends nothing and calls no external services.

Input parameters:

- `family` (array, required): Everyone who applies together. The first person is the main applicant (role "main"); only the first person has the role "main". Defaults: a partner counts as married and not same-sex unless stated; a…
- `language` (string): Response language: "en" (English, default) or "de" (German).
- `program` (string): Programme key: sao_tome (Sao Tome and Principe), vanuatu, dominica, st_lucia (Saint Lucia), st_kitts (St. Kitts and Nevis), grenada, antigua (Antigua and Barbuda), nauru, argentina. Without a program…

Output parameters:

- `costSummary` (object|null): contribution, investment and professionalFees as published; fees = total minus the other three.
- `currency` (string)
- `dataStatus` (object): Note on the data status in German and English: calculated live, status = date of the response.
- `eligibility` (object)
- `generatedAt` (string)
- `language` (string)
- `notice` (object)
- `ok` (boolean)
- `overviewUrl` (string|null): Portfolio only: overview page of all programmes with the family filled in.
- `pages` (object)
- `paymentPhases` (array)
- `pricingNotice` (string)
- `processingTime` (string)
- `program` (string): Programme key.
- `programLabel` (string)
- `programs` (array)
- `quoteRequestUrl` (string|null): Link to the calculator page of the programme on goodbyematrix.com with the family already filled in; there the user requests the detailed cost breakdown with the exact amounts. null when not_eligible.
- `restrictionNote` (string): Only with status not_eligible: why the programme is not possible.
- `restrictionsChecked` (boolean): true when nationalities or a country of birth were given and checked.
- `rounding` (object)
- `route` (string|null)
- `rulesChangedAt` (string): Last change to prices or rules (UTC date, YYYY-MM-DD).
- `schema` (string)
- `scope` (string)
- `status` (string): ok, partial, review_required, fees_on_request or not_eligible (main applicant excluded by nationality or country of birth: no figures, no link).
- `total` (integer|null): Total in USD, rounded to the nearest 1,000.
- `totalScope` (string|null): total, or known_costs when professional fees are on request.
- `updatedAt` (string): Data status: the date of the response (UTC, YYYY-MM-DD). Prices and rules are maintained continuously and every response is calculated live, so the data status is the date of the response in every ca…
- `variant` (string|null)
- `websiteEstimate` (number|null): The figure the website calculator shows.

### `list_cbi_programs` (~171 tokens)

List CBI programmes

For questions about which citizenship by investment (second passport) programmes exist or what they start from: lists the 9 programmes GoodbyeMatrix prices (St Kitts and Nevis, Antigua and Barbuda, Dominica, Grenada, Saint Lucia, Vanuatu, Sao Tome and Principe, Nauru, Argentina) with region, route (contribution, investment or both), starting amount in USD for a single applicant, professional fee label, processing time, number of visa-free destinations where known, calculator and programme page links, and short notes. Read-only: it only retrieves and computes from the GoodbyeMatrix data set, stores nothing, sends nothing and calls no external services.

Input parameters:

- `language` (string): Response language: "en" (English, default) or "de" (German).

Output parameters:

- `currency` (string)
- `dataStatus` (object): Note on the data status in German and English: calculated live, status = date of the response.
- `documentation` (object)
- `generatedAt` (string)
- `language` (string)
- `notice` (object)
- `ok` (boolean)
- `overview` (object)
- `programs` (array)
- `quoteEndpoint` (string)
- `rulesChangedAt` (string): Last change to prices or rules (UTC date, YYYY-MM-DD).
- `schema` (string)
- `updatedAt` (string): Data status: the date of the response (UTC, YYYY-MM-DD). Prices and rules are maintained continuously and every response is calculated live, so the data status is the date of the response in every ca…

### `request_cost_breakdown_link` (~294 tokens)

Get cost breakdown request link

Returns only the personal link (quoteRequestUrl) for one programme and family: the calculator page on goodbyematrix.com with the family already filled in, where the user requests the detailed cost breakdown with the exact amounts by e-mail from the GoodbyeMatrix team. The link carries the family only, never contact details; the user enters their contact details on that page, checks them and sends the request personally; the privacy consent is never preselected. Read-only: it returns a URL only; nothing is sent, booked or stored.

Input parameters:

- `family` (array, required): Everyone who applies together. The first person is the main applicant (role "main"); only the first person has the role "main". Defaults: a partner counts as married and not same-sex unless stated; a…
- `language` (string): Response language: "en" (English, default) or "de" (German).
- `program` (string, required): Programme key: sao_tome (Sao Tome and Principe), vanuatu, dominica, st_lucia (Saint Lucia), st_kitts (St. Kitts and Nevis), grenada, antigua (Antigua and Barbuda), nauru, argentina.

Output parameters:

- `language` (string)
- `program` (string)
- `programLabel` (string)
- `quoteRequestUrl` (string): Link to the calculator page with the family filled in, where the user enters their contact details and requests the detailed cost breakdown by e-mail.

### `request_consultation_link` (~93 tokens)

Consultation page link

Use only when the user explicitly asks to speak with GoodbyeMatrix. Returns the URL of the GoodbyeMatrix consultation page (German or English) and the topics a call covers. The link carries no personal data. Read-only: it returns a URL only; nothing is sent, booked or stored.

Input parameters:

- `language` (string): Response language: "en" (English, default) or "de" (German).

Output parameters:

- `consultationUrl` (string)
- `covers` (string)
- `language` (string)
- `languagesOffered` (array)
- `notice` (string): General information, not legal, tax or immigration advice.
- `ok` (boolean)
- `schema` (string)
- `stand` (string|null): Date of the source data (YYYY-MM-DD).
- `tool` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-goodbyematrix-residency-index/cbi-api-agent-v1-residency-index-mcp#diagnostics

## Score history

- 2026-11-05: 73
- 2026-11-04: 72
- 2026-11-03: 72
- 2026-11-02: 71
- 2026-11-01: 71
- 2026-10-31: 70
- 2026-10-30: 70
- 2026-10-29: 69
- 2026-10-28: 69
- 2026-10-27: 68
- 2026-10-26: 68
- 2026-10-25: 67
- 2026-10-24: 67
- 2026-10-23: 66
- 2026-10-22: 66
- 2026-10-21: 66
- 2026-10-20: 65
- 2026-10-19: 65

## Common questions

### What is the GoodbyeMatrix Residency & Citizenship Index MCP server?

GoodbyeMatrix Residency & Citizenship Index is an MCP server listed in the public MCP registry as com.goodbyematrix/residency-index. Residency programmes, golden visas, second passports and citizenship by investment in 80+ countries. This page covers its hosted endpoint (https://ai.goodbyematrix.com/cbi/api/agent/v1/residency-index/mcp).

### Is the GoodbyeMatrix Residency & Citizenship Index MCP server safe to use?

GoodbyeMatrix Residency & Citizenship Index scores 73 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 GoodbyeMatrix Residency & Citizenship Index MCP server expose?

GoodbyeMatrix Residency & Citizenship Index exposes 9 tools: search_programs, get_program, compare_programs, get_country_overview, explain_term, and 4 more. Their descriptions and schemas cost roughly 2,110 tokens of context every time the server is loaded.

### Does the GoodbyeMatrix Residency & Citizenship Index MCP server require authentication?

No. We connected to GoodbyeMatrix Residency & Citizenship Index without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the GoodbyeMatrix Residency & Citizenship Index MCP server still maintained?

GoodbyeMatrix Residency & Citizenship Index is still listed as active in the MCP registry. We last reached this channel on 5 November 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://ai.goodbyematrix.com/cbi/api/agent/v1/residency-index/mcp
- Website: https://ai.goodbyematrix.com/cbi/api/agent/v1/docs#index-en
- Changelog RSS feed: https://verifymcp.io/servers/com-goodbyematrix-residency-index/cbi-api-agent-v1-residency-index-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-goodbyematrix-residency-index/cbi-api-agent-v1-residency-index-mcp.json
- HTML version of this page: https://verifymcp.io/servers/com-goodbyematrix-residency-index/cbi-api-agent-v1-residency-index-mcp
