Avanza MCP Server
Read-only access to Avanza's public market data from your MCP client. No Avanza account required.
Disclaimer
This is an unofficial API client/MCP Server. Not affiliated with Avanza Bank AB. The underlying API can be taken down or changed without warning at any point in time.
The author of this software is not responsible for any indirect damages (foreseeable or unforeseeable), such as, if necessary, loss or alteration of or fraudulent access to data, accidental transmission of viruses or of any other harmful element, loss of profits or opportunities, the cost of replacement goods and services or the attitude and behavior of a third party.
Features
- Stocks, funds, ETFs, certificates, warrants and futures/forwards.
- Quotes, charts, financial ratios, dividends, order books and ownership data.
- Fund performance, fees, holdings, sustainability and research prompts.
Setup
Requires uv and Python 3.12+. Local clients launch the server over stdio.
Claude Desktop and Cursor
Both use this configuration:
{
"mcpServers": {
"avanza": {
"command": "uvx",
"args": ["avanza-mcp"]
}
}
}
- Claude Desktop: open Settings > Developer > Edit Config, merge the configuration, then fully restart Claude Desktop.
- Cursor: add it to
.cursor/mcp.jsonin your project, or~/.cursor/mcp.jsonglobally. Enable the server in Cursor's MCP settings.
Claude Code
Run in your project:
claude mcp add avanza -- uvx avanza-mcp
Use /mcp in Claude Code to check the connection.
Visual Studio Code
Add to .vscode/mcp.json, or open MCP: Open User Configuration for global setup:
{
"servers": {
"avanza": {
"type": "stdio",
"command": "uvx",
"args": ["avanza-mcp"]
}
}
}
Run MCP: List Servers, start avanza, and enable its tools in agent chat.
OpenCode
Add to your project's opencode.json or global ~/.config/opencode/opencode.json:
{
"mcp": {
"avanza": {
"type": "local",
"command": ["uvx", "avanza-mcp"],
"enabled": true
}
}
}
HTTP and ChatGPT
From a source checkout:
uv sync
uv run fastmcp run src/avanza_mcp/__init__.py:mcp --transport http
Connect HTTP clients to http://localhost:8000/mcp. ChatGPT requires a remotely reachable HTTPS deployment; add its /mcp URL using ChatGPT's developer-mode setup.
This project does not provide a hosted endpoint. Configure access controls before exposing your server publicly.
Python
Install with uv add avanza-mcp, then use FastMCP's in-process client:
import asyncio
from fastmcp import Client
from avanza_mcp import mcp
async def main():
async with Client(mcp) as client:
result = await client.call_tool(
"search_instruments", {"query": "Volvo", "instrument_type": "stock"}
)
print(result.structured_content)
asyncio.run(main())
If a desktop client cannot find uvx, use its absolute executable path. See DEVELOPMENT.md for running from source and tests.
Tools
All 34 tools are read-only. Search first to obtain an order_book_id; history tools expose pagination. Data is latest available, not guaranteed live.
| Category | Tool | Description |
|---|---|---|
| Search | search_instruments |
Find instruments by name, ticker or ISIN |
| Search | get_instrument_by_order_book_id |
Match an exact ID within search candidates |
| Stocks | get_stock_info |
Company, listing, fundamentals and quote |
| Stocks | get_stock_quote |
Latest price and trading volume |
| Stocks | get_stock_chart |
Historical OHLC price points |
| Stocks | get_stock_analysis |
A named financial-ratio history |
| Stocks | get_dividends |
A named dividend metric by financial year |
| Stocks | get_company_financials |
A named annual or quarterly financial metric |
| Market | get_orderbook |
Bid/ask depth |
| Market | get_marketplace_info |
Trading hours and market status |
| Market | get_recent_trades |
Recent trade snapshot |
| Market | get_broker_trade_summary |
Broker buy/sell activity |
| Funds | get_fund_info |
NAV, performance, fees and fund information |
| Funds | get_fund_sustainability |
ESG and sustainability metrics |
| Funds | get_fund_chart |
Historical fund chart points |
| Funds | get_fund_chart_periods |
Available performance periods |
| Funds | get_fund_description |
Investment strategy and category |
| Funds | get_fund_holdings |
Country, sector and top-holding allocations |
| Certificates | filter_certificates |
Filter and list certificates |
| Certificates | get_certificate_info |
Certificate information |
| Certificates | get_certificate_details |
Extended certificate details |
| Warrants | filter_warrants |
Filter and list warrants |
| Warrants | get_warrant_info |
Warrant information |
| Warrants | get_warrant_details |
Extended warrant details |
| ETFs | filter_etfs |
Filter and list ETFs |
| ETFs | get_etf_info |
ETF information |
| ETFs | get_etf_details |
Extended ETF details |
| Futures/Forwards | list_futures_forwards |
Filter and list contracts |
| Futures/Forwards | get_future_forward_filter_options |
Available contract filters |
| Futures/Forwards | get_future_forward_info |
Contract information |
| Futures/Forwards | get_future_forward_details |
Extended contract details |
| Additional | get_number_of_owners |
Avanza ownership history |
| Additional | get_short_selling |
Short-selling history |
| Additional | get_marketmaker_chart |
Traded-product OHLC and market-maker data |
Prompts
analyze_stock(stock_symbol)- Research a stock's fundamentals and price history.compare_funds(fund_names)- Compare two or more supplied funds.screen_dividend_stocks(candidates, min_yield=3.0)- Screen supplied stocks by dividend yield.
Resources
avanza://docs/usage- Tool usage guide.avanza://docs/quick-start- Common workflows.avanza://stock/{order_book_id}- Stock summary as Markdown.avanza://fund/{order_book_id}- Fund summary as Markdown.
License
Metadata
Release files for avanza-mcp 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| avanza_mcp-2.0.0.tar.gz | 125.4 kB | Without provenance | Details for avanza_mcp-2.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| avanza_mcp-2.0.0-py3-none-any.whl | Python 3 | none | any | Details for avanza_mcp-2.0.0-py3-none-any.whl |
Total release size: 177.0 kB
Release files / avanza_mcp-2.0.0.tar.gz
| Download URL | avanza_mcp-2.0.0.tar.gz |
|---|---|
| Size | 125.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
33e48aef06025ef240f66556fcce892989317f4177cc51b4410f407d34739b31
|
|
BLAKE2b-256 checksum How to use checksums |
b0f1c265cc6c04d66e04a6ac0eca7ae9086eaa6e17d80c33ac7cd0a5d7fe8d54
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / avanza_mcp-2.0.0-py3-none-any.whl
| Download URL | avanza_mcp-2.0.0-py3-none-any.whl |
|---|---|
| Size | 51.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e2ca8165876a936f063f328d1513a99ae8dc66b547539cbb38b11eb591fd3f3e
|
|
BLAKE2b-256 checksum How to use checksums |
55eda16e5f2c42ffbdff400cd169f8627fe7b0a8916a44fc881262488e17d8dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for avanza-mcp 2.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.