Free A–F portfolio grade with reasons, fund fees and overlap. Educational, not advice.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
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.
Checks a list of holdings for known index overlap and related fund mandates, using issuer reference records (asset class, region, structure). Findings are worded exactly as the Portfolio Optimizer Pro grade states them. Overlap here is category-based (similar stated mandates); it is not a measured percentage of shared underlying holdings, and the result says so.
The portfolio: 1 to 30 holdings, each ticker once, with its weight.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http portfolio-checkup https://portfoliooptimizerpro.com/mcp
Checks a list of holdings for known index overlap and related fund mandates, using issuer reference records (asset class, region, structure). Findings are worded exactly as the Portfolio Optimizer Pro grade states them. Overlap here is category-based (similar stated mandates); it is not a measured percentage of shared underlying holdings, and the result says so.
| Argument | Type | Description |
|---|---|---|
| holdings* | array | The portfolio: 1 to 30 holdings, each ticker once, with its weight. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"holdings"
],
"properties": {
"holdings": {
"type": "array",
"items": {
"type": "object",
"required": [
"ticker",
"weight"
],
"properties": {
"ticker": {
"type": "string",
"pattern": "^[A-Za-z0-9]{1,6}(?:[.\\-][A-Za-z0-9]{1,4})?$",
"maxLength": 11,
"minLength": 1,
"description": "Fund or company ticker symbol as listed on a US exchange, e.g. \"VTI\"."
},
"weight": {
"type": "number",
"maximum": 100,
"description": "Share of the portfolio. Percent (60 = 60%) or fraction (0.6); weights are normalized to total 100%.",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
},
"maxItems": 30,
"minItems": 1,
"description": "The portfolio: 1 to 30 holdings, each ticker once, with its weight."
}
},
"additionalProperties": false
}Returns how the Portfolio Optimizer Pro grade works: the four factors and how each is scored, how they combine, every structural ceiling (cap) with its threshold, the A-range criteria, the letter bands, the risk reference bands, the data source, limitations and pricing. Takes no input.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"additionalProperties": false
}Computes the weighted expense ratio of a list of holdings from dated issuer fee records, and the fee cost over 10 and 30 years on a flat $100,000 balance (before growth), using the same formula as the Portfolio Optimizer Pro expense ratio calculator. Single companies count as 0% fund fee. If any fund fee is not verified the weighted fee is null and the ticker is listed, rather than estimated.
| Argument | Type | Description |
|---|---|---|
| holdings* | array | The portfolio: 1 to 30 holdings, each ticker once, with its weight. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"holdings"
],
"properties": {
"holdings": {
"type": "array",
"items": {
"type": "object",
"required": [
"ticker",
"weight"
],
"properties": {
"ticker": {
"type": "string",
"pattern": "^[A-Za-z0-9]{1,6}(?:[.\\-][A-Za-z0-9]{1,4})?$",
"maxLength": 11,
"minLength": 1,
"description": "Fund or company ticker symbol as listed on a US exchange, e.g. \"VTI\"."
},
"weight": {
"type": "number",
"maximum": 100,
"description": "Share of the portfolio. Percent (60 = 60%) or fraction (0.6); weights are normalized to total 100%.",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
},
"maxItems": 30,
"minItems": 1,
"description": "The portfolio: 1 to 30 holdings, each ticker once, with its weight."
}
},
"additionalProperties": false
}Runs the free Portfolio Optimizer Pro checkup on a list of holdings and weights. Returns the A+ to F structural grade, the 0-100 score, any structural ceiling (cap) applied, each factor's sub-score with its measured fact, the top findings that held the grade down, the price-history dates used, a disclaimer and full_breakdown_url, a link that opens the same graded checkup on the website. Grades describe diversification, cost and past risk; they are educational, not advice or a forecast. Unknown tickers are listed in unknown_tickers, never guessed.
| Argument | Type | Description |
|---|---|---|
| holdings* | array | The portfolio: 1 to 30 holdings, each ticker once, with its weight. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"holdings"
],
"properties": {
"holdings": {
"type": "array",
"items": {
"type": "object",
"required": [
"ticker",
"weight"
],
"properties": {
"ticker": {
"type": "string",
"pattern": "^[A-Za-z0-9]{1,6}(?:[.\\-][A-Za-z0-9]{1,4})?$",
"maxLength": 11,
"minLength": 1,
"description": "Fund or company ticker symbol as listed on a US exchange, e.g. \"VTI\"."
},
"weight": {
"type": "number",
"maximum": 100,
"description": "Share of the portfolio. Percent (60 = 60%) or fraction (0.6); weights are normalized to total 100%.",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
},
"maxItems": 30,
"minItems": 1,
"description": "The portfolio: 1 to 30 holdings, each ticker once, with its weight."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 14, 2026.