Skip to main content
Glama
AnteWall

Avanza MCP Server

by AnteWall

get_fund_info

Read-onlyIdempotent

Retrieve fund identity, NAV, fees, risk, and allocations via Avanza order-book ID for Swedish fund evaluation; data may not be real-time.

Instructions

Get fund identity, latest available NAV, fees, risk and allocations.

Missing currency and tradeability remain unknown. Not guaranteed real-time. Use get_fund_holdings for allocations only, get_fund_chart for raw history.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
order_book_idYesAvanza order-book ID from discovery; not the separate instrumentId.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoFund ID
feeNoFee information
navNoNet Asset Value
isinNoISIN identifier
nameYesFund name
riskNoRisk level (1-7)
buyFeeNoUpstream buy fee
ratingNoRating (e.g., Morningstar)
capitalNoAssets under management
navDateNoSource NAV date or timestamp preserved without timezone inference
sellFeeNoUpstream sell fee
categoryNoFund category
currencyNoFund currency, when supplied
riskTextNo
riskLevelNoRisk category
startDateNoFund inception date
tradeableNoWhether fund is tradeable, when supplied
categoriesNo
productFeeNoRaw upstream product fee; scale not inferred
prospectusNoProspectus URL
descriptionNoFund description
developmentNoPerformance over time periods
fundCompanyNoFund company
lastUpdatedNoLast update time
sharpeRatioNoSharpe ratio
adminCompanyNo
fundTypeNameNoFund type
managementFeeNoRaw upstream management fee; scale not inferred
portfolioDateNoDate of portfolio data
prospectusLinkNoUpstream prospectus link; may be a relative path
sectorChartDataNoSector allocation
countryChartDataNoGeographic allocation by country
holdingChartDataNoTop holdings
developmentOneDayNo
standardDeviationNoStandard deviation
changeSinceOneYearNoUpstream 1 year change
developmentOneYearNo
developmentOneMonthNo
developmentThisYearNo
developmentFiveYearsNo
developmentSixMonthsNo
developmentThreeYearsNo
changeSinceThreeMonthsNoUpstream 3 month change
developmentThreeMonthsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changedv2.1.0
    • removedOutput schema / additionalProperties
      Removed value: -true
    • changedOutput schema / properties / adminCompany / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "description": "Administration company as supplied by the fund guide.",
      -    "properties": {
      -      "country": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "name": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "url": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "description": "Administration company as supplied by the fund guide.",
      +    "properties": {
      +      "country": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "name": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "url": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / countryChartData / anyOf
      Previous value: -[
      -  {
      -    "items": {
      -      "additionalProperties": true,
      -      "description": "Data point for portfolio allocation charts.",
      -      "properties": {
      -        "name": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "default": null
      -        },
      -        "y": {
      -          "anyOf": [
      -            {
      -              "type": "number"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "default": null
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "description": "Data point for portfolio allocation charts.",
      +      "properties": {
      +        "countryCode": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "currency": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "isin": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "name": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "orderbookId": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "type": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "y": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / development / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "description": "Fund performance metrics over various time periods.",
      -    "properties": {
      -      "fiveYears": {
      -        "anyOf": [
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Upstream 5 year return"
      -      },
      -      "oneMonth": {
      -        "anyOf": [
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Upstream 1 month return"
      -      },
      -      "oneWeek": {
      -        "anyOf": [
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Upstream 1 week return"
      -      },
      -      "oneYear": {
      -        "anyOf": [
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Upstream 1 year return"
      -      },
      -      "tenYears": {
      -        "anyOf": [
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Upstream 10 year return"
      -      },
      -      "thisYear": {
      -        "anyOf": [
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Upstream year to date return"
      -      },
      -      "threeMonths": {
      -        "anyOf": [
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Upstream 3 month return"
      -      },
      -      "threeYears": {
      -        "anyOf": [
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Upstream 3 year return"
      -      },
      -      "today": {
      -        "anyOf": [
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Upstream performance today"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "description": "Fund performance metrics over various time periods.",
      +    "properties": {
      +      "fiveYears": {
      +        "anyOf": [
      +          {
      +            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Upstream 5 year return"
      +      },
      +      "oneMonth": {
      +        "anyOf": [
      +          {
      +            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Upstream 1 month return"
      +      },
      +      "oneWeek": {
      +        "anyOf": [
      +          {
      +            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Upstream 1 week return"
      +      },
      +      "oneYear": {
      +        "anyOf": [
      +          {
      +            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Upstream 1 year return"
      +      },
      +      "tenYears": {
      +        "anyOf": [
      +          {
      +            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Upstream 10 year return"
      +      },
      +      "thisYear": {
      +        "anyOf": [
      +          {
      +            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Upstream year to date return"
      +      },
      +      "threeMonths": {
      +        "anyOf": [
      +          {
      +            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Upstream 3 month return"
      +      },
      +      "threeYears": {
      +        "anyOf": [
      +          {
      +            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Upstream 3 year return"
      +      },
      +      "today": {
      +        "anyOf": [
      +          {
      +            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Upstream performance today"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / fee / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "description": "Fund fee information.",
      -    "properties": {
      -      "entryCharge": {
      -        "anyOf": [
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Upstream entry fee"
      -      },
      -      "exitCharge": {
      -        "anyOf": [
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Upstream exit fee"
      -      },
      -      "ongoingCharges": {
      -        "anyOf": [
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Upstream ongoing charges"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "description": "Fund fee information.",
      +    "properties": {
      +      "entryCharge": {
      +        "anyOf": [
      +          {
      +            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Upstream entry fee"
      +      },
      +      "exitCharge": {
      +        "anyOf": [
      +          {
      +            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Upstream exit fee"
      +      },
      +      "ongoingCharges": {
      +        "anyOf": [
      +          {
      +            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Upstream ongoing charges"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / holdingChartData / anyOf
      Previous value: -[
      -  {
      -    "items": {
      -      "additionalProperties": true,
      -      "description": "Data point for portfolio allocation charts.",
      -      "properties": {
      -        "name": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "default": null
      -        },
      -        "y": {
      -          "anyOf": [
      -            {
      -              "type": "number"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "default": null
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "description": "Data point for portfolio allocation charts.",
      +      "properties": {
      +        "countryCode": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "currency": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "isin": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "name": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "orderbookId": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "type": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "y": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / navDate / anyOf
      Previous value: -[
      -  {
      -    "format": "date",
      -    "type": "string"
      -  },
      -  {
      -    "format": "date-time",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / navDate / description
      Previous value: -"Source NAV date or timestamp; no timezone inferred"New value: +"Source NAV date or timestamp preserved without timezone inference"
    • changedOutput schema / properties / sectorChartData / anyOf
      Previous value: -[
      -  {
      -    "items": {
      -      "additionalProperties": true,
      -      "description": "Data point for portfolio allocation charts.",
      -      "properties": {
      -        "name": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "default": null
      -        },
      -        "y": {
      -          "anyOf": [
      -            {
      -              "type": "number"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "default": null
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "description": "Data point for portfolio allocation charts.",
      +      "properties": {
      +        "countryCode": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "currency": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "isin": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "name": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "orderbookId": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "type": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "y": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed7 schema fields changedv2.0.0
    • addedInput schema / additionalProperties
      Added value: +false
    • removedInput schema / properties / instrument_id
      Removed value: -{
      -  "type": "string"
      -}
    • addedInput schema / properties / order_book_id
      Added value: +{
      +  "description": "Avanza order-book ID from discovery; not the separate instrumentId.",
      +  "minLength": 1,
      +  "pattern": "^[0-9]+$",
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "instrument_id"
      -]New value: +[
      +  "order_book_id"
      +]
    • addedOutput schema / description
      Added value: +"Fund guide fields; fees and development retain source scales and basis."
    • addedOutput schema / properties
      Added value: +{
      +  "adminCompany": {
      +    "anyOf": [
      +      {
      +        "additionalProperties": true,
      +        "description": "Administration company as supplied by the fund guide.",
      +        "properties": {
      +          "country": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "name": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "url": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          }
      +        },
      +        "type": "object"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "buyFee": {
      +    "anyOf": [
      +      {
      +        "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Upstream buy fee"
      +  },
      +  "capital": {
      +    "anyOf": [
      +      {
      +        "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Assets under management"
      +  },
      +  "categories": {
      +    "anyOf": [
      +      {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "category": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Fund category"
      +  },
      +  "changeSinceOneYear": {
      +    "anyOf": [
      +      {
      +        "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Upstream 1 year change"
      +  },
      +  "changeSinceThreeMonths": {
      +    "anyOf": [
      +      {
      +        "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Upstream 3 month change"
      +  },
      +  "countryChartData": {
      +    "anyOf": [
      +      {
      +        "items": {
      +          "additionalProperties": true,
      +          "description": "Data point for portfolio allocation charts.",
      +          "properties": {
      +            "name": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "default": null
      +            },
      +            "y": {
      +              "anyOf": [
      +                {
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "default": null
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Geographic allocation by country"
      +  },
      +  "currency": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Fund currency, when supplied"
      +  },
      +  "description": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Fund description"
      +  },
      +  "development": {
      +    "anyOf": [
      +      {
      +        "additionalProperties": true,
      +        "description": "Fund performance metrics over various time periods.",
      +        "properties": {
      +          "fiveYears": {
      +            "anyOf": [
      +              {
      +                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "description": "Upstream 5 year return"
      +          },
      +          "oneMonth": {
      +            "anyOf": [
      +              {
      +                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "description": "Upstream 1 month return"
      +          },
      +          "oneWeek": {
      +            "anyOf": [
      +              {
      +                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "description": "Upstream 1 week return"
      +          },
      +          "oneYear": {
      +            "anyOf": [
      +              {
      +                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "description": "Upstream 1 year return"
      +          },
      +          "tenYears": {
      +            "anyOf": [
      +              {
      +                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "description": "Upstream 10 year return"
      +          },
      +          "thisYear": {
      +            "anyOf": [
      +              {
      +                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "description": "Upstream year to date return"
      +          },
      +          "threeMonths": {
      +            "anyOf": [
      +              {
      +                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "description": "Upstream 3 month return"
      +          },
      +          "threeYears": {
      +            "anyOf": [
      +              {
      +                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "description": "Upstream 3 year return"
      +          },
      +          "today": {
      +            "anyOf": [
      +              {
      +                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "description": "Upstream performance today"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Performance over time periods"
      +  },
      +  "developmentFiveYears": {
      +    "anyOf": [
      +      {
      +        "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "developmentOneDay": {
      +    "anyOf": [
      +      {
      +        "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "developmentOneMonth": {
      +    "anyOf": [
      +      {
      +        "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "developmentOneYear": {
      +    "anyOf": [
      +      {
      +        "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "developmentSixMonths": {
      +    "anyOf": [
      +      {
      +        "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "developmentThisYear": {
      +    "anyOf": [
      +      {
      +        "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "developmentThreeMonths": {
      +    "anyOf": [
      +      {
      +        "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "developmentThreeYears": {
      +    "anyOf": [
      +      {
      +        "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "fee": {
      +    "anyOf": [
      +      {
      +        "additionalProperties": true,
      +        "description": "Fund fee information.",
      +        "properties": {
      +          "entryCharge": {
      +            "anyOf": [
      +              {
      +                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "description": "Upstream entry fee"
      +          },
      +          "exitCharge": {
      +            "anyOf": [
      +              {
      +                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "description": "Upstream exit fee"
      +          },
      +          "ongoingCharges": {
      +            "anyOf": [
      +              {
      +                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null,
      +            "description": "Upstream ongoing charges"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Fee information"
      +  },
      +  "fundCompany": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Fund company"
      +  },
      +  "fundTypeName": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Fund type"
      +  },
      +  "holdingChartData": {
      +    "anyOf": [
      +      {
      +        "items": {
      +          "additionalProperties": true,
      +          "description": "Data point for portfolio allocation charts.",
      +          "properties": {
      +            "name": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "default": null
      +            },
      +            "y": {
      +              "anyOf": [
      +                {
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "default": null
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Top holdings"
      +  },
      +  "id": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Fund ID"
      +  },
      +  "isin": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "ISIN identifier"
      +  },
      +  "lastUpdated": {
      +    "anyOf": [
      +      {
      +        "format": "date-time",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Last update time"
      +  },
      +  "managementFee": {
      +    "anyOf": [
      +      {
      +        "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Raw upstream management fee; scale not inferred"
      +  },
      +  "name": {
      +    "description": "Fund name",
      +    "type": "string"
      +  },
      +  "nav": {
      +    "anyOf": [
      +      {
      +        "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Net Asset Value"
      +  },
      +  "navDate": {
      +    "anyOf": [
      +      {
      +        "format": "date",
      +        "type": "string"
      +      },
      +      {
      +        "format": "date-time",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Source NAV date or timestamp; no timezone inferred"
      +  },
      +  "portfolioDate": {
      +    "anyOf": [
      +      {
      +        "format": "date",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Date of portfolio data"
      +  },
      +  "productFee": {
      +    "anyOf": [
      +      {
      +        "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Raw upstream product fee; scale not inferred"
      +  },
      +  "prospectus": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Prospectus URL"
      +  },
      +  "prospectusLink": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Upstream prospectus link; may be a relative path"
      +  },
      +  "rating": {
      +    "anyOf": [
      +      {
      +        "type": "integer"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Rating (e.g., Morningstar)"
      +  },
      +  "risk": {
      +    "anyOf": [
      +      {
      +        "type": "integer"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Risk level (1-7)"
      +  },
      +  "riskLevel": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Risk category"
      +  },
      +  "riskText": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null
      +  },
      +  "sectorChartData": {
      +    "anyOf": [
      +      {
      +        "items": {
      +          "additionalProperties": true,
      +          "description": "Data point for portfolio allocation charts.",
      +          "properties": {
      +            "name": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "default": null
      +            },
      +            "y": {
      +              "anyOf": [
      +                {
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "default": null
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Sector allocation"
      +  },
      +  "sellFee": {
      +    "anyOf": [
      +      {
      +        "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Upstream sell fee"
      +  },
      +  "sharpeRatio": {
      +    "anyOf": [
      +      {
      +        "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Sharpe ratio"
      +  },
      +  "standardDeviation": {
      +    "anyOf": [
      +      {
      +        "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Standard deviation"
      +  },
      +  "startDate": {
      +    "anyOf": [
      +      {
      +        "format": "date",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Fund inception date"
      +  },
      +  "tradeable": {
      +    "anyOf": [
      +      {
      +        "type": "boolean"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Whether fund is tradeable, when supplied"
      +  }
      +}
    • addedOutput schema / required
      Added value: +[
      +  "name"
      +]
  3. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the safety profile is covered. The description adds genuinely new behavioral context beyond them: 'Missing currency and tradeability remain unknown' and 'Not guaranteed real-time' disclose data-completeness and freshness limits an agent would otherwise assume away.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the payload fields and then cabined by caveats and alternatives. The terse caveat sentence ('Missing currency and tradeability remain unknown') is slightly clipped but earns its place by preventing false assumptions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation; annotations carry the safety profile; and the description covers the freshness/completeness caveats plus sibling routing. For a single-parameter read tool, an agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents the pattern, minLength, and the 'Avanza order-book ID from discovery; not the separate instrumentId' distinction. The description adds no parameter-level meaning beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Starts with a specific verb and resource ('Get fund identity') and enumerates the exact payload fields (NAV, fees, risk, allocations), so an agent knows precisely what comes back. It is clearly distinguishable from siblings like get_fund_chart (raw history) and get_fund_holdings (allocations).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent to alternatives: 'Use get_fund_holdings for allocations only, get_fund_chart for raw history.' It gives clear context for when a sibling is preferred but does not state a positive trigger for choosing this tool over others (e.g. overview/discovery use case).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.