mcpField
L
Logicmonitor MCP

Logicmonitor MCP

本地服务
github.com/monitoringartist云与基础设施1337 周前更新

关于 Logicmonitor MCP

LogicMonitor MCP 服务让 AI 助手调用 LogicMonitor 操作。它提供广泛的工具集,默认启用只读模式,并支持本地或远程传输及可配置的身份验证。

主要功能

  1. 01125 个 LogicMonitor 操作工具
  2. 02STDIO、SSE 和 HTTP 传输
  3. 03默认启用只读模式
  4. 04Bearer token 与 OAuth/OIDC 选项
  5. 05批量操作与自适应并发
  6. 06工具筛选及限流重试

适用场景

  1. 01通过助手检查 LogicMonitor 资源
  2. 02连接本地 Claude Desktop
  3. 03向多位用户提供远程 MCP 访问
  4. 04将集成限制为只读工具

MCP 相关

该服务将 LogicMonitor 操作作为 MCP 工具提供。客户端可通过 STDIO、SSE 或 streamable HTTP 连接;远程访问支持 Bearer token 和 OAuth/OIDC 身份验证选项。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"logicmonitor": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"LM_COMPANY",
"-e",
"LM_BEARER_TOKEN",
"monitoringartist/logicmonitor-mcp-server"
],
"env": {
"LM_COMPANY": "<LM_COMPANY>",
"LM_BEARER_TOKEN": "<LM_BEARER_TOKEN>"
}
}
}
}
启动命令docker run -i --rm -e LM_COMPANY -e LM_BEARER_TOKEN monitoringartist/logicmonitor-mcp-server
需要配置的环境变量
LM_COMPANY
LM_BEARER_TOKEN密钥

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocimonitoringartist/logicmonitor-mcp-server

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

LogicMonitor MCP 服务

LogicMonitor 的模型上下文协议(MCP)服务,可让 AI 助手与您的 LogicMonitor 交互。

CI Release npm version License TypeScript Node

重要

🛠️ 由 Monitoring Artist 管理并提供支持

此 MCP 服务是 Monitoring Artist 推动的独立社区创新项目。

**官方支持免责声明:**此项目不是 LogicMonitor 的官方产品,不在 LogicMonitor 的标准支持服务范围内。

需要企业级可靠性? > Monitoring Artist 为此集成提供专业实施、定制功能开发和专属支持。与我们合作,获取专家解决方案。

功能

  • 125 个 MCP 工具,全面支持 LogicMonitor 操作(73 个只读,52 个写入)
  • 统一服务:单一服务实现,支持所有传输模式(STDIO、SSE、HTTP)
  • 多种传输模式:STDIO 用于本地使用,SSE/HTTP 用于远程访问
  • 灵活的身份验证:无需身份验证(开发环境)、Bearer 令牌或 OAuth/OIDC
  • CSRF 防护:为基于会话的身份验证自动提供 CSRF 防护
  • 只读模式:安全监控,不具备修改功能(默认启用)
  • 灵活配置:CLI 标志、环境变量或 .env 文件
  • 调试日志:支持 JSON 或人类可读格式,并记录详细的请求/响应日志
  • 工具筛选:启用特定工具或禁用搜索功能
  • 速率限制:采用指数退避机制自动重试
  • 批量操作:高效处理多个资源
  • 智能批处理:自适应并发,自动根据 API 速率限制进行调整
  • TLS/HTTPS 支持:可选 TLS,用于安全远程访问

图片

Cursor 提示词 - 资源检查演示

在 Cursor 中使用 LogicMonitor MCP 服务的高级演示,展示如何使用参数为“www.google.com”(LogicMonitor 中的一个资源)的 MCP 提示词执行 LogicMonitor 资源检查。 Agent 了解可用的 MCP 工具,并以自我修正的方式使用它们:

Cursor 提示词资源检查

Cursor 工具

展示 Cursor 中可用 LogicMonitor MCP 工具的截图:

Cursor 工具

Grafana Assistant 工具

展示 Grafana Assistant 中可用 LogicMonitor MCP 工具的截图:

Grafana Assistant 工具

VS Code 工具

展示 Visual Studio Code 中可用 LogicMonitor MCP 工具的截图:

VS Code 工具

安装选项

本地 LogicMonitor MCP 服务

使用 STDIO 传输在本地运行 LogicMonitor MCP Server,供 Claude Desktop 使用: Install with Docker in VS Code Install with npx in VS Code Install with Docker in WSL in VS Code Install with npx in WSL in VS Code Install with Docker in Cursor Install with npx in Cursor Install with Docker in WSL in Cursor Install with npx in WSL in Cursor npm Claude Desktop

# Quick start with npx (no installation needed)
npx logicmonitor-mcp-server

# Or install globally
npm install -g logicmonitor-mcp-server
logicmonitor-mcp-server

添加到 Claude Desktop(macOS 上的 ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "logicmonitor": {
      "command": "npx",
      "args": ["-y", "logicmonitor-mcp-server"],
      "env": {
        "LM_COMPANY": "mycompany",
        "LM_BEARER_TOKEN": "your-bearer-token-here"
      },
      "type": "stdio"
    }
  }
}

最适合:个人使用、集成 Claude Desktop、本地开发

远程 LogicMonitor MCP 服务示例

通过 SSE 或 HTTP 传输方式远程运行 LogicMonitor MCP Server,以便通过 Web 访问:

在 VS Code 中安装为远程 MCP

# Quick start with Docker
docker run -d -p 3000:3000 \
  -e LM_COMPANY=mycompany \
  -e LM_BEARER_TOKEN=your-token \
  -e MCP_TRANSPORT=streamable-http \
  -e OAUTH_PROVIDER=none \
  monitoringartist/logicmonitor-mcp-server

# Available container images

| Registry | Pull command | Notes |
| --- | --- | --- |
| GitHub Container Registry | `docker pull ghcr.io/monitoringartist/logicmonitor-mcp-server:<tag>` | Tags include `latest`, `vX.Y.Z`, `X.Y`, and `X`. |
| Docker Hub | `docker pull monitoringartist/logicmonitor-mcp-server:<tag>` | Mirrors the same tags as GHCR. |

# Or use Docker Compose for production
curl -o docker-compose.yml https://raw.githubusercontent.com/monitoringartist/logicmonitor-mcp-server/main/docker-compose.yml
cp env.example .env  # Configure your credentials
docker-compose up -d logicmonitor-mcp-http

最适合:Web 应用、远程访问、多用户、企业部署,以及由管理员控制访问权限的场景。

快速开始

前置条件
  • Node.js >= 18(或 Docker)
  • 可访问 API 的 LogicMonitor 账号
  • LogicMonitor API Bearer Token
安装
选项 A:Node.js
# Clone the repository
git clone https://github.com/monitoringartist/logicmonitor-mcp-server.git
cd logicmonitor-mcp-server

# Install dependencies
npm install

# Build the project
npm run build
选项 B:Docker
# Clone the repository
git clone https://github.com/monitoringartist/logicmonitor-mcp-server.git
cd logicmonitor-mcp-server

# Build Docker image
docker build -t logicmonitor-mcp-server .

# Or use Docker Compose
cp env.example .env
# Edit .env with your credentials
docker-compose up -d logicmonitor-mcp-http
配置

选择以下三种配置方法之一(按优先级从高到低排列):

选项 1:环境变量(推荐)
export LM_COMPANY=mycompany
export LM_BEARER_TOKEN=your-bearer-token-here
npm start
选项 2:.env 文件
# Copy the example file
cp env.example .env

# Edit .env with your credentials
nano .env

# Run the server
npm start
选项 3:CLI 标志
npm start -- --lm-company mycompany --lm-bearer-token "your-token"

CLI 参考

传输选项
标志环境变量默认值描述
-t, --transport <type>MCP_TRANSPORTstdio传输类型:stdio、sse 或 streamable-http
--address <host:port>MCP_ADDRESSlocalhost:3000SSE/HTTP 传输的服务地址
--base-path <path>MCP_BASE_PATH-服务的基础路径
--endpoint-path <path>MCP_ENDPOINT_PATH/mcpstreamable-http 的端点路径
TLS 配置(仅适用于 streamable-http 传输)
标志环境变量默认值描述
--server.tls-cert-file <path>MCP_TLS_CERT_FILE-HTTPS 的 TLS 证书文件路径。配置证书和密钥后,服务将使用 HTTPS
--server.tls-key-file <path>MCP_TLS_KEY_FILE-HTTPS 的 TLS 私钥文件路径。使用 HTTPS 时,证书和密钥均为必需

注意: 默认情况下(未配置 TLS 时),服务使用 HTTP 协议监听。提供证书和密钥文件后,服务将自动切换为仅使用 HTTPS 协议。

调试和日志记录
标志环境变量默认值描述
--debugMCP_DEBUG=truefalse启用调试模式并输出详细日志
--log-format <format>MCP_LOG_FORMAThuman日志格式:json 或 human
--log-level <level>MCP_LOG_LEVELinfo日志级别:debug、info、warn 或 error
工具配置
标志环境变量默认值描述
--enabled-tools <list>MCP_ENABLED_TOOLSall以逗号分隔的已启用工具列表
--read-onlyMCP_READ_ONLYtrue仅启用只读工具(更安全)。设置 MCP_READ_ONLY=false 以启用写入操作
LogicMonitor API(必需)
标志环境变量描述
--lm-company <name>LM_COMPANY您的 LogicMonitor 公司/账号名称(子域名)。例如,如果您的门户地址为 mycompany.logicmonitor.com,请使用 mycompany
--lm-bearer-token <token>LM_BEARER_TOKENLogicMonitor API Bearer Token。生成路径:Settings > Users & Roles > API Tokens
MCP 服务身份验证(可选——仅适用于 SSE/HTTP 传输)
标志环境变量默认值描述
--mcp-bearer-token <token>MCP_BEARER_TOKEN-用于对连接到 MCP 服务的客户端进行身份验证的静态 bearer token。可作为 OAuth 的替代方式,或与 OAuth 配合使用,以便通过 SSE/HTTP 传输进行远程访问。STDIO 传输无需此设置。
-OAUTH_PROVIDERnoneOAuth 提供商类型:none(已禁用)、github、google、azure、okta、auth0 或 custom。设为 none 或留空可禁用 OAuth 身份验证。

注意: 此设置用于对 MCP 服务进行身份验证,而非用于 LogicMonitor API 访问。

身份验证模式:

  • 无身份验证(默认):如果既未配置 MCP_BEARER_TOKEN,也未配置 OAuth(OAUTH_PROVIDER=none),则允许未经身份验证的访问。仅适用于开发/测试。
  • Bearer Token:简单的静态 token 身份验证——设置 MCP_BEARER_TOKEN
  • OAuth/OIDC:企业身份验证——配置 OAUTH_PROVIDER 和相关设置(参见 env.example)
  • 两者兼用:两种身份验证方式可以同时使用

使用示例

Claude Desktop(STDIO——推荐)

将以下内容添加到 Claude Desktop 配置中(macOS 上为 ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "logicmonitor": {
      "command": "node",
      "args": [
        "/path/to/logicmonitor-mcp-server/build/servers/index.js"
      ],
      "env": {
        "LM_COMPANY": "mycompany",
        "LM_BEARER_TOKEN": "your-bearer-token",
        "MCP_TRANSPORT": "stdio"
      }
    }
  }
}

注意: MCP_TRANSPORT=stdio 是可选的,因为它是默认值;此处包含它是为了清晰起见。

SSE 传输(远程访问)
# Start SSE server with debug logging
npm start -- --transport sse --address localhost:3000 --debug

# Or using environment variables
export MCP_TRANSPORT=sse
export MCP_ADDRESS=localhost:3000
export MCP_DEBUG=true
npm start

# Or use the convenience script
npm run start:sse

注意: 对于 SSE/HTTP 传输,身份验证是可选的,但建议启用:

  • 开发/测试:无需身份验证(OAUTH_PROVIDER=none 时的默认设置)
  • 生产环境:配置 MCP_BEARER_TOKEN 或 OAuth(参见下文的“身份验证模式”)

健康检查端点: 使用 SSE 或可流式 HTTP 传输时,可用以下健康检查端点:

简单健康检查(/healthz)
# Quick health check
curl http://localhost:3000/healthz
# Response: 200 OK with body "ok"
详细健康检查(/health)
# Detailed health information
curl http://localhost:3000/health

响应包含:

{
  "status": "healthy",
  "version": "1.0.0",
  "uptime": 3600.5,
  "memory": {
    "rss": 52428800,
    "heapTotal": 20971520,
    "heapUsed": 15728640,
    "external": 1048576,
    "arrayBuffers": 262144
  },
  "connections": {
    "mcp": 5,
    "http": 3
  },
  "timestamp": "2025-11-02T12:00:00.000Z",
  "transport": {
    "mode": "both",
    "http": true,
    "sse": true
  }
}

以下系统可使用这些端点:

  • 负载均衡器(简单检查使用 /healthz)
  • 监控系统(详细指标使用 /health)
  • 编排平台(Docker、Kubernetes)
  • CI/CD 健康检查
  • APM 和可观测性工具

注意: 使用 STDIO 传输时,健康检查端点不可用。

HTTPS/TLS 配置(安全传输)

若要为 SSE 或可流式 HTTP 传输启用 HTTPS,请同时提供证书文件和密钥文件:

# Using environment variables (recommended)
export MCP_TLS_CERT_FILE=/path/to/cert.pem
export MCP_TLS_KEY_FILE=/path/to/key.pem
export MCP_TRANSPORT=sse
npm start

# Using CLI flags
npm start -- --transport sse \
  --server.tls-cert-file /path/to/cert.pem \
  --server.tls-key-file /path/to/key.pem

# Access via HTTPS
curl https://localhost:3000/healthz

行为:

  • 未配置 TLS(默认):服务使用 HTTP 协议
  • 已配置 TLS(同时提供证书和密钥文件):服务仅使用 HTTPS 协议
  • TLS 配置不完整(仅提供证书或密钥):服务使用 HTTP 协议(必须同时提供两者)

生成用于测试的自签名证书:

# Generate self-signed certificate (for development/testing only)
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes \
  -subj "/CN=localhost"

# Start server with TLS
npm start -- --transport sse \
  --server.tls-cert-file ./cert.pem \
  --server.tls-key-file ./key.pem

生产环境建议:

  • 使用受信任证书颁发机构签发的证书(Let's Encrypt、商业证书颁发机构)
  • 考虑使用反向代理(nginx、Caddy)终止 TLS
  • 在证书到期前轮换证书
  • 使用强 TLS 协议(TLS 1.2+)
只读模式(默认——安全监控)

默认情况下,服务以只读模式运行,以确保安全:

# Read-only mode (default)
npm start

# Explicitly enable write operations
npm start -- # with MCP_READ_ONLY=false in .env

# Or via environment
export MCP_READ_ONLY=false
npm start
自定义工具选择
# Enable specific tools only
npm start -- --enabled-tools "list_resources,get_resource,list_alerts,get_alert"

# Disable search functionality
npm start -- --disable-search
用于生产环境的 JSON 日志记录
npm start -- --log-format json --log-level warn
完整示例
npm start -- \
  --lm-company mycompany \
  --lm-bearer-token "your-token" \
  --transport sse \
  --address 0.0.0.0:8080 \
  --read-only \
  --log-format json \
  --log-level info
传输模式快捷方式

统一服务为每种传输方式提供了便捷的 npm 脚本:

# STDIO transport (default, for Claude Desktop)
npm start
npm run start:stdio

# SSE transport (for web/remote clients)
npm run start:sse

# HTTP transport (for advanced integrations)
npm run start:http

可用工具

该服务提供 122 个工具,全面支持 LogicMonitor 操作。工具按功能分类,并标记为只读(安全)或写入(修改数据)。

资源/设备管理

只读:

  • list_resources - 列出所有受监控的资源/设备,并支持筛选(可通过 query 参数进行简单搜索,或通过 filter 参数进行高级筛选)
  • get_resource - 根据 ID 获取设备详细信息
  • generate_resource_link - 生成设备在 LM UI 中的直接链接

写操作:

  • create_resource - 添加新设备以进行监控(支持批量操作)
  • update_resource - 修改现有设备(支持批量操作)
  • delete_resource - 从监控中移除设备(支持批量操作)
资源/设备组

只读:

  • list_resource_groups - 列出所有设备组/文件夹
  • get_resource_group - 根据 ID 获取设备组详情

写操作:

  • create_resource_group - 创建新的设备组
  • update_resource_group - 修改设备组
  • delete_resource_group - 删除设备组
告警管理

只读:

  • list_alerts - 列出当前活跃的告警,并支持筛选(可通过 query 参数进行简单搜索,或通过 filter 参数进行高级筛选)
  • get_alert - 获取告警详细信息
  • generate_alert_link - 生成告警在 LM UI 中的直接链接
  • list_alert_rules - 列出告警路由规则
  • get_alert_rule - 获取告警规则详情

写操作:

  • acknowledge_alert - 确认告警(停止升级)
  • add_alert_note - 为告警添加备注以供记录
  • create_alert_rule - 创建新的告警路由规则
  • update_alert_rule - 修改告警规则
  • delete_alert_rule - 删除告警规则
数据源与监控

只读:

  • list_datasources - 列出所有可用的数据源
  • get_datasource - 获取数据源详情
  • list_resource_datasources - 列出应用于设备的数据源
  • get_resource_datasource - 获取设备数据源详情
  • list_resource_instances - 列出数据源实例(磁盘、接口等)
  • get_resource_instance_data - 获取时间序列指标数据
  • list_eventsources - 列出所有事件源
  • get_eventsource - 获取事件源详情
  • list_configsources - 列出配置源
  • get_configsource - 获取配置源详情

写操作:

  • update_resource_datasource - 修改设备数据源配置
仪表板与报告

只读:

  • list_dashboards - 列出所有仪表板
  • get_dashboard - 获取仪表板详情
  • generate_dashboard_link - 生成仪表板在 LM UI 中的直接链接
  • list_dashboard_groups - 列出仪表板组
  • get_dashboard_group - 获取仪表板组详情
  • list_reports - 列出所有报告
  • get_report - 获取报告详情
  • list_report_groups - 列出报告组
  • get_report_group - 获取报告组详情

写操作:

  • create_dashboard - 创建新的仪表板
  • update_dashboard - 修改仪表板
  • delete_dashboard - 删除仪表板
  • create_report_group - 创建报告组
  • update_report_group - 修改报告组
  • delete_report_group - 删除报告组
收集器与基础设施

只读:

  • list_collectors - 列出监控收集器(Agent)
  • get_collector - 获取收集器详情
  • list_collector_groups - 列出收集器组
  • get_collector_group - 获取收集器组详情
  • list_collector_versions - 列出可用的收集器版本
  • list_netscans - 列出网络发现扫描
  • get_netscan - 获取 NetScan 详情
  • get_topology - 获取网络拓扑信息

写操作:

  • create_netscan - 创建 NetScan
  • update_netscan - 修改 NetScan
  • delete_netscan - 删除 NetScan
网站监控

只读:

  • list_websites - 列出网站监控项
  • get_website - 获取网站监控详情
  • generate_website_link - 生成 LM UI 中网站的直接链接
  • list_website_groups - 列出网站组
  • get_website_group - 获取网站组详情
  • list_website_checkpoints - 列出可用的监控检查点

写入操作:

  • create_website - 创建新的网站监控项
  • update_website - 修改网站监控项
  • delete_website - 删除网站监控项
服务(业务逻辑)

只读:

  • list_services - 列出业务服务
  • get_service - 获取服务详情
  • list_service_groups - 列出服务组
  • get_service_group - 获取服务组详情

写入操作:

  • create_service - 创建新的业务服务
  • update_service - 修改服务
  • delete_service - 删除服务
  • create_service_group - 创建服务组
  • update_service_group - 修改服务组
  • delete_service_group - 删除服务组
告警配置

只读:

  • list_escalation_chains - 列出告警升级链
  • get_escalation_chain - 获取升级链详情
  • list_recipients - 列出告警接收人
  • get_recipient - 获取接收人详情
  • list_recipient_groups - 列出接收人组
  • get_recipient_group - 获取接收人组详情

写入操作:

  • create_escalation_chain - 创建升级链
  • update_escalation_chain - 修改升级链
  • delete_escalation_chain - 删除升级链
  • create_recipient - 创建告警接收人
  • update_recipient - 修改接收人
  • delete_recipient - 删除接收人
  • create_recipient_group - 创建接收人组
  • update_recipient_group - 修改接收人组
  • delete_recipient_group - 删除接收人组
集成

只读:

  • list_integrations - 列出第三方集成
  • get_integration - 获取集成详情

写入操作:

  • create_integration - 创建新集成
  • update_integration - 修改集成
  • delete_integration - 删除集成
管理与安全

只读:

  • list_users - 列出用户/管理员
  • get_user - 获取用户详情
  • list_roles - 列出用户角色
  • get_role - 获取角色详情
  • list_access_groups - 列出访问组
  • get_access_group - 获取访问组详情
  • list_api_tokens - 列出用户的 API 令牌

写入操作:

  • create_access_group - 创建访问组
  • update_access_group - 修改访问组
  • delete_access_group - 删除访问组
属性与配置

只读:

  • list_resource_properties - 列出设备的自定义属性
  • list_resource_group_properties - 列出设备组的属性

写入操作:

  • update_resource_property - 更新设备属性值
  • update_resource_group_property - 更新设备组属性值
计划停机时间(SDT)

只读:

  • list_sdts - 列出计划停机时间
  • get_sdt - 获取 SDT 详情

写入操作:

  • create_resource_sdt - 创建计划停机时间
  • delete_sdt - 删除计划停机时间
运维备注

只读:

  • list_opsnotes - 列出运维备注
  • get_opsnote - 获取运维备注详情

写入操作:

  • create_opsnote - 创建运维备注
  • update_opsnote - 修改运维备注
  • delete_opsnote - 删除运维备注
审计与合规

只读:

  • list_audit_logs - 列出审计跟踪日志(支持通过 query 参数进行简单搜索,或通过 filter 参数进行高级筛选)
  • get_audit_log - 获取审计日志条目详情
摘要
  • 70 个只读工具 - 可安全用于生产环境监控
  • 52 个写入工具 - 需谨慎使用(默认通过 --read-only 禁用)
  • 共 122 个工具

安全注意事项

按传输模式划分的身份验证
传输方式身份验证安全级别使用场景
STDIO无需身份验证(本地进程)✅ 安全Claude Desktop、本地 CLI
SSE/HTTP(无身份验证)无(默认值:OAUTH_PROVIDER=none)⚠️ 仅用于开发本地测试
SSE/HTTP(Bearer)通过 MCP_BEARER_TOKEN 设置静态令牌✅ 安全(使用 HTTPS 时)API 客户端、内部服务
SSE/HTTP(OAuth)OAuth/OIDC 提供方✅ 安全(使用 HTTPS 时)Web 应用、企业 SSO
只读模式(推荐)

对于生产环境监控,请启用只读模式,防止意外修改:

npm start -- --read-only
# or
export MCP_READ_ONLY=true
npm start

这会禁用全部 52 个写入操作,仅保留 73 个安全的只读工具。

身份验证设置
开发环境(无身份验证)
# Default configuration - no authentication required
export LM_COMPANY=mycompany
export LM_BEARER_TOKEN=your-lm-token
export MCP_TRANSPORT=sse
export OAUTH_PROVIDER=none  # or omit - this is the default
npm start

⚠️ 警告: 未经身份验证的访问允许任何人连接。仅在可信环境中使用。

生产环境 - Bearer 令牌(简单)
# Generate a strong token
export MCP_BEARER_TOKEN=$(openssl rand -base64 32)
export OAUTH_PROVIDER=none

# Enable TLS
export MCP_TLS_CERT_FILE=/path/to/cert.pem
export MCP_TLS_KEY_FILE=/path/to/key.pem

# Start server
npm start -- --transport sse

客户端必须包含令牌:

curl -H "Authorization: Bearer YOUR_TOKEN" https://localhost:3000/health
生产环境 - OAuth(企业级)
# Configure OAuth provider
export OAUTH_PROVIDER=github  # github, google, azure, okta, auth0, custom
export OAUTH_CLIENT_ID=your-client-id
export OAUTH_CLIENT_SECRET=your-client-secret
export OAUTH_SESSION_SECRET=$(openssl rand -hex 32)
export OAUTH_CALLBACK_URL=https://your-domain.com/auth/callback

# Enable TLS
export MCP_TLS_CERT_FILE=/path/to/cert.pem
export MCP_TLS_KEY_FILE=/path/to/key.pem

# Start server
npm start -- --transport sse

用户通过浏览器在 /auth/login 进行身份验证。

生产环境 - 组合模式(灵活)
# Both OAuth and bearer token enabled
export OAUTH_PROVIDER=github
export OAUTH_CLIENT_ID=your-client-id
export OAUTH_CLIENT_SECRET=your-client-secret
export MCP_BEARER_TOKEN=$(openssl rand -base64 32)

# Users: OAuth login via browser
# APIs: Bearer token in Authorization header
API 令牌安全

LogicMonitor API 令牌(LM_BEARER_TOKEN):

  • 切勿提交到版本控制系统
  • 使用环境变量或 .env 文件(.env 已列入 .gitignore)
  • 定期轮换(建议每月一次)
  • 在 LogicMonitor 门户中使用满足需求的最小权限

MCP 服务令牌(MCP_BEARER_TOKEN):

  • 生成强令牌(32 字节以上):openssl rand -base64 32
  • 安全存储(环境变量、密钥管理)
  • 切勿在日志或错误消息中暴露
  • 定期轮换
  • 为不同环境使用不同的令牌
网络安全

生产环境 SSE/HTTP 的必备项:

  • ✅ HTTPS/TLS:始终使用加密连接(MCP_TLS_CERT_FILE、MCP_TLS_KEY_FILE)
  • ✅ 身份验证:启用 Bearer 令牌或 OAuth(生产环境中切勿在未经身份验证的情况下运行)
  • ✅ 防火墙:按 IP/网络限制访问
  • ✅ 速率限制:内置自动速率限制
  • ⚡ 监控:使用 /health 端点进行运行状况检查

可选项(纵深防御):

  • 使用反向代理(nginx、Caddy)增加安全层
  • 部署 WAF(Web 应用防火墙)
  • 在敏感环境中使用 VPN 或堡垒机
  • 启用审计日志记录(--log-format json --log-level info)
生产环境安全检查清单
  • 已启用只读模式(MCP_READ_ONLY=true)
  • 已配置 HTTPS/TLS(MCP_TLS_CERT_FILE、MCP_TLS_KEY_FILE)
  • 已启用身份验证(已配置 MCP_BEARER_TOKEN 或 OAuth)
  • 已启用 CSRF 防护(OAuth 会自动启用)
  • 最近已轮换 LogicMonitor API 令牌
  • .env 文件未纳入版本控制
  • 防火墙规则将访问限制为授权 IP
  • 已监控运行状况检查端点(/health)
  • 定期检查日志
  • 已授予最小必要的 LogicMonitor API 权限

故障排除

“LogicMonitor credentials are required”

确保已设置 LM_COMPANY 和 LM_BEARER_TOKEN:

export LM_COMPANY=mycompany
export LM_BEARER_TOKEN=your-token

或者使用 CLI 标志:

npm start -- --lm-company mycompany --lm-bearer-token "your-token"
速率限制

服务会自动通过指数退避处理速率限制。如果持续遇到速率限制:

  1. 减少并发请求
  2. 启用 --debug 查看速率限制详情
  3. 联系 LogicMonitor 支持以提高速率限制
连接问题
# Test with debug logging
npm start -- --debug --log-level debug

# Verify credentials
curl -H "Authorization: Bearer YOUR_TOKEN" \
  https://YOUR_COMPANY.logicmonitor.com/santaba/rest/device/devices?size=1
未找到工具

启用指定工具:

npm start -- --enabled-tools "list_resources,get_resource"

或者检查只读模式是否排除了写入操作:

# Show all tools (including write operations)
export MCP_READ_ONLY=false
npm start
身份验证问题

连接 SSE/HTTP 时出现“401 Unauthorized”:

  • 检查是否已设置 MCP_BEARER_TOKEN,且与请求中的令牌一致
  • 使用 OAuth 时,确保已在 /auth/login 登录
  • 确认令牌尚未过期(OAuth 令牌会过期,静态令牌不会)

出现“No authentication configured”警告:

  • 当 OAUTH_PROVIDER=none 且未设置 MCP_BEARER_TOKEN 时,这是预期情况
  • 在开发环境中,这没有问题——服务允许未经身份验证的访问
  • 在生产环境中,请配置身份验证(参见上文的安全注意事项)

OAuth 登录无法使用:

  • 确认已正确设置 OAUTH_PROVIDER、OAUTH_CLIENT_ID 和 OAUTH_CLIENT_SECRET
  • 检查回调 URL 是否与 OAuth 提供方的配置一致
  • 查看服务日志以获取详细错误消息(--debug --log-level debug)

参与贡献

欢迎贡献!请按以下步骤操作:

  1. Fork 此仓库
  2. 创建功能分支
  3. 进行更改
  4. 运行 npm run lint 和 npm run build
  5. 提交拉取请求

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。