信号代理🚨
通过模型上下文协议(MCP)进行智能故障事件处理
一个生产就绪的MCP服务器和客户端系统,通过自动分类、严重性分析和响应建议,将原始故障事件转化为可操作的情报。
  
🎯 什么是信号代理?
Signal Agent展示了模型上下文协议(MCP)在构建智能自动化系统中的强大功能。它通过复杂的分析管道处理故障事件,该管道:
- 🔍 分析 使用基于关键字的严重性评估的故障事件内容
- 📊 划分 将事件分为操作类别(数据库、网络、安全等)
- 💡 生成 适当的应对建议
- 📋 格式 供作战团队阅读的摘要
✨ 主要特点
🏗️ 生产就绪架构
- 符合标准的MCP实施 使用官方SDK
- 稳健的输入验证 使用Pydantic模式
- 全面的错误处理 以及日志记录
- 与交通无关的设计 (stdio用于开发,HTTP流式传输用于生产)
🧠 智能分析流水线
- 多阶段事件处理 经过验证和丰富
- 基于关键字的严重性重新计算 独立于源评估
- 操作分类 正确的事故路线
- 背景建议 基于严重性和事件类型
🔧 开发者体验
- 多种部署模式 (集成演示,仅限服务器,仅限代理)
- MCP检查器兼容性 用于交互式测试
- 综合录井 以及调试支持
- 明确区分关注点 在运输和商业逻辑之间
🚀 快速开始
先决条件
安装
git clone https://github.com/no0ktheali3n/signal-agent.git
cd signal-agent
# Setup environment and dependencies
uv venv #first time only
just venv #activates venv
just init-install #qol scripts and copes justfile to root
just sync #syncs environment dependencies运行演示
# Full integrated demonstration
just run
# Server only (for MCP Inspector testing)
just run server
# Agent only (launches server subprocess)
just run agent可用命令
just compile # Lock dependencies
just sync # Install dependencies
just upgrade # Upgrade all dependencies
just activate # Activate virtual environment
just run [mode] # Run Signal Agent (demo/server/agent)🏗️ 建筑
Signal Agent遵循一个干净的模块化架构,将关注点分开,实现了轻松的进化:
┌─────────────────┐ MCP Protocol ┌──────────────────┐
│ Signal Agent │◄──────────────────►│ Signal Server │
│ (Client) │ stdio/HTTP │ (MCP Server) │
│ │ │ │
│ • Event Loading │ │ • Tool Registry │
│ • Result Display│ │ • Event Analysis │
│ • Demo Workflow │ │ • Classification │
└─────────────────┘ └──────────────────┘核心组件
🖥️ 信号服务器 (server/server.py)
- 符合MCP标准的服务器 使用官方SDK
- 工具注册 具有适当的输入模式
- 事件分析管道 多阶段处理
- 基于标准的回应 具有文本内容格式
🤖 信号代理 (agent/signal_agent.py)
- MCP客户端 使用stdio传输
- 事件处理工作流 协调
- 结果格式化 并显示
- 演示功能 有测试数据
🎛️ 主协调人 (main.py)
- 多模式部署 (演示、仅服务器、仅代理)
- 组件生命周期 管理
- 优雅关闭 处理
🔧 MCP集成
服务器工具
classify_failure_event
通过智能分析管道处理故障事件。
输入架构:
{
"event_id": "string",
"timestamp": "string",
"service": "string",
"severity": "string",
"message": "string",
"details": "object (optional)"
}示例用法:
{
"event_id": "sig_001_db_failure",
"timestamp": "2024-12-11T14:30:45Z",
"service": "user-authentication-service",
"severity": "critical",
"message": "PostgreSQL connection pool exhausted",
"details": {
"pool_size": 20,
"active_connections": 20,
"queue_length": 150
}
}答复:
{
"event_id": "sig_001_db_failure",
"original_severity": "critical",
"calculated_severity": "critical",
"classification": "database_issue",
"recommendation": "Immediate attention required - escalate to on-call engineer",
"human_readable": "🚨 Signal Alert: sig_001_db_failure...",
"status": "processed"
}health_check
服务器运行状况和连接验证。
MCP检验员测试
# In another terminal, launch MCP Inspector
npx @modelcontextprotocol/inspector uv run python server/server.py
or
just run-inspector测试HTTP传输
# Terminal 1: Start HTTP server
just run-server-http
# Terminal 2: Test with HTTP agent
just run-agent-http
# Or test with direct commands
python main.py server --transport http
python main.py agent --transport http检查员将在以下网址提供网络界面 http://localhost:#### 用于交互式工具测试。
📊 分析管道
Signal Agent通过复杂的多级管道处理事件:
1. 输入验证
- JSON解析和结构验证
- Pydantic模型的执行
- 必填字段验证
2. 严重度分析
- 基于关键字的内容分析
- 与严重性指标的模式匹配
- 根据源评估进行独立重新计算
3. 事件分类
- 操作类别确定
- 模式匹配:
- 数据库问题 - 网络问题 - 资源限制 - 安全事件 - 服务失败
4. 推荐产生
- 情境感知响应建议
- 基于严重性的升级规则
- 标准化操作程序
5. 摘要格式
- 人类可读的结果编译
- 结构化显示格式
- 操作仪表板兼容性
🎯 用例
🏢 企业运营
- 事件响应自动化 -智能事件分类和路由
- 作战情报 -模式识别和趋势分析
- 团队协调 -标准化沟通和升级
🔧 开发工作流程
- 监控集成 -处理来自哨兵、Datadog等的警报。
- CI/CD增强 -自动故障分析和报告
- 质量保证 -系统误差分类和跟踪
📚 学习和研究
- MCP协议示例 -参考实现模式
- AI集成模式 -智能自动化架构
- 协议标准 -MCP服务器开发的最佳实践
🛠️ 发展
项目结构
signal-agent/
├── server/
│ └── server.py # MCP server implementation
├── agent/
│ └── signal_agent.py # MCP client implementation
├── main.py # System orchestrator
├── events/
│ └── test_payload.json # Demo event data
├── docs/ # Documentation
└── examples/ # Usage examples运行测试
# Test server with MCP Inspector (stdio)
just run-inspector
# Test HTTP server and agent
just run-server-http & # Background streamable-HTTP MCP server
just run-agent-http # streamable-HTTP agent test / listener 我们的代理有两个目的,一个是作为手动测试的HTTP监听器,另一个是与MCP服务器交互的MCP客户端。
要手动测试,请运行代理,然后选择选项3启动侦听器。
服务器在localhost:8000上运行,侦听器在localhost:8001上运行。
要手动测试(主编排器因最新更新而损坏),请运行chaos_agent:
#runs chaos agent to run 10 events with 1.5 second delay between event
python agent/chaos_agent.py --count 10 --delay 1.5事件通过SQLite本地存储在signals_Events.db中。
现在让我们运行另一个代理:
just run-agent-http现在,我们可以使用代理作为MCP客户端与我们的MCP服务器交互,并使用服务器上的工具。这允许我们查询signal_events.db,以在命令行界面中返回有关事件的数据。
代码质量
- 键入提示 贯穿整个代码库
- 综合录井 用于调试
- 错误处理 优雅的退化
- 文档 适用于所有公共接口
🚀 进化路线图
Signal Agent代表了更复杂的事件响应系统的基础:
🎯 当前状态(v1.1.0)
- ✅ 符合标准的MCP实施
- ✅ 智能事件分析
- ✅ 双重运输支持 (标准输入+HTTP流式传输)
- ✅ 生产就绪架构
- ✅ 现代开发工作流程 使用justfile自动化
🔮 未来发展
- 🌐 HTTP传输 用于分布式部署
- 📊 多种监控集成 (哨兵、Datadog、Raygun)
- 🤖 机器学习 模式识别的增强
- 🏢 企业特性 适用于MSP环境
🤝 贡献
欢迎投稿!该项目展示了MCP的最佳实践,可供社区参考。
贡献领域
- 其他分析模式 针对不同的事件类型
- 运输实施 (SSE,websocket)
- 集成示例 使用流行的监控工具
- 文档改进 和教程
📄 许可证
MIT许可证-请参阅 许可证 了解详情。
🔗 链接
- 模型上下文协议 -MCP官方文件
- MCP Python SDK -官方Python实现
🙏 致谢
基于官方的模型上下文协议SDK构建,灵感来自现代运营中对智能自动化的需求。
______________________________________________________________________
信号代理 -通过MCP的力量将原始故障事件转化为可操作的情报。 🚨➡️🧠
