MCP server and CLI for Saxo Bank OpenAPI spec lookup (offline; no trading)
Project description
mcp-server-saxo-openapi
Saxo Bank OpenAPI spec lookup — CLI tool and MCP server
English | 日本語
Look up Saxo Bank / Saxobank OpenAPI endpoint parameters and JSON samples from your terminal, or attach the same tools to Cursor, Claude Desktop, and other MCP clients — without wrestling the deep official reference tree.
Zero third-party dependencies (Python stdlib only). Spec database: ~260 endpoints across 17 service groups, shipped inside the wheel.
Spec snapshot
Spec snapshot: 2026-07-08 (Saxo Release Notes through 2025/05/15).
Structured endpoint specs for agents and developers. Saxo does not publish a single docs semver; we record the crawl date and the newest Release Notes heading present at that time. Details: SPEC_FRESHNESS.md.
Missing endpoint, wrong parameter, or something that looks out of date? Please open an Issue. Pull requests: CONTRIBUTING.md.
What this is / is not
| This package | Not this package |
|---|---|
| Offline spec lookup (CLI + MCP) | Live trading / portfolio API calls |
| No Saxo credentials required | OAuth, order placement, balances |
| Token-efficient progressive disclosure | A substitute for a full OpenAPI client |
For live Saxo OpenAPI access from an MCP client, see community servers such as @borgels/mcp-server-saxo (npm, unofficial, separate project).
Unofficial — not affiliated with or endorsed by Saxo Bank A/S.
Features
- Structured spec database — nested parameters and request/response samples
- CLI —
search-endpoints,get-endpoint,get-schemawith depth control and "Did you mean?" suggestions - MCP server — stdio JSON-RPC; same three tools
- Token-efficient — progressive disclosure (collapsed nested schemas, drill down on demand)
Requirements: Python 3.10+
Getting started — recommended (uvx)
Production PyPI
uvx mcp-server-saxo-openapi
uvx --from mcp-server-saxo-openapi saxo-doc-helper search-endpoints orders
uvx --from mcp-server-saxo-openapi saxo-doc-helper --version
uvx resolves the package name; use --from mcp-server-saxo-openapi to run the saxo-doc-helper console script.
MCP client config:
{
"mcpServers": {
"saxo-openapi": {
"command": "uvx",
"args": ["mcp-server-saxo-openapi"]
}
}
}
From GitHub
uvx --from git+https://github.com/nohikomiso/mcp-server-saxo-openapi.git saxo-doc-helper search-endpoints orders
uvx --from git+https://github.com/nohikomiso/mcp-server-saxo-openapi.git mcp-server-saxo-openapi
TestPyPI (development only)
uvx --index-url https://test.pypi.org/simple/ \
--index https://pypi.org/simple/ \
--from mcp-server-saxo-openapi \
saxo-doc-helper search-endpoints orders
Getting started — local clone
git clone https://github.com/nohikomiso/mcp-server-saxo-openapi.git
cd mcp-server-saxo-openapi
python tools/saxo_doc_helper.py search-endpoints orders
python tools/saxo_doc_helper.py get-endpoint POST /trade/v2/orders
python tools/saxo_doc_helper.py get-schema algorithmicorderdata
Or install editable:
uv sync
uv run saxo-doc-helper --version
uv run saxo-doc-helper search-endpoints orders
Input normalization
| Input | Normalized |
|---|---|
post |
POST |
trade/v2/orders |
/trade/v2/orders |
https://gateway.saxobank.com/sim/openapi/trade/v2/orders |
/trade/v2/orders |
If no exact match is found, Did you mean? suggestions are returned.
MCP tools exposed
| Tool | Description |
|---|---|
search_saxo_endpoints(query) |
Keyword search across all endpoints |
get_saxo_endpoint_spec(method, path, depth?) |
Parameters + request/response samples |
get_saxo_schema_spec(schema_name, depth?) |
Nested schema drill-down |
Agent integration
When researching Saxo OpenAPI specs, do not read
spec/json/files directly.
Usesaxo-doc-helper(orpython tools/saxo_doc_helper.pyfrom a clone).
Repository layout
mcp-server-saxo-openapi/
├── pyproject.toml
├── SPEC_FRESHNESS.md
├── LICENSE
├── README.md / README.ja.md
├── CONTRIBUTING.md
├── docs/
│ └── MAINTAINER.md
├── src/saxo_doc_helper/ # installable package (+ data/json)
├── spec/json/ # maintainer source of truth
├── tests/
└── tools/
└── saxo_doc_helper.py # thin clone-compatible wrapper
Related projects
| Project | Role |
|---|---|
| saxo-apy | OAuth and session management |
| saxo-openapi | Python REST/WebSocket client (AI-ready) |
| @borgels/mcp-server-saxo | Live Saxo OpenAPI MCP (npm; unofficial) |
This repository provides spec lookup. Runtime API access is a separate concern.
Feedback and maintainers
- Bugs / stale specs: GitHub Issues
- Maintainers: docs/MAINTAINER.md
- Source crawl: public Saxo Developer Portal reference docs
License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_server_saxo_openapi-0.1.1.tar.gz.
File metadata
- Download URL: mcp_server_saxo_openapi-0.1.1.tar.gz
- Upload date:
- Size: 548.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","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":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf3cd00aaf960f94522404d7da431520f513ff9d7480c14aa7a897c6148f486c
|
|
| MD5 |
64918d6717b5f3c86e257613d0ec543d
|
|
| BLAKE2b-256 |
cd6b5952a3a922608f7b8b0540a57e7e8becbcd588ea8a88f7d4a1f9d9cd153d
|
File details
Details for the file mcp_server_saxo_openapi-0.1.1-py3-none-any.whl.
File metadata
- Download URL: mcp_server_saxo_openapi-0.1.1-py3-none-any.whl
- Upload date:
- Size: 342.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","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":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d79abc9bfd1a70ef9af9151a5a1cace74aed1516545534d8bcef469a6d5547f8
|
|
| MD5 |
b7017767fad62653ad3c7e64624afcf2
|
|
| BLAKE2b-256 |
e3c6695cb2a49e2a8d641201757075a9267e2973d3234945fbaa3da2faeb3f3c
|