naftiko: 1.0.0-alpha2 info: label: USDA AMS MARS API (MyMarketNews) — Reports description: 'USDA AMS MARS API (MyMarketNews) — Reports. 2 operations. Lead operation: USDA AMS List Reports. Self-contained Naftiko capability covering one Agricultural Marketing Service business surface.' tags: - Agricultural Marketing Service - Reports created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: AGRICULTURAL_MARKETING_SERVICE_API_KEY: AGRICULTURAL_MARKETING_SERVICE_API_KEY capability: consumes: - type: http namespace: mars-reports baseUri: https://marsapi.ams.usda.gov/services/v1.2 description: USDA AMS MARS API (MyMarketNews) — Reports business capability. Self-contained, no shared references. resources: - name: reports path: /reports operations: - name: listreports method: GET description: USDA AMS List Reports outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: q in: query type: string description: Search query to filter reports by name or description. - name: allSections in: query type: boolean description: Return all report sections (true/false). - name: dateType in: query type: string description: Date type to filter by (published, report). - name: startDate in: query type: string description: Start date for filtering reports (YYYY-MM-DD). - name: endDate in: query type: string description: End date for filtering reports (YYYY-MM-DD). Maximum 180 days from startDate. - name: slug_id in: query type: string description: Filter by specific report slug ID. - name: class in: query type: string description: Filter by commodity class (e.g., Livestock, Dairy, Fruit/Veg). - name: limit in: query type: integer description: Maximum number of records to return (max 100000). - name: offset in: query type: integer description: Number of records to skip for pagination. - name: sort_by in: query type: string description: Field to sort results by. - name: sort_order in: query type: string description: Sort order (asc or desc). - name: reports-slug_id path: /reports/{slug_id} operations: - name: getreport method: GET description: USDA AMS Get Report outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: slug_id in: path type: string description: Unique identifier (Slug_ID) for the market news report. required: true - name: startDate in: query type: string description: Start date for filtering data within the report (YYYY-MM-DD). - name: endDate in: query type: string description: End date for filtering data (YYYY-MM-DD). Maximum 180 days from startDate. - name: limit in: query type: integer description: Maximum records to return. - name: offset in: query type: integer description: Number of records to skip. authentication: type: basic username: '{{env.AGRICULTURAL_MARKETING_SERVICE_USER}}' password: '{{env.AGRICULTURAL_MARKETING_SERVICE_PASS}}' exposes: - type: rest namespace: mars-reports-rest port: 8080 description: REST adapter for USDA AMS MARS API (MyMarketNews) — Reports. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/reports name: reports description: REST surface for reports. operations: - method: GET name: listreports description: USDA AMS List Reports call: mars-reports.listreports with: q: rest.q allSections: rest.allSections dateType: rest.dateType startDate: rest.startDate endDate: rest.endDate slug_id: rest.slug_id class: rest.class limit: rest.limit offset: rest.offset sort_by: rest.sort_by sort_order: rest.sort_order outputParameters: - type: object mapping: $. - path: /v1/reports/{slug-id} name: reports-slug-id description: REST surface for reports-slug_id. operations: - method: GET name: getreport description: USDA AMS Get Report call: mars-reports.getreport with: slug_id: rest.slug_id startDate: rest.startDate endDate: rest.endDate limit: rest.limit offset: rest.offset outputParameters: - type: object mapping: $. - type: mcp namespace: mars-reports-mcp port: 9090 transport: http description: MCP adapter for USDA AMS MARS API (MyMarketNews) — Reports. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: usda-ams-list-reports description: USDA AMS List Reports hints: readOnly: true destructive: false idempotent: true call: mars-reports.listreports with: q: tools.q allSections: tools.allSections dateType: tools.dateType startDate: tools.startDate endDate: tools.endDate slug_id: tools.slug_id class: tools.class limit: tools.limit offset: tools.offset sort_by: tools.sort_by sort_order: tools.sort_order outputParameters: - type: object mapping: $. - name: usda-ams-get-report description: USDA AMS Get Report hints: readOnly: true destructive: false idempotent: true call: mars-reports.getreport with: slug_id: tools.slug_id startDate: tools.startDate endDate: tools.endDate limit: tools.limit offset: tools.offset outputParameters: - type: object mapping: $.