naftiko: 1.0.0-alpha2 info: label: CoinGecko Pro API — Coins description: 'CoinGecko Pro API — Coins. 6 operations. Lead operation: Get recently added coins. Self-contained Naftiko capability covering one Coingecko business surface.' tags: - Coingecko - Coins created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: COINGECKO_API_KEY: COINGECKO_API_KEY capability: consumes: - type: http namespace: pro-coins baseUri: https://pro-api.coingecko.com/api/v3 description: CoinGecko Pro API — Coins business capability. Self-contained, no shared references. resources: - name: coins-list-new path: /coins/list/new operations: - name: getnewlyaddedcoins method: GET description: Get recently added coins outputRawFormat: json outputParameters: - name: result type: object value: $. - name: coins-top_gainers_losers path: /coins/top_gainers_losers operations: - name: gettopgainerslosers method: GET description: Get top gainers and losers outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: vs_currency in: query type: string description: The target currency for price data (e.g., usd) required: true - name: duration in: query type: string description: Time duration for price change calculation - name: top_coins in: query type: string description: Filter by top N coins by market cap (e.g., 300 to only consider the top 300 coins) - name: coins-id-circulating_supply_chart path: /coins/{id}/circulating_supply_chart operations: - name: getcoincirculatingsupplychart method: GET description: Get coin circulating supply chart outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The CoinGecko coin ID required: true - name: days in: query type: string description: Number of days of historical data required: true - name: interval in: query type: string description: Data interval (daily) - name: coins-id-circulating_supply_chart-range path: /coins/{id}/circulating_supply_chart/range operations: - name: getcoincirculatingsupplychartrange method: GET description: Get coin circulating supply chart within date range outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The CoinGecko coin ID required: true - name: from in: query type: number description: Start date as UNIX timestamp required: true - name: to in: query type: number description: End date as UNIX timestamp required: true - name: coins-id-total_supply_chart path: /coins/{id}/total_supply_chart operations: - name: getcointotalsupplychart method: GET description: Get coin total supply chart outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The CoinGecko coin ID required: true - name: days in: query type: string description: Number of days of historical data required: true - name: interval in: query type: string description: Data interval (daily) - name: coins-id-total_supply_chart-range path: /coins/{id}/total_supply_chart/range operations: - name: getcointotalsupplychartrange method: GET description: Get coin total supply chart within date range outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The CoinGecko coin ID required: true - name: from in: query type: number description: Start date as UNIX timestamp required: true - name: to in: query type: number description: End date as UNIX timestamp required: true authentication: type: apikey key: x-cg-pro-api-key value: '{{env.COINGECKO_API_KEY}}' placement: header exposes: - type: rest namespace: pro-coins-rest port: 8080 description: REST adapter for CoinGecko Pro API — Coins. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/coins/list/new name: coins-list-new description: REST surface for coins-list-new. operations: - method: GET name: getnewlyaddedcoins description: Get recently added coins call: pro-coins.getnewlyaddedcoins outputParameters: - type: object mapping: $. - path: /v1/coins/top-gainers-losers name: coins-top-gainers-losers description: REST surface for coins-top_gainers_losers. operations: - method: GET name: gettopgainerslosers description: Get top gainers and losers call: pro-coins.gettopgainerslosers with: vs_currency: rest.vs_currency duration: rest.duration top_coins: rest.top_coins outputParameters: - type: object mapping: $. - path: /v1/coins/{id}/circulating-supply-chart name: coins-id-circulating-supply-chart description: REST surface for coins-id-circulating_supply_chart. operations: - method: GET name: getcoincirculatingsupplychart description: Get coin circulating supply chart call: pro-coins.getcoincirculatingsupplychart with: id: rest.id days: rest.days interval: rest.interval outputParameters: - type: object mapping: $. - path: /v1/coins/{id}/circulating-supply-chart/range name: coins-id-circulating-supply-chart-range description: REST surface for coins-id-circulating_supply_chart-range. operations: - method: GET name: getcoincirculatingsupplychartrange description: Get coin circulating supply chart within date range call: pro-coins.getcoincirculatingsupplychartrange with: id: rest.id from: rest.from to: rest.to outputParameters: - type: object mapping: $. - path: /v1/coins/{id}/total-supply-chart name: coins-id-total-supply-chart description: REST surface for coins-id-total_supply_chart. operations: - method: GET name: getcointotalsupplychart description: Get coin total supply chart call: pro-coins.getcointotalsupplychart with: id: rest.id days: rest.days interval: rest.interval outputParameters: - type: object mapping: $. - path: /v1/coins/{id}/total-supply-chart/range name: coins-id-total-supply-chart-range description: REST surface for coins-id-total_supply_chart-range. operations: - method: GET name: getcointotalsupplychartrange description: Get coin total supply chart within date range call: pro-coins.getcointotalsupplychartrange with: id: rest.id from: rest.from to: rest.to outputParameters: - type: object mapping: $. - type: mcp namespace: pro-coins-mcp port: 9090 transport: http description: MCP adapter for CoinGecko Pro API — Coins. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-recently-added-coins description: Get recently added coins hints: readOnly: true destructive: false idempotent: true call: pro-coins.getnewlyaddedcoins outputParameters: - type: object mapping: $. - name: get-top-gainers-and-losers description: Get top gainers and losers hints: readOnly: true destructive: false idempotent: true call: pro-coins.gettopgainerslosers with: vs_currency: tools.vs_currency duration: tools.duration top_coins: tools.top_coins outputParameters: - type: object mapping: $. - name: get-coin-circulating-supply-chart description: Get coin circulating supply chart hints: readOnly: true destructive: false idempotent: true call: pro-coins.getcoincirculatingsupplychart with: id: tools.id days: tools.days interval: tools.interval outputParameters: - type: object mapping: $. - name: get-coin-circulating-supply-chart-2 description: Get coin circulating supply chart within date range hints: readOnly: true destructive: false idempotent: true call: pro-coins.getcoincirculatingsupplychartrange with: id: tools.id from: tools.from to: tools.to outputParameters: - type: object mapping: $. - name: get-coin-total-supply-chart description: Get coin total supply chart hints: readOnly: true destructive: false idempotent: true call: pro-coins.getcointotalsupplychart with: id: tools.id days: tools.days interval: tools.interval outputParameters: - type: object mapping: $. - name: get-coin-total-supply-chart-2 description: Get coin total supply chart within date range hints: readOnly: true destructive: false idempotent: true call: pro-coins.getcointotalsupplychartrange with: id: tools.id from: tools.from to: tools.to outputParameters: - type: object mapping: $.