TRMM MCP服务器
用于TRMM式远程管理操作的专注MCP服务器。
该项目为常见的IT运营任务提供了一套精心策划的MCP工具,例如:
- 代理查找和控制
- 检查
- 脚本
- 服务
- 软件
- Windows更新
- 报告
- 警报
- 自动化
- 任务
该服务器是专门为 本地或较小型号 在构建原始API路径、HTTP方法或JSON有效负载方面不可靠。
此服务器不公开一个通用的“调用任何端点”工具,而是公开 小型、命名强烈的工具 只有几个论点。然后后端将这些参数转换为有效的API请求。
为什么存在
较小的本地模型往往难以应对:
- 选择正确的端点
- 选择正确的HTTP方法
- 构建有效的JSON有效载荷
- 保持ID和对象类型的正确性
- 避免破坏性或过于宽泛的行为
该服务器通过提供模型来解决这个问题:
- 小型工具表面
- 明确的工具名称
- 简单的论点
- 后端请求翻译
- 一致的结果处理
简而言之,模型决定 它想做什么,由后端决定 如何调用真正的API.
______________________________________________________________________
建筑
该项目分为四个主要层:
server.py
在以下位置托管FastAPI应用程序并装载MCP ASGI应用程序 /mcp.
还包括:
- MCP路由的承载令牌保护
- 简单的
/healthz端点
rmm_tools.py
定义暴露在模型中的MCP工具。
这些是模型应该看到的唯一功能。
示例:
list_agents()get_agent(agent_id)reboot_agent(agent_id, mode="normal")run_agent_command(agent_id, command, shell="cmd")
translator.py
将有利于模型的参数转换为实际的API请求。
此层处理:
- 端点选择
- 方法选择
- JSON正文构造
- 论点规范化
- 简单动作映射
例子:
- 模型调用
reboot_agent(agent_id="abc", mode="force") - 翻译者将其转化为
PATCH /agents/{agent_id}/reboot/具有正确的请求正文
api_client.py
将最终HTTP请求发送到上游TRMM/PAI API,并返回规范化的结果对象。
此层处理:
- 身份验证标头
- 超时
- JSON解析
- 状态处理
- 结构化错误报告
______________________________________________________________________
设计目标
此MCP服务器故意固执己见。
1.小工具表面
服务器仅包括 有用的 工具,而不是上游模式中的每个端点。
2.模型友好型工具
每个工具的设计都便于较小的模型正确调用。
3.阅读第一行为
在可能的情况下,模型应首先进行检查,然后采取行动。
4.后端拥有的请求格式
该模型永远不应该负责构建原始端点路径或请求有效负载。
5.更安全的操作
破坏性或状态改变工具保持有限,并明确命名。
______________________________________________________________________
当前工具覆盖范围
代理
list_agentsget_agentget_agent_historyget_agent_notescreate_agent_noteget_agent_taskscreate_agent_taskreboot_agentshutdown_agentwake_agentrun_agent_commandrun_agent_scriptget_agent_eventloglist_agent_processesget_agent_processkill_agent_process
检查
list_checksget_checklist_agent_checksrun_checksrun_checks_for_agentreset_checkreset_all_checks_for_agent
软件
get_agent_softwareuninstall_agent_softwarelist_choco_packages
Windows更新
get_agent_winupdatesscan_agent_winupdatesinstall_agent_winupdates
服务
list_agent_servicesget_agent_servicecontrol_agent_service
脚本
list_scriptsget_scriptdownload_scripttest_script_on_agent
报告
list_report_historyrun_report_historylist_report_schedulesget_report_schedulerun_report_schedule
警报
get_alertupdate_alert_status
自动化
get_automation_policies_overviewget_automation_policylist_automation_policy_checkslist_automation_policy_tasksrun_automation_taskget_automation_task_statusget_automation_check_status
任务
list_tasksget_taskrun_task
______________________________________________________________________
故意不包括的内容
此服务器确实 不 尝试公开上游模式中的每个端点。
除非确实需要,否则有意避免以下类型的端点:
- 每个对象类型的通用CRUD
- 广泛的管理突变终点
- 高度模糊的更新端点
- 原始通过API工具
- 需要大型请求体的配置繁重的端点
- 与更清晰的现有工具重叠太多的工具
这可以防止模型不堪重负,并减少不正确的工具选择。
______________________________________________________________________
工具行为示例
示例1:按名称重新启动代理
该模型应:
- 呼叫
list_agents - 识别正确的代理
- 呼叫
reboot_agent(agent_id, mode="normal")
示例2:调查服务问题
该模型应:
- 找到代理人
- 呼叫
get_agent_service(...)或list_agent_services(...) - 检查结果
- 然后再打电话
control_agent_service(...)如果要求或明确适当
示例3:检查Windows更新
该模型应:
- 呼叫
get_agent_winupdates(agent_id) - 检查结果
- 只打电话
scan_agent_winupdates(...)或install_agent_winupdates(...)当被要求时
______________________________________________________________________
运行服务器
使用Uvicorn启动FastAPI应用程序:
uvicorn server:app --host 0.0.0.0 --port 8000
