Skip to main content

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 | 日本語


License Python CLI MCP Spec updated

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
  • CLIsearch-endpoints, get-endpoint, get-schema with 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.
Use saxo-doc-helper (or python tools/saxo_doc_helper.py from 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


License

MIT 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

mcp_server_saxo_openapi-0.1.1.tar.gz (548.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_server_saxo_openapi-0.1.1-py3-none-any.whl (342.6 kB view details)

Uploaded Python 3

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

Hashes for mcp_server_saxo_openapi-0.1.1.tar.gz
Algorithm Hash digest
SHA256 bf3cd00aaf960f94522404d7da431520f513ff9d7480c14aa7a897c6148f486c
MD5 64918d6717b5f3c86e257613d0ec543d
BLAKE2b-256 cd6b5952a3a922608f7b8b0540a57e7e8becbcd588ea8a88f7d4a1f9d9cd153d

See more details on using hashes here.

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

Hashes for mcp_server_saxo_openapi-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d79abc9bfd1a70ef9af9151a5a1cace74aed1516545534d8bcef469a6d5547f8
MD5 b7017767fad62653ad3c7e64624afcf2
BLAKE2b-256 e3c6695cb2a49e2a8d641201757075a9267e2973d3234945fbaa3da2faeb3f3c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page