Skip to main content

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:

  1. Providing accurate OpenAPI endpoint schemas on demand (request and response structure).
  2. Injecting critical warnings when dangerous endpoints (like /orders or /positions) are queried.
  3. 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:

  1. Call search_saxo_endpoints to find the endpoint.
  2. Call get_saxo_endpoint_spec to understand parameters and responses.
  3. If warned, read saxo://docs/pitfalls.md before writing execution code.
  4. 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_spec or get_saxo_workflow_guide tools 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

mcp_server_saxo_openapi-0.2.0.tar.gz (53.4 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.2.0-py3-none-any.whl (55.1 kB view details)

Uploaded Python 3

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

Hashes for mcp_server_saxo_openapi-0.2.0.tar.gz
Algorithm Hash digest
SHA256 2ce1d536e861c36c8a3d4567a5eef084c391f25bdf6a46746d14ed2a1336634c
MD5 f3e04c2e78cb7d21d23c256514f9dbf1
BLAKE2b-256 80f620fc9319e9a8f25448b1ef1cd12bf8606867f3160c7907379c4fa5b031b6

See more details on using hashes here.

File details

Details for the file mcp_server_saxo_openapi-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_server_saxo_openapi-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f034b76c24efc0da4b156f1c22a7c5c82744b124ea46ebb59394fa09408b3d65
MD5 0edeb8df36faa551c94a4c0eeb944137
BLAKE2b-256 ca349f9b29dafe8b350326ff234e607efb54eba631e031eb1ed5b0cebe2b26ce

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