合气道安全CLI和MCP服务器
Rust工作区用于与 合气道安全 API
代理技能
安装合气道安全技能,以便您的编码代理知道如何使用CLI:
npx skills add Spiris-Innovation-Tech-Dev/aikido-tools-rs
适用于Claude Code、Cursor、Codex、OpenCode和 37多个代理.
板条箱
| 板条箱 | 描述 |
|---|
aikido | 核心客户端库——OAuth2、类型化模型、响应缓存 |
aikido-cli | CLI工具(aikido)用于查询问题、仓库、合规性等。 |
aikido-mcp | 用于Claude Code和其他MCP客户端的MCP服务器 |
安装
# CLI
cargo install --path crates/aikido-cli
# MCP server
cargo install --path crates/aikido-mcp
配置
凭据按顺序解析:CLI标志→ 环境变量→ 配置文件中选定的工作区→ 全局连接配置→ macOS钥匙链。 工作区选择解析为 --workspace/AIKIDO_WORKSPACE 首先,然后 active_workspace 从 ~/.aikido/config.toml.
# Environment variables
export AIKIDO_CLIENT_ID="your-client-id"
export AIKIDO_CLIENT_SECRET="your-client-secret"
export AIKIDO_REGION="eu" # eu, us, or me
# Or macOS Keychain
security add-generic-password -s aikido-cli -a client_id -w "your-client-id"
security add-generic-password -s aikido-cli -a client_secret -w "your-client-secret"
# Or config file (~/.aikido/config.toml)
# [connection]
# region = "eu"
# client_id = "your-client-id"
# client_secret = "your-client-secret"
#
# Optional multi-workspace config
# active_workspace = "prod"
# [workspaces.prod]
# region = "eu"
# client_id = "prod-client-id"
# client_secret = "prod-client-secret"
#
# [workspaces.staging]
# region = "us"
# client_id = "staging-client-id"
# client_secret = "staging-client-secret"
命令行界面
全球旗帜
| 标志 | 环境变量 | 描述 |
|---|
--region | AIKIDO_REGION | API地区: eu, us,或 me |
--workspace | AIKIDO_WORKSPACE | 工作区别名来自 ~/.aikido/config.toml |
--client-id | AIKIDO_CLIENT_ID | OAuth2客户端ID |
--format | | 输出格式: pretty (默认), json, toon |
命令
问题
| 命令 | 描述 |
|---|
aikido issues | 列出未决问题组 |
aikido issues --all | 所有发现,包括忽略/暂停/关闭 |
aikido issue | 问题组详细信息,包括单个问题、受影响的文件及其行范围、CVE、CWE类和补救指南 |
aikido issue-ignore [--reason "..."] | 解散问题组 |
aikido issue-unignore | 重新打开已撤销的问题组 |
aikido issue-counts | 按严重程度和类型汇总的计数 |
aikido issue-export | 将所有问题导出为JSON数组 |
存储库和基础设施
| 命令 | 描述 |
|---|
aikido repos | 列出代码存储库 |
aikido repo | 代码存储库详细信息 |
aikido containers | 列出容器存储库 |
aikido clouds | 列出连接的云帐户(AWS/GCP/Azure) |
aikido domains | 列出受监视的域 |
aikido firewall-apps | 列出Zen/防火墙应用程序 |
团队和用户
| 命令 | 描述 |
|---|
aikido teams | 列出团队 |
aikido users | 列出用户 |
合规与报告
| 命令 | 描述 |
|---|
aikido compliance-iso | ISO 27001合规性概述 |
aikido compliance-soc2 | SOC2合规性概述 |
aikido compliance-nis2 | NIS2合规性概述 |
aikido activity-log | 活动日志 |
aikido ci-scans | CI扫描结果 |
其他
| 命令 | 描述 |
|---|
aikido workspace | 所选凭据的工作区信息 |
aikido workspace --list | 列出已配置的工作区别名 |
aikido workspace --use-workspace | 设置默认工作区别名 |
aikido workspace --clear-active | 清除默认工作区别名 |
aikido api get | 对任何API端点的原始GET请求 |
aikido api post [--body JSON] | 原始POST请求 |
aikido api put [--body JSON] | 原始PUT请求 |
aikido api delete | 原始删除请求 |
示例
# List critical issues
aikido issues --format json | jq '[.[] | select(.severity == "critical")]'
# Get detail for a specific issue group
aikido issue 20858361
# Dismiss a false positive
aikido issue-ignore 20858317 --reason "false positive"
# Use a named workspace profile from ~/.aikido/config.toml
aikido --workspace staging workspace
# Raw API access for endpoints without a dedicated command
aikido api get "/repositories/code?page=0&per_page=5"
aikido api post "/domains" --body '{"domain":"https://example.com","kind":"front_end"}'
MCP 服务器
MCP服务器作为MCP工具公开了与CLI相同的功能,可用于Claude Code、Claude Desktop或任何兼容MCP的客户端。
aikido-mcp
集 MCP_MAX_RESULTS 控制默认页面大小(默认值:50)。
工具
问题
| 工具 | 说明 |
|---|
aikido_issues_list | 列出未解决的问题组,包括严重性、类型、状态和位置 |
aikido_issues_group_get | 问题组详细信息,包括所有单个问题、受影响的文件、包、存储库和补救措施 |
aikido_issues_get | 按ID获取特定问题 |
aikido_issues_counts | 按严重性和类型汇总的问题计数 |
aikido_issues_export | 将所有问题导出为JSON |
aikido_issues_snooze | 把问题搁置到某个日期 |
aikido_issues_unsnooze | 解开一个问题 |
aikido_issues_ignore | 忽略带有可选原因的问题 |
aikido_issues_unignore | 一个问题 |
aikido_issues_group_snooze | 在某个日期之前对问题组进行监听 |
aikido_issues_group_unsnooze | 取消对问题组的命名 |
aikido_issues_group_ignore | 忽略具有可选原因的问题组 |
aikido_issues_group_unignore | 统一一个问题组 |
aikido_issues_group_notes_add | 向问题组添加注释/评论 |
aikido_issues_group_tasks | 获取与问题组链接的任务 |
仓库
| 工具 | 说明 |
|---|
aikido_repos_list | 列出具有名称、提供程序、分支和扫描状态的代码存储库 |
aikido_repos_get | 代码存储库详细信息 |
aikido_repos_scan | 触发代码存储库的扫描 |
aikido_repos_sast_rules | 列出SAST规则 |
aikido_repos_iac_rules | 列出IaC规则 |
aikido_repos_custom_rules | 列出自定义SAST规则 |
容器
| 工具 | 说明 |
|---|
aikido_containers_list | 列出容器存储库 |
aikido_containers_get | 容器存储库详细信息 |
aikido_containers_scan | 触发容器存储库的扫描 |
基础设施
| 工具 | 说明 |
|---|
aikido_clouds_list | 列出连接的云环境 |
aikido_domains_list | 列出为表面监视配置的域 |
aikido_domains_scan | 开始扫描域 |
团队和用户
| 工具 | 说明 |
|---|
aikido_teams_list | 列出所有团队 |
aikido_teams_create | 创建新团队 |
aikido_users_list | 列出所有用户 |
aikido_users_get | 用户详细信息 |
防火墙
| 工具 | 说明 |
|---|
aikido_firewall_apps_list | 列出Zen/防火墙应用程序 |
aikido_firewall_app_get | 防火墙应用程序详细信息 |
合规与报告
| 工具 | 说明 |
|---|
aikido_compliance_iso | ISO 27001合规性概述 |
aikido_compliance_soc2 | SOC2合规性概述 |
aikido_compliance_nis2 | NIS2合规性概述 |
aikido_activity_log | 活动日志 |
aikido_ci_scans | CI扫描结果 |
原始API通过
| 工具 | 说明 |
|---|
aikido_api_get | 对任何端点的原始GET请求 |
aikido_api_post | 原始POST请求 |
aikido_api_put | 原始PUT请求 |
aikido_api_delete | 原始删除请求 |
建筑
核心 aikido 板条箱手柄:
- OAuth2客户端_凭据 使用令牌缓存进行身份验证
- 内存中的响应缓存 使用TTL层(问题:60秒,元数据:5分钟,规则:10分钟,合规性:5分钟)
- 自动缓存失效 写操作(POST/PUT/DELETE)
- 指数退避重试 对于瞬态故障(429500502503504)
- 打字型号 所有API资源
#[serde(flatten)] extra: Value 用于前向兼容性