Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Control AWX/Ansible Tower through natural language - 49 tools for automation
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
AWX_BASE_URL, AWX_TOKEN, AWX_USERNAME, AWX_PASSWORD, AWX_VERIFY_SSL비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"awx": {
"command": "uvx",
"args": [
"awx-mcp-server"
],
"env": {
"AWX_BASE_URL": "your-value",
"AWX_TOKEN": "your-value",
"AWX_USERNAME": "your-value",
"AWX_PASSWORD": "your-value",
"AWX_VERIFY_SSL": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add awx --env AWX_BASE_URL=your-value --env AWX_TOKEN=your-value --env AWX_USERNAME=your-value --env AWX_PASSWORD=your-value --env AWX_VERIFY_SSL=your-value -- uvx awx-mcp-server실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"awx": {
"command": "uvx",
"args": [
"awx-mcp-server"
],
"env": {
"AWX_BASE_URL": "your-value",
"AWX_TOKEN": "your-value",
"AWX_USERNAME": "your-value",
"AWX_PASSWORD": "your-value",
"AWX_VERIFY_SSL": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"awx": {
"type": "stdio",
"command": "uvx",
"args": [
"awx-mcp-server"
],
"env": {
"AWX_BASE_URL": "your-value",
"AWX_TOKEN": "your-value",
"AWX_USERNAME": "your-value",
"AWX_PASSWORD": "your-value",
"AWX_VERIFY_SSL": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
AWX_USERNAME envAWX_VERIFY_SSL env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검
레지스트리 이름이 GitHub 계정 SurgeX-Labs 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: AWX_BASE_URL, AWX_TOKEN, AWX_PASSWORD
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(1.1.2)은 9개월 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Python (uv)도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Aiterm MCP
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Persistent terminals and one launcher for Claude, Codex, Grok, Cursor, and Antigravity harnesses.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
Industry-standard MCP server for AWX/AAP/Ansible Tower automation
The AWX MCP Server connects AWX, Ansible Automation Platform (AAP), and Ansible Tower to AI tools, giving AI agents and assistants the ability to manage job templates, launch and monitor jobs, manage inventories and projects, and automate infrastructure workflows through natural language interactions.
Designed for developers who want to integrate their AI tools with AWX/AAP/Tower automation capabilities.
✨ Supports AWX (open source), AAP (Red Hat), and Ansible Tower (legacy) - same API, same features!
Standard MCP implementation using STDIO transport (like Postman MCP, Claude MCP)
Use Case: AI assistants (GitHub Copilot, Claude, Cursor) + AWX automation
Features:
pip install git+https://github.com/USERNAME/awx-mcp-server.gitBest For: AI-powered automation, natural language AWX control, any MCP client
Optional UI features for VS Code users
Use Case: VS Code users who want additional UI (sidebar views, tree providers)
Features:
Best For: VS Code users wanting rich UI alongside MCP functionality
You have three ways to install and run the AWX MCP Server:
| Method | Best For | Installation |
|---|---|---|
| 📦 PyPI (pip) | Quick install, production use | pip install awx-mcp-server |
| 🔧 From Source | Customization, development, enterprise forks | Clone from GitHub, edit code |
| 🐳 Docker | Containerized deployment, teams | docker run surgexlabs/awx-mcp-server |
→ For customization and running from your own repository, see [INSTALL_FROM_SOURCE.md](INSTALL_FROM_SOURCE.md)
# Install the MCP server
pip install awx-mcp-server
python -m awx_mcp_server --version
Edit VS Code settings.json (Ctrl+, → Search "chat.mcp"):
{
"mcpServers": { "awx": { "command": "python", "args": ["-m", "awx_mcp_server"], "env": { "AWX_BASE_URL": "https://your-awx.com" }, "secrets": { "AWX_TOKEN": "your-awx-token" } } } }
Restart VS Code and the MCP server will be available in Copilot Chat.
Perfect for: Forking, customization, enterprise deployments, contributing
Quick install:
# Clone the repository (or your fork)
git clone https://github.com/SurgeX-Labs/awx-mcp-server.git cd awx-mcp-server/awx-mcp-python/server
python -m venv venv source venv/bin/activate # Windows: .\venv\Scripts\Activate.ps1
pip install -e .
python -m awx_mcp_server --version
VS Code configuration (use venv Python):
{
"mcpServers": { "awx": { "command": "/path/to/awx-mcp-server/awx-mcp-python/server/venv/bin/python", "args": ["-m", "awx_mcp_server"], "env": { "AWX_BASE_URL": "https://your-awx.com" }, "secrets": { "AWX_TOKEN": "your-token" } } } }
📖 Full Guide: See INSTALL_FROM_SOURCE.md for:
cd awx-mcp-python/server
docker-compose up -d
cd awx-mcp-python/server
pip install -e .
awx-mcp-server env list
awx-mcp-server start --host 0.0.0.0 --port 8000
# List job templates
awx-mcp-server templates list
awx-mcp-server jobs launch "Deploy App" --extra-vars '{"env":"prod"}'
awx-mcp-server jobs get 123 awx-mcp-server jobs stdout 123
awx-mcp-server projects list awx-mcp-server projects update "My Project"
awx-mcp-server inventories list
# Create API key (first time)
curl -X POST http://localhost:8000/api/keys \ -H "Content-Type: application/json" \ -d '{"name": "chatbot", "tenant_id": "team1", "expires_days": 90}'
curl http://localhost:8000/api/v1/job-templates \ -H "X-API-Key: awx_mcp_xxxxx"
curl -X POST http://localhost:8000/api/v1/jobs/launch \ -H "X-API-Key: awx_mcp_xxxxx" \ -H "Content-Type: application/json" \ -d '{"template_name": "Deploy App", "extra_vars": {"env": "prod"}}'
curl http://localhost:8000/api/v1/jobs/123 \ -H "X-API-Key: awx_mcp_xxxxx"
curl http://localhost:8000/api/v1/jobs/123/stdout \ -H "X-API-Key: awx_mcp_xxxxx"
cd server/deployment/helm
helm install awx-mcp-server . \ --set replicaCount=3 \ --set autoscaling.enabled=true \ --set taskPods.enabled=true
See: server/README.md for detailed guide
import httpx
class AWXChatbot: def init(self, api_key: str, base_url: str = "http://localhost:8000"): self.api_key = api_key self.base_url = base_url self.headers = {"X-API-Key": api_key}
async def handle_message(self, user_message: str): """Process user message and call AWX API""" if "list templates" in user_message.lower(): return await self.list_templates() elif "launch" in user_message.lower(): template_name = self.extract_template_name(user_message) return await self.launch_job(template_name) elif "job status" in user_message.lower(): job_id = self.extract_job_id(user_message) return await self.get_job(job_id)
async def list_templates(self): async with httpx.AsyncClient() as client: response = await client.get( f"{self.base_url}/api/v1/job-templates", headers=self.headers ) return response.json()
async def launch_job(self, template_name: str, extra_vars: dict = None): async with httpx.AsyncClient() as client: response = await client.post( f"{self.base_url}/api/v1/jobs/launch", headers=self.headers, json={"template_name": template_name, "extra_vars": extra_vars} ) return response.json()
async def get_job(self, job_id: int): async with httpx.AsyncClient() as client: response = await client.get( f"{self.base_url}/api/v1/jobs/{job_id}", headers=self.headers ) return response.json()
chatbot = AWXChatbot(api_key="awx_mcp_xxxxx") response = await chatbot.handle_message("list all job templates")
from slack_bolt.async_app import AsyncApp
import httpx
app = AsyncApp(token="[PopNx MCP ตัดค่าที่หน้าตาเหมือนกุญแจออก]") awx_api_key = "awx_mcp_xxxxx" awx_base_url = "http://localhost:8000"
@app.message("awx") async def handle_awx_command(message, say): text = message['text']
if "launch" in text:
template = extract_template(text)
async with httpx.AsyncClient() as client: response = await client.post( f"{awx_base_url}/api/v1/jobs/launch", headers={"X-API-Key": awx_api_key}, json={"template_name": template} ) job = response.json()
await say(f"✅ Job launched! ID: {job['id']}, Status: {job['status']}")
Both VS Code extension and web server support all 16 operations:
env_list - List all configured AWX environmentsenv_test - Test connection to AWX environmentenv_get_active - Get currently active environmentlist_job_templates - List all job templates (with filtering)get_job_template - Get template details by name/IDlist_jobs - List all jobs (filter by status, date)get_job - Get job details by IDjob_launch - Launch job from templatejob_cancel - Cancel running jobjob_stdout - Get job output/logsjob_events - Get job events (playbook tasks)list_projects - List all projectsproject_update - Update project from SCMlist_inventories - List all inventoriesget_inventory - Get inventory detailsawx-mcp-python/
├── vscode-extension/ # VS Code extension with GitHub Copilot │ ├── src/ # Extension TypeScript source │ ├── package.json # Extension manifest │ ├── README.md # Extension guide │ └── CHANGELOG.md │ │ ├── server/ # Standalone web server │ ├── src/awx_mcp_server/ │ │ ├── cli.py # CLI commands (468 lines) │ │ ├── http_server.py # FastAPI REST API │ │ ├── mcp_server.py # MCP server integration │ │ ├── monitoring.py # Prometheus metrics │ │ ├── task_pods.py # Kubernetes task pods │ │ ├── clients/ # AWX clients (self-contained) │ │ ├── storage/ # Config & credentials │ │ └── domain/ # Models & exceptions │ ├── deployment/ │ │ ├── docker-compose.yml # Docker Compose stack │ │ ├── Dockerfile # Container image │ │ └── helm/ # Kubernetes Helm chart │ ├── pyproject.toml │ └── README.md │ └── tests/ # Shared test suite ├── test_*.py └── conftest.py
┌─────────────────┐
│ VS Code IDE │ │ │ │ ┌───────────┐ │ stdio ┌──────────────┐ │ │ GitHub │──┼────transport───▶│ MCP Server │ │ │ Copilot │ │ (local) │ (shared) │ │ │ Chat │◀─┼────────────────│ 16 Tools │ │ └───────────┘ │ └──────────────┘ │ │ │ │ ┌───────────┐ │ │ │ │ @awx Chat │ │ │ │ │Participant│ │ ▼ │ └───────────┘ │ ┌──────────────┐ └─────────────────┘ │ AWX │ │ Instance │ └──────────────┘
Flow:
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요