Skip to main content
Glama
AnteWall

Avanza MCP Server

by AnteWall

get_company_financials

Read-onlyIdempotent

Retrieve annual, quarterly, TTM, or quarter-only company financial metrics by Avanza order-book ID and metric name, with pagination for stock analysis.

Instructions

Page one metric in an annual, quarterly, TTM or quarter-only financial section.

data preserves the selected upstream field name and recognized record fields. Verified metric names include sales, netProfit, profitMargin, totalAssets, totalLiabilities and debtToEquityRatio. available_metrics lists names, not sibling series. Missing sections are omitted, not fabricated. No unit conversions are made.

Input Schema

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

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataYes
metricYes
selectionYes
paginationYes
available_metricsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv2.1.0
    • changedOutput schema / properties / data / additionalProperties / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": {
      -      "anyOf": [
      -        {
      -          "items": {
      -            "additionalProperties": true,
      -            "description": "Observed upstream point fields. Values retain their source-specific scale.",
      -            "properties": {
      -              "date": {
      -                "anyOf": [
      -                  {
      -                    "type": "string"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null
      -              },
      -              "financialYear": {
      -                "type": "integer"
      -              },
      -              "reportType": {
      -                "type": "string"
      -              },
      -              "value": {
      -                "anyOf": [
      -                  {
      -                    "type": "number"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ]
      -              }
      -            },
      -            "required": [
      -              "reportType",
      -              "financialYear",
      -              "value"
      -            ],
      -            "type": "object"
      -          },
      -          "type": "array"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ]
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "description": "Observed upstream point fields. Values retain their source-specific scale.",
      +            "properties": {
      +              "date": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "financialYear": {
      +                "type": "integer"
      +              },
      +              "reportType": {
      +                "type": "string"
      +              },
      +              "value": {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              }
      +            },
      +            "required": [
      +              "reportType",
      +              "financialYear",
      +              "value"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed12 schema fields changedv2.0.0
    • addedInput schema / additionalProperties
      Added value: +false
    • removedInput schema / properties / instrument_id
      Removed value: -{
      -  "type": "string"
      -}
    • addedInput schema / properties / limit
      Added value: +{
      +  "default": 20,
      +  "maximum": 100,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / metric
      Added value: +{
      +  "maxLength": 100,
      +  "minLength": 1,
      +  "pattern": "^[A-Za-z][A-Za-z0-9]*$",
      +  "type": "string"
      +}
    • addedInput schema / properties / offset
      Added value: +{
      +  "default": 0,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • 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"
      +}
    • addedInput schema / properties / selection
      Added value: +{
      +  "default": "companyFinancialsByYear",
      +  "enum": [
      +    "companyFinancialsByYear",
      +    "companyFinancialsByQuarter",
      +    "companyFinancialsByQuarterTTM",
      +    "companyFinancialsByQuarterQuarter"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "instrument_id"
      -]New value: +[
      +  "order_book_id",
      +  "metric"
      +]
    • removedOutput schema / additionalProperties
      Removed value: -true
    • addedOutput schema / description
      Added value: +"One named metric in one selected section, without sibling series or summaries."
    • addedOutput schema / properties
      Added value: +{
      +  "available_metrics": {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "data": {
      +    "additionalProperties": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "additionalProperties": true,
      +                  "description": "Observed upstream point fields. Values retain their source-specific scale.",
      +                  "properties": {
      +                    "date": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "default": null
      +                    },
      +                    "financialYear": {
      +                      "type": "integer"
      +                    },
      +                    "reportType": {
      +                      "type": "string"
      +                    },
      +                    "value": {
      +                      "anyOf": [
      +                        {
      +                          "type": "number"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  "required": [
      +                    "reportType",
      +                    "financialYear",
      +                    "value"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "type": "object"
      +  },
      +  "metric": {
      +    "type": "string"
      +  },
      +  "pagination": {
      +    "properties": {
      +      "has_more": {
      +        "type": "boolean"
      +      },
      +      "limit": {
      +        "maximum": 100,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "offset": {
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "returned": {
      +        "type": "integer"
      +      },
      +      "total": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Source count; null when the selected section is unavailable"
      +      }
      +    },
      +    "required": [
      +      "offset",
      +      "limit",
      +      "total",
      +      "returned",
      +      "has_more"
      +    ],
      +    "type": "object"
      +  },
      +  "selection": {
      +    "type": "string"
      +  }
      +}
    • addedOutput schema / required
      Added value: +[
      +  "selection",
      +  "metric",
      +  "available_metrics",
      +  "data",
      +  "pagination"
      +]
  3. First observedv0.1.0

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive, openWorld), yet the description adds real behavioral context beyond them: missing sections are omitted rather than fabricated, no unit conversions are performed, and 'data preserves the selected upstream field name'. These are genuine data-integrity disclosures for a read tool.

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?

The core action is front-loaded in sentence one and the following sentences are short and additive rather than filler. A couple of lines ('data preserves the selected upstream field name and recognized record fields') are jargon-dense and slightly ambiguous, keeping it short of a 5.

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

Completeness3/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 not be restated. For a 5-parameter tool with only 20% schema coverage and pagination-triggering limit/offset parameters, the description covers metric and section semantics adequately but leaves paging behavior and the metric-name-to-section relationship underspecified.

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 only 20%, so the description must compensate. It lists verified metric names (sales, netProfit, profitMargin, totalAssets, totalLiabilities, debtToEquityRatio) which is valuable for the free-form metric pattern parameter, and it maps the four section modes to the selection enum, but it says nothing about limit/offset paging semantics.

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

Purpose4/5

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

The first sentence states a specific verb ('Page one metric') and resource ('financial section') and enumerates the four section modes that map to the selection enum, which lets an agent distinguish it from quote/chart/holdings siblings. It does not, however, name or contrast any sibling tool (e.g. get_stock_analysis) explicitly.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance and no prerequisite statements. The reader can infer that the tool retrieves company financial metrics, but the description never says when to reach for it over alternatives like get_stock_analysis or get_stock_info.

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