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 buildGrafana监控
OpCon MCP服务器支持可以在Grafana中可视化的Prometheus指标。
快速开始
- 启用指标收集:
export OPCON_METRICS_ENABLED=true- 启动指标HTTP服务器:
# Development mode
npm run dev:metrics
# Production mode (after building)
node dist/metrics-server.js- 访问指标
http://localhost:9090/metrics
可用指标
- 请求计数:按工具和方法列出的MCP工具请求总数
- 错误率:按工具、方法和错误类型分类的错误
- 请求持续时间:具有p95、p99百分位数的潜伏期直方图
- 可用工具:注册的MCP工具数量
设置Grafana仪表板
- 设置Prometheus以抓取指标端点
- 从导入仪表板
grafana/dashboard.json - 在Grafana中配置Prometheus数据源
有关详细说明,请参阅 grafana/README.md.
DevContainer支持
此项目包括VS Code的DevContainer配置。要使用它:
- 安装 远程-容器 扩展
- 在VS Code中打开项目
- 出现提示时,单击“在容器中重新打开”
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服务器架构由以下部分组成:
- 解析器:读取OpenAPI规范并生成MCP工具定义
- 客户端:处理与OpCon API的HTTP通信,包括身份验证
- 服务器:实现MCP协议并将工具调用路由到相应的API端点
流动
MCP Client → MCP Server → OpCon Client → OpCon REST API贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 运行测试和梳理
- 提交拉取请求
安全
- 在生产环境中始终使用HTTPS
- 安全地存储凭据(使用环境变量,永远不要提交它们)
- 除非绝对必要,否则启用TLS验证
- 定期更新依赖关系
- 在GitHub Actions中查看安全扫描结果
许可证
麻省理工学院
支持
有关问题和疑问,请使用GitHub问题跟踪器。
