Ambari MCP服务器
Apache Ambari的模型上下文协议(MCP)服务器,使用TypeScript SDK构建。该服务器提供通过MCP协议与Ambari集群交互的工具。
概述
该MCP服务器允许AI助手和其他MCP客户端通过将常见的Ambari REST API操作公开为MCP工具来与Apache Ambari集群交互。
特性
- 群集管理:获取集群信息,创建集群
- 服务管理:列出并获取集群服务的详细信息
- 主机管理:列出并获取集群主机的详细信息
- 警报管理:管理警报目标
- 安全认证:使用Ambari服务器进行基本身份验证
- 可配置的:基于环境的配置
- 类型安全:使用TypeScript构建,以提高可靠性
可用工具
集群操作
ambari_clusters_getclusters-返回所有集群ambari_clusters_getcluster-返回有关特定群集的信息ambari_clusters_createcluster-创建新群集
服务操作
ambari_services_getservices-获取集群的所有服务ambari_services_getservice-获取特定服务的详细信息ambari_services_getservicestate-获取特定服务的详细状态信息ambari_services_startservice-在集群上启动特定服务ambari_services_stopservice-停止群集上的特定服务
服务重启和配置管理
ambari_services_getserviceswithstaleconfigs-获取需要重新启动的过时配置的服务和组件ambari_services_gethostcomponentswithstaleconfigs-获取因配置过时而需要重新启动的主机组件ambari_services_restartservice-重启集群上的特定服务(支持滚动重启)ambari_services_restartcomponents-重新启动具有过时配置的特定组件ambari_services_getrollingrestartstatus-获取服务滚动重启操作的状态
服务维护模式管理
ambari_services_enablemaintenancemode-为服务或组件启用维护模式ambari_services_disablemaintenancemode-禁用服务或组件的维护模式
服务检查操作
ambari_services_runservicecheck-对特定服务运行服务检查,以验证其是否正常工作ambari_services_isservicechecksupported-检查堆栈中的特定服务是否支持服务检查ambari_services_getservicecheckstatus-获取服务最近的服务检查操作的状态
主机操作
ambari_hosts_gethosts-返回所有主机的集合ambari_hosts_gethost-返回有关单个主机的信息
警报操作
ambari_alerts_gettargets-返回所有警报目标ambari_alerts_getalerts-使用筛选选项获取群集的所有警报ambari_alerts_getalertsummary-以分组格式获取集群的警报摘要ambari_alerts_getalertdetails-获取特定警报定义的详细信息ambari_alerts_getalertdefinitions-获取群集的所有警报定义ambari_alerts_updatealertdefinition-更新警报定义(启用/禁用或修改属性)
警报组管理
ambari_alerts_getalertgroups-获取群集的所有警报组ambari_alerts_createalertgroup-创建新的警报组ambari_alerts_updatealertgroup-更新现有警报组ambari_alerts_deletealertgroup-删除警报组ambari_alerts_duplicatealertgroup-用新名称复制现有警报组ambari_alerts_adddefinitiontogroup-向警报组添加警报定义ambari_alerts_removedefinitionfromgroup-从警报组中删除警报定义
警报通知管理
ambari_alerts_getnotifications-获取所有警报通知目标ambari_alerts_createnotification-创建新的警报通知目标ambari_alerts_updatenotification-更新现有警报通知目标ambari_alerts_deletenotification-删除警报通知目标ambari_alerts_addnotificationtogroup-将通知目标添加到警报组ambari_alerts_removenotificationfromgroup-从警报组中删除通知目标
警报设置
ambari_alerts_savealertsettings-保存集群级警报设置(如重复容差)
安装
- 将此服务器克隆或复制到本地计算机
- 安装依赖项:
npm install- 安装开发依赖项(如果尚未安装):
npm install typescript @types/node --save-dev配置
- 复制示例环境文件:
cp .env.example .env- 编辑
.env文件中包含您的Ambari服务器详细信息:
AMBARI_BASE_URL=http://your-ambari-server:8080/api/v1
AMBARI_USERNAME=admin
AMBARI_PASSWORD=admin
TIMEOUT_MS=30000建筑
构建TypeScript代码:
npm run build用法
作为独立服务器
直接运行服务器:
npm start使用MCP客户端
克劳德桌面
添加到您的Claude Desktop配置中:
{
"mcpServers": {
"ambari": {
"command": "node",
"args": ["/path/to/ambari-mcp-server/dist/index.js"]
}
}
}其他MCP客户端
服务器通过stdio进行通信,并遵循MCP协议规范。
发展
项目结构
ambari-mcp-server/
├── src/
│ └── index.ts # Main server implementation
├── dist/ # Compiled JavaScript (after build)
├── .env.example # Environment configuration template
├── package.json # Node.js dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── README.md # This file开发命令
npm run build-将TypeScript编译为JavaScriptnpm run dev-构建并运行服务器npm start-运行已编译的服务器
添加新工具
- 将工具定义添加到
AMBARI_TOOLS数组 - 在工具执行器中执行
toolExecutors对象 - 使用新的工具文档更新此README
例子:
// Add to AMBARI_TOOLS
{
name: 'ambari_new_operation',
description: 'Description of the new operation',
inputSchema: {
type: 'object',
properties: {
// Define input parameters
},
required: ['requiredParam']
}
}
// Add to toolExecutors
ambari_new_operation: async (args) => {
return executeAmbariRequest('GET', '/new-endpoint', args);
}错误处理
服务器包括全面的错误处理:
- 网络超时和连接错误
- Ambari的HTTP错误响应
- 无效的工具参数
- 身份验证失败
错误作为MCP错误响应返回,并带有相应的错误代码和消息。
安全考虑
- 将敏感凭据存储在环境变量中
- 在生产环境中为Ambari服务器连接使用HTTPS
- 实施适当的身份验证和授权
- 考虑MCP客户端和服务器之间的网络安全
故障排除
常见问题
- 连接被拒绝:检查Ambari服务器是否正在运行且可访问
- 认证失败:在中验证用户名和密码
.env - 超时错误:增加
TIMEOUT_MS价值 - 构建错误:确保安装了TypeScript和依赖项
调试模式
设置环境变量 DEBUG=1 对于详细日志记录:
DEBUG=1 npm start贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
ISC许可证-详见package.json
