U.S. EPA WaterSense — Custom Search

Custom Search. 3 operations. Lead operation: Multi Criteria Search Criteria. Self-contained Naftiko capability covering one EPA business surface.

Run with Naftiko EPACustom Search

What You Can Do

GET
Getapimulticriteriasearchcriteria — Multi Criteria Search Criteria
/v1/api/multicriteriasearchcriteria
GET
Getapimulticriteriasearch — Multi Criteria Search
/v1/api/multicriteriasearch
GET
Getapikeywordsearch — Keyword Search
/v1/api/keywordsearch

MCP Tools

multi-criteria-search-criteria

Multi Criteria Search Criteria

read-only idempotent
multi-criteria-search

Multi Criteria Search

read-only idempotent
keyword-search

Keyword Search

read-only idempotent

Capability Spec

elg-search-custom-search.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: U.S. EPA WaterSense — Custom Search
  description: 'Custom Search. 3 operations. Lead operation: Multi Criteria Search Criteria. Self-contained Naftiko capability covering one EPA business surface.'
  tags:
    - EPA
    - Custom Search
  created: '2026-05-29'
  modified: '2026-05-29'
binds:
  - namespace: env
    keys:
      EPA_USERNAME: EPA_USERNAME
capability:
  consumes:
    - type: http
      namespace: elg-search-custom-search
      baseUri: https://owapps-stage.app.cloud.gov/elg
      description: U.S. EPA WaterSense — Custom Search business capability. Self-contained, no shared references.
      authentication:
        type: basic
        username: '{{env.EPA_USERNAME}}'
        password: '{{env.EPA_PASSWORD}}'
      resources:
        - name: api-multicriteriasearchcriteria
          path: /api/multiCriteriaSearchCriteria
          operations:
            - name: getapimulticriteriasearchcriteria
              method: GET
              description: Multi Criteria Search Criteria
              inputParameters: []
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: api-multicriteriasearch
          path: /api/multiCriteriaSearch
          operations:
            - name: getapimulticriteriasearch
              method: GET
              description: Multi Criteria Search
              inputParameters:
                - name: pointSourceCategoryCode
                  in: query
                  type: integer
                  required: false
                  description: Placeholder.
                - name: sicCode
                  in: query
                  type: integer
                  required: false
                  description: Placeholder.
                - name: naicsCode
                  in: query
                  type: integer
                  required: false
                  description: Placeholder.
                - name: pollutantId
                  in: query
                  type: string
                  required: false
                  description: Placeholder.
                - name: pollutantGroupId
                  in: query
                  type: integer
                  required: false
                  description: Placeholder.
                - name: treatmentTechnologyCode
                  in: query
                  type: string
                  required: false
                  description: Placeholder.
                - name: treatmentTechnologyGroup
                  in: query
                  type: string
                  required: false
                  description: Placeholder.
                - name: rangeLow
                  in: query
                  type: number
                  required: false
                  description: Placeholder.
                - name: rangeHigh
                  in: query
                  type: number
                  required: false
                  description: Placeholder.
                - name: rangeUnitCode
                  in: query
                  type: string
                  required: false
                  description: Placeholder.
                - name: filterTreatmentId
                  in: query
                  type: integer
                  required: false
                  description: Placeholder.
                - name: filterPointSourceCategoryCode
                  in: query
                  type: integer
                  required: false
                  description: Placeholder.
                - name: filterPollutantId
                  in: query
                  type: string
                  required: false
                  description: Placeholder.
                - name: download
                  in: query
                  type: string
                  required: false
                  description: Placeholder.
                - name: sortCol
                  in: query
                  type: string
                  required: false
                  description: Placeholder.
                - name: sortDir
                  in: query
                  type: string
                  required: false
                  description: Placeholder.
                - name: offset
                  in: query
                  type: integer
                  required: false
                  description: Placeholder.
                - name: limit
                  in: query
                  type: integer
                  required: false
                  description: Placeholder.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: api-keywordsearch
          path: /api/keywordSearch
          operations:
            - name: getapikeywordsearch
              method: GET
              description: Keyword Search
              inputParameters:
                - name: keyword
                  in: query
                  type: string
                  required: false
                  description: Placeholder.
                - name: operator
                  in: query
                  type: string
                  required: false
                  description: Placeholder.
                - name: download
                  in: query
                  type: string
                  required: false
                  description: Placeholder.
                - name: sortCol
                  in: query
                  type: string
                  required: false
                  description: Placeholder.
                - name: sortDir
                  in: query
                  type: string
                  required: false
                  description: Placeholder.
                - name: offset
                  in: query
                  type: integer
                  required: false
                  description: Placeholder.
                - name: limit
                  in: query
                  type: integer
                  required: false
                  description: Placeholder.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
  exposes:
    - type: rest
      namespace: elg-search-custom-search-rest
      port: 8080
      description: REST adapter for U.S. EPA WaterSense — Custom Search. One Spectral-compliant resource per consumed operation, prefixed with /v1.
      resources:
        - path: /v1/api/multicriteriasearchcriteria
          name: api-multicriteriasearchcriteria
          description: REST surface for Multi Criteria Search Criteria.
          operations:
            - method: GET
              name: getapimulticriteriasearchcriteria
              description: Multi Criteria Search Criteria
              call: elg-search-custom-search.getapimulticriteriasearchcriteria
              with: {}
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/api/multicriteriasearch
          name: api-multicriteriasearch
          description: REST surface for Multi Criteria Search.
          operations:
            - method: GET
              name: getapimulticriteriasearch
              description: Multi Criteria Search
              call: elg-search-custom-search.getapimulticriteriasearch
              with:
                pointSourceCategoryCode: rest.pointSourceCategoryCode
                sicCode: rest.sicCode
                naicsCode: rest.naicsCode
                pollutantId: rest.pollutantId
                pollutantGroupId: rest.pollutantGroupId
                treatmentTechnologyCode: rest.treatmentTechnologyCode
                treatmentTechnologyGroup: rest.treatmentTechnologyGroup
                rangeLow: rest.rangeLow
                rangeHigh: rest.rangeHigh
                rangeUnitCode: rest.rangeUnitCode
                filterTreatmentId: rest.filterTreatmentId
                filterPointSourceCategoryCode: rest.filterPointSourceCategoryCode
                filterPollutantId: rest.filterPollutantId
                download: rest.download
                sortCol: rest.sortCol
                sortDir: rest.sortDir
                offset: rest.offset
                limit: rest.limit
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/api/keywordsearch
          name: api-keywordsearch
          description: REST surface for Keyword Search.
          operations:
            - method: GET
              name: getapikeywordsearch
              description: Keyword Search
              call: elg-search-custom-search.getapikeywordsearch
              with:
                keyword: rest.keyword
                operator: rest.operator
                download: rest.download
                sortCol: rest.sortCol
                sortDir: rest.sortDir
                offset: rest.offset
                limit: rest.limit
              outputParameters:
                - type: object
                  mapping: $.
    - type: mcp
      namespace: elg-search-custom-search-mcp
      port: 9090
      transport: http
      description: MCP adapter for U.S. EPA WaterSense — Custom Search. One tool per consumed operation, routed inline through this capability's consumes block.
      tools:
        - name: multi-criteria-search-criteria
          description: Multi Criteria Search Criteria
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: elg-search-custom-search.getapimulticriteriasearchcriteria
          with: {}
          outputParameters:
            - type: object
              mapping: $.
        - name: multi-criteria-search
          description: Multi Criteria Search
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: elg-search-custom-search.getapimulticriteriasearch
          with:
            pointSourceCategoryCode: tools.pointSourceCategoryCode
            sicCode: tools.sicCode
            naicsCode: tools.naicsCode
            pollutantId: tools.pollutantId
            pollutantGroupId: tools.pollutantGroupId
            treatmentTechnologyCode: tools.treatmentTechnologyCode
            treatmentTechnologyGroup: tools.treatmentTechnologyGroup
            rangeLow: tools.rangeLow
            rangeHigh: tools.rangeHigh
            rangeUnitCode: tools.rangeUnitCode
            filterTreatmentId: tools.filterTreatmentId
            filterPointSourceCategoryCode: tools.filterPointSourceCategoryCode
            filterPollutantId: tools.filterPollutantId
            download: tools.download
            sortCol: tools.sortCol
            sortDir: tools.sortDir
            offset: tools.offset
            limit: tools.limit
          outputParameters:
            - type: object
              mapping: $.
        - name: keyword-search
          description: Keyword Search
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: elg-search-custom-search.getapikeywordsearch
          with:
            keyword: tools.keyword
            operator: tools.operator
            download: tools.download
            sortCol: tools.sortCol
            sortDir: tools.sortDir
            offset: tools.offset
            limit: tools.limit
          outputParameters:
            - type: object
              mapping: $.