SourceForge · Capability

SourceForge Allura API — Discussion

SourceForge Allura API — Discussion. 3 operations. Lead operation: List Discussion Forums. Self-contained Naftiko capability covering one Sourceforge business surface.

Run with Naftiko SourceforgeDiscussion

What You Can Do

GET
Listforums — List Discussion Forums
/v1/p/{project}/{discussion}
GET
Listforumtopics — List Forum Topics
/v1/p/{project}/{discussion}/{forum}
GET
Listthreadposts — List Thread Posts
/v1/p/{project}/{discussion}/{forum}/thread/{thread}

MCP Tools

list-discussion-forums

List Discussion Forums

read-only idempotent
list-forum-topics

List Forum Topics

read-only idempotent
list-thread-posts

List Thread Posts

read-only idempotent

Capability Spec

allura-discussion.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: SourceForge Allura API — Discussion
  description: 'SourceForge Allura API — Discussion. 3 operations. Lead operation: List Discussion Forums. Self-contained
    Naftiko capability covering one Sourceforge business surface.'
  tags:
  - Sourceforge
  - Discussion
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    SOURCEFORGE_API_KEY: SOURCEFORGE_API_KEY
capability:
  consumes:
  - type: http
    namespace: allura-discussion
    baseUri: https://sourceforge.net
    description: SourceForge Allura API — Discussion business capability. Self-contained, no shared references.
    resources:
    - name: rest-p-project-discussion
      path: /rest/p/{project}/{discussion}
      operations:
      - name: listforums
        method: GET
        description: List Discussion Forums
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: discussion
          in: path
          type: string
          description: Discussion tool mount point
          required: true
    - name: rest-p-project-discussion-forum
      path: /rest/p/{project}/{discussion}/{forum}
      operations:
      - name: listforumtopics
        method: GET
        description: List Forum Topics
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: discussion
          in: path
          type: string
          required: true
        - name: forum
          in: path
          type: string
          description: Forum identifier
          required: true
    - name: rest-p-project-discussion-forum-thread-thread
      path: /rest/p/{project}/{discussion}/{forum}/thread/{thread}
      operations:
      - name: listthreadposts
        method: GET
        description: List Thread Posts
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: discussion
          in: path
          type: string
          required: true
        - name: forum
          in: path
          type: string
          required: true
        - name: thread
          in: path
          type: string
          description: Thread identifier
          required: true
    authentication:
      type: bearer
      token: '{{env.SOURCEFORGE_API_KEY}}'
  exposes:
  - type: rest
    namespace: allura-discussion-rest
    port: 8080
    description: REST adapter for SourceForge Allura API — Discussion. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/p/{project}/{discussion}
      name: rest-p-project-discussion
      description: REST surface for rest-p-project-discussion.
      operations:
      - method: GET
        name: listforums
        description: List Discussion Forums
        call: allura-discussion.listforums
        with:
          discussion: rest.discussion
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/p/{project}/{discussion}/{forum}
      name: rest-p-project-discussion-forum
      description: REST surface for rest-p-project-discussion-forum.
      operations:
      - method: GET
        name: listforumtopics
        description: List Forum Topics
        call: allura-discussion.listforumtopics
        with:
          discussion: rest.discussion
          forum: rest.forum
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/p/{project}/{discussion}/{forum}/thread/{thread}
      name: rest-p-project-discussion-forum-thread-thread
      description: REST surface for rest-p-project-discussion-forum-thread-thread.
      operations:
      - method: GET
        name: listthreadposts
        description: List Thread Posts
        call: allura-discussion.listthreadposts
        with:
          discussion: rest.discussion
          forum: rest.forum
          thread: rest.thread
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: allura-discussion-mcp
    port: 9090
    transport: http
    description: MCP adapter for SourceForge Allura API — Discussion. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: list-discussion-forums
      description: List Discussion Forums
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: allura-discussion.listforums
      with:
        discussion: tools.discussion
      outputParameters:
      - type: object
        mapping: $.
    - name: list-forum-topics
      description: List Forum Topics
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: allura-discussion.listforumtopics
      with:
        discussion: tools.discussion
        forum: tools.forum
      outputParameters:
      - type: object
        mapping: $.
    - name: list-thread-posts
      description: List Thread Posts
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: allura-discussion.listthreadposts
      with:
        discussion: tools.discussion
        forum: tools.forum
        thread: tools.thread
      outputParameters:
      - type: object
        mapping: $.