naftiko: 1.0.0-alpha2 info: label: OSIsoft PI Web API description: OSIsoft PI Web API (now part of AVEVA) provides a REST interface for accessing the PI System process historian. APIs enable real-time and historical time-series data retrieval, event frame queries, asset framework hierarchy navigation, and calculated data for industrial process monitoring. tags: - Osisoft - Pi - API created: '2026-05-06' modified: '2026-05-06' capability: consumes: - type: http namespace: osisoft-pi baseUri: https://piwebapi.example.com/piwebapi description: OSIsoft PI Web API HTTP API. authentication: type: basic username: '{{OSISOFT_PI_USERNAME}}' password: '{{OSISOFT_PI_PASSWORD}}' resources: - name: dataservers path: /dataservers operations: - name: listdataservers method: GET description: List PI Data Archive servers inputParameters: - name: selectedFields in: query type: string description: Comma-separated list of fields to return outputRawFormat: json outputParameters: - name: result type: object value: $. - name: dataservers-webid-points path: /dataservers/{webId}/points operations: - name: listpipoints method: GET description: List PI points on a server inputParameters: - name: nameFilter in: query type: string description: Wildcard filter for tag names (e.g. *.FLOW) - name: type in: query type: string description: Filter by point type - name: maxCount in: query type: integer - name: startIndex in: query type: integer - name: selectedFields in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: points-webid path: /points/{webId} operations: - name: getpipoint method: GET description: Get a PI point inputParameters: - name: selectedFields in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: streams-webid-value path: /streams/{webId}/value operations: - name: getstreamvalue method: GET description: Get current stream value inputParameters: - name: desiredUnits in: query type: string description: Unit of measure for the returned value - name: selectedFields in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: streams-webid-recorded path: /streams/{webId}/recorded operations: - name: getstreamrecorded method: GET description: Get recorded stream values inputParameters: - name: startTime in: query type: string description: Start time (absolute or relative, e.g. "*-1d" or "2026-03-01T00:00:00Z") - name: endTime in: query type: string description: End time - name: boundaryType in: query type: string - name: maxCount in: query type: integer - name: desiredUnits in: query type: string - name: selectedFields in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: streams-webid-interpolated path: /streams/{webId}/interpolated operations: - name: getstreaminterpolated method: GET description: Get interpolated stream values inputParameters: - name: startTime in: query type: string - name: endTime in: query type: string - name: interval in: query type: string description: Interval between values (e.g. "1h", "5m") - name: desiredUnits in: query type: string - name: maxCount in: query type: integer - name: selectedFields in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: streams-webid-summary path: /streams/{webId}/summary operations: - name: getstreamsummary method: GET description: Get stream summary statistics inputParameters: - name: startTime in: query type: string - name: endTime in: query type: string - name: summaryType in: query type: string description: Comma-separated summary types - name: calculationBasis in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: assetservers path: /assetservers operations: - name: listassetservers method: GET description: List Asset Framework servers outputRawFormat: json outputParameters: - name: result type: object value: $. - name: assetdatabases-webid-elements path: /assetdatabases/{webId}/elements operations: - name: listelements method: GET description: List AF elements inputParameters: - name: nameFilter in: query type: string - name: templateName in: query type: string - name: maxCount in: query type: integer - name: selectedFields in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: elements-webid-attributes path: /elements/{webId}/attributes operations: - name: listattributes method: GET description: List element attributes inputParameters: - name: nameFilter in: query type: string - name: selectedFields in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: eventframes path: /eventframes operations: - name: listeventframes method: GET description: Query event frames inputParameters: - name: databaseWebId in: query type: string required: true description: AF database WebId to search - name: startTime in: query type: string - name: endTime in: query type: string - name: nameFilter in: query type: string - name: templateName in: query type: string - name: maxCount in: query type: integer - name: selectedFields in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: batch path: /batch operations: - name: executebatch method: POST description: Execute a batch request outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest port: 8080 namespace: osisoft-pi-rest description: REST adapter for OSIsoft PI Web API. resources: - path: /dataservers name: listdataservers operations: - method: GET name: listdataservers description: List PI Data Archive servers call: osisoft-pi.listdataservers outputParameters: - type: object mapping: $. - path: /dataservers/{webId}/points name: listpipoints operations: - method: GET name: listpipoints description: List PI points on a server call: osisoft-pi.listpipoints outputParameters: - type: object mapping: $. - path: /points/{webId} name: getpipoint operations: - method: GET name: getpipoint description: Get a PI point call: osisoft-pi.getpipoint outputParameters: - type: object mapping: $. - path: /streams/{webId}/value name: getstreamvalue operations: - method: GET name: getstreamvalue description: Get current stream value call: osisoft-pi.getstreamvalue outputParameters: - type: object mapping: $. - path: /streams/{webId}/recorded name: getstreamrecorded operations: - method: GET name: getstreamrecorded description: Get recorded stream values call: osisoft-pi.getstreamrecorded outputParameters: - type: object mapping: $. - path: /streams/{webId}/interpolated name: getstreaminterpolated operations: - method: GET name: getstreaminterpolated description: Get interpolated stream values call: osisoft-pi.getstreaminterpolated outputParameters: - type: object mapping: $. - path: /streams/{webId}/summary name: getstreamsummary operations: - method: GET name: getstreamsummary description: Get stream summary statistics call: osisoft-pi.getstreamsummary outputParameters: - type: object mapping: $. - path: /assetservers name: listassetservers operations: - method: GET name: listassetservers description: List Asset Framework servers call: osisoft-pi.listassetservers outputParameters: - type: object mapping: $. - path: /assetdatabases/{webId}/elements name: listelements operations: - method: GET name: listelements description: List AF elements call: osisoft-pi.listelements outputParameters: - type: object mapping: $. - path: /elements/{webId}/attributes name: listattributes operations: - method: GET name: listattributes description: List element attributes call: osisoft-pi.listattributes outputParameters: - type: object mapping: $. - path: /eventframes name: listeventframes operations: - method: GET name: listeventframes description: Query event frames call: osisoft-pi.listeventframes outputParameters: - type: object mapping: $. - path: /batch name: executebatch operations: - method: POST name: executebatch description: Execute a batch request call: osisoft-pi.executebatch outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: osisoft-pi-mcp transport: http description: MCP adapter for OSIsoft PI Web API for AI agent use. tools: - name: listdataservers description: List PI Data Archive servers hints: readOnly: true destructive: false idempotent: true call: osisoft-pi.listdataservers with: selectedFields: tools.selectedFields inputParameters: - name: selectedFields type: string description: Comma-separated list of fields to return outputParameters: - type: object mapping: $. - name: listpipoints description: List PI points on a server hints: readOnly: true destructive: false idempotent: true call: osisoft-pi.listpipoints with: nameFilter: tools.nameFilter type: tools.type maxCount: tools.maxCount startIndex: tools.startIndex selectedFields: tools.selectedFields inputParameters: - name: nameFilter type: string description: Wildcard filter for tag names (e.g. *.FLOW) - name: type type: string description: Filter by point type - name: maxCount type: integer description: maxCount - name: startIndex type: integer description: startIndex - name: selectedFields type: string description: selectedFields outputParameters: - type: object mapping: $. - name: getpipoint description: Get a PI point hints: readOnly: true destructive: false idempotent: true call: osisoft-pi.getpipoint with: selectedFields: tools.selectedFields inputParameters: - name: selectedFields type: string description: selectedFields outputParameters: - type: object mapping: $. - name: getstreamvalue description: Get current stream value hints: readOnly: true destructive: false idempotent: true call: osisoft-pi.getstreamvalue with: desiredUnits: tools.desiredUnits selectedFields: tools.selectedFields inputParameters: - name: desiredUnits type: string description: Unit of measure for the returned value - name: selectedFields type: string description: selectedFields outputParameters: - type: object mapping: $. - name: getstreamrecorded description: Get recorded stream values hints: readOnly: true destructive: false idempotent: true call: osisoft-pi.getstreamrecorded with: startTime: tools.startTime endTime: tools.endTime boundaryType: tools.boundaryType maxCount: tools.maxCount desiredUnits: tools.desiredUnits selectedFields: tools.selectedFields inputParameters: - name: startTime type: string description: Start time (absolute or relative, e.g. "*-1d" or "2026-03-01T00:00:00Z") - name: endTime type: string description: End time - name: boundaryType type: string description: boundaryType - name: maxCount type: integer description: maxCount - name: desiredUnits type: string description: desiredUnits - name: selectedFields type: string description: selectedFields outputParameters: - type: object mapping: $. - name: getstreaminterpolated description: Get interpolated stream values hints: readOnly: true destructive: false idempotent: true call: osisoft-pi.getstreaminterpolated with: startTime: tools.startTime endTime: tools.endTime interval: tools.interval desiredUnits: tools.desiredUnits maxCount: tools.maxCount selectedFields: tools.selectedFields inputParameters: - name: startTime type: string description: startTime - name: endTime type: string description: endTime - name: interval type: string description: Interval between values (e.g. "1h", "5m") - name: desiredUnits type: string description: desiredUnits - name: maxCount type: integer description: maxCount - name: selectedFields type: string description: selectedFields outputParameters: - type: object mapping: $. - name: getstreamsummary description: Get stream summary statistics hints: readOnly: true destructive: false idempotent: true call: osisoft-pi.getstreamsummary with: startTime: tools.startTime endTime: tools.endTime summaryType: tools.summaryType calculationBasis: tools.calculationBasis inputParameters: - name: startTime type: string description: startTime - name: endTime type: string description: endTime - name: summaryType type: string description: Comma-separated summary types - name: calculationBasis type: string description: calculationBasis outputParameters: - type: object mapping: $. - name: listassetservers description: List Asset Framework servers hints: readOnly: true destructive: false idempotent: true call: osisoft-pi.listassetservers outputParameters: - type: object mapping: $. - name: listelements description: List AF elements hints: readOnly: true destructive: false idempotent: true call: osisoft-pi.listelements with: nameFilter: tools.nameFilter templateName: tools.templateName maxCount: tools.maxCount selectedFields: tools.selectedFields inputParameters: - name: nameFilter type: string description: nameFilter - name: templateName type: string description: templateName - name: maxCount type: integer description: maxCount - name: selectedFields type: string description: selectedFields outputParameters: - type: object mapping: $. - name: listattributes description: List element attributes hints: readOnly: true destructive: false idempotent: true call: osisoft-pi.listattributes with: nameFilter: tools.nameFilter selectedFields: tools.selectedFields inputParameters: - name: nameFilter type: string description: nameFilter - name: selectedFields type: string description: selectedFields outputParameters: - type: object mapping: $. - name: listeventframes description: Query event frames hints: readOnly: true destructive: false idempotent: true call: osisoft-pi.listeventframes with: databaseWebId: tools.databaseWebId startTime: tools.startTime endTime: tools.endTime nameFilter: tools.nameFilter templateName: tools.templateName maxCount: tools.maxCount selectedFields: tools.selectedFields inputParameters: - name: databaseWebId type: string description: AF database WebId to search required: true - name: startTime type: string description: startTime - name: endTime type: string description: endTime - name: nameFilter type: string description: nameFilter - name: templateName type: string description: templateName - name: maxCount type: integer description: maxCount - name: selectedFields type: string description: selectedFields outputParameters: - type: object mapping: $. - name: executebatch description: Execute a batch request hints: readOnly: false destructive: false idempotent: false call: osisoft-pi.executebatch outputParameters: - type: object mapping: $. binds: - namespace: env keys: OSISOFT_PI_USERNAME: OSISOFT_PI_USERNAME OSISOFT_PI_PASSWORD: OSISOFT_PI_PASSWORD