naftiko: 1.0.0-alpha2 info: label: Fieldwire RFIs API — RFIs description: Requests for Information lifecycle within a Fieldwire project — create, read, update. tags: [Fieldwire, RFIs, Construction] created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: FIELDWIRE_ACCESS_TOKEN: FIELDWIRE_ACCESS_TOKEN FIELDWIRE_REGION_HOST: FIELDWIRE_REGION_HOST capability: consumes: - type: http namespace: rfis-rfis baseUri: '{{env.FIELDWIRE_REGION_HOST}}' description: Fieldwire RFIs business capability. resources: - name: project-rfis path: /api/v3/projects/{project_id}/rfis operations: - name: getrfisinproject method: GET description: Get RFIs In Project inputParameters: [{ name: project_id, in: path, type: integer, required: true }] outputParameters: [{ name: result, type: array, value: $. }] - name: createrfiinproject method: POST description: Create RFI In Project inputParameters: - { name: project_id, in: path, type: integer, required: true } - { name: body, in: body, type: object, required: true } outputParameters: [{ name: result, type: object, value: $. }] - name: project-rfi path: /api/v3/projects/{project_id}/rfis/{rfi_id} operations: - name: getrfibyid method: GET description: Get RFI By ID inputParameters: - { name: project_id, in: path, type: integer, required: true } - { name: rfi_id, in: path, type: integer, required: true } outputParameters: [{ name: result, type: object, value: $. }] - name: updaterfibyid method: PATCH description: Update RFI By ID inputParameters: - { name: project_id, in: path, type: integer, required: true } - { name: rfi_id, in: path, type: integer, required: true } - { name: body, in: body, type: object, required: true } outputParameters: [{ name: result, type: object, value: $. }] authentication: type: bearer value: '{{env.FIELDWIRE_ACCESS_TOKEN}}' placement: header exposes: - type: rest namespace: rfis-rfis-rest port: 8080 description: REST adapter for Fieldwire RFIs. resources: - path: /v1/projects/{project_id}/rfis name: project-rfis operations: - method: GET name: getrfisinproject call: rfis-rfis.getrfisinproject with: { project_id: rest.path.project_id } outputParameters: [{ type: array, mapping: $. }] - method: POST name: createrfiinproject call: rfis-rfis.createrfiinproject with: { project_id: rest.path.project_id, body: rest.body } outputParameters: [{ type: object, mapping: $. }] - path: /v1/projects/{project_id}/rfis/{rfi_id} name: project-rfi operations: - method: GET name: getrfibyid call: rfis-rfis.getrfibyid with: { project_id: rest.path.project_id, rfi_id: rest.path.rfi_id } outputParameters: [{ type: object, mapping: $. }] - method: PATCH name: updaterfibyid call: rfis-rfis.updaterfibyid with: { project_id: rest.path.project_id, rfi_id: rest.path.rfi_id, body: rest.body } outputParameters: [{ type: object, mapping: $. }] - type: mcp namespace: rfis-rfis-mcp port: 9090 transport: http description: MCP adapter for Fieldwire RFIs. tools: - name: fieldwire-list-rfis description: List Requests for Information in a Fieldwire project. hints: { readOnly: true, destructive: false, idempotent: true } call: rfis-rfis.getrfisinproject with: { project_id: tools.project_id } outputParameters: [{ type: array, mapping: $. }] - name: fieldwire-create-rfi description: Open a new RFI on a Fieldwire project. hints: { readOnly: false, destructive: false, idempotent: false } call: rfis-rfis.createrfiinproject with: { project_id: tools.project_id, body: tools.body } outputParameters: [{ type: object, mapping: $. }] - name: fieldwire-get-rfi description: Get a single RFI by ID. hints: { readOnly: true, destructive: false, idempotent: true } call: rfis-rfis.getrfibyid with: { project_id: tools.project_id, rfi_id: tools.rfi_id } outputParameters: [{ type: object, mapping: $. }] - name: fieldwire-update-rfi description: Update or answer an RFI on a Fieldwire project. hints: { readOnly: false, destructive: false, idempotent: false } call: rfis-rfis.updaterfibyid with: { project_id: tools.project_id, rfi_id: tools.rfi_id, body: tools.body } outputParameters: [{ type: object, mapping: $. }]