naftiko: 1.0.0-alpha2 info: label: CWMS Data API — Time Series description: 'CWMS Data API — Time Series. 3 operations. Lead operation: Get Time Series. Self-contained Naftiko capability covering one United States Army Corps Of Engineers business surface.' tags: - United States Army Corps Of Engineers - Time Series created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: UNITED_STATES_ARMY_CORPS_OF_ENGINEERS_API_KEY: UNITED_STATES_ARMY_CORPS_OF_ENGINEERS_API_KEY capability: consumes: - type: http namespace: cwms-data-time-series baseUri: https://cwms-data.usace.army.mil/cwms-data description: CWMS Data API — Time Series business capability. Self-contained, no shared references. resources: - name: timeseries path: /timeseries operations: - name: gettimeseries method: GET description: Get Time Series outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: query type: string description: The time series identifier in CWMS format (e.g., DALT2.Stage.Inst.15Minutes.0.raw) required: true - name: office in: query type: string description: Three-character USACE district office code - name: unit in: query type: string description: Measurement unit for the returned data - name: datum in: query type: string description: Vertical datum for elevation values - name: begin in: query type: string description: Start of time window in ISO 8601 format or milliseconds since epoch - name: end in: query type: string description: End of time window in ISO 8601 format or milliseconds since epoch - name: timezone in: query type: string description: Timezone for interpreting date/time values - name: format in: query type: string description: Response format - name: page in: query type: string description: Pagination cursor from a previous response - name: page-size in: query type: integer description: Number of time series values per page - name: timeseries-filtered path: /timeseries/filtered operations: - name: getfilteredtimeseries method: GET description: Get Filtered Time Series outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: office in: query type: string description: Three-character USACE district office code - name: name in: query type: string description: Time series identifier (supports CWMS wildcards) - name: timeseries-recent path: /timeseries/recent operations: - name: getrecenttimeseries method: GET description: Get Recent Time Series outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: office in: query type: string description: Three-character USACE district office code - name: name in: query type: string description: Time series identifier (supports CWMS wildcards) - name: recently-changed-within in: query type: string description: ISO 8601 duration for how recently the data was updated (e.g., PT2H for 2 hours) authentication: type: bearer token: '{{env.UNITED_STATES_ARMY_CORPS_OF_ENGINEERS_API_KEY}}' exposes: - type: rest namespace: cwms-data-time-series-rest port: 8080 description: REST adapter for CWMS Data API — Time Series. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/timeseries name: timeseries description: REST surface for timeseries. operations: - method: GET name: gettimeseries description: Get Time Series call: cwms-data-time-series.gettimeseries with: name: rest.name office: rest.office unit: rest.unit datum: rest.datum begin: rest.begin end: rest.end timezone: rest.timezone format: rest.format page: rest.page page-size: rest.page-size outputParameters: - type: object mapping: $. - path: /v1/timeseries/filtered name: timeseries-filtered description: REST surface for timeseries-filtered. operations: - method: GET name: getfilteredtimeseries description: Get Filtered Time Series call: cwms-data-time-series.getfilteredtimeseries with: office: rest.office name: rest.name outputParameters: - type: object mapping: $. - path: /v1/timeseries/recent name: timeseries-recent description: REST surface for timeseries-recent. operations: - method: GET name: getrecenttimeseries description: Get Recent Time Series call: cwms-data-time-series.getrecenttimeseries with: office: rest.office name: rest.name recently-changed-within: rest.recently-changed-within outputParameters: - type: object mapping: $. - type: mcp namespace: cwms-data-time-series-mcp port: 9090 transport: http description: MCP adapter for CWMS Data API — Time Series. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-time-series description: Get Time Series hints: readOnly: true destructive: false idempotent: true call: cwms-data-time-series.gettimeseries with: name: tools.name office: tools.office unit: tools.unit datum: tools.datum begin: tools.begin end: tools.end timezone: tools.timezone format: tools.format page: tools.page page-size: tools.page-size outputParameters: - type: object mapping: $. - name: get-filtered-time-series description: Get Filtered Time Series hints: readOnly: true destructive: false idempotent: true call: cwms-data-time-series.getfilteredtimeseries with: office: tools.office name: tools.name outputParameters: - type: object mapping: $. - name: get-recent-time-series description: Get Recent Time Series hints: readOnly: true destructive: false idempotent: true call: cwms-data-time-series.getrecenttimeseries with: office: tools.office name: tools.name recently-changed-within: tools.recently-changed-within outputParameters: - type: object mapping: $.