Skip to main content
Glama
AnteWall

Avanza MCP Server

by AnteWall

filter_etfs

Read-onlyIdempotent

Select ETFs by issuer, exposure, direction, risk, currency, and category using server-side pagination; inspect returned filter options, then get details by orderbookId.

Instructions

Select ETFs by upstream filters, with server-side pagination.

Filter vocabulary is upstream-defined; inspect returned filterOptions rather than guessing labels. Use get_etf_info for a selected orderbookId.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
issuersNo
exposuresNo
directionsNo
sort_fieldNonumberOfOwners
sort_orderNodesc
risk_scoresNo
currency_codesNo
sub_categoriesNo
asset_categoriesNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
etfsYes
filterNo
sortByNo
paginationNo
filterOptionsNo
totalNumberOfOrderbooksNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed12 schema fields changedv2.1.0
    • addedOutput schema / $defs
      Added value: +{
      +  "ETFFilter": {
      +    "description": "Filter criteria for ETFs.",
      +    "properties": {
      +      "assetCategories": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "currencyCodes": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "directions": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "exposures": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "issuers": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "riskScores": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "subCategories": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "ETFFilterOptions": {
      +    "properties": {
      +      "assetCategories": {
      +        "items": {
      +          "$ref": "#/$defs/FilterOption"
      +        },
      +        "type": "array"
      +      },
      +      "currencyCodes": {
      +        "items": {
      +          "$ref": "#/$defs/FilterOption"
      +        },
      +        "type": "array"
      +      },
      +      "directions": {
      +        "items": {
      +          "$ref": "#/$defs/FilterOption"
      +        },
      +        "type": "array"
      +      },
      +      "exposures": {
      +        "items": {
      +          "$ref": "#/$defs/FilterOption"
      +        },
      +        "type": "array"
      +      },
      +      "issuers": {
      +        "items": {
      +          "$ref": "#/$defs/FilterOption"
      +        },
      +        "type": "array"
      +      },
      +      "riskScores": {
      +        "items": {
      +          "$ref": "#/$defs/FilterOption"
      +        },
      +        "type": "array"
      +      },
      +      "subCategories": {
      +        "items": {
      +          "$ref": "#/$defs/FilterOption"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "ETFListItem": {
      +    "description": "ETF in filter/list results.",
      +    "properties": {
      +      "collateralValue": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "countryCode": {
      +        "type": "string"
      +      },
      +      "directYield": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "hasPosition": {
      +        "default": false,
      +        "type": "boolean"
      +      },
      +      "managementFee": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "name": {
      +        "type": "string"
      +      },
      +      "numberOfOwners": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "oneDayChangePercent": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "orderbookId": {
      +        "type": "string"
      +      },
      +      "productFee": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "riskScore": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "threeYearsChangePercent": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      }
      +    },
      +    "required": [
      +      "orderbookId",
      +      "countryCode",
      +      "name"
      +    ],
      +    "type": "object"
      +  },
      +  "FilterOption": {
      +    "description": "Named filter option, optionally containing child options.",
      +    "properties": {
      +      "children": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "$ref": "#/$defs/FilterOption"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "displayName": {
      +        "type": "string"
      +      },
      +      "numberOfOrderbooks": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "string"
      +          }
      +        ]
      +      },
      +      "value": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "value",
      +      "displayName",
      +      "numberOfOrderbooks"
      +    ],
      +    "type": "object"
      +  },
      +  "PaginationResponse": {
      +    "description": "Pagination values returned by filter endpoints.",
      +    "properties": {
      +      "limit": {
      +        "type": "integer"
      +      },
      +      "offset": {
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "offset",
      +      "limit"
      +    ],
      +    "type": "object"
      +  },
      +  "SortBy": {
      +    "description": "Sort configuration for filter endpoints.",
      +    "properties": {
      +      "field": {
      +        "type": "string"
      +      },
      +      "order": {
      +        "enum": [
      +          "asc",
      +          "desc"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "field",
      +      "order"
      +    ],
      +    "type": "object"
      +  }
      +}
    • removedOutput schema / additionalProperties
      Removed value: -true
    • addedOutput schema / properties / etfs / items / $ref
      Added value: +"#/$defs/ETFListItem"
    • removedOutput schema / properties / etfs / items / additionalProperties
      Removed value: -true
    • removedOutput schema / properties / etfs / items / description
      Removed value: -"ETF in filter/list results."
    • removedOutput schema / properties / etfs / items / properties
      Removed value: -{
      -  "countryCode": {
      -    "type": "string"
      -  },
      -  "directYield": {
      -    "anyOf": [
      -      {
      -        "type": "number"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "hasPosition": {
      -    "default": false,
      -    "type": "boolean"
      -  },
      -  "managementFee": {
      -    "anyOf": [
      -      {
      -        "type": "number"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "name": {
      -    "type": "string"
      -  },
      -  "numberOfOwners": {
      -    "anyOf": [
      -      {
      -        "type": "integer"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "oneDayChangePercent": {
      -    "anyOf": [
      -      {
      -        "type": "number"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "orderbookId": {
      -    "type": "string"
      -  },
      -  "productFee": {
      -    "anyOf": [
      -      {
      -        "type": "number"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "riskScore": {
      -    "anyOf": [
      -      {
      -        "type": "integer"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "threeYearsChangePercent": {
      -    "anyOf": [
      -      {
      -        "type": "number"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  }
      -}
    • removedOutput schema / properties / etfs / items / required
      Removed value: -[
      -  "orderbookId",
      -  "countryCode",
      -  "name"
      -]
    • removedOutput schema / properties / etfs / items / type
      Removed value: -"object"
    • changedOutput schema / properties / filter / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "description": "Filter criteria for ETFs.",
      -    "properties": {
      -      "assetCategories": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "currencyCodes": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "directions": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "exposures": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "issuers": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "riskScores": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "subCategories": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "$ref": "#/$defs/ETFFilter"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / filterOptions / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "$ref": "#/$defs/ETFFilterOptions"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / pagination / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "$ref": "#/$defs/PaginationResponse"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / sortBy / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "description": "Sort configuration for filter endpoints.",
      -    "properties": {
      -      "field": {
      -        "type": "string"
      -      },
      -      "order": {
      -        "enum": [
      -          "asc",
      -          "desc"
      -        ],
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "field",
      -      "order"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "$ref": "#/$defs/SortBy"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Addedv2.0.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover the read-only, idempotent, open-world, non-destructive profile, so the description's job is to add beyond that. It does: it discloses server-side pagination and, importantly, that filter vocabulary is upstream-defined and should be read from filterOptions rather than guessed. It does not discuss rate limits or result-shape caveats, but the output schema covers returns.

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

Conciseness5/5

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

Three short sentences, each earning its place: purpose+scope first, then the vocabulary constraint, then the sibling redirect. Front-loaded and free of padding.

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

Completeness4/5

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

With an output schema present, return formatting need not be described, and annotations carry the safety profile. The description covers pagination and the dynamic-filter constraint, which are the main behavioral risks. Minor gap: no hint about valid sort_field values or how empty filter arrays behave.

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 0% across 11 parameters, so the description must carry the meaning. It only addresses the filter-array parameters collectively via the filterOptions caveat and gestures at pagination; it says nothing about limit/offset bounds or the sort_field/sort_order defaults. The self-explanatory parameter names and the useful vocabulary warning keep this above a 2.

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?

States a specific verb and resource ("Select ETFs") plus its scope ("by upstream filters, with server-side pagination"), and explicitly distinguishes itself from the sibling get_etf_info. An agent can tell this is a filtered-list tool without opening the schema.

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?

Names the alternative and the condition selecting it: "Use get_etf_info for a selected orderbookId." It also directs the agent to inspect returned filterOptions before supplying filter values, which is actionable guidance. No explicit when-not cases are given beyond the sibling redirect, so it falls just short of a 5.

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