Token导航 LogoToken导航TokenDH.com
MCP Ambari API logo
运维云端stdio官方级别未说明来源级核验

MCP Ambari API

MCP Server

通过自然语言命令实现Apache Ambari集群的自动化管理,包括服务监控、配置检查和指标查询。

工具数

20

提示词数

0

GitHub Stars

1

资源数

0
PythonClaude云端部署Claude DesktopClaude

安装说明

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

作者 / 组织

call518

提供方

call518

最后核验

2026/5/17 20:20

运行时

Python

快速接入

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

命令预览

python -m mcp_ambari_api --type streamable-http --auth-enable --secret-key your-secure-secret-key-here

详细介绍

MCP Ambari API-Apache Hadoop集群管理自动化

🚀 使用AI/LLM自动化Apache Ambari操作:通过模型上下文协议(MCP)工具对Hadoop集群管理、服务监控、配置检查和精确的Ambari Metrics查询进行会话控制。

______________________________________________________________________

![License: MIT](https://opensource.org/licenses/MIT) Python

![BuyMeACoffee](https://www.buymeacoffee.com/call518)

![Deploy to PyPI with tag](https://github.com/call518/MCP-Ambari-API/actions/workflows/pypi-publish.yml) PyPI

______________________________________________________________________

建筑与内部(DeepWiki)

![Ask DeepWiki](https://deepwiki.com/call518/MCP-Ambari-API)

______________________________________________________________________

📋 概述

MCP Ambari API 是一个功能强大的模型上下文协议(MCP)服务器,通过自然语言命令实现无缝的Apache Ambari集群管理。专为使用Hadoop生态系统的DevOps工程师、数据工程师和系统管理员而设计。

特性

  • 互动安巴里运营中心 –为通过自然语言而不是控制台或UI界面查询和管理服务提供基于MCP的基础。
  • 实时集群可见性 –在单个界面中全面查看关键指标,包括服务状态、主机详细信息、警报历史记录和正在进行的请求。
  • 度量情报管道 –动态发现和过滤AMS appId和指标名称,直接连接到时间序列分析工作流。
  • 自动化操作工作流 –将重复的启动/停止操作、配置检查、用户查询和请求跟踪整合到一致的场景中。
  • 内置运营报告 –通过LLM或CLI界面即时提供dfsadmin风格的HDFS报告、服务摘要和容量指标。
  • 安全防护装置和护栏 –在大规模操作之前需要用户确认,并通过提示模板为有风险的命令提供明确的指导。
  • LLM集成优化 –包括自然语言示例、参数映射和使用指南,以确保稳定的AI代理操作。
  • 灵活的部署模型 –支持stdio/streamable http传输、Docker Compose和令牌身份验证,以便在开发和生产环境中部署。
  • 面向性能的缓存体系结构 内置的AMS元数据缓存和请求日志确保即使在大规模集群中也能快速响应。
  • 可扩展代码架构 异步HTTP、结构化日志记录和模块化工具层使添加新功能变得容易。
  • 生产验证 –基于在测试Ambari集群中验证的工具,可立即在生产环境中使用。
  • 多样化的部署渠道 –可通过PyPI包、Docker镜像和其他首选部署方法使用。

气流REST-API文件

话题

apache-ambari hadoop-cluster mcp-server cluster-automation devops-tools big-data infrastructure-management ai-automation llm-tools python-mcp

______________________________________________________________________

示例查询-群集信息/状态

转到更多示例查询

______________________________________________________________________

Example: Querying Ambari Cluster(1)

______________________________________________________________________

Example: Querying Ambari Cluster(2)

______________________________________________________________________

🚀 Docker快速入门指南

注: 以下说明假设您正在使用 streamable-http MCP服务器的模式。

快速入门/教程流程图

Flow Diagram of Quickstart/Tutorial

1.准备安巴里集群(测试目标)

要设置Ambari演示集群,请按照以下指南操作:

Example: Ambari Demo Cluster

2.运行Docker Compose

启动 MCP-Server, MCPO(OpenAPI的MCP代理),以及 OpenWebUI.

  1. 确保您的系统上安装了Docker和Docker Compose。
  2. 克隆此存储库并导航到其根目录。
  3. 设置环境配置:
   # Copy environment template and configure your settings
   cp .env.example .env
   # Edit .env with your Ambari cluster information
  1. 在中配置您的Ambari连接 .env 文件:
   # Ambari cluster connection
   AMBARI_HOST=host.docker.internal
   AMBARI_PORT=7070
   AMBARI_USER=admin
   AMBARI_PASS=admin
   AMBARI_CLUSTER_NAME=TEST-AMBARI

   # Ambari Metrics (AMS) collector
   AMBARI_METRICS_HOST=host.docker.internal
   AMBARI_METRICS_PORT=16188
   AMBARI_METRICS_PROTOCOL=http
   AMBARI_METRICS_TIMEOUT=15

   # (Optional) Enable authentication for streamable-http mode
   # Recommended for production environments
   REMOTE_AUTH_ENABLE=false
   REMOTE_SECRET_KEY=your-secure-secret-key-here
  1. 运行:
   docker-compose up -d
  • OpenWebUI将在以下网址提供: http://localhost:${DOCKER_EXTERNAL_PORT_OPENWEBUI} (默认值:3001)
  • MCPO代理可在以下网址访问: http://localhost:${DOCKER_EXTERNAL_PORT_MCPO_PROXY} (默认值:8001)
  • MCPO API文件: http://localhost:${DOCKER_EXTERNAL_PORT_MCPO_PROXY}/mcp-ambari-api/docs

Example: MCPO-Proxy

3.在OpenWebUI中注册该工具

📌 备注:Web UI配置说明基于OpenWebUI v0.6.22。菜单位置和设置在较新版本中可能有所不同。
  1. 使用管理员帐户登录OpenWebUI
  2. 转到“设置”→ 顶部菜单中的“工具”。
  3. 输入 mcp-ambari-api 工具地址(例如。, http://localhost:8000/mcp-ambari-api)将MCP Tools与您的Ambari集群连接。

4.更多示例:使用MCP工具查询Ambari集群

下面是一个示例屏幕截图,显示了如何在OpenWebUI中使用MCP工具查询Ambari集群:

示例查询-群集配置审查和建议

Example: Querying Ambari Cluster(2)

示例查询-重新启动HDFS服务

Example: Querying Ambari Cluster(3) Example: Querying Ambari Cluster(3)

______________________________________________________________________

📈 指标和趋势

  • 术语快速参考

- 应用ID:Ambari Metrics Service将每个度量分组到应用标识符下(例如。, namenode, datanode, ambari_server, HOST).将其视为发出该时间序列的组件或服务。 - 度量名称:Ambari为每个时间序列使用的完全限定字符串(例如。, jvm.JvmMetrics.MemHeapUsedM, dfs.datanode.BytesWritten).查询AMS时需要精确的名称。

  • list_common_metrics_catalog:对实时元数据支持的度量目录(本地缓存)进行关键字搜索。使用 search="heap" 或者类似于在运行时间序列查询之前的狭义建议。\

_示例_:“显示NameNode appId可用的堆相关指标。”

  • list_ambari_metric_apps:已发现AMS列表 appId 值,可选地包括度量计数;通过 refresh=truelimit 以控制输出。\

_示例_:“列出AMS当前公开的每个appId。”

  • The natural-language query“仅显示AMS中可用的appId列表”maps to list_ambari_metric_apps 并返回您可以复制到其他工具中的确切标识符。
  • list_ambari_metrics_metadata:原始AMS元数据浏览器(支持 app_id, metric_name_filter, host_filter, search,可调节 limit,默认值为50)。\

_示例_:“在HOST下给我提供与CPU相关的度量元数据。”

  • query_ambari_metrics:获取时间序列数据;该工具会自动选择精心策划的度量名称,在需要时回退到元数据搜索,并尊重Ambari的默认精度,除非您明确提供 precision="SECONDS"等等。\

_示例_:“绘制最后30分钟 jvm.JvmMetrics.MemHeapUsedM 对于NameNode。“/”比较 jvm.JvmMetrics.MemHeapUsedM 对于DataNode主机 bigtop-hostname0.demo.localbigtop-hostname1.demo.local 在过去的30分钟里。”

  • hdfs_dfadmin_report:生成DFSAdmin风格的容量/DataNode摘要(镜像 hdfs dfsadmin -report).

实时指标目录(通过AMS元数据)

  • 根据需要从以下位置发现度量名称 /ws/v1/timeline/metrics/metadata 并缓存以供快速重用。
  • 使用 list_common_metrics_catalogambari-metrics://catalog/all 资源(附加 ?refresh=true 绕过缓存)以检查最新 appId → metric 地图。查询 ambari-metrics://catalog/apps 列出appId或 ambari-metrics://catalog/ 对于单个应用程序。
  • 典型的appId包括 ambari_server, namenode, datanode, nodemanager, resourcemanager,以及 HOST,但该列表会适应Ambari Metrics服务在您的集群中发布的任何广告。

______________________________________________________________________

🔍 Ambari指标查询要求(精确匹配工作流)

最近的更新删除了自然语言度量猜测,转而支持确定性、目录驱动的查找。当您(或LLM代理)致电时,请记住以下规则 query_ambari_metrics:

  1. 始终传递一个明确的 app_id. 如果它丢失或不受支持,该工具将返回有效appId的列表并中止,以便您可以手动选择一个。
  2. 指定精确的度量名称。 使用 list_common_metrics_catalog(app_id="", search="keyword"), list_ambari_metric_apps (发现appId),或 ambari-metrics://catalog/ 用于浏览实时每个应用度量集并复制标识符的资源(例如。, jvm.JvmMetrics.MemHeapUsedM).
  3. 主机作用域行为:何时 hostnames 则API返回集群范围的聚合。提供一个或多个主机(逗号分隔)以专注于特定节点。
  4. 没有模糊的匹配。 服务器现在完全按照请求调用Ambari。如果指标错误或为空,Ambari将不返回任何数据点——通过以下方式仔细检查标识符 /ws/v1/timeline/metrics/metadata.

调用示例:

query_ambari_metrics(
  metric_names="jvm.JvmMetrics.MemHeapUsedM",
  app_id="nodemanager",
  duration="1h",
  group_by_host=true
)

对于多指标查找,请传递一个逗号分隔的确切名称列表。响应会记录任何自动应用的主机筛选器,以便您可以将它们复制/粘贴到后续请求中。

______________________________________________________________________

🐛 使用和配置

此MCP服务器支持两种连接模式: 标准 (传统)和 可流式传输http (基于Docker)。您可以使用CLI参数或环境变量配置传输模式。

配置优先级: CLI参数>环境变量>默认值

CLI参数

  • --type (-t):运输类型(stdiostreamable-http)-默认值: stdio
  • --host:HTTP传输的主机地址-默认值: 127.0.0.1
  • --port (-p):HTTP传输的端口号-默认值: 8000
  • --auth-enable:为可流式传输的http模式启用承载令牌身份验证-默认值: false
  • --secret-key:承载令牌身份验证的密钥(启用身份验证时需要)

环境变量

变量描述默认值项目默认值
PYTHONPATHMCP服务器导入的Python模块搜索路径-/app/src
MCP_LOG_LEVEL服务器日志记录冗长(调试、信息、警告、错误)INFOINFO
FASTMCP_TYPEMCP传输协议(用于CLI的stdio,用于web的流式http)stdiostreamable-http
FASTMCP_HOSTHTTP服务器绑定地址(所有接口为0.0.0.0)127.0.0.10.0.0.0
FASTMCP_PORT用于MCP通信的HTTP服务器端口80008000
REMOTE_AUTH_ENABLE为可流式传输的http模式启用承载令牌身份验证
默认值:false (如果未定义、为空或null)falsefalse
REMOTE_SECRET_KEY用于承载令牌身份验证的密钥
当REMOTE_AUTH_ENABLE=true时需要-your-secret-key-here
AMBARI_HOSTAmbari服务器主机名或IP地址127.0.0.1host.docker.internal
AMBARI_PORTAmbari服务器端口号80808080
AMBARI_USERAmbari服务器身份验证的用户名adminadmin
AMBARI_PASSAmbari服务器身份验证密码adminadmin
AMBARI_CLUSTER_NAME目标安巴里集群的名称TEST-AMBARITEST-AMBARI
DOCKER_EXTERNAL_PORT_OPENWEBUIOpen WebUI容器的主机端口映射80803001
DOCKER_EXTERNAL_PORT_MCP_SERVERMCP服务器容器的主机端口映射808018001
DOCKER_EXTERNAL_PORT_MCPO_PROXYMCPO代理容器的主机端口映射80008001

备注: AMBARI_CLUSTER_NAME 当没有指定特定集群时,它将作为操作的默认目标集群。所有环境变量都可以通过配置 .env 文件。

传输选择逻辑:

配置优先级: CLI参数>环境变量>默认值

传输选择逻辑:

  • CLI优先级: --type streamable-http --host 0.0.0.0 --port 18001
  • 环境优先: FASTMCP_TYPE=streamable-http FASTMCP_HOST=0.0.0.0 FASTMCP_PORT=18001
  • 传统支持: FASTMCP_PORT=18001 (自动启用可流式传输的http模式)
  • 默认: stdio 未提供配置时的模式

环境设置

# 1. Clone the repository
git clone https://github.com/call518/MCP-Ambari-API.git
cd MCP-Ambari-API

# 2. Set up environment configuration
cp .env.example .env

# 3. Configure your Ambari connection in .env file
AMBARI_HOST=your-ambari-host
AMBARI_PORT=your-ambari-port  
AMBARI_USER=your-username
AMBARI_PASS=your-password
AMBARI_CLUSTER_NAME=your-cluster-name

______________________________________________________________________

🔐 安全和身份验证

承载令牌身份验证

对于 streamable-http 模式下,此MCP服务器支持承载令牌身份验证,以确保远程访问的安全。在生产环境中运行服务器时,这一点尤为重要。

配置

启用身份验证:

# In .env file
REMOTE_AUTH_ENABLE=true
REMOTE_SECRET_KEY=your-secure-secret-key-here

或者通过CLI:

python -m mcp_ambari_api --type streamable-http --auth-enable --secret-key your-secure-secret-key-here

安全等级

  1. stdio模式 (默认):仅本地访问,无需身份验证
  2. 可流式传输的http+REMOTE_AUTH_ENABLE=false/undefined:无身份验证的远程访问⚠️ 不建议用于生产
  3. 可流式传输http+REMOTE_AUTH_ENABLE=true:使用承载令牌身份验证进行远程访问✅ 建议用于生产
🔒 默认策略: REMOTE_AUTH_ENABLE 默认为 false 如果未定义、为空或为null。这确保了服务器即使在没有显式身份验证配置的情况下也能启动。

客户端配置

启用身份验证后,MCP客户端必须在授权标头中包含Bearer令牌:

{
  "mcpServers": {
    "mcp-ambari-api": {
      "type": "streamable-http",
      "url": "http://your-server:8000/mcp",
      "headers": {
        "Authorization": "Bearer your-secure-secret-key-here"
      }
    }
  }
}

安全最佳实践

  • 始终启用身份验证 在生产环境中使用流式http模式时
  • 使用强随机生成的密钥 (建议使用32+个字符)
  • 使用HTTPS 如果可能(使用SSL/TLS配置反向代理)
  • 限制网络访问 使用防火墙或网络策略
  • 定期旋转密钥 增强安全性
  • 监控访问日志 未经授权的访问尝试

错误处理

当身份验证失败时,服务器返回:

  • 401未经授权 用于丢失或无效的令牌
  • 详细的错误消息 JSON格式用于调试

______________________________________________________________________

方法1:本地MCP(传输=“stdio”)

{
  "mcpServers": {
    "mcp-ambari-api": {
      "command": "uvx",
      "args": ["--python", "3.12", "mcp-ambari-api"],
      "env": {
        "AMBARI_HOST": "host.docker.internal",
        "AMBARI_PORT": "8080",
        "AMBARI_USER": "admin",
        "AMBARI_PASS": "admin",
        "AMBARI_CLUSTER_NAME": "TEST-AMBARI",
        "MCP_LOG_LEVEL": "INFO"
      }
    }
  }
}

方法2:远程MCP(传输=“可流式传输http”)

在MCP客户端主机上:

{
  "mcpServers": {
    "mcp-ambari-api": {
      "type": "streamable-http",
      "url": "http://localhost:18001/mcp"
    }
  }
}

使用承载令牌身份验证(建议用于生产):

{
  "mcpServers": {
    "mcp-ambari-api": {
      "type": "streamable-http", 
      "url": "http://localhost:18001/mcp",
      "headers": {
        "Authorization": "Bearer your-secure-secret-key-here"
      }
    }
  }
}

______________________________________________________________________

示例用法:Claude Desktop

claude_desktop_config json

{
  "mcpServers": {
    "mcp-ambari-api": {
      "command": "uvx",
      "args": ["--python", "3.12", "mcp-ambari-api"],
      "env": {
        "AMBARI_HOST": "localhost",
        "AMBARI_PORT": "7070",
        "AMBARI_USER": "admin",
        "AMBARI_PASS": "admin",
        "AMBARI_CLUSTER_NAME": "TEST-AMBARI",
        "MCP_LOG_LEVEL": "INFO"
      }
    }
  }
}

Example: Claude-Desktop(3)

(选项)配置多个Ambari集群

{
  "mcpServers": {
    "Ambari-Cluster-A": {
      "command": "uvx",
      "args": ["--python", "3.12", "mcp-ambari-api"],
      "env": {
        "AMBARI_HOST": "a.foo.com",
        "AMBARI_PORT": "8080",
        "AMBARI_USER": "admin-user",
        "AMBARI_PASS": "admin-pass",
        "AMBARI_CLUSTER_NAME": "AMBARI-A",
        "MCP_LOG_LEVEL": "INFO"
      }
    },
    "Ambari-Cluster-B": {
      "command": "uvx",
      "args": ["--python", "3.12", "mcp-ambari-api"],
      "env": {
        "AMBARI_HOST": "b.bar.com",
        "AMBARI_PORT": "8080",
        "AMBARI_USER": "admin-user",
        "AMBARI_PASS": "admin-pass",
        "AMBARI_CLUSTER_NAME": "AMBARI-B",
        "MCP_LOG_LEVEL": "INFO"
      }
    }
  }
}

带身份验证的远程访问(Claude Desktop):

{
  "mcpServers": {
    "mcp-ambari-api-remote": {
      "type": "streamable-http",
      "url": "http://your-server-ip:18001/mcp",
      "headers": {
        "Authorization": "Bearer your-secure-secret-key-here"
      }
    }
  }
}

______________________________________________________________________

🎯 核心特征和功能

服务操作

  • Hadoop服务管理:启动、停止、重启HDFS、YARN、Spark、HBase等
  • 批量操作:同时控制所有群集服务
  • 状态监测:实时服务运行状况和性能跟踪

配置管理

  • 统一配置工具:所有配置类型(纱线站点、hdfs站点等)的单一接口
  • 批量配置:通过过滤导出和管理多个配置
  • 配置验证:应用更改前的语法检查和验证

监控和警报

  • 实时警报:具有过滤功能的当前和历史群集警报
  • 请求跟踪:监控长时间运行的操作及其详细进度
  • 主机监控:硬件指标、组件状态和资源利用率

行政

  • 用户管理:检查群集用户管理
  • 主机管理:节点注册、组件分配和运行状况监视

______________________________________________________________________

可用的MCP工具

此MCP服务器为Ambari集群管理提供了以下工具:

群集管理

  • get_cluster_info -检索基本群集信息和状态
  • get_active_requests -列出当前活动/正在运行的操作
  • get_request_status -检查特定请求的状态和进度
  • get_request_tasks -获取特定请求的每个主机/角色的任务细分。支持按状态过滤(status_filter="FAILED", "not:COMPLETED"等)和主机名子字符串(host_filter="node01")

服务管理

  • get_cluster_services -列出所有服务及其状态
  • get_service_status -获取特定服务的详细状态
  • get_service_components -列出服务的组件和主机分配
  • get_service_details -获取全面的服务信息
  • start_service -启动特定服务
  • stop_service -停止特定服务
  • restart_service -重新启动特定服务
  • start_all_services -启动群集中的所有服务
  • stop_all_services -停止群集中的所有服务
  • restart_all_services -重新启动群集中的所有服务

配置工具

  • dump_configurations -统一配置工具(取代 get_configurations, list_configurations前内部 dump_all_configurations).支持:

- 单一类型: dump_configurations(config_type="yarn-site") - 批量摘要: dump_configurations(summarize=True) - 按子字符串(类型或键)筛选: dump_configurations(filter="memory") - 服务筛选器(按子字符串缩小类型): dump_configurations(service_filter="yarn", summarize=True) - 仅按键(无值): dump_configurations(include_values=False) - 限制类型数量: dump_configurations(limit=10, summarize=True)

突破性变化: get_configurationslist_configurations 被移除,取而代之的是这个功能更强大的单一工具。

主机管理

  • list_hosts -列出群集中的所有主机
  • get_host_details -获取特定或所有主机的详细信息(包括组件状态、硬件指标和服务分配)

用户管理

  • list_users -列出Ambari系统中的所有用户及其用户名和API链接
  • get_user -获取特定用户的详细信息,包括:

- 基本配置文件(ID、用户名、显示名称、用户类型) - 状态信息(管理员权限、活动状态、登录失败) - 身份验证详细信息(LDAP用户状态、身份验证源) - 组成员资格、特权和小部件布局

警报管理

  • get_alerts_history - 统一警报工具 对于当前和历史警报:

- 当前模式 (mode="current"):检索具有实时状态的当前/活动警报 - 跨群集、服务或主机的当前警报状态 - 维护模式过滤(开/关) - 摘要格式:基本摘要和按定义分组 - 详细的警报信息,包括时间戳和描述 - 历史模式 (mode="history"):从群集中检索历史警报事件 - 范围筛选:群集范围、特定于服务或特定于主机的警报 - 时间范围过滤:从/到时间戳支持 - 对大型数据集的分页支持 - 共同特征 (两种模式): - 状态过滤:严重、警告、正常、未知警报 - 定义筛选:按特定警报定义名称筛选 - 多种输出格式:详细、摘要、紧凑 - 统一的API提供一致的警报查询体验

______________________________________________________________________

🤝 贡献与支持

如何做出贡献

使用的技术

  • 语言:Python 3.12
  • 框架:模型上下文协议(MCP)
  • API:Apache Ambari REST API
  • 运输:stdio(本地)和可流式传输的http(远程)
  • 部署:Docker、Docker Compose、PyPI

开发环境。

  • WSL2(网络模式=桥接)+Docker桌面

- .wslconfig:已测试 networkingMode = bridged

  • Python 3.12 venv
  ### Option-1: with uv
  uv venv --python 3.12 --seed

  ### Option-2: with pip
  python3.12 -m venv .venv
  source .venv/bin/activate
  pip install -U pip

______________________________________________________________________

🛠️ 添加自定义工具

在您彻底探索了现有功能后,您可能希望为特定的监控或管理需求添加自己的自定义工具。此MCP服务器旨在易于扩展。

分步指南

1. 添加辅助函数(可选)

添加可重用的数据函数 src/mcp_ambari_api/functions.py:

async def get_your_custom_data(target_resource: str = None) -> List[Dict[str, Any]]:
    """Your custom data retrieval function."""
    # Example implementation - adapt to your Ambari service
    endpoint = f"/clusters/{AMBARI_CLUSTER_NAME}/your_custom_endpoint"
    if target_resource:
        endpoint += f"/{target_resource}"
    
    response_data = await make_ambari_request(endpoint)
    
    if response_data is None or "items" not in response_data:
        return []
    
    return response_data["items"]

2. 创建您的MCP工具

将您的工具功能添加到 src/mcp_ambari_api/mcp_main.py:

@mcp.tool()
@log_tool
async def get_your_custom_analysis(limit: int = 50, target_name: Optional[str] = None) -> str:
    """
    [Tool Purpose]: Brief description of what your tool does
    
    [Core Functions]:
    - Feature 1: Data aggregation and analysis
    - Feature 2: Resource monitoring and insights
    - Feature 3: Performance metrics and reporting
    
    [Required Usage Scenarios]:
    - When user asks "your specific analysis request"
    - Your business-specific monitoring needs
    
    Args:
        limit: Maximum results (1-100)
        target_name: Target resource/service name (optional)
    
    Returns:
        Formatted analysis results (success: formatted data, failure: English error message)
    """
    try:
        limit = max(1, min(limit, 100))  # Always validate input
        
        results = await get_your_custom_data(target_resource=target_name)
        
        if not results:
            return f"No custom analysis data found{' for ' + target_name if target_name else ''}."
        
        # Apply limit
        limited_results = results[:limit]
        
        # Format output
        result_lines = [
            f"Custom Analysis Results{' for ' + target_name if target_name else ''}",
            "=" * 50,
            f"Found: {len(limited_results)} items (total: {len(results)})",
            ""
        ]
        
        for i, item in enumerate(limited_results, 1):
            # Customize this formatting based on your data structure
            name = item.get("name", "Unknown")
            status = item.get("status", "N/A")
            result_lines.append(f"[{i}] {name}: {status}")
        
        return "\n".join(result_lines)
        
    except Exception as e:
        return f"Error: Exception occurred while retrieving custom analysis - {str(e)}"

3. 更新导入

将辅助函数添加到中的导入部分 src/mcp_ambari_api/mcp_main.py:

from mcp_ambari_api.functions import (
    format_timestamp,
    format_single_host_details,
    make_ambari_request,
    # ... existing imports ...
    get_your_custom_data,  # Add your new function here
)

4. 更新提示模板(推荐)

将您的工具描述添加到 src/mcp_ambari_api/prompt_template.md 为了更好地识别AI:

### Custom Analysis Tools

**get_your_custom_analysis**
- "Show me custom analysis results"
- "Get custom analysis for target_name"
- "Display custom monitoring data"
- 📋 **Features**: Custom data aggregation, resource monitoring, performance insights

5. 测试你的工具

# Local testing with MCP Inspector
./run-mcp-inspector-local.sh

# Or test with Docker environment
docker-compose up -d
docker-compose logs -f mcp-server

# Test with natural language queries:
# "Show me custom analysis results"
# "Get custom analysis for my_target"

重要说明

  • 总是使用 @mcp.tool()@log_tool 装饰器 正确注册和记录
  • 遵循现有的错误处理模式 -返回以“error:”开头的英文错误消息
  • 使用 make_ambari_request() 功能 用于所有Ambari API调用,以确保一致的身份验证和错误处理
  • 验证所有输入参数 在API调用中使用它们之前
  • 彻底测试 包含有效和无效输入

示例用例

  • 定制服务健康检查 超出标准Ambari监控
  • 专业配置验证 符合贵组织的标准
  • 自定义警报聚合 以及报告格式
  • 与外部监控系统集成 通过 Ambari 数据
  • 自动合规性检查 用于集群配置

______________________________________________________________________

❓ 常见问题

Q: 支持哪些Ambari版本?

A.:建议使用Ambari 2.7+。早期版本可能有效,但尚未经过正式测试。

Q: 我可以将其用于云管理的Hadoop集群吗?

A.:是的,只要Ambari API端点是可访问的,它就可以用于内部部署、云部署和混合部署。

Q: 如何解决连接问题?

A.:检查您的 AMBARI_HOST, AMBARI_PORT,以及网络连接。使用启用调试日志记录 MCP_LOG_LEVEL=DEBUG.

Q: 这与Ambari Web UI相比如何?

A.:这通过AI/LLM命令提供程序化访问,非常适合自动化、脚本编写和与现代DevOps工作流的集成。

______________________________________________________________________

贡献

🤝 有想法吗?发现虫子了吗?想添加酷炫的功能吗?

我们总是很高兴欢迎新的贡献者!无论您是修复拼写错误、添加新的监控工具还是改进文档,每一份贡献都会使这个项目变得更好。

贡献方式:

  • 🐛 报告问题或错误
  • 💡 建议新的Ambari监控功能
  • 📝 改进文档
  • 🚀 提交拉取请求
  • ⭐ 如果你觉得回购有用,请为其加星!

专业提示: 代码库的设计非常适合添加新工具。查看现有 @mcp.tool() 功能在 mcp_main.py 并遵循 添加自定义工具 上面的指南。

______________________________________________________________________

📄 许可证

该项目根据MIT许可证获得许可。

目录标签

目录标签

PythonClaude云端部署Hadoop集群管理混合部署自然语言接口运维自动化大数据运维AI驱动运维

支持客户端

Claude DesktopClaude

接入字段

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

stdio

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

token

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

20

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiotoken部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP