Token导航 LogoToken导航

MCP Server · 运维云端

awx advanced tools

AWX Advanced Tools是一个企业级的微服务平台,通过自然语言命令使大型语言模型(LLMs)能够管理Ansible AWX/Tower基础设施,适用于DevOps自动化、自助服务操作和自动化修复等场景。

stdio官方级别未说明来源级核验工具 31
自动化运维企业安全Python生产就绪

快速开始

作者 / 组织
antuelle78
提供方
antuelle78
运行时
Python

工具数量

31

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

awx advanced tools 属于运维云端类 MCP Server,公开资料标注 31 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前要先准备 访问 Token。

分类

运维云端

传输方式

stdio

认证方式

访问 Token

部署方式

公开资料未说明

安装与配置

安装命令

python3 -m venv .venv

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 31 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

AWX高级工具

Ansible AWX/Tower的生产级人工智能自动化平台

概述

AWX Advanced Tools是一个企业级微服务平台,它使大型语言模型(LLM)能够通过自然语言命令管理Ansible AWX/Tower基础设施。它基于10台专用服务器的分布式架构构建,提供智能路由、全面的安全功能和生产级可靠性。

主要特点

  • 多服务器架构:针对小型LLM上下文窗口优化的10个专用微服务
  • 企业安全:模拟运行模式、确认工作流程、全面的审计日志记录
  • 生产就绪:完整的CI/CD管道、健康检查、监控集成
  • 灵活部署:Docker Compose用于开发,Kubernetes用于生产
  • LLM优化:具有模型感知功能的智能工具发现

用例

  • DevOps自动化:自然语言作业执行和基础设施管理
  • 自助服务运营:使非技术团队能够管理AWX工作流
  • 自动修复:人工智能驱动的事件响应和系统恢复
  • 审计与合规:完成活动记录和变更跟踪
  • 集成中心:将AWX与LLM驱动的聊天界面连接

______________________________________________________________________

目录

  1. 建筑
  2. 先决条件
  3. 快速开始
  4. 部署

- - Kubernetes

  1. 配置
  2. API 参考
  3. 安全
  4. 监控
  5. 故障排除
  6. 发展
  7. 贡献
  8. 许可证

______________________________________________________________________

建筑

多服务器设计

AWX Advanced Tools采用微服务架构,有10个专用服务器,每个服务器处理特定的AWX域:

┌─────────────────────────────────────────────────────────┐
│            AWX Advanced Tools v2.0                       │
│        Multi-Server Microservices Architecture           │
├──────────┬──────────┬──────────┬──────────┬────────────┤
│ Core     │ Inventory│ Templates│ Users    │ Projects   │
│ :8001    │ :8002    │ :8003    │ :8004    │ :8005      │
│ 6 tools  │ 8 tools  │ 7 tools  │ 7 tools  │ 7 tools    │
├──────────┼──────────┼──────────┼──────────┼────────────┤
│ Orgs     │ Schedules│ Advanced │ Notify   │ Infra      │
│ :8006    │ :8007    │ :8008    │ :8009    │ :8010      │
│ 6 tools  │ 7 tools  │ 5 tools  │ 2 tools  │ 3 tools    │
└──────────┴──────────┴──────────┴──────────┴────────────┘
                          │
                    ┌─────▼─────┐
                    │   Redis   │
                    │   Cache   │
                    └───────────┘
                          │
                    ┌─────▼─────┐
                    │    AWX    │
                    │  Instance │
                    └───────────┘

服务器职责

服务器端口用途工具
核心8001健康检查、工作监控ping_awx(), get_job(), list_jobs(), cancel_job()
库存8002库存和主机管理list_inventories(), create_inventory(), list_hosts(), create_host()
模板8003作业模板操作list_templates(), launch_job_template(), create_job_template()
用户8004用户和团队管理list_users(), create_user(), update_user(), delete_user()
项目8005SCM项目管理list_projects(), create_project(), sync_project()
组织8006组织CRUDlist_organizations(), create_organization(), update_organization()
日程表8007作业调度create_schedule(), toggle_schedule(), list_schedules()
高级8008证书和高级操作list_credentials(), create_credential(), update_credential()
通知8009活动监测list_activity_stream()
基础设施8010系统信息get_awx_version(), list_instance_groups(), get_awx_config()

设计原则

  • 单一责任:每台服务器管理一个域
  • 共享库:通用AWX客户端确保一致性
  • 无状态:服务器可以水平扩展
  • 健康监测:所有服务器都暴露 /health 端点
  • 审计跟踪:完整记录所有操作

技术栈

  • 框架:FastAPI 0.115+(异步/等待)
  • 语言:Python 3.10+
  • 验证:Pydantic 2.8+
  • HTTP客户端:httpx(异步)
  • 缓存:Redis(可选)
  • 容器:Docker+Docker组合
  • 编排:库贝内特斯1.20+

______________________________________________________________________

先决条件

必需

  • python:3.10或更高
  • 码头工人:20.10或更高
  • Docker Compose:2.0或更高
  • AWX/塔:正在运行具有API访问权限的实例
  • 网络:与AWX实例的连接

可选的

  • Kubernetes:1.20+(用于生产部署)
  • 瑞迪斯:用于分布式缓存
  • 普罗米修斯:用于指标收集
  • 格拉法纳:用于监控仪表板

系统要求

发展
  • CPU:2核
  • 内存:4GB
  • 磁盘:10 GB可用空间
生产
  • CPU:4+核
  • 内存:8+GB
  • 磁盘:20+GB SSD
  • 网络:对AWX实例的低延迟

______________________________________________________________________

快速开始

1.克隆存储库

git clone https://github.com/antuelle78/awx_advanced_tools.git
cd awx_advanced_tools/mcp-server

2.配置环境

cp .env.example .env

编辑 .env 使用您的AWX证书:

AWX_BASE_URL=https://your-awx-instance.com
AWX_USERNAME=admin
AWX_PASSWORD=your_secure_password

3.使用Docker Compose进行部署

选项A:单个单片服务器
docker compose up -d

服务器位于: http://localhost:8001

选项B:多服务器体系结构(推荐)
docker compose -f docker-compose.multi.yml up -d

服务器在端口8001-8010上可用。

4.验证部署

# Check all servers
for port in {8001..8010}; do
  echo -n "Port $port: "
  curl -s http://localhost:$port/health | jq -r '.status'
done

预期产量: healthy 对于所有服务器。

5.测试API

# List inventories
curl http://localhost:8002/inventories

# List job templates
curl http://localhost:8003/templates

# Check AWX connectivity
curl http://localhost:8001/ping

______________________________________________________________________

部署

Docker编写部署

开发环境设置
# Build and start all services
docker compose -f docker-compose.multi.yml up -d --build

# View logs
docker compose -f docker-compose.multi.yml logs -f

# Stop services
docker compose -f docker-compose.multi.yml down
配置

这 docker-compose.multi.yml 包括:

  • 10台专用MCP服务器
  • Redis缓存
  • 所有服务的健康检查
  • 持久审计日志
  • 网络隔离
扩展个人服务
# Scale inventory server to 3 replicas
docker compose -f docker-compose.multi.yml up -d --scale inventory=3

# Scale templates server to 2 replicas
docker compose -f docker-compose.multi.yml up -d --scale templates=2

Kubernetes部署

先决条件
  • kubectl配置了集群访问权限
  • Kubernetes 1.20或更高版本
  • LoadBalancer或Ingress控制器(用于外部访问)
快速部署
# Apply ConfigMap (update with your AWX credentials first)
kubectl apply -f k8s/configmap.yaml

# Deploy all 10 servers
kubectl apply -f k8s/multi-server-deployment.yaml

# Verify deployment
kubectl get pods -l tier=mcp-server
kubectl get services | grep mcp-
生产配置
  1. 更新配置 持有生产证书:
# k8s/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: awx-advanced-tools-config
data:
  AWX_BASE_URL: "https://awx.production.com"
  AWX_USERNAME: "automation-user"
  # Use Secrets for sensitive data in production
  1. 创建Kubernetes密钥 对于凭据:
kubectl create secret generic awx-credentials \
  --from-literal=username=admin \
  --from-literal=password=your_secure_password
  1. 配置资源限制:
resources:
  requests:
    memory: "256Mi"
    cpu: "250m"
  limits:
    memory: "512Mi"
    cpu: "500m"
  1. 设置Ingress 对于外部访问:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: mcp-ingress
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
  tls:
  - hosts:
    - awx-tools.example.com
    secretName: awx-tools-tls
  rules:
  - host: awx-tools.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: mcp-core
            port:
              number: 8001
  1. 启用水平Pod自动缩放:
kubectl autoscale deployment mcp-inventory --cpu-percent=70 --min=2 --max=10
kubectl autoscale deployment mcp-templates --cpu-percent=70 --min=2 --max=10
监控Kubernetes部署
# Check pod status
kubectl get pods -l tier=mcp-server -w

# View logs from specific server
kubectl logs -l app=mcp-core -f --tail=100

# Describe pod for troubleshooting
kubectl describe pod 

# Check service endpoints
kubectl get endpoints

______________________________________________________________________

配置

环境变量

所有服务器都接受以下环境变量:

必需
变量描述示例
AWX_BASE_URLAWX/塔API基础URLhttps://awx.example.com
AWX_USERNAMEAWX用户名(如果不使用令牌)admin
AWX_PASSWORDAWX密码(如果不使用令牌)secure_password
AWX_TOKENAWX API令牌(替代用户/通行证)AbCdEf123456...
可选的
变量描述默认值
AUDIT_LOG_DIR审计日志目录/var/log/mcp
REDIS_HOSTRedis服务器主机名redis
REDIS_PORTRedis服务器端口6379
REDIS_DBRedis数据库编号0
LLM_PROVIDERLLM提供者(default 或 ollama)default
LLM_ENDPOINTLLM API端点http://localhost:11434
LLM_MODELLLM型号名称gpt-4o
LLM_API_KEYLLM API密钥-
JWT_SECRETJWT身份验证的秘密随机

配置文件

创建 .env 文件:

# AWX Configuration
AWX_BASE_URL=https://awx.production.com
AWX_TOKEN=your_awx_api_token

# Or use username/password
AWX_USERNAME=automation-user
AWX_PASSWORD=secure_password

# Logging
AUDIT_LOG_DIR=/var/log/awx-tools

# LLM Integration (Optional)
LLM_PROVIDER=ollama
LLM_ENDPOINT=http://ollama:11434
LLM_MODEL=granite3.1-dense:8b

# Cache (Optional)
REDIS_HOST=redis
REDIS_PORT=6379

# Security
JWT_SECRET=change_this_to_random_string

AWX用户权限

AWX用户/令牌必须具有适当的权限:

最低权限:

  • 阅读:所有资源
  • 执行:作业模板
  • 创建/更新/删除:基于用例

推荐设置:

  1. 创建专用AWX用户:
# In AWX UI: Users > Add User
Username: awx-tools-automation
Organization: Default
User Type: System Administrator
  1. 生成API令牌:
# In AWX UI: Users > awx-tools-automation > Tokens > Add Token
Scope: Write
  1. 在配置中使用令牌:
AWX_TOKEN=

______________________________________________________________________

API 参考

响应格式

所有API端点返回的响应格式为 降价表 以获得最佳的LLM消耗。这提供了结构化、可读的输出,与人工智能助手和聊天界面配合良好。

表响应格式

清单的操作 以表格格式返回分页结果:

| ID | Name | Description | Created | Modified |
|----|------|-------------|---------|----------|
| 7  | Demo Job Template | N/A | 2025-09-13 15:39 | 2025-10-25 15:22 |
| 8  | Backup Template | Automated backup | 2025-10-01 09:15 | 2025-10-25 16:45 |

单项操作 返回详细的键值表:

| Property | Value |
|----------|-------|
| Id | 7 |
| Name | Demo Job Template |
| Description | N/A |
| Created | 2025-09-13 15:39 |
| Modified | 2025-10-25 15:22 |

操作结果 显示成功/失败状态:

| Operation | Status | Details |
|-----------|--------|---------|
| Launch Job Template | Success | Job ID: 157 started |
LLM的好处
  • 结构化数据:一致的列布局便于解析
  • 截断内容:长文本会自动用“…”截断
  • 格式化日期:ISO时间戳转换为可读格式
  • 布尔值:正确/错误显示为“是”/“否”
  • 分页信息:显示截断结果时的总计数

健康检查端点

所有服务器都公开标准健康端点:

GET/健康

返回服务器运行状况。

答复:

{
  "status": "healthy",
  "timestamp": "2025-11-01T22:00:00Z",
  "server": "core",
  "version": "2.0.0"
}
获取/准备就绪

返回准备状态(包括AWX连接检查)。

答复:

{
  "ready": true,
  "awx_connected": true,
  "services": {
    "awx": "ok",
    "redis": "ok"
  }
}

核心服务器(端口8001)

GET/ping

测试AWX连接。

答复:

{
  "message": "pong",
  "awx_version": "23.3.0",
  "connected": true
}
GET/职位

列出所有分页作业。

参数:

  • page (int):页码(默认值:1)
  • page_size (int):每页项目数(默认值:20)

答复:

| ID | Name | Status | Started | Finished |
|----|------|--------|---------|----------|
| 42 | Deploy Application | successful | 2025-11-01 20:00 | 2025-11-01 20:05 |
| 43 | Database Backup | successful | 2025-11-01 19:30 | 2025-11-01 19:45 |
GET/jobs/{job_id}

获取具体的工作细节。

答复:

| Property | Value |
|----------|-------|
| Id | 42 |
| Name | Deploy Application |
| Status | successful |
| Job Template | 10 |
| Started | 2025-11-01 20:00 |
| Finished | 2025-11-01 20:05 |
| Elapsed | 300 |

库存服务器(端口8002)

GET/库存

列出库存。

参数:

  • name (str):按名称筛选
  • organization (int):按组织ID筛选

答复:

| ID | Name | Organization | Hosts Count | Groups Count |
|----|------|--------------|-------------|--------------|
| 1  | Production | Default | 50 | 5 |
| 2  | Staging | Default | 10 | 2 |
邮政编码/库存

创建新库存。

请求正文:

{
  "name": "Staging",
  "description": "Staging environment",
  "organization": 1,
  "variables": {
    "env": "staging"
  }
}

答复:

{
  "id": 6,
  "name": "Staging",
  "created": "2025-11-01T22:00:00Z"
}

模板服务器(端口8003)

POST/模板/{template_id}/启动

启动作业模板。

请求正文:

{
  "extra_vars": {
    "target_env": "production",
    "backup_enabled": true
  }
}

答复:

| Operation | Status | Details |
|-----------|--------|---------|
| Launch Job Template | Success | Job ID: 157 started |

有关API的完整文档,请参阅 API_REFERENCE.md.

用户服务器(端口8004)

GET/用户

列出所有用户。

答复:

| ID | Username | First Name | Last Name | Email |
|----|----------|------------|-----------|-------|
| 1  | admin | System | Administrator | admin@example.com |
| 2  | developer | John | Doe | john.doe@example.com |
POST/用户

创建新用户。

请求正文:

{
  "username": "newuser",
  "first_name": "New",
  "last_name": "User",
  "email": "new@example.com",
  "password": "secure_password"
}

答复:

| Operation | Status | Details |
|-----------|--------|---------|
| Create User | Success | ID: 3, Name: newuser |

项目服务器(端口8005)

GET/项目

列出所有项目。

答复:

| ID | Name | SCM Type | SCM URL | Status |
|----|------|----------|---------|--------|
| 1  | Demo Project | git | https://github.com/example/demo.git | successful |
POST/项目

创建一个新项目。

请求正文:

{
  "name": "New Project",
  "scm_type": "git",
  "scm_url": "https://github.com/example/new.git",
  "organization": 1
}

答复:

| Operation | Status | Details |
|-----------|--------|---------|
| Create Project | Success | ID: 2, Name: New Project |

组织服务器(端口8006)

GET/组织

列出所有组织。

答复:

| ID | Name | Description | Created | Modified |
|----|------|-------------|---------|----------|
| 1  | Default | Default organization | 2025-09-13 15:39 | 2025-10-25 15:22 |

计划服务器(端口8007)

GET/时间表

列出所有时间表。

答复:

| ID | Name | Template | RRULE | Enabled |
|----|------|----------|-------|---------|
| 1  | Daily Backup | 5 | FREQ=DAILY | Yes |
POST/时间表

创建新计划。

请求正文:

{
  "name": "Weekly Report",
  "rrule": "FREQ=WEEKLY;BYDAY=MO",
  "unified_job_template": 10
}

答复:

| Operation | Status | Details |
|-----------|--------|---------|
| Create Schedule | Success | ID: 2, Name: Weekly Report |

高级服务器(端口8008)

GET/凭据

列出所有凭据。

答复:

| ID | Name | Type | Created | Modified |
|----|------|------|---------|----------|
| 1  | AWS Creds | aws | 2025-09-13 15:39 | 2025-10-25 15:22 |

通知服务器(端口8009)

GET/活动流

获取活动流事件。

答复:

| ID | Type | User | Action | Timestamp |
|----|------|------|--------|-----------|
| 123 | job | admin | launched | 2025-11-01 20:00 |

基础结构服务器(端口8010)

GET/config

获取AWX系统配置。

答复:

| Property | Value |
|----------|-------|
| Version | 23.3.0 |
| License | Enterprise |
| Install Type | traditional |

______________________________________________________________________

安全

认证

基本认证

所有端点(除 /health)需要身份验证:

curl -u username:password http://localhost:8001/ping
JWT身份验证
  1. 获取JWT令牌:
curl -X POST http://localhost:8001/login \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"password"}'
  1. 在请求中使用令牌:
curl -H "Authorization: Bearer " \
  http://localhost:8002/inventories

安全特性

干运行模式

未执行的测试操作:

curl -X DELETE "http://localhost:8002/inventories/5?dry_run=true"

答复:

| Operation | Status | Details |
|-----------|--------|---------|
| Delete Inventory | Dry Run | Would delete inventory 'Staging' with 10 hosts |
需要确认

破坏性操作需要明确确认:

curl -X DELETE "http://localhost:8002/inventories/5?confirm=true"

没有 confirm=true,请求将被拒绝:

| Operation | Status | Details |
|-----------|--------|---------|
| Delete Inventory | Failed | Confirmation required - add '?confirm=true' |
操作后验证

所有删除操作均验证完成情况:

| Operation | Status | Details |
|-----------|--------|---------|
| Delete Inventory | Success | Inventory deleted and verified (ID: 5) |

审计日志

所有操作都记录到审核文件中:

日志位置: ${AUDIT_LOG_DIR}/mcp_server.log

日志格式:

{
  "timestamp": "2025-11-01T22:00:00Z",
  "user": "admin",
  "action": "delete_inventory",
  "resource_type": "inventory",
  "resource_id": 5,
  "success": true,
  "source_ip": "192.168.1.100"
}

网络安全

生产检查清单
  • \[\]对AWX API使用HTTPS
  • \[\]为Redis启用TLS
  • \[\]配置防火墙规则
  • \[\]使用Kubernetes网络策略
  • \[\]启用JWT身份验证
  • \[\]定期轮换凭据
  • \[\]监控审核日志
  • \[\]设置入侵检测
Kubernetes网络策略
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: mcp-server-policy
spec:
  podSelector:
    matchLabels:
      tier: mcp-server
  policyTypes:
  - Ingress
  - Egress
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: gateway
    ports:
    - protocol: TCP
      port: 8000
  egress:
  - to:
    - podSelector:
        matchLabels:
          app: redis
    ports:
    - protocol: TCP
      port: 6379
  - to:
    - namespaceSelector: {}
    ports:
    - protocol: TCP
      port: 443  # AWX HTTPS

______________________________________________________________________

监控

健康检查

配置健康监测:

Docker编写:

healthcheck:
  test: ["CMD", "curl", "-f", "http://localhost:8001/health"]
  interval: 30s
  timeout: 10s
  retries: 3
  start_period: 10s

库贝内特斯:

livenessProbe:
  httpGet:
    path: /health
    port: 8000
  initialDelaySeconds: 10
  periodSeconds: 30
readinessProbe:
  httpGet:
    path: /ready
    port: 8000
  initialDelaySeconds: 5
  periodSeconds: 10

指标

Prometheus指标公布于 /metrics:

关键指标:

  • http_requests_total -HTTP请求总数
  • http_request_duration_seconds -请求延迟
  • awx_api_calls_total -AWX API调用
  • awx_api_errors_total -AWX API错误
  • cache_hits_total -Redis缓存命中率
  • cache_misses_total -Redis缓存丢失

Prometheus配置:

scrape_configs:
  - job_name: 'mcp-servers'
    static_configs:
      - targets:
        - 'mcp-core:8001'
        - 'mcp-inventory:8002'
        - 'mcp-templates:8003'
        # ... other servers

日志记录

日志级别

通过环境设置:

LOG_LEVEL=INFO  # DEBUG, INFO, WARNING, ERROR, CRITICAL
集中化的日志

ELK堆栈:

filebeat:
  inputs:
    - type: log
      paths:
        - /var/log/mcp/*.log
      json.keys_under_root: true
  output:
    elasticsearch:
      hosts: ["elasticsearch:9200"]

洛基:

promtail:
  config:
    clients:
      - url: http://loki:3100/loki/api/v1/push
    scrape_configs:
      - job_name: mcp-servers
        static_configs:
          - labels:
              app: mcp-server
            paths:
              - /var/log/mcp/*.log

告警

普罗米修斯警报规则:

groups:
  - name: mcp-servers
    rules:
      - alert: HighErrorRate
        expr: rate(http_requests_total{status=~"5.."}[5m]) > 0.05
        for: 5m
        annotations:
          summary: "High error rate on {{ $labels.server }}"
      
      - alert: AWXConnectionDown
        expr: up{job="mcp-servers"} == 0
        for: 2m
        annotations:
          summary: "AWX connection lost on {{ $labels.instance }}"

______________________________________________________________________

故障排除

常见问题

1.服务器无法启动

症状: 集装箱立即出口

诊断:

docker logs mcp-server-core-1

解决:

  • 在中检查AWX凭据 .env
  • 验证AWX实例是否可访问
  • 检查端口可用性: netstat -tuln | grep 8001
  • 审查环境变量: docker compose config
2.AWX连接失败

症状: 健康检查失败, /ready 退货未准备好

诊断:

curl http://localhost:8001/ping

解决:

  • 验证AWX_BASE_URL是否正确
  • 检查网络连接: ping awx-server
  • 直接测试AWX API:
  curl -u username:password https://awx-server/api/v2/ping
  • 检查防火墙规则
  • 如果使用HTTPS,请验证SSL证书
3.内存使用率高

症状: 容器OOM填充,响应缓慢

诊断:

docker stats

解决:

  • 在中设置内存限制 docker-compose.yml:
  deploy:
    resources:
      limits:
        memory: 512M
  • 启用Redis缓存以减少API调用
  • 横向扩展服务
  • 审查审计日志中的异常活动
4.身份验证错误

症状: 401未经授权的响应

解决:

  • 验证AWX凭据
  • 检查令牌过期
  • 重新生成AWX API令牌
  • 查看身份验证尝试的审核日志

调试模式

启用调试日志记录:

LOG_LEVEL=DEBUG docker compose -f docker-compose.multi.yml up
5.多服务器架构问题

症状: 一些服务器运行正常,但其他服务器没有响应

诊断:

# Check all servers individually
for port in {8001..8010}; do
  echo "=== Port $port ==="
  curl -s http://localhost:$port/health
  echo
done

解决:

  • 确保所有10台服务器都已启动: docker compose -f docker-compose.multi.yml up -d
  • 检查特定于服务器的日志: docker logs mcp-server-core-1
  • 验证端口可用性: netstat -tuln | grep -E '800[1-9]|8010'
  • 检查共享卷装载情况 shared/ 目录
6.表格格式问题

症状: API返回纯文本而不是markdown表

诊断:

# Test table formatting
curl http://localhost:8002/inventories

预期响应:

| ID | Name | Organization | Hosts Count | Groups Count |
|----|------|--------------|-------------|--------------|

意外响应(纯文本):

count: 2
results: [...]

解决:

  • 确保 shared/table_formatter.py 所有服务器都可以访问
  • 检查Docker卷装载: - ./shared:/app/shared
  • 验证服务器路由中的TableFormatter导入
  • 代码更改后重新启动服务器
7.服务器特定连接问题

核心服务器(8001)问题:

# Test AWX connectivity
curl http://localhost:8001/test

库存服务器(8002)问题:

# Test inventory access
curl http://localhost:8002/test

模板服务器(8003)问题:

# Test template access
curl http://localhost:8003/test

支持资源

  • 文档:参见 /docs 目录
  • 问题:GitHub问题跟踪器
  • 日志:检查 ./logs/*/mcp_server.log
  • 健康:监视器 /health 和 /ready 端点
  • 多服务器健康检查:运行上面的loop命令检查所有服务器

______________________________________________________________________

发展

地方发展设置

# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Install development dependencies
pip install -r requirements-dev.txt

# Run tests
pytest

# Run linter
ruff check .

# Run type checker
mypy app/

项目结构

mcp-server/
├── app/                      # Monolithic server (legacy)
│   ├── adapters/            # AWX adapters
│   ├── llm/                 # LLM integration
│   └── ...
├── servers/                  # Multi-server architecture
│   ├── core/                # Core server
│   ├── inventory/           # Inventory server
│   ├── templates/           # Templates server
│   └── ...                  # Other servers
├── shared/                   # Shared libraries
│   ├── awx_client.py        # Common AWX client
│   ├── config.py            # Configuration
│   └── middleware.py        # Common middleware
├── tests/                    # Test suite
├── k8s/                      # Kubernetes manifests
├── docs/                     # Documentation
├── docker-compose.yml        # Single server compose
├── docker-compose.multi.yml  # Multi-server compose
└── README.md                # This file

添加新服务器

  1. 复制模板:
cp -r servers/_template servers/my-new-server
  1. 更新文件:
  • servers/my-new-server/main.py -服务器配置
  • servers/my-new-server/routes.py -API端点
  • servers/my-new-server/schemas.py -Pydantic模型
  1. 添加到Docker Compose:
my-new-server:
  build:
    context: .
    dockerfile: servers/my-new-server/Dockerfile
  ports:
    - "8011:8011"
  environment:
    - AWX_BASE_URL=${AWX_BASE_URL}
  networks:
    - mcp-network
  1. 添加到Kubernetes:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mcp-my-new-server
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mcp-my-new-server
  template:
    spec:
      containers:
      - name: my-new-server
        image: awx-tools:my-new-server
        ports:
        - containerPort: 8000

运行测试

# Run all tests
pytest

# Run specific test file
pytest tests/test_awx_service.py

# Run with coverage
pytest --cov=app --cov-report=html

# Run integration tests
pytest -m integration

# Run only unit tests
pytest -m "not integration"

代码质量

# Lint code
ruff check . --fix

# Format code
ruff format .

# Type check
mypy --explicit-package-bases --ignore-missing-imports app/

# Security scan
bandit -r app/
safety scan

______________________________________________________________________

贡献

我们欢迎捐款!请看 贡献.md 作为指导方针。

快速贡献指南

  1. 分叉存储库
  2. 创建特征分支: git checkout -b feature/my-feature
  3. 进行更改 并添加测试
  4. 进行质量检查: ruff check . && mypy app/ && pytest
  5. 提交: git commit -m "feat: Add my feature"
  6. 推: git push origin feature/my-feature
  7. 创建拉取请求

编码标准

  • 遵循PEP 8风格指南
  • 使用类型提示
  • 为公共函数编写文档字符串
  • 为新功能添加测试
  • 更新文档

______________________________________________________________________

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

______________________________________________________________________

致谢

  • 内置 快速API
  • 由...驱动 Ansible AWX
  • 受人工智能驱动的基础设施自动化需求的启发

______________________________________________________________________

更新日志

v2.0.0-多服务器架构(2025-11-01)

  • \[专业\] 实现了10服务器微服务架构
  • \[功能\] 为每个AWX域添加了专用服务器
  • \[功能\] 针对小型LLM优化系统提示
  • \[功能\] 完整的Kubernetes部署支持
  • \[改进\] 每个端点的工具减少80%
  • \[改进\] 响应令牌减少60%
  • \[改进\] 增加了全面的健康检查
  • \[文件\] 生产级文件

v1.0.0-初始版本

  • 单体服务器
  • AWX基本操作
  • LLM集成
  • Docker部署

有关详细的更改日志,请参阅 更改日志.md.

______________________________________________________________________

支持

  • 文档: /docs
  • 问题:
  • 讨论:

______________________________________________________________________

AWX高级工具v2.0 -生产就绪的人工智能驱动的AWX自动化平台。

工具与能力

工具数量

31

资源数量

0

提示词数量

0

能力标签

自动化运维Python本地部署自然语言处理微服务架构企业安全生产就绪

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

看服务状态

查询容器、日志和监控指标,定位异常。

执行部署变更

在权限范围内触发发布、回滚和环境切换。

核对资源用量

汇总用量,找出闲置和超额的部分。

选择建议

值得选的地方

  • 工具数量 31 个,一次接入能覆盖的操作比单点工具更全。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 需要自备访问 Token,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在运维云端场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到访问 Token的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
awx advanced tools

MCP World · 本页

31stdio有1 个2026-05-17
Ui Tars Desktop 8a825770

MCP World

0stdio有1 个2026-05-17
Elie222 MCP

MCP World

0未说明未标注1 个2026-05-17
Arizeai Phoenix MCP

MCP World

0stdio有3 个2026-05-17
Unity MCP 87ee506e

MCP World

42HTTP有2 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

awx advanced tools 怎么安装?

公开资料给出的安装命令是 python3 -m venv .venv,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

awx advanced tools 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

awx advanced tools 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

awx advanced tools 需要 API Key 吗?

公开资料标注的认证方式是访问 Token,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

awx advanced tools 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP