naftiko: 1.0.0-alpha2 info: label: Kraken Spot REST API — Market Data description: 'Kraken Spot REST API — Market Data. 9 operations. Lead operation: Kraken Get Server Time. Self-contained Naftiko capability covering one Kraken business surface.' tags: - Kraken - Cryptocurrency - Market Data created: '2026-05-30' modified: '2026-05-30' binds: - namespace: env keys: KRAKEN_API_KEY: KRAKEN_API_KEY capability: consumes: - type: http namespace: spot-rest-market-data baseUri: https://api.kraken.com description: Kraken Spot REST API — Market Data business capability. Self-contained, no shared references. authentication: type: apikey key: API-Key value: '{{env.KRAKEN_API_KEY}}' placement: header resources: - name: 0-public-time path: /0/public/Time operations: - name: getServerTime method: GET description: Kraken Get Server Time inputParameters: [] outputRawFormat: json outputParameters: - name: result type: object value: $. - name: 0-public-systemstatus path: /0/public/SystemStatus operations: - name: getSystemStatus method: GET description: Kraken Get System Status inputParameters: [] outputRawFormat: json outputParameters: - name: result type: object value: $. - name: 0-public-assets path: /0/public/Assets operations: - name: getAssetInfo method: GET description: Kraken Get Asset Info inputParameters: - name: asset in: query type: string required: false description: Comma-delimited list of assets to filter (e.g. XBT,ETH) - name: aclass in: query type: string required: false description: Asset class (currency, crypto) outputRawFormat: json outputParameters: - name: result type: object value: $. - name: 0-public-assetpairs path: /0/public/AssetPairs operations: - name: getTradableAssetPairs method: GET description: Kraken Get Tradable Asset Pairs inputParameters: - name: pair in: query type: string required: false description: Comma-delimited list of asset pairs (e.g. XBTUSD,ETHUSD) - name: info in: query type: string required: false description: Info detail level (info, leverage, fees, margin) outputRawFormat: json outputParameters: - name: result type: object value: $. - name: 0-public-ticker path: /0/public/Ticker operations: - name: getTickerInformation method: GET description: Kraken Get Ticker Information inputParameters: - name: pair in: query type: string required: false description: Comma-delimited list of asset pairs outputRawFormat: json outputParameters: - name: result type: object value: $. - name: 0-public-ohlc path: /0/public/OHLC operations: - name: getOHLCData method: GET description: Kraken Get OHLC Data inputParameters: - name: pair in: query type: string required: true description: pair - name: interval in: query type: integer required: false description: Candle interval in minutes (1, 5, 15, 30, 60, 240, 1440, 10080, 21600) - name: since in: query type: integer required: false description: Return OHLC entries since this timestamp outputRawFormat: json outputParameters: - name: result type: object value: $. - name: 0-public-depth path: /0/public/Depth operations: - name: getOrderBook method: GET description: Kraken Get Order Book inputParameters: - name: pair in: query type: string required: true description: pair - name: count in: query type: integer required: false description: Maximum number of bids/asks (1-500) outputRawFormat: json outputParameters: - name: result type: object value: $. - name: 0-public-trades path: /0/public/Trades operations: - name: getRecentTrades method: GET description: Kraken Get Recent Trades inputParameters: - name: pair in: query type: string required: true description: pair - name: since in: query type: integer required: false description: since - name: count in: query type: integer required: false description: Maximum number of trades (1-1000) outputRawFormat: json outputParameters: - name: result type: object value: $. - name: 0-public-spread path: /0/public/Spread operations: - name: getRecentSpreads method: GET description: Kraken Get Recent Spreads inputParameters: - name: pair in: query type: string required: true description: pair - name: since in: query type: integer required: false description: since outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest namespace: spot-rest-market-data-rest port: 8080 description: REST adapter for Kraken Spot REST API — Market Data. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/0/public/time name: 0-public-time description: REST surface for /0/public/Time. operations: - method: GET name: getServerTime description: Kraken Get Server Time call: spot-rest-market-data.getServerTime with: {} outputParameters: - type: object mapping: $. - path: /v1/0/public/systemstatus name: 0-public-systemstatus description: REST surface for /0/public/SystemStatus. operations: - method: GET name: getSystemStatus description: Kraken Get System Status call: spot-rest-market-data.getSystemStatus with: {} outputParameters: - type: object mapping: $. - path: /v1/0/public/assets name: 0-public-assets description: REST surface for /0/public/Assets. operations: - method: GET name: getAssetInfo description: Kraken Get Asset Info call: spot-rest-market-data.getAssetInfo with: asset: rest.asset aclass: rest.aclass outputParameters: - type: object mapping: $. - path: /v1/0/public/assetpairs name: 0-public-assetpairs description: REST surface for /0/public/AssetPairs. operations: - method: GET name: getTradableAssetPairs description: Kraken Get Tradable Asset Pairs call: spot-rest-market-data.getTradableAssetPairs with: pair: rest.pair info: rest.info outputParameters: - type: object mapping: $. - path: /v1/0/public/ticker name: 0-public-ticker description: REST surface for /0/public/Ticker. operations: - method: GET name: getTickerInformation description: Kraken Get Ticker Information call: spot-rest-market-data.getTickerInformation with: pair: rest.pair outputParameters: - type: object mapping: $. - path: /v1/0/public/ohlc name: 0-public-ohlc description: REST surface for /0/public/OHLC. operations: - method: GET name: getOHLCData description: Kraken Get OHLC Data call: spot-rest-market-data.getOHLCData with: pair: rest.pair interval: rest.interval since: rest.since outputParameters: - type: object mapping: $. - path: /v1/0/public/depth name: 0-public-depth description: REST surface for /0/public/Depth. operations: - method: GET name: getOrderBook description: Kraken Get Order Book call: spot-rest-market-data.getOrderBook with: pair: rest.pair count: rest.count outputParameters: - type: object mapping: $. - path: /v1/0/public/trades name: 0-public-trades description: REST surface for /0/public/Trades. operations: - method: GET name: getRecentTrades description: Kraken Get Recent Trades call: spot-rest-market-data.getRecentTrades with: pair: rest.pair since: rest.since count: rest.count outputParameters: - type: object mapping: $. - path: /v1/0/public/spread name: 0-public-spread description: REST surface for /0/public/Spread. operations: - method: GET name: getRecentSpreads description: Kraken Get Recent Spreads call: spot-rest-market-data.getRecentSpreads with: pair: rest.pair since: rest.since outputParameters: - type: object mapping: $. - type: mcp namespace: spot-rest-market-data-mcp port: 9090 transport: http description: MCP adapter for Kraken Spot REST API — Market Data. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: kraken-get-server-time description: Kraken Get Server Time hints: readOnly: true destructive: false idempotent: true call: spot-rest-market-data.getServerTime with: {} outputParameters: - type: object mapping: $. - name: kraken-get-system-status description: Kraken Get System Status hints: readOnly: true destructive: false idempotent: true call: spot-rest-market-data.getSystemStatus with: {} outputParameters: - type: object mapping: $. - name: kraken-get-asset-info description: Kraken Get Asset Info hints: readOnly: true destructive: false idempotent: true call: spot-rest-market-data.getAssetInfo with: asset: tools.asset aclass: tools.aclass outputParameters: - type: object mapping: $. - name: kraken-get-tradable-asset-pairs description: Kraken Get Tradable Asset Pairs hints: readOnly: true destructive: false idempotent: true call: spot-rest-market-data.getTradableAssetPairs with: pair: tools.pair info: tools.info outputParameters: - type: object mapping: $. - name: kraken-get-ticker-information description: Kraken Get Ticker Information hints: readOnly: true destructive: false idempotent: true call: spot-rest-market-data.getTickerInformation with: pair: tools.pair outputParameters: - type: object mapping: $. - name: kraken-get-ohlc-data description: Kraken Get OHLC Data hints: readOnly: true destructive: false idempotent: true call: spot-rest-market-data.getOHLCData with: pair: tools.pair interval: tools.interval since: tools.since outputParameters: - type: object mapping: $. - name: kraken-get-order-book description: Kraken Get Order Book hints: readOnly: true destructive: false idempotent: true call: spot-rest-market-data.getOrderBook with: pair: tools.pair count: tools.count outputParameters: - type: object mapping: $. - name: kraken-get-recent-trades description: Kraken Get Recent Trades hints: readOnly: true destructive: false idempotent: true call: spot-rest-market-data.getRecentTrades with: pair: tools.pair since: tools.since count: tools.count outputParameters: - type: object mapping: $. - name: kraken-get-recent-spreads description: Kraken Get Recent Spreads hints: readOnly: true destructive: false idempotent: true call: spot-rest-market-data.getRecentSpreads with: pair: tools.pair since: tools.since outputParameters: - type: object mapping: $.