Mediastack · Capability

Mediastack News API — Sources

Sources — discover the publisher catalog. 1 operation. Lead operation: List News Sources. Self-contained Naftiko capability covering one Mediastack business surface.

Run with Naftiko MediastackSourcesCatalog

What You Can Do

GET
Listsources — List news sources and publishers.
/v1/sources

MCP Tools

list-sources

List news sources and publishers.

read-only idempotent

Capability Spec

mediastack-sources.yaml Raw ↑
naftiko: "1.0.0-alpha2"

info:
  label: "Mediastack News API — Sources"
  description: >-
    Sources — discover the publisher catalog. 1 operation. Lead operation: List News Sources.
    Self-contained Naftiko capability covering one Mediastack business surface.
  tags:
    - Mediastack
    - Sources
    - Catalog
  created: "2026-05-30"
  modified: "2026-05-30"

binds:
  - namespace: env
    keys:
      MEDIASTACK_ACCESS_KEY: MEDIASTACK_ACCESS_KEY

capability:

  consumes:
    - type: http
      namespace: "mediastack-sources"
      baseUri: "https://api.mediastack.com/v1"
      description: "Mediastack News API — Sources business capability. Self-contained, no shared references."
      authentication:
        type: apikey
        key: access_key
        value: "{{env.MEDIASTACK_ACCESS_KEY}}"
        placement: query
      resources:
        - name: "sources"
          path: "/sources"
          operations:
            - name: "listSources"
              method: GET
              description: "List news sources, publishers, and blogs indexed by Mediastack."
              inputParameters:
                - name: "search"
                  in: query
                  type: string
                  required: false
                  description: "Free-text search across source name and URL."
                - name: "countries"
                  in: query
                  type: string
                  required: false
                  description: "Comma-separated ISO 3166-1 alpha-2 country codes."
                - name: "languages"
                  in: query
                  type: string
                  required: false
                  description: "Comma-separated ISO 639-1 language codes."
                - name: "categories"
                  in: query
                  type: string
                  required: false
                  description: "Comma-separated categories."
                - name: "limit"
                  in: query
                  type: integer
                  required: false
                  description: "Page size, 1-100."
                - name: "offset"
                  in: query
                  type: integer
                  required: false
                  description: "Pagination offset."
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."

  exposes:
    - type: rest
      namespace: "mediastack-sources-rest"
      port: 8080
      description: "REST adapter for Mediastack News API — Sources. One Spectral-compliant resource per consumed operation, prefixed with /v1."
      resources:
        - path: "/v1/sources"
          name: "sources"
          description: "REST surface for the news source catalog."
          operations:
            - method: GET
              name: "listSources"
              description: "List news sources and publishers."
              call: "mediastack-sources.listSources"
              with:
                search: "rest.search"
                countries: "rest.countries"
                languages: "rest.languages"
                categories: "rest.categories"
                limit: "rest.limit"
                offset: "rest.offset"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      namespace: "mediastack-sources-mcp"
      port: 9090
      transport: http
      description: "MCP adapter for Mediastack News API — Sources. One tool per consumed operation, routed inline through this capability's consumes block."
      tools:
        - name: "list-sources"
          description: "List news sources and publishers."
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: "mediastack-sources.listSources"
          with:
            search: "tools.search"
            countries: "tools.countries"
            languages: "tools.languages"
            categories: "tools.categories"
            limit: "tools.limit"
            offset: "tools.offset"
          outputParameters:
            - type: object
              mapping: "$."