naftiko: 1.0.0-alpha2 info: label: LinkedIn Marketing Campaign Management API — User Access description: 'LinkedIn Marketing Campaign Management API — User Access. 6 operations. Lead operation: LinkedIn Fetch Authenticated User Ad Accounts. Self-contained Naftiko capability covering one Linkedin business surface.' tags: - Linkedin - User Access created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: LINKEDIN_API_KEY: LINKEDIN_API_KEY capability: consumes: - type: http namespace: marketing-campaigns-user-access baseUri: https://api.linkedin.com/rest description: LinkedIn Marketing Campaign Management API — User Access business capability. Self-contained, no shared references. resources: - name: adAccountUsers path: /adAccountUsers operations: - name: getauthenticateduseradaccounts method: GET description: LinkedIn Fetch Authenticated User Ad Accounts outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Restli-Protocol-Version in: header type: string required: true - name: LinkedIn-Version in: header type: string required: true - name: q in: query type: string required: true - name: adAccountUsers-(account:urn:li:sponsoredAccount:{SponsoredAccountId},user:urn:li path: /adAccountUsers/(account:urn:li:sponsoredAccount:{SponsoredAccountId},user:urn:li:person:{PersonId}) operations: - name: createadaccountuser method: PUT description: LinkedIn Create Ad Account User outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: LinkedIn-Version in: header type: string required: true - name: X-Restli-Protocol-Version in: header type: string required: true - name: SponsoredAccountId in: path type: string required: true - name: PersonId in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: getadaccountuser method: GET description: LinkedIn Fetch Ad Account User outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: LinkedIn-Version in: header type: string required: true - name: X-Restli-Protocol-Version in: header type: string required: true - name: SponsoredAccountId in: path type: string required: true - name: PersonId in: path type: string required: true - name: updateadaccountuser method: POST description: LinkedIn Update Ad Account User outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Restli-Protocol-Version in: header type: string required: true - name: LinkedIn-Version in: header type: string required: true - name: SponsoredAccountId in: path type: string required: true - name: PersonId in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deleteadaccountuser method: DELETE description: LinkedIn Delete Ad Account User outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Restli-Protocol-Version in: header type: string required: true - name: LinkedIn-Version in: header type: string required: true - name: SponsoredAccountId in: path type: string required: true - name: PersonId in: path type: string required: true - name: organizationAcls path: /organizationAcls operations: - name: getorganizationacls method: GET description: LinkedIn Fetch Authenticated User Organization Roles outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Restli-Protocol-Version in: header type: string required: true - name: LinkedIn-Version in: header type: string required: true - name: q in: query type: string required: true authentication: type: bearer token: '{{env.LINKEDIN_API_KEY}}' exposes: - type: rest namespace: marketing-campaigns-user-access-rest port: 8080 description: REST adapter for LinkedIn Marketing Campaign Management API — User Access. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/adaccountusers name: adaccountusers description: REST surface for adAccountUsers. operations: - method: GET name: getauthenticateduseradaccounts description: LinkedIn Fetch Authenticated User Ad Accounts call: marketing-campaigns-user-access.getauthenticateduseradaccounts with: X-Restli-Protocol-Version: rest.X-Restli-Protocol-Version LinkedIn-Version: rest.LinkedIn-Version q: rest.q outputParameters: - type: object mapping: $. - path: /v1/adaccountusers/account-urn-li-sponsoredaccount-sponsoredaccountid-user-urn-li-person-personid name: adaccountusers-account-urn-li-sponsoredaccount-sponsoredaccountid-user-urn-li description: REST surface for adAccountUsers-(account:urn:li:sponsoredAccount:{SponsoredAccountId},user:urn:li. operations: - method: PUT name: createadaccountuser description: LinkedIn Create Ad Account User call: marketing-campaigns-user-access.createadaccountuser with: LinkedIn-Version: rest.LinkedIn-Version X-Restli-Protocol-Version: rest.X-Restli-Protocol-Version SponsoredAccountId: rest.SponsoredAccountId PersonId: rest.PersonId body: rest.body outputParameters: - type: object mapping: $. - method: GET name: getadaccountuser description: LinkedIn Fetch Ad Account User call: marketing-campaigns-user-access.getadaccountuser with: LinkedIn-Version: rest.LinkedIn-Version X-Restli-Protocol-Version: rest.X-Restli-Protocol-Version SponsoredAccountId: rest.SponsoredAccountId PersonId: rest.PersonId outputParameters: - type: object mapping: $. - method: POST name: updateadaccountuser description: LinkedIn Update Ad Account User call: marketing-campaigns-user-access.updateadaccountuser with: X-Restli-Protocol-Version: rest.X-Restli-Protocol-Version LinkedIn-Version: rest.LinkedIn-Version SponsoredAccountId: rest.SponsoredAccountId PersonId: rest.PersonId body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteadaccountuser description: LinkedIn Delete Ad Account User call: marketing-campaigns-user-access.deleteadaccountuser with: X-Restli-Protocol-Version: rest.X-Restli-Protocol-Version LinkedIn-Version: rest.LinkedIn-Version SponsoredAccountId: rest.SponsoredAccountId PersonId: rest.PersonId outputParameters: - type: object mapping: $. - path: /v1/organizationacls name: organizationacls description: REST surface for organizationAcls. operations: - method: GET name: getorganizationacls description: LinkedIn Fetch Authenticated User Organization Roles call: marketing-campaigns-user-access.getorganizationacls with: X-Restli-Protocol-Version: rest.X-Restli-Protocol-Version LinkedIn-Version: rest.LinkedIn-Version q: rest.q outputParameters: - type: object mapping: $. - type: mcp namespace: marketing-campaigns-user-access-mcp port: 9090 transport: http description: MCP adapter for LinkedIn Marketing Campaign Management API — User Access. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: linkedin-fetch-authenticated-user-ad description: LinkedIn Fetch Authenticated User Ad Accounts hints: readOnly: true destructive: false idempotent: true call: marketing-campaigns-user-access.getauthenticateduseradaccounts with: X-Restli-Protocol-Version: tools.X-Restli-Protocol-Version LinkedIn-Version: tools.LinkedIn-Version q: tools.q outputParameters: - type: object mapping: $. - name: linkedin-create-ad-account-user description: LinkedIn Create Ad Account User hints: readOnly: false destructive: false idempotent: true call: marketing-campaigns-user-access.createadaccountuser with: LinkedIn-Version: tools.LinkedIn-Version X-Restli-Protocol-Version: tools.X-Restli-Protocol-Version SponsoredAccountId: tools.SponsoredAccountId PersonId: tools.PersonId body: tools.body outputParameters: - type: object mapping: $. - name: linkedin-fetch-ad-account-user description: LinkedIn Fetch Ad Account User hints: readOnly: true destructive: false idempotent: true call: marketing-campaigns-user-access.getadaccountuser with: LinkedIn-Version: tools.LinkedIn-Version X-Restli-Protocol-Version: tools.X-Restli-Protocol-Version SponsoredAccountId: tools.SponsoredAccountId PersonId: tools.PersonId outputParameters: - type: object mapping: $. - name: linkedin-update-ad-account-user description: LinkedIn Update Ad Account User hints: readOnly: false destructive: false idempotent: false call: marketing-campaigns-user-access.updateadaccountuser with: X-Restli-Protocol-Version: tools.X-Restli-Protocol-Version LinkedIn-Version: tools.LinkedIn-Version SponsoredAccountId: tools.SponsoredAccountId PersonId: tools.PersonId body: tools.body outputParameters: - type: object mapping: $. - name: linkedin-delete-ad-account-user description: LinkedIn Delete Ad Account User hints: readOnly: false destructive: true idempotent: true call: marketing-campaigns-user-access.deleteadaccountuser with: X-Restli-Protocol-Version: tools.X-Restli-Protocol-Version LinkedIn-Version: tools.LinkedIn-Version SponsoredAccountId: tools.SponsoredAccountId PersonId: tools.PersonId outputParameters: - type: object mapping: $. - name: linkedin-fetch-authenticated-user-organization description: LinkedIn Fetch Authenticated User Organization Roles hints: readOnly: true destructive: false idempotent: true call: marketing-campaigns-user-access.getorganizationacls with: X-Restli-Protocol-Version: tools.X-Restli-Protocol-Version LinkedIn-Version: tools.LinkedIn-Version q: tools.q outputParameters: - type: object mapping: $.