Oracle Primavera · Capability

Oracle Primavera P6 EPPM REST API

Oracle Primavera P6 EPPM REST API provides programmatic access to enterprise project portfolio management data including WBS structures, activity schedules, resource assignments, critical path analysis, and portfolio dashboards. Available for both cloud and on-premises deployments.

Run with Naftiko OraclePrimaveraAPI

What You Can Do

GET
Listprojects — List projects
/projects
POST
Createproject — Create a project
/projects
GET
Getproject — Get a project
/projects/{objectId}
PUT
Updateproject — Update a project
/projects/{objectId}
DELETE
Deleteproject — Delete a project
/projects/{objectId}
GET
Listactivities — List activities
/activities
POST
Createactivity — Create an activity
/activities
GET
Getactivity — Get an activity
/activities/{objectId}
PUT
Updateactivity — Update an activity
/activities/{objectId}
GET
Listwbs — List WBS elements
/wbss
GET
Listresources — List resources
/resources
GET
Listresourceassignments — List resource assignments
/resourceassignments
GET
Listbaselines — List baselines
/baselines

MCP Tools

listprojects

List projects

read-only idempotent
createproject

Create a project

getproject

Get a project

read-only idempotent
updateproject

Update a project

idempotent
deleteproject

Delete a project

idempotent
listactivities

List activities

read-only idempotent
createactivity

Create an activity

getactivity

Get an activity

read-only idempotent
updateactivity

Update an activity

idempotent
listwbs

List WBS elements

read-only idempotent
listresources

List resources

read-only idempotent
listresourceassignments

List resource assignments

read-only idempotent
listbaselines

List baselines

read-only idempotent

Capability Spec

oracle-primavera-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Oracle Primavera P6 EPPM REST API
  description: Oracle Primavera P6 EPPM REST API provides programmatic access to enterprise project portfolio management data
    including WBS structures, activity schedules, resource assignments, critical path analysis, and portfolio dashboards.
    Available for both cloud and on-premises deployments.
  tags:
  - Oracle
  - Primavera
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: oracle-primavera
    baseUri: https://primavera.example.com/p6ws/rest/v1
    description: Oracle Primavera P6 EPPM REST API HTTP API.
    authentication:
      type: basic
      username: '{{ORACLE_PRIMAVERA_USERNAME}}'
      password: '{{ORACLE_PRIMAVERA_PASSWORD}}'
    resources:
    - name: projects
      path: /projects
      operations:
      - name: listprojects
        method: GET
        description: List projects
        inputParameters:
        - name: Fields
          in: query
          type: string
          description: Comma-separated list of fields to return
        - name: Filter
          in: query
          type: string
          description: RSQL filter expression
        - name: OrderBy
          in: query
          type: string
          description: Field to sort by
        - name: offset
          in: query
          type: integer
          description: Pagination offset
        - name: limit
          in: query
          type: integer
          description: Maximum records to return
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createproject
        method: POST
        description: Create a project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-objectid
      path: /projects/{objectId}
      operations:
      - name: getproject
        method: GET
        description: Get a project
        inputParameters:
        - name: Fields
          in: query
          type: string
          description: Comma-separated list of fields to return
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateproject
        method: PUT
        description: Update a project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deleteproject
        method: DELETE
        description: Delete a project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: activities
      path: /activities
      operations:
      - name: listactivities
        method: GET
        description: List activities
        inputParameters:
        - name: Fields
          in: query
          type: string
        - name: Filter
          in: query
          type: string
          description: Filter by project or WBS; e.g. ProjectObjectId eq 12345
        - name: offset
          in: query
          type: integer
        - name: limit
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createactivity
        method: POST
        description: Create an activity
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: activities-objectid
      path: /activities/{objectId}
      operations:
      - name: getactivity
        method: GET
        description: Get an activity
        inputParameters:
        - name: Fields
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateactivity
        method: PUT
        description: Update an activity
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: wbss
      path: /wbss
      operations:
      - name: listwbs
        method: GET
        description: List WBS elements
        inputParameters:
        - name: Fields
          in: query
          type: string
        - name: Filter
          in: query
          type: string
        - name: offset
          in: query
          type: integer
        - name: limit
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: resources
      path: /resources
      operations:
      - name: listresources
        method: GET
        description: List resources
        inputParameters:
        - name: Fields
          in: query
          type: string
        - name: Filter
          in: query
          type: string
        - name: offset
          in: query
          type: integer
        - name: limit
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: resourceassignments
      path: /resourceassignments
      operations:
      - name: listresourceassignments
        method: GET
        description: List resource assignments
        inputParameters:
        - name: Fields
          in: query
          type: string
        - name: Filter
          in: query
          type: string
        - name: offset
          in: query
          type: integer
        - name: limit
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: baselines
      path: /baselines
      operations:
      - name: listbaselines
        method: GET
        description: List baselines
        inputParameters:
        - name: Fields
          in: query
          type: string
        - name: Filter
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: oracle-primavera-rest
    description: REST adapter for Oracle Primavera P6 EPPM REST API.
    resources:
    - path: /projects
      name: listprojects
      operations:
      - method: GET
        name: listprojects
        description: List projects
        call: oracle-primavera.listprojects
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects
      name: createproject
      operations:
      - method: POST
        name: createproject
        description: Create a project
        call: oracle-primavera.createproject
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{objectId}
      name: getproject
      operations:
      - method: GET
        name: getproject
        description: Get a project
        call: oracle-primavera.getproject
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{objectId}
      name: updateproject
      operations:
      - method: PUT
        name: updateproject
        description: Update a project
        call: oracle-primavera.updateproject
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{objectId}
      name: deleteproject
      operations:
      - method: DELETE
        name: deleteproject
        description: Delete a project
        call: oracle-primavera.deleteproject
        outputParameters:
        - type: object
          mapping: $.
    - path: /activities
      name: listactivities
      operations:
      - method: GET
        name: listactivities
        description: List activities
        call: oracle-primavera.listactivities
        outputParameters:
        - type: object
          mapping: $.
    - path: /activities
      name: createactivity
      operations:
      - method: POST
        name: createactivity
        description: Create an activity
        call: oracle-primavera.createactivity
        outputParameters:
        - type: object
          mapping: $.
    - path: /activities/{objectId}
      name: getactivity
      operations:
      - method: GET
        name: getactivity
        description: Get an activity
        call: oracle-primavera.getactivity
        outputParameters:
        - type: object
          mapping: $.
    - path: /activities/{objectId}
      name: updateactivity
      operations:
      - method: PUT
        name: updateactivity
        description: Update an activity
        call: oracle-primavera.updateactivity
        outputParameters:
        - type: object
          mapping: $.
    - path: /wbss
      name: listwbs
      operations:
      - method: GET
        name: listwbs
        description: List WBS elements
        call: oracle-primavera.listwbs
        outputParameters:
        - type: object
          mapping: $.
    - path: /resources
      name: listresources
      operations:
      - method: GET
        name: listresources
        description: List resources
        call: oracle-primavera.listresources
        outputParameters:
        - type: object
          mapping: $.
    - path: /resourceassignments
      name: listresourceassignments
      operations:
      - method: GET
        name: listresourceassignments
        description: List resource assignments
        call: oracle-primavera.listresourceassignments
        outputParameters:
        - type: object
          mapping: $.
    - path: /baselines
      name: listbaselines
      operations:
      - method: GET
        name: listbaselines
        description: List baselines
        call: oracle-primavera.listbaselines
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: oracle-primavera-mcp
    transport: http
    description: MCP adapter for Oracle Primavera P6 EPPM REST API for AI agent use.
    tools:
    - name: listprojects
      description: List projects
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: oracle-primavera.listprojects
      with:
        Fields: tools.Fields
        Filter: tools.Filter
        OrderBy: tools.OrderBy
        offset: tools.offset
        limit: tools.limit
      inputParameters:
      - name: Fields
        type: string
        description: Comma-separated list of fields to return
      - name: Filter
        type: string
        description: RSQL filter expression
      - name: OrderBy
        type: string
        description: Field to sort by
      - name: offset
        type: integer
        description: Pagination offset
      - name: limit
        type: integer
        description: Maximum records to return
      outputParameters:
      - type: object
        mapping: $.
    - name: createproject
      description: Create a project
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: oracle-primavera.createproject
      outputParameters:
      - type: object
        mapping: $.
    - name: getproject
      description: Get a project
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: oracle-primavera.getproject
      with:
        Fields: tools.Fields
      inputParameters:
      - name: Fields
        type: string
        description: Comma-separated list of fields to return
      outputParameters:
      - type: object
        mapping: $.
    - name: updateproject
      description: Update a project
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: oracle-primavera.updateproject
      outputParameters:
      - type: object
        mapping: $.
    - name: deleteproject
      description: Delete a project
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: oracle-primavera.deleteproject
      outputParameters:
      - type: object
        mapping: $.
    - name: listactivities
      description: List activities
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: oracle-primavera.listactivities
      with:
        Fields: tools.Fields
        Filter: tools.Filter
        offset: tools.offset
        limit: tools.limit
      inputParameters:
      - name: Fields
        type: string
        description: Fields
      - name: Filter
        type: string
        description: Filter by project or WBS; e.g. ProjectObjectId eq 12345
      - name: offset
        type: integer
        description: offset
      - name: limit
        type: integer
        description: limit
      outputParameters:
      - type: object
        mapping: $.
    - name: createactivity
      description: Create an activity
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: oracle-primavera.createactivity
      outputParameters:
      - type: object
        mapping: $.
    - name: getactivity
      description: Get an activity
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: oracle-primavera.getactivity
      with:
        Fields: tools.Fields
      inputParameters:
      - name: Fields
        type: string
        description: Fields
      outputParameters:
      - type: object
        mapping: $.
    - name: updateactivity
      description: Update an activity
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: oracle-primavera.updateactivity
      outputParameters:
      - type: object
        mapping: $.
    - name: listwbs
      description: List WBS elements
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: oracle-primavera.listwbs
      with:
        Fields: tools.Fields
        Filter: tools.Filter
        offset: tools.offset
        limit: tools.limit
      inputParameters:
      - name: Fields
        type: string
        description: Fields
      - name: Filter
        type: string
        description: Filter
      - name: offset
        type: integer
        description: offset
      - name: limit
        type: integer
        description: limit
      outputParameters:
      - type: object
        mapping: $.
    - name: listresources
      description: List resources
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: oracle-primavera.listresources
      with:
        Fields: tools.Fields
        Filter: tools.Filter
        offset: tools.offset
        limit: tools.limit
      inputParameters:
      - name: Fields
        type: string
        description: Fields
      - name: Filter
        type: string
        description: Filter
      - name: offset
        type: integer
        description: offset
      - name: limit
        type: integer
        description: limit
      outputParameters:
      - type: object
        mapping: $.
    - name: listresourceassignments
      description: List resource assignments
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: oracle-primavera.listresourceassignments
      with:
        Fields: tools.Fields
        Filter: tools.Filter
        offset: tools.offset
        limit: tools.limit
      inputParameters:
      - name: Fields
        type: string
        description: Fields
      - name: Filter
        type: string
        description: Filter
      - name: offset
        type: integer
        description: offset
      - name: limit
        type: integer
        description: limit
      outputParameters:
      - type: object
        mapping: $.
    - name: listbaselines
      description: List baselines
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: oracle-primavera.listbaselines
      with:
        Fields: tools.Fields
        Filter: tools.Filter
      inputParameters:
      - name: Fields
        type: string
        description: Fields
      - name: Filter
        type: string
        description: Filter
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    ORACLE_PRIMAVERA_USERNAME: ORACLE_PRIMAVERA_USERNAME
    ORACLE_PRIMAVERA_PASSWORD: ORACLE_PRIMAVERA_PASSWORD