naftiko: 1.0.0-alpha2 info: label: Google Drive API description: 'Google Drive API. 8 operations. Lead operation: List files. Self-contained Naftiko capability covering one Google Drive business surface.' tags: - Google Drive - Google Drive API created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GOOGLE_DRIVE_API_KEY: GOOGLE_DRIVE_API_KEY capability: consumes: - type: http namespace: google-drive baseUri: https://www.googleapis.com/drive/v3 description: Google Drive API business capability. Self-contained, no shared references. resources: - name: files path: /files operations: - name: listfiles method: GET description: List files outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: q in: query type: string description: Query string for searching files. - name: pageSize in: query type: integer description: Maximum number of files to return per page. - name: pageToken in: query type: string description: Token for continuing a previous list request. - name: fields in: query type: string description: Selector specifying which fields to include in a response. - name: createfile method: POST description: Create a file outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: files-fileId path: /files/{fileId} operations: - name: getfile method: GET description: Get a file outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: fileId in: path type: string description: The ID of the file. required: true - name: fields in: query type: string description: Selector specifying which fields to include in a response. - name: updatefile method: PATCH description: Update a file outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: fileId in: path type: string description: The ID of the file. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deletefile method: DELETE description: Delete a file outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: fileId in: path type: string description: The ID of the file. required: true - name: files-fileId-copy path: /files/{fileId}/copy operations: - name: copyfile method: POST description: Copy a file outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: fileId in: path type: string description: The ID of the file to copy. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: files-fileId-permissions path: /files/{fileId}/permissions operations: - name: listpermissions method: GET description: List permissions outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: fileId in: path type: string description: The ID of the file. required: true - name: createpermission method: POST description: Create a permission outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: fileId in: path type: string description: The ID of the file. required: true - name: body in: body type: object description: Request body (JSON). required: true exposes: - type: rest namespace: google-drive-rest port: 8080 description: REST adapter for Google Drive API. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/files name: files description: REST surface for files. operations: - method: GET name: listfiles description: List files call: google-drive.listfiles with: q: rest.q pageSize: rest.pageSize pageToken: rest.pageToken fields: rest.fields outputParameters: - type: object mapping: $. - method: POST name: createfile description: Create a file call: google-drive.createfile with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/files/{fileid} name: files-fileid description: REST surface for files-fileId. operations: - method: GET name: getfile description: Get a file call: google-drive.getfile with: fileId: rest.fileId fields: rest.fields outputParameters: - type: object mapping: $. - method: PATCH name: updatefile description: Update a file call: google-drive.updatefile with: fileId: rest.fileId body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletefile description: Delete a file call: google-drive.deletefile with: fileId: rest.fileId outputParameters: - type: object mapping: $. - path: /v1/files/{fileid}/copy name: files-fileid-copy description: REST surface for files-fileId-copy. operations: - method: POST name: copyfile description: Copy a file call: google-drive.copyfile with: fileId: rest.fileId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/files/{fileid}/permissions name: files-fileid-permissions description: REST surface for files-fileId-permissions. operations: - method: GET name: listpermissions description: List permissions call: google-drive.listpermissions with: fileId: rest.fileId outputParameters: - type: object mapping: $. - method: POST name: createpermission description: Create a permission call: google-drive.createpermission with: fileId: rest.fileId body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: google-drive-mcp port: 9090 transport: http description: MCP adapter for Google Drive API. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-files description: List files hints: readOnly: true destructive: false idempotent: true call: google-drive.listfiles with: q: tools.q pageSize: tools.pageSize pageToken: tools.pageToken fields: tools.fields outputParameters: - type: object mapping: $. - name: create-file description: Create a file hints: readOnly: false destructive: false idempotent: false call: google-drive.createfile with: body: tools.body outputParameters: - type: object mapping: $. - name: get-file description: Get a file hints: readOnly: true destructive: false idempotent: true call: google-drive.getfile with: fileId: tools.fileId fields: tools.fields outputParameters: - type: object mapping: $. - name: update-file description: Update a file hints: readOnly: false destructive: false idempotent: true call: google-drive.updatefile with: fileId: tools.fileId body: tools.body outputParameters: - type: object mapping: $. - name: delete-file description: Delete a file hints: readOnly: false destructive: true idempotent: true call: google-drive.deletefile with: fileId: tools.fileId outputParameters: - type: object mapping: $. - name: copy-file description: Copy a file hints: readOnly: false destructive: false idempotent: false call: google-drive.copyfile with: fileId: tools.fileId body: tools.body outputParameters: - type: object mapping: $. - name: list-permissions description: List permissions hints: readOnly: true destructive: false idempotent: true call: google-drive.listpermissions with: fileId: tools.fileId outputParameters: - type: object mapping: $. - name: create-permission description: Create a permission hints: readOnly: false destructive: false idempotent: false call: google-drive.createpermission with: fileId: tools.fileId body: tools.body outputParameters: - type: object mapping: $.