Argo CD · Capability

Consolidate Services — ProjectService

Consolidate Services — ProjectService. 12 operations. Lead operation: List returns list of projects. Self-contained Naftiko capability covering one Argocd business surface.

Run with Naftiko ArgocdProjectService

What You Can Do

GET
Projectservicelist — List returns list of projects
/v1/api/v1/projects
POST
Projectservicecreate — Create a new project
/v1/api/v1/projects
GET
Projectserviceget — Get returns a project by name
/v1/api/v1/projects/{name}
DELETE
Projectservicedelete — Delete deletes a project
/v1/api/v1/projects/{name}
GET
Projectservicegetdetailedproject — GetDetailedProject returns a project that include project, global project and scoped resources by name
/v1/api/v1/projects/{name}/detailed
GET
Projectservicelistevents — ListEvents returns a list of project events
/v1/api/v1/projects/{name}/events
GET
Projectservicegetglobalprojects — Get returns a virtual project by name
/v1/api/v1/projects/{name}/globalprojects
GET
Projectservicelistlinks — ListLinks returns all deep links for the particular project
/v1/api/v1/projects/{name}/links
GET
Projectservicegetsyncwindowsstate — GetSchedulesState returns true if there are any active sync syncWindows
/v1/api/v1/projects/{name}/syncwindows
PUT
Projectserviceupdate — Update updates a project
/v1/api/v1/projects/{project-metadata-name}
POST
Projectservicecreatetoken — Create a new project token
/v1/api/v1/projects/{project}/roles/{role}/token
DELETE
Projectservicedeletetoken — Delete a new project token
/v1/api/v1/projects/{project}/roles/{role}/token/{iat}

MCP Tools

list-returns-list-projects

List returns list of projects

read-only idempotent
create-new-project

Create a new project

get-returns-project-name

Get returns a project by name

read-only idempotent
delete-deletes-project

Delete deletes a project

idempotent
getdetailedproject-returns-project-that-include

GetDetailedProject returns a project that include project, global project and scoped resources by name

read-only idempotent
listevents-returns-list-project-events

ListEvents returns a list of project events

read-only idempotent
get-returns-virtual-project-name

Get returns a virtual project by name

read-only idempotent
listlinks-returns-all-deep-links

ListLinks returns all deep links for the particular project

read-only idempotent
getschedulesstate-returns-true-if-there

GetSchedulesState returns true if there are any active sync syncWindows

read-only idempotent
update-updates-project

Update updates a project

idempotent
create-new-project-token

Create a new project token

delete-new-project-token

Delete a new project token

idempotent

Capability Spec

server-projectservice.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Consolidate Services — ProjectService
  description: 'Consolidate Services — ProjectService. 12 operations. Lead operation: List returns list of projects. Self-contained
    Naftiko capability covering one Argocd business surface.'
  tags:
  - Argocd
  - ProjectService
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    ARGOCD_API_KEY: ARGOCD_API_KEY
capability:
  consumes:
  - type: http
    namespace: server-projectservice
    baseUri: ''
    description: Consolidate Services — ProjectService business capability. Self-contained, no shared references.
    resources:
    - name: api-v1-projects
      path: /api/v1/projects
      operations:
      - name: projectservicelist
        method: GET
        description: List returns list of projects
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: query
          type: string
      - name: projectservicecreate
        method: POST
        description: Create a new project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: string
          required: true
    - name: api-v1-projects-name
      path: /api/v1/projects/{name}
      operations:
      - name: projectserviceget
        method: GET
        description: Get returns a project by name
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
      - name: projectservicedelete
        method: DELETE
        description: Delete deletes a project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
    - name: api-v1-projects-name-detailed
      path: /api/v1/projects/{name}/detailed
      operations:
      - name: projectservicegetdetailedproject
        method: GET
        description: GetDetailedProject returns a project that include project, global project and scoped resources by name
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
    - name: api-v1-projects-name-events
      path: /api/v1/projects/{name}/events
      operations:
      - name: projectservicelistevents
        method: GET
        description: ListEvents returns a list of project events
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
    - name: api-v1-projects-name-globalprojects
      path: /api/v1/projects/{name}/globalprojects
      operations:
      - name: projectservicegetglobalprojects
        method: GET
        description: Get returns a virtual project by name
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
    - name: api-v1-projects-name-links
      path: /api/v1/projects/{name}/links
      operations:
      - name: projectservicelistlinks
        method: GET
        description: ListLinks returns all deep links for the particular project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
    - name: api-v1-projects-name-syncwindows
      path: /api/v1/projects/{name}/syncwindows
      operations:
      - name: projectservicegetsyncwindowsstate
        method: GET
        description: GetSchedulesState returns true if there are any active sync syncWindows
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
    - name: api-v1-projects-project.metadata.name
      path: /api/v1/projects/{project.metadata.name}
      operations:
      - name: projectserviceupdate
        method: PUT
        description: Update updates a project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: project.metadata.name
          in: path
          type: string
          description: Name must be unique within a namespace. Is required when creating resources, although
          required: true
        - name: body
          in: body
          type: string
          required: true
    - name: api-v1-projects-project-roles-role-token
      path: /api/v1/projects/{project}/roles/{role}/token
      operations:
      - name: projectservicecreatetoken
        method: POST
        description: Create a new project token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: project
          in: path
          type: string
          required: true
        - name: role
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: string
          required: true
    - name: api-v1-projects-project-roles-role-token-iat
      path: /api/v1/projects/{project}/roles/{role}/token/{iat}
      operations:
      - name: projectservicedeletetoken
        method: DELETE
        description: Delete a new project token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: project
          in: path
          type: string
          required: true
        - name: role
          in: path
          type: string
          required: true
        - name: iat
          in: path
          type: string
          required: true
        - name: id
          in: query
          type: string
  exposes:
  - type: rest
    namespace: server-projectservice-rest
    port: 8080
    description: REST adapter for Consolidate Services — ProjectService. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/api/v1/projects
      name: api-v1-projects
      description: REST surface for api-v1-projects.
      operations:
      - method: GET
        name: projectservicelist
        description: List returns list of projects
        call: server-projectservice.projectservicelist
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: projectservicecreate
        description: Create a new project
        call: server-projectservice.projectservicecreate
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/projects/{name}
      name: api-v1-projects-name
      description: REST surface for api-v1-projects-name.
      operations:
      - method: GET
        name: projectserviceget
        description: Get returns a project by name
        call: server-projectservice.projectserviceget
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: projectservicedelete
        description: Delete deletes a project
        call: server-projectservice.projectservicedelete
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/projects/{name}/detailed
      name: api-v1-projects-name-detailed
      description: REST surface for api-v1-projects-name-detailed.
      operations:
      - method: GET
        name: projectservicegetdetailedproject
        description: GetDetailedProject returns a project that include project, global project and scoped resources by name
        call: server-projectservice.projectservicegetdetailedproject
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/projects/{name}/events
      name: api-v1-projects-name-events
      description: REST surface for api-v1-projects-name-events.
      operations:
      - method: GET
        name: projectservicelistevents
        description: ListEvents returns a list of project events
        call: server-projectservice.projectservicelistevents
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/projects/{name}/globalprojects
      name: api-v1-projects-name-globalprojects
      description: REST surface for api-v1-projects-name-globalprojects.
      operations:
      - method: GET
        name: projectservicegetglobalprojects
        description: Get returns a virtual project by name
        call: server-projectservice.projectservicegetglobalprojects
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/projects/{name}/links
      name: api-v1-projects-name-links
      description: REST surface for api-v1-projects-name-links.
      operations:
      - method: GET
        name: projectservicelistlinks
        description: ListLinks returns all deep links for the particular project
        call: server-projectservice.projectservicelistlinks
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/projects/{name}/syncwindows
      name: api-v1-projects-name-syncwindows
      description: REST surface for api-v1-projects-name-syncwindows.
      operations:
      - method: GET
        name: projectservicegetsyncwindowsstate
        description: GetSchedulesState returns true if there are any active sync syncWindows
        call: server-projectservice.projectservicegetsyncwindowsstate
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/projects/{project-metadata-name}
      name: api-v1-projects-project-metadata-name
      description: REST surface for api-v1-projects-project.metadata.name.
      operations:
      - method: PUT
        name: projectserviceupdate
        description: Update updates a project
        call: server-projectservice.projectserviceupdate
        with:
          project.metadata.name: rest.project.metadata.name
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/projects/{project}/roles/{role}/token
      name: api-v1-projects-project-roles-role-token
      description: REST surface for api-v1-projects-project-roles-role-token.
      operations:
      - method: POST
        name: projectservicecreatetoken
        description: Create a new project token
        call: server-projectservice.projectservicecreatetoken
        with:
          project: rest.project
          role: rest.role
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/projects/{project}/roles/{role}/token/{iat}
      name: api-v1-projects-project-roles-role-token-iat
      description: REST surface for api-v1-projects-project-roles-role-token-iat.
      operations:
      - method: DELETE
        name: projectservicedeletetoken
        description: Delete a new project token
        call: server-projectservice.projectservicedeletetoken
        with:
          project: rest.project
          role: rest.role
          iat: rest.iat
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: server-projectservice-mcp
    port: 9090
    transport: http
    description: MCP adapter for Consolidate Services — ProjectService. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: list-returns-list-projects
      description: List returns list of projects
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: server-projectservice.projectservicelist
      with:
        name: tools.name
      outputParameters:
      - type: object
        mapping: $.
    - name: create-new-project
      description: Create a new project
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: server-projectservice.projectservicecreate
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-returns-project-name
      description: Get returns a project by name
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: server-projectservice.projectserviceget
      with:
        name: tools.name
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-deletes-project
      description: Delete deletes a project
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: server-projectservice.projectservicedelete
      with:
        name: tools.name
      outputParameters:
      - type: object
        mapping: $.
    - name: getdetailedproject-returns-project-that-include
      description: GetDetailedProject returns a project that include project, global project and scoped resources by name
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: server-projectservice.projectservicegetdetailedproject
      with:
        name: tools.name
      outputParameters:
      - type: object
        mapping: $.
    - name: listevents-returns-list-project-events
      description: ListEvents returns a list of project events
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: server-projectservice.projectservicelistevents
      with:
        name: tools.name
      outputParameters:
      - type: object
        mapping: $.
    - name: get-returns-virtual-project-name
      description: Get returns a virtual project by name
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: server-projectservice.projectservicegetglobalprojects
      with:
        name: tools.name
      outputParameters:
      - type: object
        mapping: $.
    - name: listlinks-returns-all-deep-links
      description: ListLinks returns all deep links for the particular project
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: server-projectservice.projectservicelistlinks
      with:
        name: tools.name
      outputParameters:
      - type: object
        mapping: $.
    - name: getschedulesstate-returns-true-if-there
      description: GetSchedulesState returns true if there are any active sync syncWindows
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: server-projectservice.projectservicegetsyncwindowsstate
      with:
        name: tools.name
      outputParameters:
      - type: object
        mapping: $.
    - name: update-updates-project
      description: Update updates a project
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: server-projectservice.projectserviceupdate
      with:
        project.metadata.name: tools.project.metadata.name
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: create-new-project-token
      description: Create a new project token
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: server-projectservice.projectservicecreatetoken
      with:
        project: tools.project
        role: tools.role
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-new-project-token
      description: Delete a new project token
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: server-projectservice.projectservicedeletetoken
      with:
        project: tools.project
        role: tools.role
        iat: tools.iat
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.