Token导航 LogoToken导航TokenDH.com
Mcpserver Opsmanager logo
AI代理stdio官方级别未说明来源级核验

Mcpserver Opsmanager

MCP Server

一个实现与Microsoft System Center Operations Manager (SCOM) REST API交互的工具集,提供认证、警报检索、监控查询和仪表板管理功能。

工具数

6

提示词数

0

GitHub Stars

0

资源数

0
PythonClaudeAI代理Claude

安装说明

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

作者 / 组织

vyomnagrani

提供方

vyomnagrani

最后核验

2026/5/17 20:22

运行时

Python

快速接入

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

命令预览

python -m venv venv

详细介绍

Microsoft Operations Manager的MCP服务器

一种模型上下文协议(MCP)服务器实现,为与Microsoft System Center Operations Manager(SCOM)REST API交互提供工具。

概述

此MCP服务器实现了与Microsoft Operations Manager REST API的无缝集成,使您能够:

  • 验证 使用SCOM服务器
  • 检索警报详细信息 并搜索警报
  • 查询监视器 标准灵活
  • 管理仪表板 (创建和检索)
  • 处理CSRF令牌 安全操作(SCOM 2019 UR1+)

特性

支持的操作

  • 认证:支持CSRF令牌的基于网络的身份验证
  • 警报管理:获取警报详细信息,通过过滤检索警报
  • 监视器:使用自定义条件查询监控器
  • 仪表盘:列出并创建监控仪表板
  • 异步/等待:无阻塞I/O,实现高性能
  • 错误处理:全面的错误处理和记录

先决条件

  • Python 3.11+
  • Docker和Docker Compose(用于容器化部署)
  • 访问Microsoft Operations Manager 2019服务器或更高版本
  • SCOM服务器的网络连接

地方发展设置

1.创建虚拟环境

python -m venv venv

# On Windows
.\venv\Scripts\activate

# On macOS/Linux
source venv/bin/activate

2.安装依赖项

pip install -r requirements.txt

3.运行服务器

python server.py

服务器将启动并等待通过stdin/stdout传入的MCP连接。

Docker部署

使用Docker Compose构建和运行

# Start the service
docker-compose up -d

# View logs
docker-compose logs -f mcp-operations-manager

# Stop the service
docker-compose down

手动构建Docker镜像

docker build -t mcp-operations-manager:latest .
docker run -d \
  --name mcp-operations-manager \
  -e LOG_LEVEL=INFO \
  mcp-operations-manager:latest

Azure容器应用部署

先决条件

  • Azure CLI已安装并通过身份验证
  • Azure容器注册表(或使用Docker Hub)
  • Azure容器应用程序环境

部署步骤

# 1. Push image to Azure Container Registry
az acr build --registry  --image mcp-operations-manager:latest .

# 2. Create Container App
az containerapp create \
  --resource-group  \
  --name mcp-operations-manager \
  --environment  \
  --image .azurecr.io/mcp-operations-manager:latest \
  --cpu 1.0 \
  --memory 0.5Gi \
  --environment-variables LOG_LEVEL=INFO

# 3. View logs
az containerapp logs show \
  --resource-group  \
  --name mcp-operations-manager

配置

环境变量

创建一个 .env 文件基于 .env.example:

cp .env.example .env

可用变量:

  • LOG_LEVEL:日志记录级别(调试、信息、警告、错误)
  • SCOM_BASE_URL:SCOM服务器的基本URL
  • SCOM_USERNAME:身份验证用户名
  • SCOM_PASSWORD:身份验证密码
  • SCOM_AUTH_MODE:身份验证模式(默认:网络)

Docker编写配置

编辑 docker-compose.yml 自定义:

  • 端口映射
  • 资源限制
  • 环境变量
  • 网络设置
  • 卷装载

API工具

1.身份验证

使用SCOM服务器进行身份验证。

参数:

  • base_url (必填):SCOM服务器的基本URL(例如。, http://scomserver/OperationsManager)
  • username (必填):用户名
  • password (必填):密码
  • auth_mode (可选):身份验证模式(默认:“网络”)

例子:

{
  "name": "authenticate",
  "arguments": {
    "base_url": "http://scomserver/OperationsManager",
    "username": "domain\\username",
    "password": "password"
  }
}

2.获取警报详细信息

检索特定警报的详细信息。

参数:

  • alert_id (必需):警报ID(GUID)

例子:

{
  "name": "get_alert_details",
  "arguments": {
    "alert_id": "6A88FBC1-0EDC-4173-9BB1-30FFEC296672"
  }
}

3.获取警报

使用可选过滤检索警报。

参数:

  • filter (可选):筛选条件(例如“SQL”)
  • limit (可选):最大结果(默认值:100)

例子:

{
  "name": "get_alerts",
  "arguments": {
    "filter": "SQL",
    "limit": 50
  }
}

4.获取监视器

具有自定义条件的查询监视器。

参数:

  • criteria (可选):搜索条件(例如,“DisplayName LIKE%SQL%”)

例子:

{
  "name": "get_monitors",
  "arguments": {
    "criteria": "DisplayName LIKE %SQL%"
  }
}

5.获取仪表板

列出所有可用的仪表板。

例子:

{
  "name": "get_dashboards",
  "arguments": {}
}

6.创建仪表板

创建一个新的仪表板。

参数:

  • name (必填):仪表板名称
  • path (必填):仪表板路径/ID

例子:

{
  "name": "create_dashboard",
  "arguments": {
    "name": "TestAPIDashboard",
    "path": "35b6eba3-6202-8738-a47f-16acf476230f"
  }
}

用法示例

PowerShell示例

# Authenticate with SCOM
$auth_response = Invoke-MCP -Tool authenticate -Arguments @{
    base_url = "http://scomserver/OperationsManager"
    username = "domain\username"
    password = "password"
}

# Get alert details
$alert_response = Invoke-MCP -Tool get_alert_details -Arguments @{
    alert_id = "6A88FBC1-0EDC-4173-9BB1-30FFEC296672"
}

# Get all SQL-related alerts
$alerts = Invoke-MCP -Tool get_alerts -Arguments @{
    filter = "SQL"
    limit = 100
}

Python示例

import subprocess
import json

def call_mcp_tool(tool_name, arguments):
    """Call MCP tool via stdio"""
    cmd = json.dumps({
        "jsonrpc": "2.0",
        "method": "tools/call",
        "params": {
            "name": tool_name,
            "arguments": arguments
        }
    })
    
    result = subprocess.run(
        ["python", "server.py"],
        input=cmd,
        capture_output=True,
        text=True
    )
    
    return json.loads(result.stdout)

# Usage
auth_result = call_mcp_tool("authenticate", {
    "base_url": "http://scomserver/OperationsManager",
    "username": "domain\\username",
    "password": "password"
})

print(auth_result)

安全注意事项

CSRF令牌处理

服务器自动处理SCOM 2019 UR1及更高版本的CSRF令牌:

  1. 从身份验证响应中提取令牌
  2. 在所有后续请求中包含令牌
  3. 安全地管理会话和Cookie

SSL/TLS通信

对于生产部署:

  1. 在SCOM服务器配置中启用SSL验证
  2. 使用HTTPS端点而不是HTTP
  3. 实施适当的证书管理

身份验证最佳实践

  • 不要硬编码凭据 生产中的环境变量
  • 使用Azure密钥库或类似工具进行秘密管理
  • 实施凭证轮换政策
  • 使用具有最低所需权限的服务帐户

网络安全

部署到Azure容器应用程序时:

  1. 使用虚拟网络集成
  2. 配置网络安全组
  3. 实施入口限制
  4. 使用私有端点(如果可用)

监控和日志记录

日志级别

  • DEBUG:故障排除的详细信息
  • INFO:一般信息性消息
  • WARNING:可恢复问题的警告消息
  • ERROR:失败的错误消息

查看日志

Docker编写:

docker-compose logs -f mcp-operations-manager

Azure容器应用程序:

az containerapp logs show \
  --resource-group  \
  --name mcp-operations-manager

结构化日志记录

所有日志包括:

  • 时间戳
  • 日志级别
  • 组件/模块名称
  • 消息
  • 堆栈跟踪(用于错误)

故障排除

身份验证失败

问题: “身份验证失败:401”

解决:

  • 验证SCOM服务器URL是否可访问
  • 检查用户名和密码
  • 确保用户具有适当的SCOM权限
  • 验证身份验证模式(网络/Windows)

CSRF令牌错误

问题: “CSRF令牌丢失或无效”

解决:

  • 确保安装了SCOM 2019 UR1或更高版本
  • 验证正在从身份验证响应中提取令牌
  • 检查令牌是否包含在后续请求中

连接超时

问题: “与SCOM服务器的连接超时”

解决:

  • 检查SCOM服务器的网络连接
  • 验证防火墙规则是否允许HTTP/HTTPS流量
  • 检查SCOM服务器是否正在运行并响应
  • 如果网络速度慢,则增加超时值

内存/资源问题

解决:

  • 调整Docker资源限制 docker-compose.yml
  • 监控容器内存使用情况
  • 为高容量场景实施连接池
  • 如果需要,启用请求速率限制

发展

项目结构

mcp-server-opsmanager/
├── server.py              # Main server implementation
├── requirements.txt       # Python dependencies
├── Dockerfile            # Docker image definition
├── docker-compose.yml    # Docker Compose configuration
├── .env.example          # Environment variables template
├── README.md             # This file
└── LICENSE               # Apache 2.0 License

添加新工具

要添加新的SCOM API操作,请执行以下操作:

  1. 添加方法 OperationsManagerClient
  2. 在中创建工具定义 setup_tools()
  3. 在中添加处理程序 handle_tool_call()

运行测试

# Install test dependencies
pip install pytest pytest-asyncio

# Run tests
pytest

建筑

构件图

┌─────────────────────────────────────────────────────────────┐
│                    MCP Client                                │
│              (Claude, Copilot, etc.)                        │
└────────────────────┬────────────────────────────────────────┘
                     │
                     │ MCP Protocol (JSON-RPC)
                     │ stdin/stdout
                     │
┌────────────────────▼────────────────────────────────────────┐
│              MCP Server (server.py)                          │
│  ┌──────────────────────────────────────────────────────┐  │
│  │  Tool Handlers                                       │  │
│  │  - authenticate                                      │  │
│  │  - get_alert_details                                 │  │
│  │  - get_alerts                                        │  │
│  │  - get_monitors                                      │  │
│  │  - get_dashboards                                    │  │
│  │  - create_dashboard                                  │  │
│  └──────────────────────────────────────────────────────┘  │
│  ┌──────────────────────────────────────────────────────┐  │
│  │  OperationsManagerClient                             │  │
│  │  - Authentication & CSRF token handling              │  │
│  │  - HTTP session management                           │  │
│  │  - API method wrappers                               │  │
│  └──────────────────────────────────────────────────────┘  │
└────────────────────┬────────────────────────────────────────┘
                     │
                     │ HTTP(S)
                     │
┌────────────────────▼────────────────────────────────────────┐
│     Microsoft Operations Manager (SCOM)                     │
│     REST API Endpoints                                      │
└─────────────────────────────────────────────────────────────┘

性能优化

推荐的生产设置

Docker编写:

deploy:
  resources:
    limits:
      cpus: '2'
      memory: 1024M
    reservations:
      cpus: '1'
      memory: 512M

Azure容器应用程序:

--cpu 2.0 --memory 1.0Gi

连接池

服务器使用httpx的连接池:

  • 默认值:100个连接
  • 线程数:10
  • 超时:每个请求5秒

缓存建议

对于频繁访问的数据:

from functools import lru_cache

@lru_cache(maxsize=128)
async def get_cached_alert(alert_id):
    return await scom_session.get_alert_details(alert_id)

API 参考

基础URL

http:///OperationsManager

认证

POST /authenticate
Content-Type: application/json
Body: Base64(AuthMode:Username:Password)

警报操作

GET /data/alertDetails/{alertId}
POST /data/alertDetails

监控操作

POST /data/class/monitors
Body: Criteria string (JSON)

仪表板操作

GET /monitoring/dashboard
POST /monitoring/dashboard

许可证

Apache 2.0许可证-有关详细信息,请参阅许可证文件

支持

对于问题、疑问或改进:

  1. 检查故障排除部分
  2. 查看SCOM REST API文档
  3. 检查MCP协议规范
  4. 在存储库中打开问题

参考文献

更新日志

1.0.0版本(首次发布)

  • MCP服务器的初始实施
  • 支持核心SCOM操作
  • Docker和Docker Compose支持
  • Azure容器应用部署指南
  • 综合文档

______________________________________________________________________

最后更新时间: 2026年2月17日 状态: 生产就绪

目录标签

目录标签

PythonClaudeAI代理运维管理本地部署RESTAPI微软系统中心监控工具协议服务器

支持客户端

Claude

接入字段

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

stdio

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

token

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

6

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiotoken部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP