Polygon · Capability

Polygon — Market Data Research

Cross-asset market data research surface. Pulls ticker reference, aggregate bars across stocks/options/indices/forex/crypto, and snapshots into a single composed workflow. Lead operation: List Ticker Symbols across asset classes. Self-contained Naftiko capability covering a Polygon cross-asset research surface.

Run with Naftiko PolygonResearchMultiAsset

What You Can Do

GET
Listtickers — List ticker symbols across asset classes.
/v1/research/tickers
GET
Getstocksaggregatebars — Get stocks aggregate bars over a date range.
/v1/research/stocks/{stocks-ticker}/aggregates/{multiplier}/{timespan}/{from}/{to}
GET
Getindicessnapshot — Get current values for one or more indices.
/v1/research/indices/snapshot

MCP Tools

list-tickers

List ticker symbols across asset classes.

read-only idempotent
get-stocks-aggregate-bars

Get stocks aggregate bars over a date range.

read-only idempotent
get-indices-snapshot

Get current values for one or more indices.

read-only idempotent

Capability Spec

market-data-research.yaml Raw ↑
naftiko: "1.0.0-alpha2"

info:
  label: "Polygon — Market Data Research"
  description: >-
    Cross-asset market data research surface. Pulls ticker reference,
    aggregate bars across stocks/options/indices/forex/crypto, and
    snapshots into a single composed workflow. Lead operation: List
    Ticker Symbols across asset classes. Self-contained Naftiko
    capability covering a Polygon cross-asset research surface.
  tags:
    - Polygon
    - Research
    - MultiAsset
  created: "2026-05-29"
  modified: "2026-05-29"

binds:
  - namespace: env
    keys:
      POLYGON_API_KEY: POLYGON_API_KEY

capability:

  consumes:
    - type: http
      namespace: "market-data-research"
      baseUri: "https://api.polygon.io"
      description: "Cross-asset Polygon research surface composing reference + aggregates + snapshots."
      authentication:
        type: bearer
        token: "{{env.POLYGON_API_KEY}}"
      resources:
        - name: "reference-tickers"
          path: "/v3/reference/tickers"
          operations:
            - name: "listTickers"
              method: GET
              description: "List ticker symbols across asset classes."
              inputParameters:
                - name: "ticker"
                  in: query
                  type: string
                  required: false
                - name: "market"
                  in: query
                  type: string
                  required: false
                - name: "active"
                  in: query
                  type: boolean
                  required: false
                - name: "limit"
                  in: query
                  type: integer
                  required: false
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "stocks-aggregate-bars"
          path: "/v2/aggs/ticker/{stocksTicker}/range/{multiplier}/{timespan}/{from}/{to}"
          operations:
            - name: "getStocksAggregateBars"
              method: GET
              description: "Get stocks aggregate bars over a date range."
              inputParameters:
                - name: "stocksTicker"
                  in: path
                  type: string
                  required: true
                - name: "multiplier"
                  in: path
                  type: integer
                  required: true
                - name: "timespan"
                  in: path
                  type: string
                  required: true
                - name: "from"
                  in: path
                  type: string
                  required: true
                - name: "to"
                  in: path
                  type: string
                  required: true
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "indices-snapshot"
          path: "/v3/snapshot/indices"
          operations:
            - name: "getIndicesSnapshot"
              method: GET
              description: "Get current values for one or more indices."
              inputParameters:
                - name: "ticker.any_of"
                  in: query
                  type: string
                  required: false
                - name: "limit"
                  in: query
                  type: integer
                  required: false
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."

  exposes:
    - type: rest
      namespace: "market-data-research-rest"
      port: 8080
      description: "REST adapter for cross-asset Polygon market data research."
      resources:
        - path: "/v1/research/tickers"
          name: "research-tickers"
          description: "List tickers across asset classes."
          operations:
            - method: GET
              name: "listTickers"
              description: "List ticker symbols across asset classes."
              call: "market-data-research.listTickers"
              with:
                ticker: "rest.ticker"
                market: "rest.market"
                active: "rest.active"
                limit: "rest.limit"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/research/stocks/{stocks-ticker}/aggregates/{multiplier}/{timespan}/{from}/{to}"
          name: "research-stocks-aggregates"
          description: "Stocks aggregate bars for research."
          operations:
            - method: GET
              name: "getStocksAggregateBars"
              description: "Get stocks aggregate bars over a date range."
              call: "market-data-research.getStocksAggregateBars"
              with:
                stocksTicker: "rest.stocksTicker"
                multiplier: "rest.multiplier"
                timespan: "rest.timespan"
                from: "rest.from"
                to: "rest.to"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/research/indices/snapshot"
          name: "research-indices-snapshot"
          description: "Index values snapshot."
          operations:
            - method: GET
              name: "getIndicesSnapshot"
              description: "Get current values for one or more indices."
              call: "market-data-research.getIndicesSnapshot"
              with:
                "ticker.any_of": "rest.tickerAnyOf"
                limit: "rest.limit"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      namespace: "market-data-research-mcp"
      port: 9090
      transport: http
      description: "MCP adapter for cross-asset Polygon market data research."
      tools:
        - name: "list-tickers"
          description: "List ticker symbols across asset classes."
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: "market-data-research.listTickers"
          with:
            ticker: "tools.ticker"
            market: "tools.market"
            active: "tools.active"
            limit: "tools.limit"
          outputParameters:
            - type: object
              mapping: "$."
        - name: "get-stocks-aggregate-bars"
          description: "Get stocks aggregate bars over a date range."
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: "market-data-research.getStocksAggregateBars"
          with:
            stocksTicker: "tools.stocksTicker"
            multiplier: "tools.multiplier"
            timespan: "tools.timespan"
            from: "tools.from"
            to: "tools.to"
          outputParameters:
            - type: object
              mapping: "$."
        - name: "get-indices-snapshot"
          description: "Get current values for one or more indices."
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: "market-data-research.getIndicesSnapshot"
          with:
            "ticker.any_of": "tools.tickerAnyOf"
            limit: "tools.limit"
          outputParameters:
            - type: object
              mapping: "$."