naftiko: 1.0.0-alpha2 info: label: CoinGecko Crypto Market Data API — Exchanges description: 'CoinGecko Crypto Market Data API — Exchanges. 5 operations. Lead operation: List all exchanges. Self-contained Naftiko capability covering one Coingecko business surface.' tags: - Coingecko - Exchanges created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: COINGECKO_API_KEY: COINGECKO_API_KEY capability: consumes: - type: http namespace: crypto-market-data-exchanges baseUri: https://api.coingecko.com/api/v3 description: CoinGecko Crypto Market Data API — Exchanges business capability. Self-contained, no shared references. resources: - name: exchanges path: /exchanges operations: - name: getexchanges method: GET description: List all exchanges outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: per_page in: query type: integer description: Number of results per page (1-250) - name: page in: query type: integer description: Page number for pagination - name: exchanges-list path: /exchanges/list operations: - name: getexchangeslist method: GET description: List all supported exchanges (ID map) outputRawFormat: json outputParameters: - name: result type: object value: $. - name: exchanges-id path: /exchanges/{id} operations: - name: getexchangebyid method: GET description: Get exchange data by ID outputRawFormat: json outputParameters: - name: result type: object value: $. - name: exchanges-id-tickers path: /exchanges/{id}/tickers operations: - name: getexchangetickers method: GET description: Get exchange tickers outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: coin_ids in: query type: string description: Filter tickers by coin IDs (comma-separated) - name: include_exchange_logo in: query type: boolean description: Include exchange logo URL in the response - name: page in: query type: integer description: Page number for pagination - name: depth in: query type: boolean description: Include order book depth (2% cost to move) - name: order in: query type: string description: Sort order for tickers - name: exchanges-id-volume_chart path: /exchanges/{id}/volume_chart operations: - name: getexchangevolumechart method: GET description: Get exchange volume chart data outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: days in: query type: integer description: Number of days of historical data (1, 7, 14, 30, 90, 180, 365) required: true authentication: type: apikey key: x-cg-demo-api-key value: '{{env.COINGECKO_API_KEY}}' placement: header exposes: - type: rest namespace: crypto-market-data-exchanges-rest port: 8080 description: REST adapter for CoinGecko Crypto Market Data API — Exchanges. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/exchanges name: exchanges description: REST surface for exchanges. operations: - method: GET name: getexchanges description: List all exchanges call: crypto-market-data-exchanges.getexchanges with: per_page: rest.per_page page: rest.page outputParameters: - type: object mapping: $. - path: /v1/exchanges/list name: exchanges-list description: REST surface for exchanges-list. operations: - method: GET name: getexchangeslist description: List all supported exchanges (ID map) call: crypto-market-data-exchanges.getexchangeslist outputParameters: - type: object mapping: $. - path: /v1/exchanges/{id} name: exchanges-id description: REST surface for exchanges-id. operations: - method: GET name: getexchangebyid description: Get exchange data by ID call: crypto-market-data-exchanges.getexchangebyid outputParameters: - type: object mapping: $. - path: /v1/exchanges/{id}/tickers name: exchanges-id-tickers description: REST surface for exchanges-id-tickers. operations: - method: GET name: getexchangetickers description: Get exchange tickers call: crypto-market-data-exchanges.getexchangetickers with: coin_ids: rest.coin_ids include_exchange_logo: rest.include_exchange_logo page: rest.page depth: rest.depth order: rest.order outputParameters: - type: object mapping: $. - path: /v1/exchanges/{id}/volume-chart name: exchanges-id-volume-chart description: REST surface for exchanges-id-volume_chart. operations: - method: GET name: getexchangevolumechart description: Get exchange volume chart data call: crypto-market-data-exchanges.getexchangevolumechart with: days: rest.days outputParameters: - type: object mapping: $. - type: mcp namespace: crypto-market-data-exchanges-mcp port: 9090 transport: http description: MCP adapter for CoinGecko Crypto Market Data API — Exchanges. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-all-exchanges description: List all exchanges hints: readOnly: true destructive: false idempotent: true call: crypto-market-data-exchanges.getexchanges with: per_page: tools.per_page page: tools.page outputParameters: - type: object mapping: $. - name: list-all-supported-exchanges-id description: List all supported exchanges (ID map) hints: readOnly: true destructive: false idempotent: true call: crypto-market-data-exchanges.getexchangeslist outputParameters: - type: object mapping: $. - name: get-exchange-data-id description: Get exchange data by ID hints: readOnly: true destructive: false idempotent: true call: crypto-market-data-exchanges.getexchangebyid outputParameters: - type: object mapping: $. - name: get-exchange-tickers description: Get exchange tickers hints: readOnly: true destructive: false idempotent: true call: crypto-market-data-exchanges.getexchangetickers with: coin_ids: tools.coin_ids include_exchange_logo: tools.include_exchange_logo page: tools.page depth: tools.depth order: tools.order outputParameters: - type: object mapping: $. - name: get-exchange-volume-chart-data description: Get exchange volume chart data hints: readOnly: true destructive: false idempotent: true call: crypto-market-data-exchanges.getexchangevolumechart with: days: tools.days outputParameters: - type: object mapping: $.