naftiko: 1.0.0-alpha2 info: label: Google Business Profile API — Accounts description: 'Google Business Profile API — Accounts. 12 operations. Lead operation: Google Business Profile List Accounts. Self-contained Naftiko capability covering one Google Business Profile business surface.' tags: - Google Business Profile - Accounts created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GOOGLE_BUSINESS_PROFILE_API_KEY: GOOGLE_BUSINESS_PROFILE_API_KEY capability: consumes: - type: http namespace: openapi-accounts baseUri: https://mybusiness.googleapis.com/v4 description: Google Business Profile API — Accounts business capability. Self-contained, no shared references. resources: - name: accounts path: /accounts operations: - name: listaccounts method: GET description: Google Business Profile List Accounts outputRawFormat: json outputParameters: - name: result type: object value: $. - name: accounts-accountId path: /accounts/{accountId} operations: - name: getaccount method: GET description: Google Business Profile Get Account outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: accountId in: path type: string required: true - name: accounts-accountId-locations path: /accounts/{accountId}/locations operations: - name: listlocations method: GET description: Google Business Profile List Locations outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: accountId in: path type: string required: true - name: createlocation method: POST description: Google Business Profile Create Location outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: accountId in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: accounts-accountId-locations-locationId path: /accounts/{accountId}/locations/{locationId} operations: - name: getlocation method: GET description: Google Business Profile Get Location outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: accountId in: path type: string required: true - name: locationId in: path type: string required: true - name: updatelocation method: PATCH description: Google Business Profile Update Location outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: accountId in: path type: string required: true - name: locationId in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deletelocation method: DELETE description: Google Business Profile Delete Location outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: accountId in: path type: string required: true - name: locationId in: path type: string required: true - name: accounts-accountId-locations-locationId-localPosts path: /accounts/{accountId}/locations/{locationId}/localPosts operations: - name: listlocalposts method: GET description: Google Business Profile List Local Posts outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: accountId in: path type: string required: true - name: locationId in: path type: string required: true - name: createlocalpost method: POST description: Google Business Profile Create Local Post outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: accountId in: path type: string required: true - name: locationId in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: accounts-accountId-locations-locationId-media path: /accounts/{accountId}/locations/{locationId}/media operations: - name: listmedia method: GET description: Google Business Profile List Media outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: accountId in: path type: string required: true - name: locationId in: path type: string required: true - name: accounts-accountId-locations-locationId-reviews path: /accounts/{accountId}/locations/{locationId}/reviews operations: - name: listreviews method: GET description: Google Business Profile List Reviews outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: accountId in: path type: string required: true - name: locationId in: path type: string required: true - name: accounts-accountId-locations-locationId-reviews-reviewId-reply path: /accounts/{accountId}/locations/{locationId}/reviews/{reviewId}/reply operations: - name: replytoreview method: PUT description: Google Business Profile Reply to Review outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: accountId in: path type: string required: true - name: locationId in: path type: string required: true - name: reviewId in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true authentication: type: bearer token: '{{env.GOOGLE_BUSINESS_PROFILE_API_KEY}}' exposes: - type: rest namespace: openapi-accounts-rest port: 8080 description: REST adapter for Google Business Profile API — Accounts. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/accounts name: accounts description: REST surface for accounts. operations: - method: GET name: listaccounts description: Google Business Profile List Accounts call: openapi-accounts.listaccounts outputParameters: - type: object mapping: $. - path: /v1/accounts/{accountid} name: accounts-accountid description: REST surface for accounts-accountId. operations: - method: GET name: getaccount description: Google Business Profile Get Account call: openapi-accounts.getaccount with: accountId: rest.accountId outputParameters: - type: object mapping: $. - path: /v1/accounts/{accountid}/locations name: accounts-accountid-locations description: REST surface for accounts-accountId-locations. operations: - method: GET name: listlocations description: Google Business Profile List Locations call: openapi-accounts.listlocations with: accountId: rest.accountId outputParameters: - type: object mapping: $. - method: POST name: createlocation description: Google Business Profile Create Location call: openapi-accounts.createlocation with: accountId: rest.accountId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/accounts/{accountid}/locations/{locationid} name: accounts-accountid-locations-locationid description: REST surface for accounts-accountId-locations-locationId. operations: - method: GET name: getlocation description: Google Business Profile Get Location call: openapi-accounts.getlocation with: accountId: rest.accountId locationId: rest.locationId outputParameters: - type: object mapping: $. - method: PATCH name: updatelocation description: Google Business Profile Update Location call: openapi-accounts.updatelocation with: accountId: rest.accountId locationId: rest.locationId body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletelocation description: Google Business Profile Delete Location call: openapi-accounts.deletelocation with: accountId: rest.accountId locationId: rest.locationId outputParameters: - type: object mapping: $. - path: /v1/accounts/{accountid}/locations/{locationid}/localposts name: accounts-accountid-locations-locationid-localposts description: REST surface for accounts-accountId-locations-locationId-localPosts. operations: - method: GET name: listlocalposts description: Google Business Profile List Local Posts call: openapi-accounts.listlocalposts with: accountId: rest.accountId locationId: rest.locationId outputParameters: - type: object mapping: $. - method: POST name: createlocalpost description: Google Business Profile Create Local Post call: openapi-accounts.createlocalpost with: accountId: rest.accountId locationId: rest.locationId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/accounts/{accountid}/locations/{locationid}/media name: accounts-accountid-locations-locationid-media description: REST surface for accounts-accountId-locations-locationId-media. operations: - method: GET name: listmedia description: Google Business Profile List Media call: openapi-accounts.listmedia with: accountId: rest.accountId locationId: rest.locationId outputParameters: - type: object mapping: $. - path: /v1/accounts/{accountid}/locations/{locationid}/reviews name: accounts-accountid-locations-locationid-reviews description: REST surface for accounts-accountId-locations-locationId-reviews. operations: - method: GET name: listreviews description: Google Business Profile List Reviews call: openapi-accounts.listreviews with: accountId: rest.accountId locationId: rest.locationId outputParameters: - type: object mapping: $. - path: /v1/accounts/{accountid}/locations/{locationid}/reviews/{reviewid}/reply name: accounts-accountid-locations-locationid-reviews-reviewid-reply description: REST surface for accounts-accountId-locations-locationId-reviews-reviewId-reply. operations: - method: PUT name: replytoreview description: Google Business Profile Reply to Review call: openapi-accounts.replytoreview with: accountId: rest.accountId locationId: rest.locationId reviewId: rest.reviewId body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: openapi-accounts-mcp port: 9090 transport: http description: MCP adapter for Google Business Profile API — Accounts. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: google-business-profile-list-accounts description: Google Business Profile List Accounts hints: readOnly: true destructive: false idempotent: true call: openapi-accounts.listaccounts outputParameters: - type: object mapping: $. - name: google-business-profile-get-account description: Google Business Profile Get Account hints: readOnly: true destructive: false idempotent: true call: openapi-accounts.getaccount with: accountId: tools.accountId outputParameters: - type: object mapping: $. - name: google-business-profile-list-locations description: Google Business Profile List Locations hints: readOnly: true destructive: false idempotent: true call: openapi-accounts.listlocations with: accountId: tools.accountId outputParameters: - type: object mapping: $. - name: google-business-profile-create-location description: Google Business Profile Create Location hints: readOnly: false destructive: false idempotent: false call: openapi-accounts.createlocation with: accountId: tools.accountId body: tools.body outputParameters: - type: object mapping: $. - name: google-business-profile-get-location description: Google Business Profile Get Location hints: readOnly: true destructive: false idempotent: true call: openapi-accounts.getlocation with: accountId: tools.accountId locationId: tools.locationId outputParameters: - type: object mapping: $. - name: google-business-profile-update-location description: Google Business Profile Update Location hints: readOnly: false destructive: false idempotent: true call: openapi-accounts.updatelocation with: accountId: tools.accountId locationId: tools.locationId body: tools.body outputParameters: - type: object mapping: $. - name: google-business-profile-delete-location description: Google Business Profile Delete Location hints: readOnly: false destructive: true idempotent: true call: openapi-accounts.deletelocation with: accountId: tools.accountId locationId: tools.locationId outputParameters: - type: object mapping: $. - name: google-business-profile-list-local description: Google Business Profile List Local Posts hints: readOnly: true destructive: false idempotent: true call: openapi-accounts.listlocalposts with: accountId: tools.accountId locationId: tools.locationId outputParameters: - type: object mapping: $. - name: google-business-profile-create-local description: Google Business Profile Create Local Post hints: readOnly: false destructive: false idempotent: false call: openapi-accounts.createlocalpost with: accountId: tools.accountId locationId: tools.locationId body: tools.body outputParameters: - type: object mapping: $. - name: google-business-profile-list-media description: Google Business Profile List Media hints: readOnly: true destructive: false idempotent: true call: openapi-accounts.listmedia with: accountId: tools.accountId locationId: tools.locationId outputParameters: - type: object mapping: $. - name: google-business-profile-list-reviews description: Google Business Profile List Reviews hints: readOnly: true destructive: false idempotent: true call: openapi-accounts.listreviews with: accountId: tools.accountId locationId: tools.locationId outputParameters: - type: object mapping: $. - name: google-business-profile-reply-review description: Google Business Profile Reply to Review hints: readOnly: false destructive: false idempotent: true call: openapi-accounts.replytoreview with: accountId: tools.accountId locationId: tools.locationId reviewId: tools.reviewId body: tools.body outputParameters: - type: object mapping: $.