Weblogic Wlst Mcp Server — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Weblogic Wlst Mcp Server (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A Model Context Protocol (MCP) server for Oracle WebLogic Server administration using WLST (WebLogic Scripting Tool).
This MCP server provides a comprehensive set of tools for managing Oracle WebLogic Server domains, including server lifecycle management, application deployment, monitoring, and diagnostics.
wlst-mcp/
├── src/
│ └── wlst_mcp.py # Main MCP server implementation
├── README.md # This file - main documentation
├── ARCHITECTURE.md # System architecture diagrams
├── INSTALLATION.md # Prerequisites and installation guide
├── INTEGRATION.md # Claude Desktop & Claude Code setup
├── EXAMPLES.md # Usage examples and custom scripts
├── requirements.txt # Python dependencies
├── LICENSE # Apache License 2.0
└── .gitignore # Git ignore patterns pip install -r requirements.txt export WLST_ADMIN_URL=t3://localhost:7001
export WLST_USERNAME=weblogic
export WLST_PASSWORD=your_password python src/wlst_mcp.py| Document | Description |
|---|---|
| ARCHITECTURE.md | System architecture and component diagrams |
| INSTALLATION.md | Prerequisites, installation, security configuration |
| INTEGRATION.md | Claude Desktop & Claude Code integration |
| EXAMPLES.md | Usage examples and custom WLST scripts |
| Tool | Description |
|---|---|
wlst_test_connection | Test connectivity to a WebLogic Admin Server |
wlst_list_servers | List all servers in a WebLogic domain with their status |
| Tool | Description |
|---|---|
wlst_start_server | Start a managed server |
wlst_stop_server | Stop a managed server (supports force option) |
wlst_restart_server | Restart a managed server |
| Tool | Description |
|---|---|
wlst_deploy | Deploy an application (WAR, EAR, JAR) |
wlst_undeploy | Undeploy an application |
wlst_start_application | Start a deployed application |
wlst_stop_application | Stop a running application (without undeploying) |
wlst_redeploy_application | Redeploy an application in place |
wlst_list_applications | List all deployed applications |
| Tool | Description |
|---|---|
wlst_server_health | Get health status of WebLogic servers |
wlst_server_metrics | Get detailed metrics (JVM, threads, JDBC, JMS) |
| Tool | Description |
|---|---|
wlst_list_datasources | List all JDBC datasources |
wlst_list_jms_resources | List JMS servers, modules, queues, and topics |
| Tool | Description |
|---|---|
wlst_thread_dump | Capture thread dump for debugging |
wlst_analyze_logs | Analyze server and NodeManager logs to identify restart reasons and errors |
wlst_diagnose_application | Diagnose why an application is in FAILED state with root cause analysis |
wlst_execute_script | Execute custom WLST/Jython scripts |
Test connectivity to a WebLogic Admin Server.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
admin_url | string | No | Admin Server URL (e.g., t3://localhost:7001). Uses WLST_ADMIN_URL env var if not provided |
username | string | No | WebLogic admin username. Uses WLST_USERNAME env var if not provided |
password | string | No | WebLogic admin password. Uses WLST_PASSWORD env var if not provided |
timeout | integer | No | Connection timeout in seconds (10-600, default: 120) |
List all servers in a WebLogic domain with their status.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
admin_url | string | No | Admin Server URL |
username | string | No | WebLogic admin username |
password | string | No | WebLogic admin password |
response_format | string | No | Output format: markdown or json (default: markdown) |
Start a managed server in a WebLogic domain.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
server_name | string | Yes | Name of the managed server to start |
admin_url | string | No | Admin Server URL |
username | string | No | WebLogic admin username |
password | string | No | WebLogic admin password |
timeout | integer | No | Operation timeout in seconds (10-600, default: 120) |
Stop a managed server in a WebLogic domain. Supports two shutdown modes:
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
server_name | string | Yes | Name of the managed server to stop |
force | boolean | No | Force shutdown (immediate). If false, performs graceful shutdown waiting for sessions to complete. Default: false |
admin_url | string | No | Admin Server URL |
username | string | No | WebLogic admin username |
password | string | No | WebLogic admin password |
timeout | integer | No | Operation timeout in seconds. Graceful shutdown may need longer timeout. (10-600, default: 300) |
Shutdown Modes Comparison:
| Mode | Parameter | Behavior | Use Case |
|---|---|---|---|
| Graceful | force: false | Waits for sessions to complete | Production, scheduled maintenance |
| Force | force: true | Immediate stop, sessions terminated | Emergency, unresponsive server |
Restart a managed server in a WebLogic domain. Performs a stop followed by a start.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
server_name | string | Yes | Name of the managed server to restart |
force | boolean | No | Force shutdown during restart. If false, performs graceful shutdown waiting for sessions. Default: false |
admin_url | string | No | Admin Server URL |
username | string | No | WebLogic admin username |
password | string | No | WebLogic admin password |
timeout | integer | No | Operation timeout in seconds. Graceful restart may need longer timeout. (10-600, default: 300) |
Deploy an application to WebLogic Server.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
app_name | string | Yes | Application name |
app_path | string | Yes | Path to the application archive (WAR, EAR, JAR) |
targets | string | No | Comma-separated list of target servers/clusters |
stage_mode | string | No | Deployment stage mode: stage, nostage, or external_stage (default: stage) |
plan_path | string | No | Path to deployment plan XML |
admin_url | string | No | Admin Server URL |
username | string | No | WebLogic admin username |
password | string | No | WebLogic admin password |
Undeploy an application from WebLogic Server.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
app_name | string | Yes | Name of the application to undeploy |
targets | string | No | Comma-separated list of target servers/clusters |
admin_url | string | No | Admin Server URL |
username | string | No | WebLogic admin username |
password | string | No | WebLogic admin password |
timeout | integer | No | Operation timeout (10-600, default: 120) |
Start a deployed application in WebLogic Server. The application must be already deployed but in a stopped (STATE_PREPARED) state.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
app_name | string | Yes | Name of the application to start |
admin_url | string | No | Admin Server URL |
username | string | No | WebLogic admin username |
password | string | No | WebLogic admin password |
timeout | integer | No | Operation timeout in seconds (10-600, default: 120) |
Stop a running application in WebLogic Server without undeploying it. The application transitions from STATE_ACTIVE to STATE_PREPARED, allowing it to be started again later.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
app_name | string | Yes | Name of the application to stop |
admin_url | string | No | Admin Server URL |
username | string | No | WebLogic admin username |
password | string | No | WebLogic admin password |
timeout | integer | No | Operation timeout in seconds (10-600, default: 120) |
Application States:
| State | Description |
|---|---|
STATE_ACTIVE | Application is running and serving requests |
STATE_PREPARED | Application is deployed but stopped (not serving requests) |
Redeploy an application in WebLogic Server. This updates the application in place without changing its configuration or targets. Useful for updating application code without a full undeploy/deploy cycle.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
app_name | string | Yes | Name of the application to redeploy |
admin_url | string | No | Admin Server URL |
username | string | No | WebLogic admin username |
password | string | No | WebLogic admin password |
timeout | integer | No | Operation timeout in seconds (10-600, default: 120) |
List all deployed applications in a WebLogic domain.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
admin_url | string | No | Admin Server URL |
username | string | No | WebLogic admin username |
password | string | No | WebLogic admin password |
response_format | string | No | Output format: markdown or json (default: markdown) |
Get health status of WebLogic servers.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
server_name | string | No | Specific server name (all servers if not specified) |
admin_url | string | No | Admin Server URL |
username | string | No | WebLogic admin username |
password | string | No | WebLogic admin password |
response_format | string | No | Output format: markdown or json (default: markdown) |
Get detailed metrics for a WebLogic server.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
server_name | string | Yes | Server name to get metrics for |
metric_type | string | No | Type of metrics: all, jvm, threads, jdbc, jms (default: all) |
admin_url | string | No | Admin Server URL |
username | string | No | WebLogic admin username |
password | string | No | WebLogic admin password |
response_format | string | No | Output format: markdown or json (default: markdown) |
List all JDBC datasources in a WebLogic domain.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
admin_url | string | No | Admin Server URL |
username | string | No | WebLogic admin username |
password | string | No | WebLogic admin password |
response_format | string | No | Output format: markdown or json (default: markdown) |
List all JMS resources in a WebLogic domain.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
admin_url | string | No | Admin Server URL |
username | string | No | WebLogic admin username |
password | string | No | WebLogic admin password |
response_format | string | No | Output format: markdown or json (default: markdown) |
Get a thread dump from a WebLogic server for debugging.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
server_name | string | Yes | Server name to get thread dump from |
admin_url | string | No | Admin Server URL |
username | string | No | WebLogic admin username |
password | string | No | WebLogic admin password |
Analyze WebLogic server logs to identify restart reasons, errors, and issues. This tool examines NodeManager logs, server logs, and stdout/stderr output to detect OutOfMemoryErrors, JVM crashes, auto-restart events, and other critical issues.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
server_name | string | Yes | Name of the server to analyze logs for |
days | integer | No | Number of days to analyze (how far back in time). Range: 1-30, default: 1 |
log_type | string | No | Type of logs to analyze: all, server, nodemanager, stdout (default: all) |
admin_url | string | No | Admin Server URL |
username | string | No | WebLogic admin username |
password | string | No | WebLogic admin password |
response_format | string | No | Output format: markdown or json (default: markdown) |
Log Types:
| Type | Description |
|---|---|
all | Analyze all available logs (default) |
server | Server log only (<server_name>.log) |
nodemanager | NodeManager log only (nodemanager.log) |
stdout | Server stdout/stderr only (<server_name>.out) |
Detected Patterns:
| Category | Patterns Detected |
|---|---|
| Restart Events | Server start/stop, auto-restart triggers, process crashes |
| Memory Errors | OutOfMemoryError, StackOverflowError |
| JVM Crashes | SIGSEGV, SIGKILL, SIGABRT signals |
| WebLogic Errors | BEA-XXXXX error codes |
| Warnings | Stuck threads, low memory, overload conditions |
Diagnose why an application is in FAILED state or having issues. This tool performs comprehensive diagnostics including checking source files, analyzing logs, and providing remediation suggestions.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
app_name | string | No | Application name to diagnose. If not provided, diagnoses all applications in FAILED state |
check_logs | boolean | No | Search server logs for related errors (default: true) |
admin_url | string | No | Admin Server URL |
username | string | No | WebLogic admin username |
password | string | No | WebLogic admin password |
response_format | string | No | Output format: markdown or json (default: markdown) |
Diagnostics Performed:
| Check | Description |
|---|---|
| State Analysis | Compares current runtime state vs intended state for each target |
| Source File Check | Verifies the application archive (WAR/EAR) exists on the filesystem |
| Staging Check | Verifies staged files exist for applications using stage mode |
| Log Analysis | Searches server and AdminServer logs for related errors |
| Pattern Detection | Identifies common issues (ClassNotFound, OutOfMemory, connection errors) |
Issues Detected:
| Issue Code | Description |
|---|---|
SOURCE_FILE_MISSING | The application WAR/EAR file does not exist at the configured path |
STAGING_MISSING | Staged files not found in the server's stage directory |
CLASS_NOT_FOUND | Missing class or JAR dependency (ClassNotFoundException) |
OUT_OF_MEMORY | JVM ran out of memory during deployment |
CONNECTION_ERROR | Network or database connection issue during startup |
DUPLICATE_RESOURCE | Duplicate JNDI name or resource conflict |
Example Output:
# Application Diagnostics Report
## Summary
- **Applications Analyzed**: 1
- **Applications in FAILED State**: 1
- **Total Issues Found**: 1
## 🔴 simpleservlet
### State
- 🔴 **test_server1**: STATE_FAILED
- **Intended State**: STATE_ACTIVE
### Source File
- **Path**: `servers\AdminServer\upload\simpleservlet\app\simpleservlet.war`
- ❌ **File Exists**: No
### Issues Found
- ❌ Source file (WAR/EAR) not found on filesystem
### Probable Causes
- The application source file (WAR/EAR) does not exist at the configured path
### Recommendations
1. Re-deploy the application with a valid source file path
2. Or copy the application archive to the expected locationExecute a custom WLST/Jython script.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
script | string | Yes | WLST/Jython script to execute |
admin_url | string | No | Admin Server URL (optional for offline scripts) |
username | string | No | WebLogic admin username |
password | string | No | WebLogic admin password |
timeout | integer | No | Script execution timeout (10-1800, default: 120) |
The MCP server uses a fallback mechanism to resolve connection parameters. For each parameter, it checks in the following order:
1. Tool parameter (if provided) → 2. Environment variable → 3. Error (if required)This means:
| Variable | Description | Example |
|---|---|---|
WLST_ADMIN_URL | WebLogic Admin Server URL (protocol://host:port) | t3://localhost:7001 |
WLST_USERNAME | WebLogic admin username | weblogic |
WLST_PASSWORD | WebLogic admin password | welcome1 |
The WLST_ADMIN_URL must follow this format:
<protocol>://<host>:<port>| Component | Description | Examples |
|---|---|---|
protocol | Connection protocol | t3, t3s, http, https |
host | Admin Server hostname or IP | localhost, 192.168.1.100, admin.example.com |
port | Admin Server listen port | 7001 (default), 7002 (SSL) |
Examples:
# Local development (non-SSL)
WLST_ADMIN_URL=t3://localhost:7001
# Local development (SSL)
WLST_ADMIN_URL=t3s://localhost:7002
# Remote server
WLST_ADMIN_URL=t3s://weblogic-admin.example.com:7002
# Using IP address
WLST_ADMIN_URL=t3://192.168.1.100:7001#### Option 1: Environment Variables (Recommended)
Set environment variables before starting the MCP server:
Linux/macOS:
export WLST_ADMIN_URL=t3://localhost:7001
export WLST_USERNAME=weblogic
export WLST_PASSWORD=your_passwordWindows (Command Prompt):
set WLST_ADMIN_URL=t3://localhost:7001
set WLST_USERNAME=weblogic
set WLST_PASSWORD=your_passwordWindows (PowerShell):
$env:WLST_ADMIN_URL = "t3://localhost:7001"
$env:WLST_USERNAME = "weblogic"
$env:WLST_PASSWORD = "your_password"Once configured, you can call tools without specifying connection parameters:
{
"tool": "wlst_list_servers",
"params": {}
}#### Option 2: Tool Parameters (Override)
You can override environment variables by passing parameters directly:
{
"tool": "wlst_list_servers",
"params": {
"admin_url": "t3://production-server:7001",
"username": "admin_user",
"password": "admin_password"
}
}#### Option 3: Claude Desktop Configuration
Configure in claude_desktop_config.json:
{
"mcpServers": {
"wlst-mcp": {
"command": "python",
"args": ["/path/to/wlst-mcp/server.py"],
"env": {
"WLST_ADMIN_URL": "t3://localhost:7001",
"WLST_USERNAME": "weblogic",
"WLST_PASSWORD": "your_password"
}
}
}
}Given this configuration:
# Environment variables
export WLST_ADMIN_URL=t3://dev-server:7001
export WLST_USERNAME=dev_user
export WLST_PASSWORD=dev_passwordAnd this tool call:
{
"tool": "wlst_list_servers",
"params": {
"admin_url": "t3://prod-server:7001"
}
}The resolved values will be:
| Parameter | Value | Source |
|---|---|---|
admin_url | t3://prod-server:7001 | Tool parameter (override) |
username | dev_user | Environment variable (fallback) |
password | dev_password | Environment variable (fallback) |
Most tools support two output formats:
Apache License 2.0 - See LICENSE for details.
Contributions are welcome! Please feel free to submit a Pull Request.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.