Koskamo

compoundsim MCP

An official MCP server for compoundsim that allows AI assistants to run financial simulators including Monte Carlo paths, portfolio comparisons, withdrawal analysis, and fixed-rate compound interest calculations using public index data without requiring authentication.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

compoundsim MCP logo, by compoundsimVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by compoundsim
MCP endpoint (Streamable HTTP)
https://compoundsim.app/mcp
Vendor documentation

What you can do with it

  • Run Monte Carlo simulations for monthly investing outcomes
  • Compare multiple portfolios side by side
  • Simulate retirement withdrawal success rates
  • Retrieve historical asset returns and volatility

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
compoundsim 1.0.0
MCP protocol
2025-06-18
Tools
5 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

compoundsim simulates long-term investing: fixed-rate compound interest, Monte Carlo paths of monthly investing in 13 assets and their mixes, retirement withdrawals, and past asset returns, in 19 currencies. Amounts go in and come out in the chosen currency. Pass the user's language so the url opens in it, and share the url with the figures so the user can adjust the scenario. Say the figures come from a simulation of past data, not a forecast.

Tools

5 advertised

simulate_portfolio — Simulate monthly investing in a portfolio
Advertised by the server during the last successful anonymous check.
Advertised read-only

Monte Carlo simulation of investing monthly (plus an optional starting sum) in one asset or a mix rebalanced monthly. Returns the range of outcomes by year (10th to 90th percentile), the deepest fall along the way, the mix's own past return and volatility, and a compoundsim.app url that shows the same scenario.

simulate_portfolio input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "portfolio",
    "monthly"
  ],
  "properties": {
    "years": {
      "type": "integer",
      "default": 20,
      "maximum": 60,
      "minimum": 1,
      "description": "Years of investing."
    },
    "history": {
      "enum": [
        "5",
        "10",
        "20",
        "all"
      ],
      "type": "string",
      "default": "all",
      "description": "The span of past monthly returns the model is fitted to: the last 5, 10 or 20 years, or all the data. An asset with less data than the span asked for uses all of its own."
    },
    "initial": {
      "type": "number",
      "default": 0,
      "maximum": 1000000000000,
      "minimum": 0,
      "description": "Starting sum invested at once."
    },
    "monthly": {
      "type": "number",
      "maximum": 10000000000,
      "minimum": 0,
      "description": "Amount invested at the end of every month."
    },
    "currency": {
      "enum": [
        "USD",
        "EUR",
        "JPY",
        "GBP",
        "CNY",
        "CHF",
        "AUD",
        "CAD",
        "HKD",
        "SGD",
        "KRW",
        "INR",
        "TWD",
        "BRL",
        "THB",
        "IDR",
        "PHP",
        "MYR",
        "VND"
      ],
      "type": "string",
      "description": "Currency of every amount, in and out. In a currency other than USD the paths carry its exchange-rate swings against the dollar (trend removed). Defaults to the language's currency."
    },
    "language": {
      "enum": [
        "de",
        "en",
        "es",
        "fr",
        "id",
        "ja",
        "ko",
        "pt-BR",
        "th",
        "vi",
        "zh-Hans",
        "zh-Hant"
      ],
      "type": "string",
      "default": "en",
      "description": "Language of the page the returned url opens; match the user's language."
    },
    "portfolio": {
      "anyOf": [
        {
          "enum": [
            "sixtyForty",
            "allCountry",
            "allWeather"
          ],
          "type": "string"
        },
        {
          "type": "object",
          "properties": {
            "agg": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            },
            "btc": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            },
            "eem": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            },
            "efa": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            },
            "gld": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            },
            "shy": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            },
            "sox": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            },
            "tlt": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            },
            "vnq": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            },
            "acwi": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            },
            "schd": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            },
            "sp500": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            },
            "ndx100": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            }
          },
          "additionalProperties": false
        }
      ],
      "description": "A preset name or weights in percent by asset (any total; they are scaled to 100). Assets: sp500 = S&P 500, ndx100 = Nasdaq 100, sox = SOX (Semiconductors), schd = US dividend stocks (SCHD), acwi = MSCI ACWI, efa = Developed ex-US stocks, eem = Emerging market stocks, vnq = US REITs, gld = Gold, shy = US 1–3 year Treasuries, agg = US aggregate bonds, tlt = US long-term Treasuries, btc = Bitcoin. Presets: sixtyForty = sp500 60% + agg 40%; allCountry = acwi 100%; allWeather = sp500 30% + tlt 40% + shy 15% + gld 15%."
    },
    "history_to": {
      "type": "integer",
      "maximum": 2026,
      "minimum": 1994,
      "description": "Last calendar year of a custom span."
    },
    "history_from": {
      "type": "integer",
      "maximum": 2026,
      "minimum": 1994,
      "description": "First calendar year of a custom span (with history_to); replaces history."
    },
    "inflation_percent": {
      "type": "number",
      "maximum": 20,
      "minimum": 0,
      "description": "Annual inflation. When given, every amount out is in today's money at this rate; omitted, amounts are nominal."
    }
  }
}
simulate_portfolio annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
compare_portfolios — Compare portfolios side by side
Advertised by the server during the last successful anonymous check.
Advertised read-only

Runs the same monthly-investing plan through 2 to 4 portfolios (the same simulation as simulate_portfolio) and returns each one's final outcome range, deepest fall, past return and volatility, and url, for questions like 'S&P 500 or all-country stocks?'.

compare_portfolios input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "portfolios",
    "monthly"
  ],
  "properties": {
    "years": {
      "type": "integer",
      "default": 20,
      "maximum": 40,
      "minimum": 1,
      "description": "Years of investing."
    },
    "history": {
      "enum": [
        "5",
        "10",
        "20",
        "all"
      ],
      "type": "string",
      "default": "all",
      "description": "The span of past monthly returns the model is fitted to: the last 5, 10 or 20 years, or all the data. An asset with less data than the span asked for uses all of its own."
    },
    "initial": {
      "type": "number",
      "default": 0,
      "maximum": 1000000000000,
      "minimum": 0,
      "description": "Starting sum invested at once."
    },
    "monthly": {
      "type": "number",
      "maximum": 10000000000,
      "minimum": 0,
      "description": "Amount invested at the end of every month."
    },
    "currency": {
      "enum": [
        "USD",
        "EUR",
        "JPY",
        "GBP",
        "CNY",
        "CHF",
        "AUD",
        "CAD",
        "HKD",
        "SGD",
        "KRW",
        "INR",
        "TWD",
        "BRL",
        "THB",
        "IDR",
        "PHP",
        "MYR",
        "VND"
      ],
      "type": "string",
      "description": "Currency of every amount, in and out. In a currency other than USD the paths carry its exchange-rate swings against the dollar (trend removed). Defaults to the language's currency."
    },
    "language": {
      "enum": [
        "de",
        "en",
        "es",
        "fr",
        "id",
        "ja",
        "ko",
        "pt-BR",
        "th",
        "vi",
        "zh-Hans",
        "zh-Hant"
      ],
      "type": "string",
      "default": "en",
      "description": "Language of the page the returned url opens; match the user's language."
    },
    "history_to": {
      "type": "integer",
      "maximum": 2026,
      "minimum": 1994,
      "description": "Last calendar year of a custom span."
    },
    "portfolios": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "portfolio"
        ],
        "properties": {
          "label": {
            "type": "string",
            "description": "Name to show for this portfolio."
          },
          "portfolio": {
            "anyOf": [
              {
                "enum": [
                  "sixtyForty",
                  "allCountry",
                  "allWeather"
                ],
                "type": "string"
              },
              {
                "type": "object",
                "properties": {
                  "agg": {
                    "type": "number",
                    "maximum": 100,
                    "minimum": 0
                  },
                  "btc": {
                    "type": "number",
                    "maximum": 100,
                    "minimum": 0
                  },
                  "eem": {
                    "type": "number",
                    "maximum": 100,
                    "minimum": 0
                  },
                  "efa": {
                    "type": "number",
                    "maximum": 100,
                    "minimum": 0
                  },
                  "gld": {
                    "type": "number",
                    "maximum": 100,
                    "minimum": 0
                  },
                  "shy": {
                    "type": "number",
                    "maximum": 100,
                    "minimum": 0
                  },
                  "sox": {
                    "type": "number",
                    "maximum": 100,
                    "minimum": 0
                  },
                  "tlt": {
                    "type": "number",
                    "maximum": 100,
                    "minimum": 0
                  },
                  "vnq": {
                    "type": "number",
                    "maximum": 100,
                    "minimum": 0
                  },
                  "acwi": {
                    "type": "number",
                    "maximum": 100,
                    "minimum": 0
                  },
                  "schd": {
                    "type": "number",
                    "maximum": 100,
                    "minimum": 0
                  },
                  "sp500": {
                    "type": "number",
                    "maximum": 100,
                    "minimum": 0
                  },
                  "ndx100": {
                    "type": "number",
                    "maximum": 100,
                    "minimum": 0
                  }
                },
                "additionalProperties": false
              }
            ],
            "description": "A preset name or weights in percent by asset (any total; they are scaled to 100). Assets: sp500 = S&P 500, ndx100 = Nasdaq 100, sox = SOX (Semiconductors), schd = US dividend stocks (SCHD), acwi = MSCI ACWI, efa = Developed ex-US stocks, eem = Emerging market stocks, vnq = US REITs, gld = Gold, shy = US 1–3 year Treasuries, agg = US aggregate bonds, tlt = US long-term Treasuries, btc = Bitcoin. Presets: sixtyForty = sp500 60% + agg 40%; allCountry = acwi 100%; allWeather = sp500 30% + tlt 40% + shy 15% + gld 15%."
          }
        }
      },
      "maxItems": 4,
      "minItems": 2,
      "description": "The portfolios to compare."
    },
    "history_from": {
      "type": "integer",
      "maximum": 2026,
      "minimum": 1994,
      "description": "First calendar year of a custom span (with history_to); replaces history."
    },
    "inflation_percent": {
      "type": "number",
      "maximum": 20,
      "minimum": 0,
      "description": "Annual inflation. When given, every amount out is in today's money at this rate; omitted, amounts are nominal."
    }
  }
}
compare_portfolios annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
simulate_withdrawal — Simulate spending down a portfolio in retirement
Advertised by the server during the last successful anonymous check.
Advertised read-only

Monte Carlo simulation of withdrawing a yearly percentage of a starting balance, raised with inflation every month, from a portfolio (the 4% rule and its variants). Returns the share of paths that still had money at the end, when the others ran out, the remaining balance range in today's money, the success rate at withdrawal rates from 2% to 8%, and a compoundsim.app url.

simulate_withdrawal input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "portfolio",
    "balance"
  ],
  "properties": {
    "years": {
      "type": "integer",
      "default": 30,
      "maximum": 60,
      "minimum": 1,
      "description": "Years the money has to last."
    },
    "balance": {
      "type": "number",
      "maximum": 1000000000000,
      "minimum": 0,
      "description": "Starting balance."
    },
    "history": {
      "enum": [
        "5",
        "10",
        "20",
        "all"
      ],
      "type": "string",
      "default": "all",
      "description": "The span of past monthly returns the model is fitted to: the last 5, 10 or 20 years, or all the data. An asset with less data than the span asked for uses all of its own."
    },
    "currency": {
      "enum": [
        "USD",
        "EUR",
        "JPY",
        "GBP",
        "CNY",
        "CHF",
        "AUD",
        "CAD",
        "HKD",
        "SGD",
        "KRW",
        "INR",
        "TWD",
        "BRL",
        "THB",
        "IDR",
        "PHP",
        "MYR",
        "VND"
      ],
      "type": "string",
      "description": "Currency of every amount, in and out. In a currency other than USD the paths carry its exchange-rate swings against the dollar (trend removed). Defaults to the language's currency."
    },
    "language": {
      "enum": [
        "de",
        "en",
        "es",
        "fr",
        "id",
        "ja",
        "ko",
        "pt-BR",
        "th",
        "vi",
        "zh-Hans",
        "zh-Hant"
      ],
      "type": "string",
      "default": "en",
      "description": "Language of the page the returned url opens; match the user's language."
    },
    "portfolio": {
      "anyOf": [
        {
          "enum": [
            "sixtyForty",
            "allCountry",
            "allWeather"
          ],
          "type": "string"
        },
        {
          "type": "object",
          "properties": {
            "agg": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            },
            "btc": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            },
            "eem": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            },
            "efa": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            },
            "gld": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            },
            "shy": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            },
            "sox": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            },
            "tlt": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            },
            "vnq": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            },
            "acwi": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            },
            "schd": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            },
            "sp500": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            },
            "ndx100": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            }
          },
          "additionalProperties": false
        }
      ],
      "description": "A preset name or weights in percent by asset (any total; they are scaled to 100). Assets: sp500 = S&P 500, ndx100 = Nasdaq 100, sox = SOX (Semiconductors), schd = US dividend stocks (SCHD), acwi = MSCI ACWI, efa = Developed ex-US stocks, eem = Emerging market stocks, vnq = US REITs, gld = Gold, shy = US 1–3 year Treasuries, agg = US aggregate bonds, tlt = US long-term Treasuries, btc = Bitcoin. Presets: sixtyForty = sp500 60% + agg 40%; allCountry = acwi 100%; allWeather = sp500 30% + tlt 40% + shy 15% + gld 15%."
    },
    "history_to": {
      "type": "integer",
      "maximum": 2026,
      "minimum": 1994,
      "description": "Last calendar year of a custom span."
    },
    "history_from": {
      "type": "integer",
      "maximum": 2026,
      "minimum": 1994,
      "description": "First calendar year of a custom span (with history_to); replaces history."
    },
    "inflation_percent": {
      "type": "number",
      "default": 2,
      "maximum": 20,
      "minimum": 0,
      "description": "Annual inflation the withdrawals rise with; balances are in today's money."
    },
    "withdrawal_rate_pct": {
      "type": "number",
      "default": 4,
      "maximum": 20,
      "minimum": 0,
      "description": "First year's withdrawal as a percentage of the starting balance."
    }
  }
}
simulate_withdrawal annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
simulate_fixed_rate — Compound interest at a fixed rate
Advertised by the server during the last successful anonymous check.
Advertised read-only

Deterministic compound growth of monthly contributions (plus an optional starting sum) at a fixed annual return. Returns contributions, gains and total by year, and a compoundsim.app url. Use simulate_portfolio for the range of outcomes of real assets.

simulate_fixed_rate input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "monthly"
  ],
  "properties": {
    "years": {
      "type": "integer",
      "default": 20,
      "maximum": 60,
      "minimum": 1,
      "description": "Years of investing."
    },
    "initial": {
      "type": "number",
      "default": 0,
      "maximum": 1000000000000,
      "minimum": 0,
      "description": "Starting sum invested at once."
    },
    "monthly": {
      "type": "number",
      "maximum": 10000000000,
      "minimum": 0,
      "description": "Amount invested at the end of every month."
    },
    "currency": {
      "enum": [
        "USD",
        "EUR",
        "JPY",
        "GBP",
        "CNY",
        "CHF",
        "AUD",
        "CAD",
        "HKD",
        "SGD",
        "KRW",
        "INR",
        "TWD",
        "BRL",
        "THB",
        "IDR",
        "PHP",
        "MYR",
        "VND"
      ],
      "type": "string",
      "description": "Currency of every amount, in and out. In a currency other than USD the paths carry its exchange-rate swings against the dollar (trend removed). Defaults to the language's currency."
    },
    "language": {
      "enum": [
        "de",
        "en",
        "es",
        "fr",
        "id",
        "ja",
        "ko",
        "pt-BR",
        "th",
        "vi",
        "zh-Hans",
        "zh-Hant"
      ],
      "type": "string",
      "default": "en",
      "description": "Language of the page the returned url opens; match the user's language."
    },
    "annual_return_pct": {
      "type": "number",
      "default": 5,
      "maximum": 50,
      "minimum": 0,
      "description": "Effective annual return (CAGR), applied as the equivalent monthly rate."
    },
    "inflation_percent": {
      "type": "number",
      "maximum": 20,
      "minimum": 0,
      "description": "Annual inflation. When given, every amount out is in today's money at this rate; omitted, amounts are nominal."
    }
  }
}
simulate_fixed_rate annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_asset_returns — Past annualised returns of assets
Advertised by the server during the last successful anonymous check.
Advertised read-only

Annualised past returns of the assets compoundsim simulates, over the last 5, 10 or 20 years, all the data, or a calendar span: total return with dividends reinvested, price return, the dividends' share, volatility, and the return after US inflation (in USD) or the exchange rate's share of the return (in another currency).

get_asset_returns input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "assets": {
      "type": "array",
      "items": {
        "enum": [
          "sp500",
          "ndx100",
          "sox",
          "schd",
          "acwi",
          "efa",
          "eem",
          "vnq",
          "gld",
          "shy",
          "agg",
          "tlt",
          "btc"
        ],
        "type": "string"
      },
      "minItems": 1,
      "description": "Assets to include; all of them when omitted."
    },
    "period": {
      "enum": [
        "5",
        "10",
        "20",
        "all"
      ],
      "type": "string",
      "default": "10",
      "description": "The span measured: the last 5, 10 or 20 years, or all the data. An asset with less data than the span asked for uses all of its own."
    },
    "currency": {
      "enum": [
        "USD",
        "EUR",
        "JPY",
        "GBP",
        "CNY",
        "CHF",
        "AUD",
        "CAD",
        "HKD",
        "SGD",
        "KRW",
        "INR",
        "TWD",
        "BRL",
        "THB",
        "IDR",
        "PHP",
        "MYR",
        "VND"
      ],
      "type": "string",
      "description": "Currency of every amount, in and out. In a currency other than USD the paths carry its exchange-rate swings against the dollar (trend removed). Defaults to the language's currency."
    },
    "language": {
      "enum": [
        "de",
        "en",
        "es",
        "fr",
        "id",
        "ja",
        "ko",
        "pt-BR",
        "th",
        "vi",
        "zh-Hans",
        "zh-Hant"
      ],
      "type": "string",
      "default": "en",
      "description": "Language of the page the returned url opens; match the user's language."
    },
    "period_to": {
      "type": "integer",
      "maximum": 2026,
      "minimum": 1994,
      "description": "Last calendar year of a custom span."
    },
    "period_from": {
      "type": "integer",
      "maximum": 2026,
      "minimum": 1994,
      "description": "First calendar year of a custom span (with period_to); replaces period."
    }
  }
}
get_asset_returns annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
519 ms
95th percentile latency
519 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 519 ms · metadata changed · 5 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http compoundsim-mcp https://compoundsim.app/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add compoundsim-mcp --url https://compoundsim.app/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable compoundsim-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "compoundsim-mcp": {
      "url": "https://compoundsim.app/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "compoundsim-mcp": {
      "type": "streamableHttp",
      "url": "https://compoundsim.app/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start compoundsim-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "compoundsim-mcp": {
      "type": "http",
      "url": "https://compoundsim.app/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http compoundsim-mcp https://compoundsim.app/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "compoundsim-mcp": {
      "url": "https://compoundsim.app/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "compoundsim-mcp": {
      "serverUrl": "https://compoundsim.app/mcp"
    }
  }
}

Let your agent find its tools

Find servers like compoundsim MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run compoundsim MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing