事件管理协议服务器

一个用于与incident.io API集成的MCP服务器,提供事件管理、用户查找和工作流自动化工具。

  • by ianchesal
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ianchesal/incident-io-mcp-server

使用说明

事故io-mcp服务器

用于与incident.io API集成的MCP(模型上下文协议)服务器。该服务器通过Claude和其他兼容MCP的AI助手提供事件管理、用户查找和工作流自动化工具。

⚠️ 安全警告

🚨 不要在开放的互联网上运行此服务器🚨

此MCP服务器提供 无身份验证 在其工具API上。任何可以访问服务器的人都可以:

  • 列出组织中的所有事件
  • 查看敏感事件详细信息
  • 创建新事件
  • 访问用户信息
  • 查看组织数据(严重程度、状态)

安全使用:

  • ✅ 仅在localhost/127.0.0.0.1上运行
  • ✅ 在本地开发环境中使用
  • ✅ 在正确的身份验证/VPN后部署
  • ❌ 切勿直接接触互联网
  • ❌ 在没有适当网络安全的情况下,切勿在公共云实例上运行

此服务器仅适用于本地开发和安全、经过身份验证的环境。

特性

  • 事件管理:列出、查看和创建事件
  • 用户查找:搜索并列出组织用户
  • 元数据访问:获取事件严重程度和状态
  • 安全认证:带有意外的承载令牌身份验证.io API
  • 综合测试:具有异步支持的完整测试套件
  • 容器运行时灵活性:自动检测和支持Docker和Podman

认证

此MCP服务器使用 承载令牌身份验证 API事件。所有API请求都包含 Authorization: Bearer <YOUR_API_KEY> 用于安全身份验证的标头。

服务器支持多种安全方法来提供API密钥,并自动从加载环境变量 .env 文件,以方便开发。

快速开始

先决条件

  • 容器运行时:Docker或Podman(自动检测)
  • 编排:docker compose或podman compose
  • 制造:通常预装在macOS/Linux上
  • API密钥:incident.io API密钥

开发环境设置

  1. 克隆存储库:

    git clone git@github.com:ianchesal/incident-io-mcp-server.git
    cd incident-io-mcp-server
    
  2. 检查容器运行时并构建:

    make runtime-info  # See which runtime is detected (docker/podman)
    make build         # Build all containers
    

    备注Makefile会自动检测您是否安装了Docker或Podman,并使用相应的命令。如果两者都可用,Podman比Docker更受欢迎。

  3. 安全地配置您的incident.io API密钥:

    首先,从 incident.io仪表板.

    🔐 安全配置选项(选择一个):

    选项A:环境变量(建议用于生产)

    export INCIDENT_IO_API_KEY="your_incident_io_api_key_here"
    

    选项B:.env文件(建议用于开发)

    # Copy the example file and edit with your API key
    cp .env.example .env
    # Then edit .env with your actual API key
    

    选项C:运行时环境变量

    # Set the API key when running the server
    INCIDENT_IO_API_KEY="your_api_key" python -m src.incident_io_mcp.server
    

    ⚠️ 安全最佳实践:

    • 永远不要将API密钥提交到版本控制
    • 在生产环境中使用环境变量
    • 定期旋转API键
    • 使用最小特权原则 -只使用所需的权限创建API密钥
    • 安全存储API密钥 使用贵组织的秘密管理系统

运行MCP服务器

选项1:运行MCP服务器(推荐):

make up

选项2:在分离模式下运行:

make up-d

选项3:使用自定义环境运行:

INCIDENT_IO_API_KEY=your_api_key make up

服务器将启动并监听MCP连接。然后,您可以将其连接到Claude Desktop或其他兼容MCP的客户端。

开发工作流程

启动开发环境:

make dev

开放式开发shell:

make shell

在容器内运行命令:

# Inside the development container
python -m src.incident_io_mcp.server  # Run the server
pytest                                # Run tests
python -c "import src.incident_io_mcp.server; print('Import successful')"  # Test imports

停止开发容器:

make down-dev

运行测试

运行所有测试:

make test

运行覆盖率测试:

make test-cov

运行特定测试文件:

make test-file FILE=test_server.py

在开发容器中交互式运行测试:

make dev
make shell
# Inside container:
pytest -v

调试

访问日志:

make logs      # Show logs
make logs-f    # Follow logs

交互式调试:

# Start development environment and open shell
make dev
make shell

# Inside container - run with debugger
python -m pdb -m src.incident_io_mcp.server

可用的生成命令

跑 make help 查看所有可用命令:

make help

核心命令:

  • make runtime-info -显示检测到的容器运行时(docker/podman)
  • make build -构建所有容器
  • make up -启动MCP服务器
  • make up-d -以分离模式启动MCP服务器
  • make dev -启动开发环境
  • make shell -开放式开发shell

测试和质量:

  • make test -运行所有测试
  • make test-cov -使用覆盖率报告运行测试
  • make test-file FILE=test_server.py -运行特定的测试文件
  • make typecheck -使用mypy运行类型检查
  • make lint -使用flake8运行代码linting
  • make security -与土匪和安全人员一起进行安全检查

公用设施:

  • make logs -查看服务器日志
  • make logs-f -跟踪服务器日志
  • make down -停止所有服务
  • make down-dev -停止开发配置文件
  • make clean -停止并移除所有容器
  • make clean-deep -深度清理:删除所有容器、映像、卷并构建缓存