Apache Tomcat · Capability

Apache Tomcat Application Management

Unified capability for deploying, managing, and monitoring Java web applications on Apache Tomcat. Covers application deployment, lifecycle management (start/stop/reload), session management, server diagnostics, SSL configuration, and JMX access.

Run with Naftiko Apache TomcatJavaApplication ServerDevOpsDeployment

What You Can Do

GET
List applications — List all deployed web applications
/v1/applications
POST
Start application — Start a stopped application
/v1/applications/start
POST
Stop application — Stop a running application
/v1/applications/stop
POST
Reload application — Reload an application
/v1/applications/reload
GET
Get server info — Get server OS and JVM information
/v1/diagnostics/server-info
GET
Get thread dump — Get JVM thread dump
/v1/diagnostics/thread-dump
GET
Get vm info — Get JVM memory and system info
/v1/diagnostics/vm-info

MCP Tools

list-applications

List all deployed web applications on Apache Tomcat

read-only
start-application

Start a stopped web application on Tomcat

idempotent
stop-application

Stop a running web application on Tomcat (makes it unavailable)

idempotent
reload-application

Reload a Tomcat application to pick up WEB-INF/classes and lib changes

idempotent
get-server-info

Get Apache Tomcat server OS, JVM, and version information

read-only
get-thread-dump

Get a full JVM thread dump from Apache Tomcat for diagnostics

read-only
get-vm-info

Get JVM memory usage and system properties from Apache Tomcat

read-only

APIs Used

tomcat

Capability Spec

Raw ↑
naftiko: "1.0.0-alpha1"

info:
  label: "Apache Tomcat Application Management"
  description: >-
    Unified capability for deploying, managing, and monitoring Java web applications
    on Apache Tomcat. Covers application deployment, lifecycle management (start/stop/reload),
    session management, server diagnostics, SSL configuration, and JMX access.
  tags:
    - Apache Tomcat
    - Java
    - Application Server
    - DevOps
    - Deployment
  created: "2026-05-03"
  modified: "2026-05-03"

binds:
  - namespace: env
    keys:
      TOMCAT_USERNAME: TOMCAT_USERNAME
      TOMCAT_PASSWORD: TOMCAT_PASSWORD
      TOMCAT_BASE_URL: TOMCAT_BASE_URL

capability:
  consumes:
    - import: tomcat
      location: ./shared/tomcat-manager.yaml

  exposes:
    - type: rest
      port: 8080
      namespace: tomcat-management-api
      description: "Unified REST API for Tomcat application deployment and management."
      resources:
        - path: /v1/applications
          name: applications
          description: "Web application listing"
          operations:
            - method: GET
              name: list-applications
              description: "List all deployed web applications"
              call: "tomcat.list-applications"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/applications/start
          name: application-start
          description: "Start application"
          operations:
            - method: POST
              name: start-application
              description: "Start a stopped application"
              call: "tomcat.start-application"
              with:
                path: "rest.path"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/applications/stop
          name: application-stop
          description: "Stop application"
          operations:
            - method: POST
              name: stop-application
              description: "Stop a running application"
              call: "tomcat.stop-application"
              with:
                path: "rest.path"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/applications/reload
          name: application-reload
          description: "Reload application"
          operations:
            - method: POST
              name: reload-application
              description: "Reload an application"
              call: "tomcat.reload-application"
              with:
                path: "rest.path"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/diagnostics/server-info
          name: server-info
          description: "Server information"
          operations:
            - method: GET
              name: get-server-info
              description: "Get server OS and JVM information"
              call: "tomcat.get-server-info"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/diagnostics/thread-dump
          name: thread-dump
          description: "Thread dump"
          operations:
            - method: GET
              name: get-thread-dump
              description: "Get JVM thread dump"
              call: "tomcat.get-thread-dump"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/diagnostics/vm-info
          name: vm-info
          description: "JVM information"
          operations:
            - method: GET
              name: get-vm-info
              description: "Get JVM memory and system info"
              call: "tomcat.get-vm-info"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      port: 9080
      namespace: tomcat-management-mcp
      transport: http
      description: "MCP server for AI-assisted Apache Tomcat application management."
      tools:
        - name: list-applications
          description: "List all deployed web applications on Apache Tomcat"
          hints:
            readOnly: true
            openWorld: false
          call: "tomcat.list-applications"
          outputParameters:
            - type: object
              mapping: "$."
        - name: start-application
          description: "Start a stopped web application on Tomcat"
          hints:
            readOnly: false
            destructive: false
            idempotent: true
          call: "tomcat.start-application"
          with:
            path: "tools.path"
          outputParameters:
            - type: object
              mapping: "$."
        - name: stop-application
          description: "Stop a running web application on Tomcat (makes it unavailable)"
          hints:
            readOnly: false
            destructive: true
            idempotent: true
          call: "tomcat.stop-application"
          with:
            path: "tools.path"
          outputParameters:
            - type: object
              mapping: "$."
        - name: reload-application
          description: "Reload a Tomcat application to pick up WEB-INF/classes and lib changes"
          hints:
            readOnly: false
            destructive: false
            idempotent: true
          call: "tomcat.reload-application"
          with:
            path: "tools.path"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-server-info
          description: "Get Apache Tomcat server OS, JVM, and version information"
          hints:
            readOnly: true
            openWorld: false
          call: "tomcat.get-server-info"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-thread-dump
          description: "Get a full JVM thread dump from Apache Tomcat for diagnostics"
          hints:
            readOnly: true
            openWorld: false
          call: "tomcat.get-thread-dump"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-vm-info
          description: "Get JVM memory usage and system properties from Apache Tomcat"
          hints:
            readOnly: true
            openWorld: false
          call: "tomcat.get-vm-info"
          outputParameters:
            - type: object
              mapping: "$."