rblake2320/UFT-MCP-2025
If you are the rightful owner of UFT-MCP-2025 and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The UFT MCP Server is a middleware orchestration layer designed to integrate and manage OpenText UFT One automation workflows in enterprise and DoD environments.
UFT MCP Server
Enterprise Model Context Protocol Server for OpenText/Micro Focus UFT One
Middleware orchestration layer for DoD/IMDS CDB v24.4 test automation workflows
🎯 Project Status - v1.0.0 (November 8, 2025)
✅ 100% PRODUCTION READY - ALL 15 FUNCTIONS FULLY OPERATIONAL
| Metric | Status |
|---|---|
| Total Functions | 15 |
| Production-Ready | 15 (100%) ✅ |
| Demo/Simulated | 0 (0%) |
| Verification Status | PASSED - All functions tested with direct evidence |
| Last Updated | November 8, 2025 |
What Changed in v1.0.0
All 5 previously demo/simulated functions have been converted to 100% production-ready implementations:
- uft_run_test - Now spawns actual UFT.exe processes (replaced setTimeout simulation)
- uft_parse_results - Reads real result files from disk (removed mock XML)
- uft_analyze_script - Performs real VBScript analysis (removed hardcoded issues)
- uft_secret_store - Uses production-grade AES-256-CBC encryption (replaced logging)
- uft_secret_retrieve - Returns actual decrypted plaintext (removed "********" masking)
Verification: Independent Claude Code window testing confirmed all 15 functions work with ZERO simulation. See for complete test results with evidence.
📋 Overview
UFT MCP Server is a production-ready Model Context Protocol server designed to orchestrate and integrate OpenText UFT One (formerly Micro Focus Unified Functional Testing) automation workflows in enterprise and DoD environments.
Purpose
This MCP server provides a structured API gateway between:
- UFT test clients (VBScript tests, API tests, PowerShell launchers)
- IMDS CDB automation assets (test data, object repositories, execution logs)
- External consumers (CI/CD pipelines, dashboards, ALM replacements, data pipelines)
Key Capabilities
- ✅ Run Controller API - Start, stop, and monitor UFT test executions remotely
- ✅ Repository Manager - CRUD operations for shared object repositories and function libraries
- ✅ Result Collector - Parse and normalize UFT XML/HTML results to structured JSON
- ✅ Telemetry & Metrics - Aggregate pass/fail rates, defect rates, performance metrics
- ✅ Secure Secrets Store - Encrypted credential management with CAC/PKI integration
- ✅ Extensible Plugin System - PowerShell hooks, Jira REST, Confluence updates
- ✅ AI-Assisted Analyzer - VBScript linting for syntax, security, and performance
- ✅ PowerShell Agent - Windows-based UFT execution agent with queue polling
🏗️ Architecture
┌─────────────────────────────────────────────────────────────┐
│ UFT MCP Server │
│ (Model Context Protocol) │
├─────────────────────────────────────────────────────────────┤
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Run Control │ │ Repository │ │ Telemetry │ │
│ │ Tools │ │ Manager │ │ Engine │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Result │ │ Security │ │ Plugin │ │
│ │ Collector │ │ Layer │ │ System │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ PowerShell Agent (Windows Host) │
│ UFT.exe COM API │ CLI Execution │ Queue Poll │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ UFT One Test Execution │
│ VBScript Tests │ API Tests │ GUI Tests │
└─────────────────────────────────────────────────────────────┘
Integration Points
- UFT Developer REST API (
/api/v1/execution) - UFT One 2021+ - OpenText ALM Octane / Jira REST - Defect synchronization
- PowerShell Runner Scripts - Test orchestration
- IMDS CDB v24.4 - Screen automation and API endpoints
- Prometheus / Grafana - Metrics and dashboards
- DoD Key Vault / HashiCorp Vault - Secrets management
🚀 Quick Start
Prerequisites
- Node.js 18+ (LTS recommended)
- TypeScript 5.5+
- UFT One 2021+ (on Windows execution host)
- PowerShell 5.1+ (on Windows execution host)
Installation
- Clone the repository:
git clone https://github.com/rblake2320/UFT-MCP-2025.git
cd UFT-MCP-2025
- Install dependencies:
npm install
- Build the project:
npm run build
- Configure environment:
cp .env.example .env
# Edit .env with your settings
- Start the server:
npm start
PowerShell Agent Setup (Windows UFT Host)
On the Windows machine with UFT One installed:
# Import the UFT Agent module
Import-Module .\powershell\UFT-Agent.psm1
# Set MCP server URL
$env:MCP_SERVER_URL = "http://your-mcp-server:3000"
# Run the agent
.\powershell\agent-runner.ps1 -MCPServerUrl "http://your-mcp-server:3000"
📖 Usage
MCP Tools Reference
1. Run Controller Tools
uft_run_test
Execute a UFT test script with parameters.
{
"scriptPath": "C:\\UFT\\Tests\\Login.tsp",
"environment": "TEST",
"parameters": {
"username": "testuser",
"password": "********"
},
"timeout": 3600,
"retry": 2,
"tags": ["smoke", "regression"]
}
Returns: Job ID for tracking
uft_get_run_status
Get execution status and results.
{
"jobId": "abc-123-def-456"
}
Returns: UFTRunResult object with status, duration, steps, etc.
uft_stop_run
Stop a running test execution.
{
"jobId": "abc-123-def-456",
"force": false
}
uft_parse_results
Parse UFT XML/HTML results to structured JSON.
{
"resultPath": "C:\\UFT\\Tests\\Login\\Res\\Report.xml",
"format": "xml",
"jobId": "abc-123-def-456"
}
2. Repository Manager Tools
uft_repo_create
Create or register a shared object repository.
{
"name": "LoginObjects",
"path": "\\\\shared\\repos\\Login.tsr",
"type": "shared",
"version": "1.0.0"
}
uft_repo_list
List all registered repositories.
{
"type": "shared" // or "local" or "all"
}
uft_repo_get
Get repository details including objects.
{
"id": "repo-id-or-name"
}
uft_library_register
Register a function library.
{
"name": "CommonFunctions",
"path": "\\\\shared\\libs\\Common.vbs",
"language": "VBScript",
"version": "2.1.0"
}
3. Telemetry & Metrics Tools
uft_metrics_collect
Collect test execution metrics.
{
"environment": "PROD",
"startDate": "2025-01-01T00:00:00Z",
"endDate": "2025-01-31T23:59:59Z"
}
uft_metrics_export
Export metrics in various formats.
{
"format": "prometheus", // or "json", "powerbi", "csv"
"environment": "PROD"
}
Prometheus Output Example:
# HELP uft_test_runs_total Total number of UFT test runs
# TYPE uft_test_runs_total counter
uft_test_runs_total{environment="PROD"} 1247
uft_test_pass_rate{environment="PROD"} 94.2
uft_test_fail_rate{environment="PROD"} 5.8
uft_test_avg_duration_seconds{environment="PROD"} 45.3
4. AI-Assisted Analysis Tools
uft_analyze_script
Analyze VBScript for issues.
{
"scriptPath": "C:\\UFT\\Tests\\Login\\Action1\\Script.mts",
"checks": ["syntax", "security", "performance", "all"]
}
Returns: VBScriptAnalysis with issues, complexity, security score, suggestions
5. Plugin Management Tools
uft_plugin_register
Register an extensibility plugin.
{
"name": "JiraIntegration",
"version": "1.0.0",
"hooks": [
{
"event": "post-run",
"handler": "updateJiraDefect",
"order": 10
}
],
"enabled": true
}
uft_plugin_list
List all registered plugins.
{
"enabled": true // optional filter
}
6. Security & Secrets Tools
uft_secret_store
Store encrypted credentials.
{
"name": "cac-pin",
"type": "cac-pin",
"value": "********",
"expiresAt": "2025-12-31T23:59:59Z"
}
uft_secret_retrieve
Retrieve encrypted credential (requires authorization).
{
"name": "cac-pin"
}
🔧 Configuration
Environment Variables
Create a .env file:
# MCP Server Configuration
MCP_SERVER_PORT=3000
LOG_LEVEL=info
# UFT Configuration
UFT_PATH=C:\Program Files\OpenText\UFT One\bin\UFT.exe
UFT_RESULT_PATH=C:\UFT\Results
# Security
CAC_ENABLED=true
VAULT_URL=https://vault.example.mil:8200
JWT_SECRET=your-secret-key
# Database (Optional)
POSTGRES_URL=postgresql://user:pass@localhost:5432/uft
REDIS_URL=redis://localhost:6379
# Queue (Optional)
RABBITMQ_URL=amqp://localhost:5672
# Telemetry
PROMETHEUS_ENABLED=true
PROMETHEUS_PORT=9090
Production Deployment
Docker Deployment
docker build -t uft-mcp-server .
docker run -d -p 3000:3000 --name uft-mcp uft-mcp-server
Kubernetes/Helm
helm install uft-mcp ./helm/uft-mcp-server \
--set image.tag=1.0.0 \
--set security.cacEnabled=true
Windows Service (PowerShell Agent)
# Install as Windows Service
New-Service -Name "UFTAgent" `
-BinaryPathName "powershell.exe -ExecutionPolicy Bypass -File C:\UFT-MCP\powershell\agent-runner.ps1" `
-DisplayName "UFT MCP Agent" `
-StartupType Automatic
Start-Service UFTAgent
🧪 Example Workflows
CI/CD Integration (Jenkins)
// Jenkinsfile
pipeline {
agent any
stages {
stage('Run UFT Smoke Tests') {
steps {
script {
def jobId = sh(
script: '''
curl -X POST http://mcp-server:3000/api/run \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"scriptPath": "C:\\\\UFT\\\\SmokeTests\\\\Login.tsp",
"environment": "TEST",
"tags": ["smoke"]
}'
''',
returnStdout: true
).trim()
// Wait for completion
waitUntil {
def status = sh(
script: "curl http://mcp-server:3000/api/status/${jobId}",
returnStdout: true
)
return status.contains('"status":"passed"')
}
}
}
}
}
}
PowerShell Test Execution
# Execute test directly
Import-Module .\UFT-Agent.psm1
Invoke-UFTTest -JobId (New-Guid) `
-ScriptPath "C:\UFT\Tests\Login.tsp" `
-Environment "TEST" `
-Parameters @{
username = "testuser"
password = "********"
} `
-Timeout 3600 `
-Retry 2
📊 Telemetry & Monitoring
Prometheus Integration
Add scrape config to prometheus.yml:
scrape_configs:
- job_name: 'uft-mcp'
static_configs:
- targets: ['localhost:9090']
Grafana Dashboard
Import the provided Grafana dashboard:
- Dashboard ID:
uft-mcp-dashboard.json - Metrics: Pass rate, fail rate, duration, defect rate
🔒 Security & Compliance
Classification
UNCLASSIFIED - Suitable for DoD IL2-IL5 environments
Security Features
- ✅ CAC/PKI Authentication - Common Access Card integration
- ✅ Zero-Trust Architecture - No implicit trust
- ✅ Encrypted Secrets - DoD Key Vault / HashiCorp Vault
- ✅ Immutable Audit Trail - SHA-256 HMAC signed events
- ✅ STIG Compliance - DISA STIG checklist included
- ✅ Role-Based Access Control - JWT with claims
STIG Mapping
See docs/STIG_CHECKLIST.md for full compliance matrix.
📚 Documentation
- - Complete tool and resource documentation
- - System design and integration
- - IL5 Kubernetes deployment
- - CAC/PKI setup and secrets management
- - Contributing and extending
🧩 Extensibility
Plugin Development
Create a custom plugin:
// plugins/my-plugin.ts
export class MyPlugin implements UFTPlugin {
id = 'my-plugin';
name = 'My Custom Plugin';
version = '1.0.0';
async onPreRun(config: UFTRunConfig): Promise<void> {
// Execute before test run
}
async onPostRun(result: UFTRunResult): Promise<void> {
// Execute after test run
}
}
Register via MCP:
{
"name": "MyCustomPlugin",
"version": "1.0.0",
"hooks": [
{ "event": "pre-run", "handler": "onPreRun", "order": 5 }
]
}
🤝 Contributing
This is a DoD/enterprise project. For contributions:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
📄 License
MIT License - See file for details
🙏 Acknowledgments
- OpenText/Micro Focus - UFT One platform
- Anthropic - Model Context Protocol SDK
- DoD DISA - Security guidelines and STIG compliance
📞 Support
- Issues: GitHub Issues
- Documentation: Wiki
- Security: Report vulnerabilities to security@example.mil
Built with ❤️ for DoD Test Automation Excellence