naftiko: 1.0.0-alpha2 info: label: Hacker News API — Lists description: 'Hacker News API — Lists. 6 operations. Lead operation: Get latest Ask HN stories. Self-contained Naftiko capability covering one Hacker News business surface.' tags: - Hacker News - Lists created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: HACKER_NEWS_API_KEY: HACKER_NEWS_API_KEY capability: consumes: - type: http namespace: hacker-news-lists baseUri: https://hacker-news.firebaseio.com/v0 description: Hacker News API — Lists business capability. Self-contained, no shared references. resources: - name: askstories.json path: /askstories.json operations: - name: getaskstories method: GET description: Get latest Ask HN stories outputRawFormat: json outputParameters: - name: result type: object value: $. - name: beststories.json path: /beststories.json operations: - name: getbeststories method: GET description: Get best stories outputRawFormat: json outputParameters: - name: result type: object value: $. - name: jobstories.json path: /jobstories.json operations: - name: getjobstories method: GET description: Get latest job stories outputRawFormat: json outputParameters: - name: result type: object value: $. - name: newstories.json path: /newstories.json operations: - name: getnewstories method: GET description: Get new stories outputRawFormat: json outputParameters: - name: result type: object value: $. - name: showstories.json path: /showstories.json operations: - name: getshowstories method: GET description: Get latest Show HN stories outputRawFormat: json outputParameters: - name: result type: object value: $. - name: topstories.json path: /topstories.json operations: - name: gettopstories method: GET description: Get top stories outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest namespace: hacker-news-lists-rest port: 8080 description: REST adapter for Hacker News API — Lists. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/askstories-json name: askstories-json description: REST surface for askstories.json. operations: - method: GET name: getaskstories description: Get latest Ask HN stories call: hacker-news-lists.getaskstories outputParameters: - type: object mapping: $. - path: /v1/beststories-json name: beststories-json description: REST surface for beststories.json. operations: - method: GET name: getbeststories description: Get best stories call: hacker-news-lists.getbeststories outputParameters: - type: object mapping: $. - path: /v1/jobstories-json name: jobstories-json description: REST surface for jobstories.json. operations: - method: GET name: getjobstories description: Get latest job stories call: hacker-news-lists.getjobstories outputParameters: - type: object mapping: $. - path: /v1/newstories-json name: newstories-json description: REST surface for newstories.json. operations: - method: GET name: getnewstories description: Get new stories call: hacker-news-lists.getnewstories outputParameters: - type: object mapping: $. - path: /v1/showstories-json name: showstories-json description: REST surface for showstories.json. operations: - method: GET name: getshowstories description: Get latest Show HN stories call: hacker-news-lists.getshowstories outputParameters: - type: object mapping: $. - path: /v1/topstories-json name: topstories-json description: REST surface for topstories.json. operations: - method: GET name: gettopstories description: Get top stories call: hacker-news-lists.gettopstories outputParameters: - type: object mapping: $. - type: mcp namespace: hacker-news-lists-mcp port: 9090 transport: http description: MCP adapter for Hacker News API — Lists. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-latest-ask-hn-stories description: Get latest Ask HN stories hints: readOnly: true destructive: false idempotent: true call: hacker-news-lists.getaskstories outputParameters: - type: object mapping: $. - name: get-best-stories description: Get best stories hints: readOnly: true destructive: false idempotent: true call: hacker-news-lists.getbeststories outputParameters: - type: object mapping: $. - name: get-latest-job-stories description: Get latest job stories hints: readOnly: true destructive: false idempotent: true call: hacker-news-lists.getjobstories outputParameters: - type: object mapping: $. - name: get-new-stories description: Get new stories hints: readOnly: true destructive: false idempotent: true call: hacker-news-lists.getnewstories outputParameters: - type: object mapping: $. - name: get-latest-show-hn-stories description: Get latest Show HN stories hints: readOnly: true destructive: false idempotent: true call: hacker-news-lists.getshowstories outputParameters: - type: object mapping: $. - name: get-top-stories description: Get top stories hints: readOnly: true destructive: false idempotent: true call: hacker-news-lists.gettopstories outputParameters: - type: object mapping: $.