Token导航 LogoToken导航TokenDH.com
Aliyun Sg Mgr logo
安全风控未说明官方级别未说明来源级核验

Aliyun Sg Mgr

MCP Server

基于Model Context Protocol (MCP)的阿里云安全组管理服务器,支持多账号管理、安全组查询、创建、删除和规则管理。

工具数

7

提示词数

0

GitHub Stars

0

资源数

0
TypeScriptClaude安全Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

jaggerzhuang1994

提供方

jaggerzhuang1994

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

阿里云安全组管理 MCP Server

功能特性

  • 多账号支持:管理多个阿里云账号
  • 权限控制:支持配置账号可访问的安全组ID列表,适用于权限受限的账号
  • 安全组列表:查询指定账号的安全组列表,支持分页和VPC筛选
  • 规则详情:查看安全组的入方向和出方向规则
  • 创建安全组:在指定VPC中创建新的安全组
  • 删除安全组:删除不再需要的安全组
  • 规则管理:添加和删除安全组规则
  • 权限验证:自动验证账号对安全组的访问权限

安装

前置要求

  • Bun >= 1.0(推荐)或 Node.js >= 20
  • 阿里云账号及 AccessKey(需要ECS权限)

克隆项目

git clone https://github.com/jaggerzhuang1994/aliyun-sg-mgr.git
cd aliyun-sg-mgr

安装依赖

使用 Bun(推荐):

bun install

或使用 npm:

npm install

配置环境变量

复制示例配置文件并编辑:

cp .env.example .env

.env 文件中配置你的阿里云账号信息:

PROJECTS='[
  {
    "name": "production",
    "accessKeyId": "YOUR_ACCESS_KEY_ID",
    "accessKeySecret": "YOUR_ACCESS_KEY_SECRET",
    "regionId": "cn-hongkong"
  },
  {
    "name": "development",
    "accessKeyId": "YOUR_ACCESS_KEY_ID",
    "accessKeySecret": "YOUR_ACCESS_KEY_SECRET",
    "regionId": "cn-shanghai",
    "specSecurityGroupIds": ["sg-xxxxx1", "sg-xxxxx2"]
  }
]'

配置说明:

  • name: 账号名称,用于标识不同的账号
  • accessKeyId: 阿里云 AccessKey ID
  • accessKeySecret: 阿里云 AccessKey Secret
  • regionId: 默认地域ID(可选,默认为 cn-hangzhou)
  • specSecurityGroupIds: 指定可访问的安全组ID列表(可选,不配置则可访问所有安全组)

重要说明:

对于权限受限的账号(无法列出所有安全组),必须配置 specSecurityGroupIds 字段来指定该账号可以访问的安全组 ID 列表。配置后:

  • list_security_groups 工具将只返回指定的安全组
  • 其他安全组操作(查看规则、删除、添加/删除规则)只能操作指定的安全组
  • 尝试访问未授权的安全组将返回权限错误

配置 MCP 客户端

在 Claude Desktop 或其他 MCP 客户端的配置文件中添加:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

使用 Bun(推荐,原生支持 TypeScript):

{
  "mcpServers": {
    "aliyun-sg-mgr": {
      "command": "bun",
      "args": ["/path/to/aliyun-sg-mgr/src/index.ts"],
      "cwd": "/path/to/aliyun-sg-mgr"
    }
  }
}

或使用 Node.js + tsx:

# 首先安装 tsx
npm install -g tsx
{
  "mcpServers": {
    "aliyun-sg-mgr": {
      "command": "tsx",
      "args": ["/path/to/aliyun-sg-mgr/src/index.ts"],
      "cwd": "/path/to/aliyun-sg-mgr"
    }
  }
}

也可以直接在配置中设置环境变量(不推荐,建议使用 .env 文件):

{
  "mcpServers": {
    "aliyun-sg-mgr": {
      "command": "bun",
      "args": ["/path/to/aliyun-sg-mgr/src/index.ts"],
      "env": {
        "PROJECTS": "[{\"name\":\"production\",\"accessKeyId\":\"YOUR_KEY\",\"accessKeySecret\":\"YOUR_SECRET\",\"regionId\":\"cn-hangzhou\"}]"
      }
    }
  }
}

使用方法

开发模式

使用 Bun:

bun run dev

或使用 npm:

npm run dev

生产运行

使用 Bun:

bun start

或使用 npm:

npm start

可用工具

1. list_accounts

列出所有配置的阿里云账号

参数:

示例:

请列出所有配置的阿里云账号

2. list_security_groups

查看指定账号的安全组列表

参数:

  • accountName (必填): 账号名称
  • regionId (可选): 地域ID
  • vpcId (可选): VPC ID
  • pageNumber (可选): 分页页码,默认1
  • pageSize (可选): 每页数量,默认10,最大100

示例:

查看 production 账号的安全组列表
查看 development 账号在 cn-shanghai 地域的安全组

3. describe_security_group_rules

查看指定安全组的详细规则策略

参数:

  • accountName (必填): 账号名称
  • securityGroupId (必填): 安全组ID
  • regionId (可选): 地域ID
  • direction (可选): 规则方向,可选值:ingress(入方向)、egress(出方向)、all(全部),默认all

示例:

查看 sg-xxxxx 安全组的所有规则
查看 sg-xxxxx 安全组的入方向规则

4. create_security_group

创建新的安全组

参数:

  • accountName (必填): 账号名称
  • securityGroupName (必填): 安全组名称
  • vpcId (必填): VPC ID
  • description (可选): 安全组描述
  • regionId (可选): 地域ID
  • securityGroupType (可选): 安全组类型,normalenterprise,默认normal

示例:

在 production 账号的 vpc-xxxxx 中创建一个名为 web-server 的安全组

5. delete_security_group

删除指定的安全组

参数:

  • accountName (必填): 账号名称
  • securityGroupId (必填): 安全组ID
  • regionId (可选): 地域ID

示例:

删除 production 账号的 sg-xxxxx 安全组

6. authorize_security_group

添加安全组入方向规则

参数:

  • accountName (必填): 账号名称
  • securityGroupId (必填): 安全组ID
  • ipProtocol (必填): IP协议类型,可选:tcpudpicmpgreall
  • portRange (必填): 端口范围,例如:22/2280/801/65535
  • sourceCidrIp (可选): 源CIDR IP,例如:0.0.0.0/0
  • sourceGroupId (可选): 源安全组ID
  • regionId (可选): 地域ID
  • policy (可选): 授权策略,acceptdrop,默认accept
  • priority (可选): 规则优先级,1-100,默认1
  • description (可选): 规则描述

示例:

为 sg-xxxxx 添加允许 SSH 访问的规则(端口22,来源0.0.0.0/0)
为 sg-xxxxx 添加允许 HTTP 访问的规则(端口80)

7. revoke_security_group

删除安全组入方向规则

参数:

  • accountName (必填): 账号名称
  • securityGroupId (必填): 安全组ID
  • ipProtocol (必填): IP协议类型
  • portRange (必填): 端口范围
  • sourceCidrIp (可选): 源CIDR IP
  • sourceGroupId (可选): 源安全组ID
  • regionId (可选): 地域ID
  • policy (可选): 授权策略
  • priority (可选): 规则优先级

示例:

删除 sg-xxxxx 的 SSH 访问规则

安全建议

  1. AccessKey 管理

- 不要将 .env 文件提交到版本控制系统 - 使用具有最小权限的 RAM 用户 - 定期轮换 AccessKey

  1. 权限要求

服务器需要以下阿里云 ECS 权限: - ecs:DescribeSecurityGroups - ecs:DescribeSecurityGroupAttribute - ecs:CreateSecurityGroup - ecs:DeleteSecurityGroup - ecs:AuthorizeSecurityGroup - ecs:RevokeSecurityGroup

  1. 网络安全

- 创建安全组规则时,避免使用 0.0.0.0/0 作为源地址 - 遵循最小权限原则,只开放必要的端口

项目结构

aliyun-sg-mgr/
├── src/
│   └── index.ts       # 主程序文件 (TypeScript)
├── package.json       # 项目配置
├── tsconfig.json      # TypeScript 配置
├── bun.lockb          # Bun 锁文件
├── .env.example       # 环境变量示例
├── .env               # 环境变量配置(不提交到git)
├── .gitignore         # Git 忽略文件
├── LICENSE            # 许可证
└── README.md          # 项目文档

技术栈

  • TypeScript - 类型安全的 JavaScript 超集
  • Bun - 高性能 JavaScript/TypeScript 运行时(推荐,原生支持 TS)
  • + tsx - JavaScript/TypeScript 运行时(兼容)
  • fastmcp - MCP 服务器框架
  • @alicloud/ecs20140526 - 阿里云 ECS SDK
  • zod - 类型校验与验证库
  • dotenv - 环境变量管理

故障排查

常见问题

Q: 提示 "PROJECTS 环境变量未配置"

A: 确保 .env 文件存在且配置正确,或在 MCP 客户端配置中正确设置了环境变量。

Q: API 调用失败,提示权限不足

A: 检查 AccessKey 对应的 RAM 用户是否具有 ECS 相关权限。

Q: 无法连接到阿里云 API

A: 检查网络连接,确认 regionId 配置正确,endpoint 格式为 ecs.{regionId}.aliyuncs.com

贡献

欢迎提交 Issue 和 Pull Request!

许可证

ISC License

相关链接

目录标签

目录标签

TypeScriptClaude安全阿里云安全组本地部署多账号管理安全组规则云计算安全MCP协议

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP