Toornament · Capability

Toornament Tournament Management

Workflow capability for full esports tournament lifecycle management using the Toornament Organizer API — covering tournament creation, participant management, bracket progression, match reporting, and final standings.

Run with Naftiko BracketsCompetitionEsportsGamingMatchesParticipantsTournamentsToornament

What You Can Do

GET
List tournaments — List all tournaments for the authenticated organizer.
/v1/tournaments
POST
Create tournament — Create a new esports tournament.
/v1/tournaments
GET
Get tournament — Get full tournament details.
/v1/tournaments/{id}
PATCH
Update tournament — Update tournament configuration.
/v1/tournaments/{id}
GET
List participants — List all tournament participants.
/v1/tournaments/{tournament_id}/participants
POST
Add participant — Add a participant to the tournament.
/v1/tournaments/{tournament_id}/participants
GET
List stages — List all stages in a tournament.
/v1/tournaments/{tournament_id}/stages
GET
List matches — List matches in a tournament stage.
/v1/tournaments/{tournament_id}/stages/{stage_id}/matches
PATCH
Report match — Submit match result.
/v1/tournaments/{tournament_id}/matches/{match_id}
GET
List rankings — Get rankings for a tournament stage.
/v1/tournaments/{tournament_id}/stages/{stage_id}/rankings
GET
List disciplines — List all supported esports games and disciplines.
/v1/disciplines

MCP Tools

list-tournaments

List all esports tournaments organized by the authenticated user.

read-only idempotent
create-tournament

Create a new esports tournament on Toornament with full configuration.

get-tournament

Retrieve full details of a specific Toornament tournament.

read-only idempotent
update-tournament

Update tournament settings such as name, dates, registration, and rules.

idempotent
delete-tournament

Permanently delete a tournament.

idempotent
list-participants

List all registered participants in a Toornament tournament.

read-only idempotent
add-participant

Add a new participant (player or team) to a tournament.

list-stages

List all stages defined in a tournament (group stage, elimination rounds, etc.).

read-only idempotent
list-matches

List all matches in a tournament stage, including bracket display data.

read-only idempotent
report-match-result

Submit the final score and result for a completed tournament match.

idempotent
get-stage-rankings

Retrieve the current standings and rankings for a tournament stage.

read-only idempotent
list-disciplines

List all supported esports game disciplines available on Toornament.

read-only idempotent

APIs Used

toornament-organizer

Capability Spec

tournament-management.yaml Raw ↑
naftiko: "1.0.0-alpha1"

info:
  label: "Toornament Tournament Management"
  description: "Workflow capability for full esports tournament lifecycle management using the Toornament Organizer API — covering tournament creation, participant management, bracket progression, match reporting, and final standings."
  tags:
    - Brackets
    - Competition
    - Esports
    - Gaming
    - Matches
    - Participants
    - Tournaments
    - Toornament
  created: "2026-05-03"
  modified: "2026-05-03"

binds:
  - namespace: env
    keys:
      TOORNAMENT_API_KEY: TOORNAMENT_API_KEY
      TOORNAMENT_ACCESS_TOKEN: TOORNAMENT_ACCESS_TOKEN

capability:
  consumes:
    - import: toornament-organizer
      location: ./shared/toornament-organizer.yaml

  exposes:
    - type: rest
      port: 8080
      namespace: toornament-tournament-management-api
      description: "Unified REST API for esports tournament lifecycle management."
      resources:
        - path: /v1/tournaments
          name: tournaments
          description: "Create and list tournaments."
          operations:
            - method: GET
              name: list-tournaments
              description: "List all tournaments for the authenticated organizer."
              call: "toornament-organizer.list-tournaments"
              outputParameters:
                - type: array
                  mapping: "$."
            - method: POST
              name: create-tournament
              description: "Create a new esports tournament."
              call: "toornament-organizer.create-tournament"
              with:
                discipline: "rest.discipline"
                name: "rest.name"
                participant_type: "rest.participant_type"
                size: "rest.size"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/tournaments/{id}
          name: tournament
          description: "Get or update a specific tournament."
          operations:
            - method: GET
              name: get-tournament
              description: "Get full tournament details."
              call: "toornament-organizer.get-tournament"
              with:
                id: "rest.id"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: PATCH
              name: update-tournament
              description: "Update tournament configuration."
              call: "toornament-organizer.update-tournament"
              with:
                id: "rest.id"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/tournaments/{tournament_id}/participants
          name: participants
          description: "Manage tournament participants."
          operations:
            - method: GET
              name: list-participants
              description: "List all tournament participants."
              call: "toornament-organizer.list-participants"
              with:
                tournament_id: "rest.tournament_id"
              outputParameters:
                - type: array
                  mapping: "$."
            - method: POST
              name: add-participant
              description: "Add a participant to the tournament."
              call: "toornament-organizer.create-participant"
              with:
                tournament_id: "rest.tournament_id"
                name: "rest.name"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/tournaments/{tournament_id}/stages
          name: stages
          description: "Tournament stages and brackets."
          operations:
            - method: GET
              name: list-stages
              description: "List all stages in a tournament."
              call: "toornament-organizer.list-stages"
              with:
                tournament_id: "rest.tournament_id"
              outputParameters:
                - type: array
                  mapping: "$."

        - path: /v1/tournaments/{tournament_id}/stages/{stage_id}/matches
          name: matches
          description: "Tournament match schedule and results."
          operations:
            - method: GET
              name: list-matches
              description: "List matches in a tournament stage."
              call: "toornament-organizer.list-matches"
              with:
                tournament_id: "rest.tournament_id"
                stage_id: "rest.stage_id"
              outputParameters:
                - type: array
                  mapping: "$."

        - path: /v1/tournaments/{tournament_id}/matches/{match_id}
          name: match
          description: "Report and view a specific match."
          operations:
            - method: PATCH
              name: report-match
              description: "Submit match result."
              call: "toornament-organizer.report-match"
              with:
                tournament_id: "rest.tournament_id"
                match_id: "rest.match_id"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/tournaments/{tournament_id}/stages/{stage_id}/rankings
          name: rankings
          description: "Tournament stage rankings and standings."
          operations:
            - method: GET
              name: list-rankings
              description: "Get rankings for a tournament stage."
              call: "toornament-organizer.list-rankings"
              with:
                tournament_id: "rest.tournament_id"
                stage_id: "rest.stage_id"
              outputParameters:
                - type: array
                  mapping: "$."

        - path: /v1/disciplines
          name: disciplines
          description: "Supported esports disciplines."
          operations:
            - method: GET
              name: list-disciplines
              description: "List all supported esports games and disciplines."
              call: "toornament-organizer.list-disciplines"
              outputParameters:
                - type: array
                  mapping: "$."

    - type: mcp
      port: 9090
      namespace: toornament-tournament-management-mcp
      transport: http
      description: "MCP server for AI-assisted esports tournament management on Toornament."
      tools:
        - name: list-tournaments
          description: "List all esports tournaments organized by the authenticated user."
          hints:
            readOnly: true
            idempotent: true
          call: "toornament-organizer.list-tournaments"
          outputParameters:
            - type: array
              mapping: "$."
        - name: create-tournament
          description: "Create a new esports tournament on Toornament with full configuration."
          hints:
            readOnly: false
            idempotent: false
          call: "toornament-organizer.create-tournament"
          with:
            discipline: "tools.discipline"
            name: "tools.name"
            participant_type: "tools.participant_type"
            size: "tools.size"
            timezone: "tools.timezone"
            platforms: "tools.platforms"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-tournament
          description: "Retrieve full details of a specific Toornament tournament."
          hints:
            readOnly: true
            idempotent: true
          call: "toornament-organizer.get-tournament"
          with:
            id: "tools.id"
          outputParameters:
            - type: object
              mapping: "$."
        - name: update-tournament
          description: "Update tournament settings such as name, dates, registration, and rules."
          hints:
            readOnly: false
            idempotent: true
          call: "toornament-organizer.update-tournament"
          with:
            id: "tools.id"
          outputParameters:
            - type: object
              mapping: "$."
        - name: delete-tournament
          description: "Permanently delete a tournament."
          hints:
            readOnly: false
            destructive: true
            idempotent: true
          call: "toornament-organizer.delete-tournament"
          with:
            id: "tools.id"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-participants
          description: "List all registered participants in a Toornament tournament."
          hints:
            readOnly: true
            idempotent: true
          call: "toornament-organizer.list-participants"
          with:
            tournament_id: "tools.tournament_id"
          outputParameters:
            - type: array
              mapping: "$."
        - name: add-participant
          description: "Add a new participant (player or team) to a tournament."
          hints:
            readOnly: false
            idempotent: false
          call: "toornament-organizer.create-participant"
          with:
            tournament_id: "tools.tournament_id"
            name: "tools.name"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-stages
          description: "List all stages defined in a tournament (group stage, elimination rounds, etc.)."
          hints:
            readOnly: true
            idempotent: true
          call: "toornament-organizer.list-stages"
          with:
            tournament_id: "tools.tournament_id"
          outputParameters:
            - type: array
              mapping: "$."
        - name: list-matches
          description: "List all matches in a tournament stage, including bracket display data."
          hints:
            readOnly: true
            idempotent: true
          call: "toornament-organizer.list-matches"
          with:
            tournament_id: "tools.tournament_id"
            stage_id: "tools.stage_id"
          outputParameters:
            - type: array
              mapping: "$."
        - name: report-match-result
          description: "Submit the final score and result for a completed tournament match."
          hints:
            readOnly: false
            idempotent: true
          call: "toornament-organizer.report-match"
          with:
            tournament_id: "tools.tournament_id"
            match_id: "tools.match_id"
            opponents: "tools.opponents"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-stage-rankings
          description: "Retrieve the current standings and rankings for a tournament stage."
          hints:
            readOnly: true
            idempotent: true
          call: "toornament-organizer.list-rankings"
          with:
            tournament_id: "tools.tournament_id"
            stage_id: "tools.stage_id"
          outputParameters:
            - type: array
              mapping: "$."
        - name: list-disciplines
          description: "List all supported esports game disciplines available on Toornament."
          hints:
            readOnly: true
            idempotent: true
          call: "toornament-organizer.list-disciplines"
          outputParameters:
            - type: array
              mapping: "$."