SourceForge · Capability

SourceForge Allura API — Tracker

SourceForge Allura API — Tracker. 5 operations. Lead operation: List Tickets. Self-contained Naftiko capability covering one Sourceforge business surface.

Run with Naftiko SourceforgeTracker

What You Can Do

GET
Listtickets — List Tickets
/v1/p/{project}/{tracker}
POST
Createticket — Create Ticket
/v1/p/{project}/{tracker}/new
GET
Searchtickets — Search Tickets
/v1/p/{project}/{tracker}/search
GET
Getticket — Get Ticket
/v1/p/{project}/{tracker}/{ticketnumber}
POST
Updateticket — Update Ticket
/v1/p/{project}/{tracker}/{ticketnumber}/save

MCP Tools

list-tickets

List Tickets

read-only idempotent
create-ticket

Create Ticket

search-tickets

Search Tickets

read-only idempotent
get-ticket

Get Ticket

read-only idempotent
update-ticket

Update Ticket

Capability Spec

allura-tracker.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: SourceForge Allura API — Tracker
  description: 'SourceForge Allura API — Tracker. 5 operations. Lead operation: List Tickets. Self-contained Naftiko capability
    covering one Sourceforge business surface.'
  tags:
  - Sourceforge
  - Tracker
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    SOURCEFORGE_API_KEY: SOURCEFORGE_API_KEY
capability:
  consumes:
  - type: http
    namespace: allura-tracker
    baseUri: https://sourceforge.net
    description: SourceForge Allura API — Tracker business capability. Self-contained, no shared references.
    resources:
    - name: rest-p-project-tracker
      path: /rest/p/{project}/{tracker}
      operations:
      - name: listtickets
        method: GET
        description: List Tickets
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: page
          in: query
          type: integer
          description: Page number (default 0)
        - name: limit
          in: query
          type: integer
          description: Results per page (default 25)
    - name: rest-p-project-tracker-new
      path: /rest/p/{project}/{tracker}/new
      operations:
      - name: createticket
        method: POST
        description: Create Ticket
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: rest-p-project-tracker-search
      path: /rest/p/{project}/{tracker}/search
      operations:
      - name: searchtickets
        method: GET
        description: Search Tickets
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: q
          in: query
          type: string
          description: Search query string
        - name: page
          in: query
          type: integer
        - name: limit
          in: query
          type: integer
    - name: rest-p-project-tracker-ticketNumber
      path: /rest/p/{project}/{tracker}/{ticketNumber}
      operations:
      - name: getticket
        method: GET
        description: Get Ticket
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: ticketNumber
          in: path
          type: integer
          description: Ticket number
          required: true
    - name: rest-p-project-tracker-ticketNumber-save
      path: /rest/p/{project}/{tracker}/{ticketNumber}/save
      operations:
      - name: updateticket
        method: POST
        description: Update Ticket
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: ticketNumber
          in: path
          type: integer
          description: Ticket number
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: bearer
      token: '{{env.SOURCEFORGE_API_KEY}}'
  exposes:
  - type: rest
    namespace: allura-tracker-rest
    port: 8080
    description: REST adapter for SourceForge Allura API — Tracker. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/p/{project}/{tracker}
      name: rest-p-project-tracker
      description: REST surface for rest-p-project-tracker.
      operations:
      - method: GET
        name: listtickets
        description: List Tickets
        call: allura-tracker.listtickets
        with:
          page: rest.page
          limit: rest.limit
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/p/{project}/{tracker}/new
      name: rest-p-project-tracker-new
      description: REST surface for rest-p-project-tracker-new.
      operations:
      - method: POST
        name: createticket
        description: Create Ticket
        call: allura-tracker.createticket
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/p/{project}/{tracker}/search
      name: rest-p-project-tracker-search
      description: REST surface for rest-p-project-tracker-search.
      operations:
      - method: GET
        name: searchtickets
        description: Search Tickets
        call: allura-tracker.searchtickets
        with:
          q: rest.q
          page: rest.page
          limit: rest.limit
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/p/{project}/{tracker}/{ticketnumber}
      name: rest-p-project-tracker-ticketnumber
      description: REST surface for rest-p-project-tracker-ticketNumber.
      operations:
      - method: GET
        name: getticket
        description: Get Ticket
        call: allura-tracker.getticket
        with:
          ticketNumber: rest.ticketNumber
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/p/{project}/{tracker}/{ticketnumber}/save
      name: rest-p-project-tracker-ticketnumber-save
      description: REST surface for rest-p-project-tracker-ticketNumber-save.
      operations:
      - method: POST
        name: updateticket
        description: Update Ticket
        call: allura-tracker.updateticket
        with:
          ticketNumber: rest.ticketNumber
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: allura-tracker-mcp
    port: 9090
    transport: http
    description: MCP adapter for SourceForge Allura API — Tracker. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: list-tickets
      description: List Tickets
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: allura-tracker.listtickets
      with:
        page: tools.page
        limit: tools.limit
      outputParameters:
      - type: object
        mapping: $.
    - name: create-ticket
      description: Create Ticket
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: allura-tracker.createticket
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: search-tickets
      description: Search Tickets
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: allura-tracker.searchtickets
      with:
        q: tools.q
        page: tools.page
        limit: tools.limit
      outputParameters:
      - type: object
        mapping: $.
    - name: get-ticket
      description: Get Ticket
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: allura-tracker.getticket
      with:
        ticketNumber: tools.ticketNumber
      outputParameters:
      - type: object
        mapping: $.
    - name: update-ticket
      description: Update Ticket
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: allura-tracker.updateticket
      with:
        ticketNumber: tools.ticketNumber
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.