Mojang · Capability

Mojang Session Server — Session

Mojang Session Server — Session. 2 operations. Lead operation: Has Joined Verification (Server-Side). Self-contained Naftiko capability covering one Mojang business surface.

Run with Naftiko MojangMinecraftSession

What You Can Do

GET
Hasjoined — Has Joined Verification (Server-Side)
/v1/session/minecraft/hasjoined
POST
Joinsession — Join Session (Client-Side)
/v1/session/minecraft/join

MCP Tools

has-joined

Has Joined Verification (Server-Side)

read-only idempotent
join-session

Join Session (Client-Side)

Who This Is For

👤
Minecraft Server Operator
Operator of a Java Edition server validating client sessions.
👤
Launcher Developer
Engineer building the Minecraft client or a third-party launcher.

Capability Spec

mojang-session-server-session.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: "Mojang Session Server \u2014 Session"
  description: "Mojang Session Server \u2014 Session. 2 operations. Lead operation: Has Joined Verification (Server-Side). Self-contained Naftiko capability covering one Mojang business surface."
  tags:
  - Mojang
  - Minecraft
  - Session
  created: '2026-05-30'
  modified: '2026-05-30'
binds:
- namespace: env
  keys:
    MOJANG_ACCESS_TOKEN: MOJANG_ACCESS_TOKEN
capability:
  consumes:
  - type: http
    namespace: mojang-session-server-session
    baseUri: https://sessionserver.mojang.com
    description: "Mojang Session Server \u2014 session. Self-contained, no shared references."
    resources:
    - name: session-minecraft-hasjoined
      path: /session/minecraft/hasJoined
      operations:
      - name: hasJoined
        method: GET
        description: Has Joined Verification (Server-Side)
        inputParameters:
        - name: username
          in: query
          type: string
          required: true
          description: Username sent by the connecting client.
        - name: serverId
          in: query
          type: string
          required: true
          description: SHA-1 server hash computed during the handshake.
        - name: ip
          in: query
          type: string
          required: false
          description: Optional IP of the connecting client for stricter checks.
        - name: prevent_proxy
          in: query
          type: boolean
          required: false
          description: When true, fails verification if the client appears proxied.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: session-minecraft-join
      path: /session/minecraft/join
      operations:
      - name: joinSession
        method: POST
        description: Join Session (Client-Side)
        inputParameters:
        - name: body
          in: body
          type: object
          required: true
          description: Join-session payload.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    namespace: mojang-session-server-session-rest
    port: 8080
    description: "REST adapter for Mojang Session Server \u2014 session. One Spectral-compliant resource per consumed operation, prefixed with /v1."
    resources:
    - path: /v1/session/minecraft/hasjoined
      name: session-minecraft-hasjoined
      description: REST surface for /session/minecraft/hasJoined.
      operations:
      - method: GET
        name: hasJoined
        description: Has Joined Verification (Server-Side)
        call: mojang-session-server-session.hasJoined
        with:
          username: rest.username
          serverId: rest.serverId
          ip: rest.ip
          prevent_proxy: rest.prevent_proxy
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/session/minecraft/join
      name: session-minecraft-join
      description: REST surface for /session/minecraft/join.
      operations:
      - method: POST
        name: joinSession
        description: Join Session (Client-Side)
        call: mojang-session-server-session.joinSession
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: mojang-session-server-session-mcp
    port: 9090
    transport: http
    description: "MCP adapter for Mojang Session Server \u2014 session. One tool per consumed operation, routed inline through this capability's consumes block."
    tools:
    - name: has-joined
      description: Has Joined Verification (Server-Side)
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: mojang-session-server-session.hasJoined
      with:
        username: tools.username
        serverId: tools.serverId
        ip: tools.ip
        prevent_proxy: tools.prevent_proxy
      outputParameters:
      - type: object
        mapping: $.
    - name: join-session
      description: Join Session (Client-Side)
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: mojang-session-server-session.joinSession
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.