自动化平台协议服务器

OpCon MCP Server是一个基于Model Context Protocol (MCP)的服务器,用于与SMA OpCon REST API交互,使AI代理和应用程序能够通过标准化协议与OpCon自动化平台进行交互。

  • by markcoleman
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 markcoleman/OpyConyMcpy

使用说明

OpCon MCP服务器

A. 模型上下文协议(MCP) 用于与SMA OpCon REST API交互的服务器。该服务器使AI代理和应用程序能够通过标准化协议与OpCon自动化平台进行交互。

📚 文档

查看完整文档 -完整的指南包括:

特性

  • ✅ API全面覆盖:根据OpenAPI规范自动生成MCP工具
  • ✅ 身份验证支持:基于令牌和用户名/密码的身份验证
  • ✅ 类型安全:用TypeScript编写,具有完整的类型定义
  • ✅ 综合测试:使用Jest进行单元测试
  • ✅ CI/CD:用于测试、linting和安全的GitHub Actions工作流
  • ✅ 开发工具:DevContainer和VSCode集成
  • ✅ 最佳实践:ESLint、Prettier和安全扫描
  • ✅ Grafana支持:用于监控和可观察性的Prometheus度量

先决条件

  • Node.js 18或更高版本
  • 访问OpCon API服务器
  • OpCon API凭据(令牌或用户名/密码)

安装

npm install

配置

服务器是通过环境变量配置的:

变量 必填 描述
OPCON_BASE_URL 是 OpCon API基础URL(例如。, https://opcon-server:9010)
OPCON_TOKEN 否* 用于身份验证的应用程序令牌
OPCON_USERNAME 否* 身份验证用户名
OPCON_PASSWORD 否* 身份验证密码
OPCON_VERIFY_TLS 否 设置为 false 禁用TLS验证(默认值: true)
OPCON_METRICS_ENABLED 否 设置为 true 启用Prometheus指标(默认值: false)
OPCON_METRICS_PORT 否 指标HTTP服务器的端口(默认值: 9090)

*要么 OPCON_TOKEN 或两者 OPCON_USERNAME 和 OPCON_PASSWORD 是必需的。

用法

运行服务器

# Development mode
npm run dev

# Production mode (after building)
npm run build
node dist/index.js

与MCP客户端一起使用

配置您的MCP客户端(例如,Claude Desktop、MCP Inspector)以使用此服务器:

{
  "mcpServers": {
    "opcon": {
      "command": "node",
      "args": ["/path/to/OpyConyMcpy/dist/index.js"],
      "env": {
        "OPCON_BASE_URL": "https://your-opcon-server:9010",
        "OPCON_TOKEN": "your-token-here"
      }
    }
  }
}

可用工具

服务器根据OpCon OpenAPI规范自动生成MCP工具。每个API端点都成为一个可调用的工具。

65个类别的257个工具 包括:

  • 日常工作 (40个工具)-监控和管理日常作业执行
  • 每日时间表 (11个工具)-日常计划操作
  • 机器 (10个工具)-机器配置和监控
  • 日历 (8个工具)-日历管理
  • 访问代码 (5个工具)-访问代码管理
  • 资源 (5个工具)-资源管理
  • 还有59个类别。..

有关完整列表,请参阅 工具参考.

发展

设置

# Install dependencies
npm install

# Run in development mode
npm run dev

测试

# Run all tests
npm test

# Run tests in watch mode
npm run test:watch

# Run tests with coverage
npm run test:coverage

装订和格式化

# Run ESLint
npm run lint

# Fix ESLint issues
npm run lint:fix

# Check formatting
npm run format:check

# Fix formatting
npm run format

建筑

npm run build

Grafana监控

OpCon MCP服务器支持可以在Grafana中可视化的Prometheus指标。

快速开始

  1. 启用指标收集:
export OPCON_METRICS_ENABLED=true
  1. 启动指标HTTP服务器:
# Development mode
npm run dev:metrics

# Production mode (after building)
node dist/metrics-server.js
  1. 访问指标 http://localhost:9090/metrics

可用指标

  • 请求计数:按工具和方法列出的MCP工具请求总数
  • 错误率:按工具、方法和错误类型分类的错误
  • 请求持续时间:具有p95、p99百分位数的潜伏期直方图
  • 可用工具:注册的MCP工具数量

设置Grafana仪表板

  1. 设置Prometheus以抓取指标端点
  2. 从导入仪表板 grafana/dashboard.json
  3. 在Grafana中配置Prometheus数据源

有关详细说明,请参阅 grafana/README.md.

DevContainer支持

此项目包括VS Code的DevContainer配置。要使用它:

  1. 安装 码头工人 和 VS Code
  2. 安装 远程-容器 扩展
  3. 在VS Code中打开项目
  4. 出现提示时,单击“在容器中重新打开”

VS代码集成

该项目包括VS代码设置和推荐的扩展:

  • ESLint:代码linting
  • 更漂亮:代码格式
  • 小丑跑者:从编辑器运行测试
  • TypeScript:增强的TypeScript支持

CI/CD

GitHub Actions工作流配置用于:

  • 持续集成:在多个Node.js版本上进行梳理、测试和构建
  • 安全:CodeQL分析、依赖审查和npm审计

项目结构

OpyConyMcpy/
├── .devcontainer/          # DevContainer configuration
├── .github/
│   └── workflows/          # GitHub Actions workflows
├── .vscode/                # VS Code settings
├── src/
│   ├── index.ts           # Main server entry point
│   ├── client.ts          # OpCon API client
│   ├── parser.ts          # OpenAPI spec parser
│   └── types.ts           # Type definitions
├── tests/                  # Unit tests
├── swagger.json           # OpCon OpenAPI specification
├── package.json           # Project dependencies
├── tsconfig.json          # TypeScript configuration
├── jest.config.js         # Jest configuration
├── .eslintrc.json         # ESLint configuration
└── .prettierrc            # Prettier configuration

建筑

MCP服务器架构由以下部分组成:

  1. 解析器:读取OpenAPI规范并生成MCP工具定义
  2. 客户端:处理与OpCon API的HTTP通信,包括身份验证
  3. 服务器:实现MCP协议并将工具调用路由到相应的API端点

流动

MCP Client → MCP Server → OpCon Client → OpCon REST API

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 运行测试和梳理
  5. 提交拉取请求

安全

  • 在生产环境中始终使用HTTPS
  • 安全地存储凭据(使用环境变量,永远不要提交它们)
  • 除非绝对必要,否则启用TLS验证
  • 定期更新依赖关系
  • 在GitHub Actions中查看安全扫描结果

许可证

麻省理工学院

支持

有关问题和疑问,请使用GitHub问题跟踪器。