# Nordnet Portfolio

Read-only MCP server exposing Nordnet brokerage balances, open positions, order records, and instrument search. Access portfolio figures directly inside your coding client.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 14
- Author: hpasic
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/hpasic/nordnet-mcp
- Updated: 2026-10-23
- HTML: https://affpapa.org/en/nevibecode/mcp/nordnet-portfolio

## What it does

The server gives your assistant read-only visibility into Nordnet accounts across Sweden, Norway, Denmark, and Finland through 16 MCP tools. It handles balances, holdings, transaction histories, and security lookups. The read-only scope means it cannot place trade orders or transfer capital.

Authentication works without extracting browser cookies by hand. Running the `nordnet_auth` tool generates a login QR code directly inside the client chat, formatted either as an interactive view or plain ASCII characters. Once you scan it using the Nordnet mobile application, the server retains the session in memory and pings the broker to keep it valid while active.

A restart wipes the active session because credentials are never saved to disk. Also, your `NORDNET_HOST` variable must match the national market of your account, such as `public.nordnet.se`. If the host points to another market, the mobile app ignores the QR code scan without an error message.

## Requirements
- Needs: Docker
- Environment variables: `NORDNET_HOST`, `NORDNET_SESSION_TOKEN`, `NORDNET_CLIENT_ID` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env NORDNET_HOST=<NORDNET_HOST> --env NORDNET_SESSION_TOKEN=<NORDNET_SESSION_TOKEN> --env NORDNET_CLIENT_ID=<NORDNET_CLIENT_ID> --transport stdio nordnet-portfolio -- docker run -i --rm -e NORDNET_HOST -e NORDNET_SESSION_TOKEN -e NORDNET_CLIENT_ID ghcr.io/hpasic/nordnet-mcp:latest
```
Replace <…> with your own values

### Codex

**Platform CLI**
```bash
codex mcp add nordnet-portfolio --env NORDNET_HOST=<NORDNET_HOST> --env NORDNET_SESSION_TOKEN=<NORDNET_SESSION_TOKEN> --env NORDNET_CLIENT_ID=<NORDNET_CLIENT_ID> -- docker run -i --rm -e NORDNET_HOST -e NORDNET_SESSION_TOKEN -e NORDNET_CLIENT_ID ghcr.io/hpasic/nordnet-mcp:latest
```
Replace <…> with your own values

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "nordnet-portfolio": {
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "-e",
                "NORDNET_HOST",
                "-e",
                "NORDNET_SESSION_TOKEN",
                "-e",
                "NORDNET_CLIENT_ID",
                "ghcr.io/hpasic/nordnet-mcp:latest"
            ],
            "env": {
                "NORDNET_HOST": "<NORDNET_HOST>",
                "NORDNET_SESSION_TOKEN": "<NORDNET_SESSION_TOKEN>",
                "NORDNET_CLIENT_ID": "<NORDNET_CLIENT_ID>"
            }
        }
    }
}
```
Replace <…> with your own values

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "nordnet-portfolio": {
            "type": "stdio",
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "-e",
                "NORDNET_HOST",
                "-e",
                "NORDNET_SESSION_TOKEN",
                "-e",
                "NORDNET_CLIENT_ID",
                "ghcr.io/hpasic/nordnet-mcp:latest"
            ],
            "env": {
                "NORDNET_HOST": "<NORDNET_HOST>",
                "NORDNET_SESSION_TOKEN": "<NORDNET_SESSION_TOKEN>",
                "NORDNET_CLIENT_ID": "<NORDNET_CLIENT_ID>"
            }
        }
    }
}
```
Replace <…> with your own values

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e NORDNET_HOST=<NORDNET_HOST> -e NORDNET_SESSION_TOKEN=<NORDNET_SESSION_TOKEN> -e NORDNET_CLIENT_ID=<NORDNET_CLIENT_ID> nordnet-portfolio docker run -i --rm -e NORDNET_HOST -e NORDNET_SESSION_TOKEN -e NORDNET_CLIENT_ID ghcr.io/hpasic/nordnet-mcp:latest
```
Replace <…> with your own values

## When to use it
- inspect brokerage balances and open positions across Nordnet accounts
- retrieve executed trade history without visiting the web portal
- look up financial instrument details and market identifiers
- review existing order records directly inside your workspace

## Example prompts
- Show my current account balance and active positions on Nordnet.
- Authenticate via QR code using nordnet_auth and fetch my latest trades.
- Search for the instrument details of ticker ERIC B in Nordnet.

## Similar
- [World Monitor](https://affpapa.org/en/nevibecode/mcp/world-monitor.md) — MCP server · ★ 89609
- [CCXT](https://affpapa.org/en/nevibecode/mcp/ccxt.md) — MCP server · ★ 44591
- [Finance Toolkit](https://affpapa.org/en/nevibecode/mcp/finance-toolkit.md) — MCP server · ★ 5469
- [EdgarTools](https://affpapa.org/en/nevibecode/mcp/edgartools.md) — MCP server · ★ 2817
- [LetsFG — Flights & Hotels](https://affpapa.org/en/nevibecode/mcp/letsfg-flights-hotels.md) — MCP server · ★ 2197
- [AutoTS](https://affpapa.org/en/nevibecode/mcp/autots.md) — MCP server · ★ 1434

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
