MCP server for Saxo Bank OpenAPI spec lookup with pitfalls guide (offline; no trading)
Project description
Saxo Bank OpenAPI MCP Server
A specialized Model Context Protocol (MCP) server acting as a reference manual and knowledge base for the Saxo Bank OpenAPI.
Version: 0.2.0 · Spec snapshot: 2026-07-08
Purpose
This server is not an execution client. It does NOT execute trades, place orders, or modify portfolios.
Instead, it serves as an interactive dictionary and strategy guide for AI agents tasked with generating Saxo Bank API code.
Saxo's OpenAPI is complex: account netting modes, asset-class restrictions, and hedging workflows are easy to hallucinate. This MCP server helps by:
- Providing accurate OpenAPI endpoint schemas on demand (request and response structure).
- Injecting critical warnings when dangerous endpoints (like
/ordersor/positions) are queried. - Exposing
saxo://docs/pitfalls.md— a survival guide for Saxo-specific quirks.
Tools
| Tool | Description |
|---|---|
search_saxo_endpoints(keyword) |
Discover endpoints by keyword (path, summary, operationId). |
get_saxo_endpoint_spec(method, path) |
Parameters, request body, responses, and dynamic warnings. |
Resources
| URI | Description |
|---|---|
saxo://docs/pitfalls.md |
Netting modes, Stop vs StopIfTraded, IsForceOpen, UIC dedup, Precheck. |
Usage (AI agents)
When writing Saxo Bank integration code:
- Call
search_saxo_endpointsto find the endpoint. - Call
get_saxo_endpoint_specto understand parameters and responses. - If warned, read
saxo://docs/pitfalls.mdbefore writing execution code. - Implement using your language's HTTP client or Saxo SDK — not via this MCP.
Installation
MCP (Cursor / Claude Desktop)
{
"mcpServers": {
"saxo-openapi": {
"command": "uvx",
"args": ["mcp-server-saxo-openapi"]
}
}
}
uvx (one-shot)
uvx mcp-server-saxo-openapi
Local development
cd tools/mcp-server-saxo-openapi
uv sync
uv run mcp-server-saxo-openapi
Override spec file (optional):
export SAXO_OPENAPI_JSON_PATH=/path/to/saxo_openapi.json
What it does / does not do
| Does | Does not |
|---|---|
| Offline OpenAPI lookup | Call live Saxo APIs |
| Pitfalls & workflow warnings | OAuth / token management |
| Request + response schemas | Place or modify orders |
Known limitations (0.2.0)
- Warnings are soft hints; agents may still skip
pitfalls.md. - No
get_saxo_schema_specorget_saxo_workflow_guidetools yet (feedback welcome via Issues). - Pitfalls reflect practical experience; not a substitute for Saxo's official docs.
- Spec snapshot may lag Saxo Release Notes; see
SPEC_FRESHNESS.md.
Changes from 0.1.1
See CHANGELOG.md. 0.2.0 replaces the stdlib implementation with a FastMCP-based server that adds pitfalls, warnings, and response schemas.
License
MIT — see 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.2.0.tar.gz.
File metadata
- Download URL: mcp_server_saxo_openapi-0.2.0.tar.gz
- Upload date:
- Size: 53.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ce1d536e861c36c8a3d4567a5eef084c391f25bdf6a46746d14ed2a1336634c
|
|
| MD5 |
f3e04c2e78cb7d21d23c256514f9dbf1
|
|
| BLAKE2b-256 |
80f620fc9319e9a8f25448b1ef1cd12bf8606867f3160c7907379c4fa5b031b6
|
File details
Details for the file mcp_server_saxo_openapi-0.2.0-py3-none-any.whl.
File metadata
- Download URL: mcp_server_saxo_openapi-0.2.0-py3-none-any.whl
- Upload date:
- Size: 55.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f034b76c24efc0da4b156f1c22a7c5c82744b124ea46ebb59394fa09408b3d65
|
|
| MD5 |
0edeb8df36faa551c94a4c0eeb944137
|
|
| BLAKE2b-256 |
ca349f9b29dafe8b350326ff234e607efb54eba631e031eb1ed5b0cebe2b26ce
|