Rundeck MCP Server
Provides tools for managing Rundeck automation platform, including system info, projects, jobs, executions, and performance analytics.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Rundeck MCP Serverlist all projects on Rundeck"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Rundeck MCP Server
A Model Context Protocol (MCP) server that provides seamless integration between AI assistants and Rundeck automation platform. This server exposes 9 comprehensive Rundeck tools through the MCP protocol, enabling AI assistants to interact with Rundeck servers in real-time.
π Features
9 Rundeck Tools: Complete set of tools for Rundeck management
Real-time Data: Live connection to Rundeck API
Docker Integration: Containerized deployment with Rundeck
Kubernetes Ready: Production-grade K8s manifests with NetworkPolicies
MCP Protocol: Standard interface for AI assistant integration
AI Assistant Compatible: Works with any MCP-compatible AI assistant
Production Ready: Tested and verified working integration
Related MCP server: Redmine MCP Server
π Available Tools
Tool | Description |
| Get server status, version, memory, CPU stats |
| List all available Rundeck projects |
| List jobs in a specific project |
| Get detailed job information |
| Execute jobs with optional arguments |
| Get execution status and details |
| View job execution history |
| Performance analytics for jobs |
| Stop running job executions |
ποΈ Architecture
βββββββββββββββ MCP Protocol ββββββββββββββββ Rundeck API βββββββββββββββ
β AI AssistantβββββββββββββββββββββΊβ MCP Server ββββββββββββββββββββΊβ Rundeck β
β β β (Docker) β β Server β
βββββββββββββββ ββββββββββββββββ βββββββββββββββπ³ Quick Start
Option 1: Docker Compose (Recommended for Development)
# Clone and navigate to directory
git clone <repository>
cd rundeck-mcp
# Set your Rundeck API token
echo "RUNDECK_API_TOKEN=YOUR_RUNDECK_API_TOKEN_HERE" > .env
# Deploy containers
docker-compose up -d
# Check status
docker-compose psOption 2: Kubernetes (Recommended for Production)
# Clone and navigate to directory
git clone <repository>
cd rundeck-mcp
# Update API token in k8s/secret.yaml
echo -n "your-actual-token" | base64
# Replace the value in k8s/secret.yaml
# Deploy to Kubernetes
./k8s/deploy.sh
# Or with specific network policy mode
NETWORK_POLICY_MODE=strict ./k8s/deploy.shβΈοΈ Kubernetes Deployment
Quick Deploy
# Standard deployment
./k8s/deploy.sh
# Strict security mode
NETWORK_POLICY_MODE=strict ./k8s/deploy.sh
# With monitoring support
NETWORK_POLICY_MODE=monitoring ./k8s/deploy.shNetwork Policy Modes
Mode | Description | Use Case |
| Basic network isolation with external access | Development/Testing |
| Maximum security, minimal network access | High-security environments |
| Standard + monitoring namespace access | Production with observability |
Kubernetes Resources
Resource | Description |
| Dedicated rundeck-mcp namespace |
| Non-sensitive configuration |
| API tokens and sensitive data |
| Persistent storage for Rundeck data |
| Rundeck server deployment |
| ClusterIP + NodePort services |
| MCP server deployment |
| External access via Ingress |
| Network security policies |
Access Methods
# NodePort (immediate access)
http://localhost:30440
# Port-forward (secure tunnel)
kubectl port-forward service/rundeck-service 4440:4440 -n rundeck-mcp
# Ingress (with DNS setup)
http://rundeck.localUseful Commands
# Check deployment status
kubectl get pods -n rundeck-mcp
# View logs
kubectl logs -f deployment/rundeck -n rundeck-mcp
kubectl logs -f deployment/rundeck-mcp-server -n rundeck-mcp
# Check network policies
kubectl get networkpolicies -n rundeck-mcp
# Scale deployments
kubectl scale deployment rundeck --replicas=2 -n rundeck-mcp
# Cleanup
./k8s/cleanup.sh2. Configure MCP Client
For Kiro IDE
Create .kiro/settings/mcp.json in your workspace:
{
"mcpServers": {
"rundeck": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--network=rundeck-mcp_rundeck-network",
"-e", "RUNDECK_URL=http://rundeck:4440",
"-e", "RUNDECK_API_TOKEN=admin_token_change_me",
"-e", "RUNDECK_API_VERSION=50",
"-e", "PYTHONUNBUFFERED=1",
"rundeck-mcp-rundeck-mcp"
],
"disabled": false,
"autoApprove": [
"list_projects",
"list_jobs",
"get_job",
"get_execution",
"list_job_executions",
"analyze_job_performance",
"get_system_info"
]
}
}
}Note: Environment variables (RUNDECK_URL, RUNDECK_API_TOKEN, etc.) are automatically loaded from the Docker container's environment, so you don't need to specify them in the MCP configuration.
For Other MCP-Compatible Clients
{
"mcpServers": {
"rundeck": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--network=rundeck-mcp_rundeck-network",
"-e", "RUNDECK_URL=http://rundeck:4440",
"-e", "RUNDECK_API_TOKEN=admin_token_change_me",
"-e", "RUNDECK_API_VERSION=50",
"-e", "PYTHONUNBUFFERED=1",
"rundeck-mcp-rundeck-mcp"
],
"disabled": false,
"autoApprove": []
}
}
}3. Test the Integration
Using Kiro IDE
Once the MCP server is configured, you can use the Rundeck MCP tools directly:
# List available MCP tools
mcp_rundeck_list_projects
mcp_rundeck_list_jobs
mcp_rundeck_get_system_infoOr ask Kiro naturally:
"Get my Rundeck system information"
"List my Rundeck projects"
"Show me jobs in the TRIVAGO project"
"Execute the TEST job"
Using Other MCP Clients
Using your MCP-compatible AI assistant, ask:
"Get my Rundeck system information"
"List my Rundeck projects"
"Show me job execution history"
π Project Structure
rundeck-mcp/
βββ rundeck_mcp_server.py # Main MCP server implementation
βββ docker-compose.yml # Docker services configuration
βββ Dockerfile # Container build configuration
βββ entrypoint.sh # Container startup script
βββ requirements.txt # Python dependencies
βββ .env # Environment variables
βββ k8s/ # Kubernetes deployment manifests
β βββ deploy.sh # Automated deployment script
β βββ cleanup.sh # Cleanup script
β βββ namespace.yaml # Kubernetes namespace
β βββ configmap.yaml # Configuration data
β βββ secret.yaml # Sensitive data (API tokens)
β βββ pvc.yaml # Persistent volume claims
β βββ rundeck-deployment.yaml # Rundeck server deployment
β βββ rundeck-service.yaml # Rundeck services
β βββ mcp-deployment.yaml # MCP server deployment
β βββ ingress.yaml # External access
β βββ network-policy.yaml # Standard network policies
β βββ network-policy-strict.yaml # Strict security policies
β βββ network-policy-monitoring.yaml # Monitoring support
βββ README.md # This fileπ§ Configuration
Environment Variables
Variable | Description | Default |
| Rundeck server URL |
|
| Rundeck API authentication token | Required |
| Rundeck API version |
|
Docker Services
Service | Port | Description |
| 4440 | Rundeck server web interface |
| - | MCP server (internal) |
π§ͺ Testing & Verification
β Verified Working Integration
The integration has been tested and verified working with:
Kiro IDE: Full MCP integration with Docker-based server
Rundeck: 5.8.0-20241205
API Version: 50
MCP Protocol: Compatible with MCP-enabled AI assistants
Real-time Data: Live system information retrieval
Docker: Containerized deployment with automatic environment configuration
Kubernetes: Production-ready deployment with NetworkPolicies
Test MCP Server Connection
# Check container status
docker-compose ps
# View MCP server logs
docker logs rundeck-mcp-server
# Test Rundeck connectivity
docker exec rundeck-mcp-server python3 -c "
import asyncio, os
from rundeck_mcp_server import RundeckMCPServer
os.environ['RUNDECK_URL'] = 'http://rundeck:4440'
os.environ['RUNDECK_API_TOKEN'] = 'YOUR_RUNDECK_API_TOKEN_HERE'
os.environ['RUNDECK_API_VERSION'] = '50'
server = RundeckMCPServer()
print(asyncio.run(server.get_system_info()))
"Test with Kiro IDE
Ensure Docker containers are running:
docker-compose psOpen Kiro IDE in the project directory
Verify MCP configuration is loaded in
.kiro/settings/mcp.jsonUse MCP tools directly:
mcp_rundeck_get_system_info mcp_rundeck_list_projects mcp_rundeck_list_jobs project="TRIVAGO"Or ask Kiro: "Get my Rundeck system information"
Test with Other AI Assistants
Open your MCP-compatible AI assistant
Ensure MCP configuration is loaded
Ask: "Get my Rundeck system information"
Verify real-time data is returned
Expected Output
{
"system": {
"rundeck": {
"version": "5.8.0-20241205",
"apiversion": "50",
"build": "5.8.0-20241205",
"serverUUID": "a14bc3e6-75e8-4fe4-a90d-a16dcc976bf6"
},
"stats": {
"memory": {
"free": 428099752,
"total": 918552576,
"unit": "byte"
},
"cpu": {
"processors": 12,
"loadAverage": {
"average": 0,
"unit": "percent"
}
}
},
"os": {
"name": "Linux",
"version": "6.10.14-linuxkit",
"arch": "amd64"
}
}
}π Troubleshooting
Common Issues
MCP Server Not Starting
# Check logs
docker logs rundeck-mcp-server
# Restart container
docker restart rundeck-mcp-serverRundeck Connection Failed
# Verify Rundeck is running
curl http://localhost:4440
# Check API token
docker exec rundeck-mcp-server env | grep RUNDECKAI Assistant MCP Not Working
Verify MCP configuration file exists (
.kiro/settings/mcp.jsonfor Kiro)Check MCP server logs in your AI assistant
Restart AI assistant to reload MCP configuration
For Kiro: Check the MCP Server view in the feature panel
Health Checks
# Container health
docker-compose ps
# Rundeck health
curl http://localhost:4440/api/50/system/info
# MCP server process
docker exec rundeck-mcp-server ps aux | grep pythonπ Performance
Memory Usage: ~50MB per container
Response Time: <2 seconds for most operations
Concurrent Requests: Supports multiple simultaneous MCP calls
API Rate Limits: Respects Rundeck API throttling
π Security
API tokens stored in environment variables
Container network isolation
No external ports exposed for MCP server
Rundeck authentication required
π Production Deployment
Resource Requirements
CPU: 1 core minimum
Memory: 2GB minimum (1GB Rundeck + 1GB overhead)
Storage: 5GB for logs and data
Network: Internal container networking
Scaling Considerations
Single MCP server instance per Rundeck server
Multiple AI assistant instances can connect to same MCP server
Rundeck handles concurrent API requests
π API Reference
System Information
# Get comprehensive system status
await server.get_system_info()Project Management
# List all projects
await server.list_projects()
# List jobs in project
await server.list_jobs("project-name")Job Execution
# Execute job
await server.execute_job("job-id", {"param": "value"})
# Check execution status
await server.get_execution("execution-id")π― Example Usage with AI Assistant
With Kiro IDE
Once configured, you can use both direct MCP tool calls and natural language:
Direct MCP Tool Usage:
# Get system information
mcp_rundeck_get_system_info
# List projects
mcp_rundeck_list_projects
# List jobs in a project
mcp_rundeck_list_jobs project="TRIVAGO"
# Execute a job
mcp_rundeck_execute_job job_id="5a2584fb-d01f-496b-a035-830940b53025"Natural Language with Kiro:
You: "Get my Rundeck system information"
Kiro: [Calls mcp_rundeck_get_system_info]
"Your Rundeck server is version 5.8.0-20241205, running on Linux
with 12 CPU cores and 408 MB free memory..."
You: "List my Rundeck projects"
Kiro: [Calls mcp_rundeck_list_projects]
"You currently have 1 project configured: TRIVAGO project created on
December 20, 2025"
You: "Show me jobs in the TRIVAGO project"
Kiro: [Calls mcp_rundeck_list_jobs with project="TRIVAGO"]
"Found 1 job in TRIVAGO project: TEST job (ID: 5a2584fb-d01f-496b-a035-830940b53025)
in the TEST group, currently enabled and scheduled"With Other MCP Clients
Once configured, you can use natural language with your AI assistant:
You: "Get my Rundeck system information"
AI: [Calls get_rundeck_system_info via MCP]
"Your Rundeck server is version 5.8.0-20241205, running on Linux
with 12 CPU cores and 408 MB free memory..."
You: "List my Rundeck projects"
AI: [Calls list_rundeck_projects via MCP]
"You currently have 1 project configured: TRIVAGO project created on
December 20, 2025"
You: "What's the server uptime?"
AI: [Calls get_rundeck_system_info via MCP]
"Your Rundeck server has been running for 2.6 minutes, started at
15:47:29 UTC"π€ Contributing
Fork the repository
Create feature branch
Test with Docker deployment
Submit pull request
π License
MIT License - see LICENSE file for details
π Support
Issues: GitHub Issues
Documentation: This README
Testing: Use provided test commands
Status: β
Production Ready & Verified Working
Last Updated: December 2025
Version: 1.0.0
Tested With: MCP-compatible AI assistants, Rundeck 5.8.0, MCP Protocol
Created By: dinfiesta@gmail.com
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dinfiesta/rundeck-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server