Token导航 LogoToken导航TokenDH.com
AAP Enterprise MCP Server logo
文档知识stdio官方来源来源级核验

AAP Enterprise MCP Server

MCP Server

一个全面的模型上下文协议(MCP)服务器套件,用于Red Hat的自动化和基础设施生态系统,使AI助手能够与Ansible Automation Platform (AAP)、Event-Driven Ansible (EDA)、ansible-lint代码质量工具和Red Hat官方文档进行交互,并提供安全的域验证。

工具数

0

提示词数

0

GitHub Stars

30

资源数

0
PythonClaude文档处理Claude DesktopClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

sibilleb

提供方

sibilleb

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -e .

详细介绍

AAP企业MCP服务器

红帽自动化和基础设施生态系统的全面模型上下文协议(MCP)服务器套件,使人工智能助手能够与Ansible自动化平台(AAP)、事件驱动Ansible(EDA)、Ansible-lint代码质量工具以及红帽的官方文档进行交互,并进行安全域验证。

特性

Ansible自动化平台(AAP)集成

  • 库存管理:列出、创建、更新清单和管理主机/组
  • 作业管理:运行作业模板、监视作业状态和检索日志
  • 项目管理:创建和管理基于SCM的项目
  • 模板管理:创建和管理作业模板
  • 主机操作:添加/删除主机,管理主机变量和事实
  • 临时命令:直接在库存主机上执行可转换命令

事件驱动的Ansible(EDA)集成

  • 激活管理:列出、创建、启用/禁用EDA激活
  • 规则手册管理:管理和查询规则手册
  • 决策环境管理:管理决策环境
  • 事件流监控:监视事件流

Ansible Galaxy集成

  • 收藏搜索:按名称、命名空间或关键字搜索和发现Ansible集合
  • 角色搜索:按关键字、作者或特定条件查找社区角色
  • 内容详细信息:获取有关集合和角色的全面信息,包括版本、依赖关系和安装说明
  • 聪明的建议:基于用例描述的人工智能内容推荐
  • AAP集成:考虑现有AAP基础设施和库存的智能建议

Ansible Lint集成

  • 剧本验证:使用可配置的质量配置文件实时抓取Ansible剧本内容
  • 文件分析:对Ansible文件、角色和整个项目结构的全面分析
  • 最佳实践执行:根据Ansible社区标准和最佳实践进行自动检查
  • 语法验证:快速语法检查,以便在开发过程中获得即时反馈
  • 多配置文件支持:从基础到生产就绪的型材,逐步提高质量
  • 规则管理:列出、过滤和理解可理解的棉绒规则,并给出详细解释

红帽文档集成(简化)

  • 高效发现:使用Red Hat官方域名进行基于Web搜索的内容发现
  • 智能内容获取:PDF优先策略处理Red Hat的JavaScript渲染问题
  • 域安全:验证对50多个Red Hat官方域的访问权限,以实现安全的文档访问
  • 最小MCP开销:简化的双工具方法将API调用减少了75%
  • 搜索查询生成:为外部WebSearch MCP工具的使用创建优化的搜索查询
  • 身份验证处理:智能检测所需订阅与公共内容

安装

先决条件

  • Python 3.11或更高版本
  • UV包管理器(推荐)或pip
  • 访问Ansible自动化平台实例
  • 有效的AAP API令牌

设置

  1. 克隆存储库:
   git clone https://github.com/sibilleb/AAP-Enterprise-MCP-Server.git
   cd AAP-Enterprise-MCP-Server
  1. 安装依赖项:
   # Using UV (recommended)
   uv sync

   # Or using pip
   pip install -e .
  1. 设置环境变量:
   # Required for AAP/EDA servers
   export AAP_TOKEN="your-aap-api-token"
   export AAP_URL="https://your-aap-server.com/api/controller/v2"
   export EDA_TOKEN="your-eda-api-token"  # Can be same as AAP_TOKEN
   export EDA_URL="https://your-aap-server.com/api/eda/v1"

   # Optional for Red Hat Customer Portal access
   export REDHAT_USERNAME="your-redhat-username"
   export REDHAT_PASSWORD="your-redhat-password"

获取您的API代币

方法1:AAP Web界面

  1. 登录您的AAP网络界面
  2. 点击右上角的用户名
  3. 选择“用户设置”或“我的个人资料”
  4. 导航到“令牌”部分
  5. 点击“添加”或“创建令牌”
  6. 将范围设置为“写入”以实现完整功能
  7. 立即复制生成的令牌(不会再次显示)

方法2:命令行

curl -k -X POST \
  "https://your-aap-server.com/api/v2/tokens/" \
  -H "Content-Type: application/json" \
  -u "username:password" \
  -d '{
    "description": "MCP Server Token",
    "application": null,
    "scope": "write"
  }'

配置

MCP客户端配置

将以下内容添加到MCP客户端配置中(例如,Claude Desktop、Cursor):

{
  "mcpServers": {
    "ansible": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/AAP-Enterprise-MCP-Server",
        "run",
        "ansible.py"
      ],
      "env": {
        "AAP_TOKEN": "your-aap-api-token",
        "AAP_URL": "https://your-aap-server.com/api/controller/v2"
      }
    },
    "eda": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/AAP-Enterprise-MCP-Server",
        "run",
        "eda.py"
      ],
      "env": {
        "EDA_TOKEN": "your-eda-api-token",
        "EDA_URL": "https://your-aap-server.com/api/eda/v1"
      }
    },
    "ansible-lint": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/AAP-Enterprise-MCP-Server",
        "run",
        "ansible-lint.py"
      ]
    },
    "redhat-docs": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/AAP-Enterprise-MCP-Server",
        "run",
        "redhat_docs.py"
      ],
      "env": {
        "REDHAT_USERNAME": "your-username",
        "REDHAT_PASSWORD": "your-password"
      }
    }
  }
}

SSL/TLS配置

对于具有自签名证书的实验室环境,服务器会自动:

  • 禁用SSL警告
  • 跳过证书验证
  • 优雅地处理不安全的连接

对于生产环境,请确保在AAP实例上配置了正确的SSL证书。

服务器架构

该项目实现了 四服务器MCP架构 全面覆盖红帽生态系统:

服务器文件用途主要功能
Ansible自动化平台ansible.pyAAP与Galaxy搜索集成作业管理、库存控制、Galaxy发现(855行)
事件驱动的Ansibleeda.pyEDA集成激活管理、规则手册处理(96行)
Ansible Lintansible-lint.py代码质量和最佳实践渐进式质量配置文件、项目分析(502行)
红帽文档redhat_docs.py红帽官方文档访问域名验证、混合搜索、PDF访问

组合能力

  • 完整的自动化生命周期:从文件发现到质量保证实施
  • 安全:域验证访问仅确保Red Hat官方来源
  • 智能:基于人工智能的推荐和专门的电信/边缘指导
  • 可扩展性:独立服务器允许集中功能和扩展

可用工具

Ansible自动化平台工具

工具说明
list_inventories列出所有库存
get_inventory按ID获取库存详细信息
create_inventory创建新库存
list_hosts在清单中列出主机
add_host_to_inventory将主机添加到库存
run_job执行作业模板
job_status检查作业执行状态
job_logs检索作业执行日志
list_job_templates列出可用的作业模板
create_job_template创建新作业模板
create_project创建新项目
run_adhoc_command执行特殊可转换命令
list_projects列出所有项目
get_project按ID获取项目详细信息
list_project_updates列出项目更新作业(SCM同步)
get_project_update获取项目更新作业状态
get_project_update_logs获取项目更新作业日志
update_project触发项目更新(SCM同步)

Ansible银河搜索工具

工具说明
search_galaxy_collections按查询、标签或命名空间搜索Ansible Galaxy集合
search_galaxy_roles按关键字、姓名或作者搜索Ansible Galaxy角色
get_collection_details获取特定收藏的详细信息
get_role_details获取特定角色的详细信息
suggest_ansible_content根据用例描述智能地建议集合和角色

Ansible Lint工具

工具说明
lint_playbookLint Ansible剧本内容,具有可配置的配置文件和规则
lint_file磁盘上特定于Lint的Ansible文件
lint_roleAnsible角色目录的全面验证
validate_syntax快速仅语法验证以获得即时反馈
check_best_practices上下文感知最佳实践检查(开发/测试/生产)
analyze_project通过综合报告分析整个Ansible项目结构
list_rules列出可用的可解析lint规则,可选择按标签过滤
list_tags列出所有可用的标签,以了解棉绒规则
get_ansible_lint_version获取已安装的ansible-lint的版本信息

事件驱动的Ansible工具

工具说明
list_activations列出EDA激活
get_activation获取激活详细信息
create_activation创建新激活
enable_activation启用激活
disable_activation禁用激活
restart_activation重新启动激活
list_rulebooks列出可用的规则手册
get_rulebook获取规则手册详细信息
list_decision_environments列出决策环境

红帽文档工具

工具说明
read_documentation通过域验证和PDF优先访问阅读Red Hat文档
list_products列出所有可用的Red Hat产品和版本
search_documentation按版本优先级搜索Red Hat文档
search_documentation_enhanced:结合站点地图和网络搜索发现的混合搜索
search_with_web_guidance:获得直接结果+优化的Red Hat域限制网络搜索查询
smart_documentation_finder:智能多源文档发现
get_product_guides获取带有语义版本排序的产品指南(13个OpenShift 4.18指南)
recommend_content具有电信/边缘/CNF专业化的智能推荐

使用示例

运行作业模板

# List available job templates
templates = await list_job_templates()

# Run a specific job template with variables
result = await run_job(
    template_id=5,
    extra_vars={"target_env": "production", "app_version": "1.2.3"}
)

# Check job status
status = await job_status(result["job"])

管理库存

# List all inventories
inventories = await list_inventories()

# Add a new host to inventory
await add_host_to_inventory(
    inventory_id=1,
    hostname="web-server-01.example.com",
    variables={"ansible_host": "192.168.1.100", "role": "webserver"}
)

# Run ad-hoc command on inventory
await run_adhoc_command(
    inventory_id=1,
    module_name="setup",
    limit="web-server-01.example.com"
)

银河内容发现

# Get intelligent suggestions for a specific use case
suggestions = await suggest_ansible_content(
    use_case="I am developing a playbook that spins up and down EC2 servers on AWS using ansible",
    check_aap_inventory=True
)

# Search for AWS-related collections
collections = await search_galaxy_collections(query="aws", limit=10)

# Search for EC2-specific roles
roles = await search_galaxy_roles(keyword="ec2", limit=5)

# Get detailed information about a specific collection
details = await get_collection_details(namespace="amazon", name="aws")

# Get detailed information about a specific role
role_info = await get_role_details(role_id=12345)

Ansible Lint质量保证

# Lint playbook content with different quality profiles
playbook_content = """
---
- hosts: all
  tasks:
    - name: install package
      yum: name=nginx state=present
"""

# Basic linting for development
basic_results = await lint_playbook(
    content=playbook_content,
    profile="basic",
    format_type="json"
)

# Production-ready validation
production_results = await lint_playbook(
    content=playbook_content,
    profile="production",
    format_type="json"
)

# Quick syntax validation
syntax_check = await validate_syntax(content=playbook_content)

# Context-aware best practices checking
best_practices = await check_best_practices(
    content=playbook_content,
    context="production"
)

# Analyze entire project structure
project_analysis = await analyze_project(
    project_path="/path/to/ansible/project",
    profile="moderate"
)

# List available rules and tags
rules = await list_rules(tags="idempotency,syntax")
tags = await list_tags()

EDA激活管理

# List all activations
activations = await list_activations()

# Enable a specific activation
await enable_activation(activation_id=3)

# Check activation details
details = await get_activation(activation_id=3)

红帽文档访问

# Access OpenShift documentation with PDF preference
content = await read_documentation(
    "https://docs.redhat.com/en/documentation/openshift_container_platform/4.18/html/updating_clusters/index",
    format_preference="pdf"  # Ensures reliable content extraction
)

# Search for telco edge content with hybrid approach
guidance = await search_with_web_guidance(
    "openshift telco edge cluster upgrade", 
    product="openshift_container_platform"
)
# Returns direct results + 5 Red Hat domain-restricted web search queries

# Get comprehensive telco/edge recommendations
recommendations = await recommend_content(
    "telco edge CNF cluster upgrade", 
    role="administrator"
)
# Returns specialized edge computing and cluster update recommendations

# Get latest OpenShift guides (auto-detects 4.18, not 3.x)
guides = await get_product_guides("openshift_container_platform", version="latest")
# Returns 13 specialized guides including Updating Clusters, Edge Computing, etc.

# Domain-validated web search workflow
guidance = await search_with_web_guidance("kubernetes edge computing")
# Use generated queries like: "site:docs.redhat.com openshift 4.18 kubernetes edge computing"
# Then feed discovered URLs back:
content = await read_documentation(discovered_url, format_preference="pdf")

发展

运行测试

# Install development dependencies
uv sync --group dev

# Run tests
pytest

# Run with coverage
pytest --cov=.

代码格式化

# Format code
black .

# Lint code
ruff check .

# Type checking
mypy .

故障排除

常见问题

  1. SSL证书错误:服务器自动处理自签名证书。如果您遇到SSL问题,请验证您的AAP服务器配置。
  1. 身份验证失败:确保API令牌具有足够的权限(建议写入范围)。
  1. 连接超时:检查AAP服务器的网络连接,并验证URL格式。
  1. 未找到工具:配置更改后重新启动MCP客户端。

调试模式

设置详细日志记录的环境变量:

export MCP_DEBUG=1

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 添加新功能的测试
  5. 确保所有测试通过
  6. 提交拉取请求

许可证

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

主要成就

🎯 红帽文档成功指标

  • 版本检测:OpenShift 4.18被正确识别为最新版本(不是3.x)
  • PDF访问:1.4MB+PDF文件已成功访问
  • 搜索相关性:电信边缘查询返回专门的文档
  • 域安全:100%红帽域名验证(测试了50多个域名)
  • Web搜索集成:混合方法与官方来源限制

📊 性能改进

度量之前之后状态
最新版本检测❌ 3.x版本✅ 4.18+版本固定的
PDF访问成功率❌ 301/404错误✅ 200个OK响应100%
域验证❌ 无筛选✅ 50+官方域名已保护
可用的OpenShift指南8个通用13个专用+62%

支持

相关项目

通过安全、经过域验证的红帽生态系统访问,准备投入生产使用! 🚀

目录标签

目录标签

PythonClaude文档处理自动化平台本地部署Ansible集成代码质量检查RedHat文档EDA集成

支持客户端

Claude DesktopClaudeCursor

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

来源信息

继续浏览同类 MCP