关于 EyalSec
EyalSec MCP server 为安全团队及使用 EyalSec 的开发者提供账户数据的只读访问,可通过自然语言查询安全事件、机器、运行记录和规则。它不会修改账户内容。
主要功能
- 01按严重程度、时间和来源搜索事件
- 02查看事件详情、调用栈及数据流
- 03汇总事件统计和趋势
- 04检查机器状态与待更新项
- 05读取规则、筛选器和账户活动
适用场景
- 01汇总本周各机器的高危事件
- 02追踪注入事件从请求到危险操作的路径
- 03查找产生特定事件的程序运行记录
- 04检查机器是否有待安装更新
MCP 相关
该服务通过 MCP 将 EyalSec API 的事件、机器、运行记录及规则等只读数据提供给 MCP 客户端。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx eyalsec-mcpEYALSEC_API_KEY密钥Your EyalSec API key, from Settings > API access. A read-only key is enough.EYALSEC_URLYour EyalSec address, if your account is not on https://eyalsec.com.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
19收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| sort | any | 否 | 'newest'(默认)或 'severity'(严重程度最高的优先)。 |
| tags | any | 否 | 要保留的影响类别,例如 'xss' 或 'sqli'。 |
| view | any | 否 | 要查询哪个产品的事件:'python'(es-python)或 'browser'(es-chromium)。省略则查询账户中的所有产品。 |
| limit | integer | 否 | 收集到至少这么多条事件后停止(每页最多 100 条,按整页读取)。 |
| bucket | any | 否 | 'live'(默认:未抑制的事件)、'suppressed' 或 'all'。 |
| cursor | any | 否 | 使用相同筛选条件时,从之前的调用获取的 next_cursor,用于继续查询。 |
| labels | any | 否 | 要保留的标签 ID(来自 list_labels)。 |
| date_to | any | 否 | 结束日期,格式为 YYYY-MM-DD 或 RFC3339;包含当天的全部时间。 |
| machine | any | 否 | 按显示名称指定一台机器(精确匹配)。 |
| run_uid | any | 否 | 仅查询由此运行产生的事件(来自 list_runs 或 get_event 的 run_uid)。仅适用于 es-python。 |
| sources | any | 否 | 仅保留这些污点来源类别。 |
| advanced | any | 否 | 事件页面的条件构建器,按原样传递:{"match": "all"|"any", "conditions": [{"field": "sink", "op": "contains", "value": "sql", "negate": false}]}。 |
| severity | any | 否 | 仅保留这些严重级别。 |
| xss_only | any | 否 | 仅查询 sink 可执行脚本的 es-chromium 事件。需要 view='browser'。 |
| date_from | any | 否 | 开始日期,格式为 YYYY-MM-DD 或 RFC3339。 |
| value_chars | integer | 否 | 将每个事件的 str_repr 截断为指定文字数(0 = 不截断)。 |
| sink_exclude | any | 否 | 不区分大小写的正则表达式;丢弃 sink 标签('where')匹配的事件。 |
| sink_include | any | 否 | 不区分大小写的正则表达式;仅保留 sink 标签('where')匹配的事件。 |
详细介绍
EyalSec MCP 服务
用日常语言向 AI 助手询问 EyalSec 账户信息:“自周一以来出现了哪些严重事件?”,“显示事件 90210 的完整跟踪记录”,“哪些机器需要更新?”。此服务通过 EyalSec API,为 Claude、Cursor 和任何其他 MCP 客户端提供对事件、机器、运行记录和规则的只读访问权限,让你平时用于代码审查的助手也能帮你处理 EyalSec 发现的问题。
EyalSec 是目前最好的 Python 安全产品。它会跟踪不可信数据(请求、文件、环境变量等)在运行中的程序中的流转,并在数据到达风险操作时报告:SQL 查询、Shell 命令、反序列化、文件路径。每个事件都会注明操作、代码行、接收到的值,以及不可信部分的来源。此服务会读取这些事件;绝不会更改你账户中的任何内容。
所需条件
- 一个 EyalSec 账户和 API 密钥。可在控制面板的 Settings > API access 下创建密钥。此服务只需要只读密钥,我们也建议使用该密钥:请参阅 API keys。
- Python 3.10 或更高版本,或
uv,后者无需单独安装即可运行服务。
还没有账户?预约在线演示,我们会协助你设置。价格请见 eyalsec.com/pricing。
设置
此服务通过 stdio 使用 MCP。客户端会通过 uvx eyalsec-mcp(或在执行 pipx install eyalsec-mcp 后使用 eyalsec-mcp)启动服务,并通过环境传入密钥。
Claude Code
claude mcp add eyalsec -e EYALSEC_API_KEY=es2_your_read_only_key -- uvx eyalsec-mcp
Claude Desktop
将以下内容添加到 claude_desktop_config.json(Settings > Developer > Edit Config),然后重启 Claude Desktop:
{
"mcpServers": {
"eyalsec": {
"command": "uvx",
"args": ["eyalsec-mcp"],
"env": {
"EYALSEC_API_KEY": "es2_your_read_only_key"
}
}
}
}
Cursor
将相同内容添加到 ~/.cursor/mcp.json(适用于所有项目)或 .cursor/mcp.json(仅适用于一个项目):
{
"mcpServers": {
"eyalsec": {
"command": "uvx",
"args": ["eyalsec-mcp"],
"env": {
"EYALSEC_API_KEY": "es2_your_read_only_key"
}
}
}
}
Docker
docker build -t eyalsec-mcp https://github.com/EyalSec/eyalsec-mcp.git
docker run --rm -i -e EYALSEC_API_KEY=es2_your_read_only_key eyalsec-mcp
在任何客户端的配置中,将第二行用作命令。
任何其他 MCP 客户端
将 uvx eyalsec-mcp 作为 stdio 服务运行,并设置 EYALSEC_API_KEY。在将密钥配置到客户端之前,可先检查密钥:
EYALSEC_API_KEY=es2_your_read_only_key uvx eyalsec-mcp --check
它会调用一次 API,并打印访问的账户、密钥的权限范围和机器数量。
设置项
| 变量 | 必需 | 含义 |
|---|---|---|
EYALSEC_API_KEY | 是 | 你的 API 密钥,来自 Settings > API access。只读权限即可。 |
EYALSEC_URL | 否 | 你的 EyalSec 地址。默认为 https://eyalsec.com;仅当你的账户位于其他域名时才需要设置。必须使用 https://。 |
它能做什么
每个工具都只读。服务没有添加、更改或删除任何内容的代码路径,因此即使使用具有完全访问权限的密钥,也无法通过它写入数据。
| 工具 | 可查询内容 |
|---|---|
search_events | 你的事件,按最新或严重程度排序,并支持事件页面上的筛选条件:产品、严重程度、日期、机器、污点来源、影响类别、标签、接收点模式、运行记录,以及高级条件构建器。自动处理 API 分页。 |
get_event | 单个事件的完整信息:堆栈跟踪、数据进入的位置、值的创建位置、机器发送时附带的附近源代码、你的备注,以及产生该事件的运行记录。 |
event_stats | 仪表板摘要:总数、最近一小时、一天和一周的数据、热门事件类型,以及 14 天时间线。 |
event_counts | 每个产品的事件列表中的事件数量、实时与已抑制事件数量,以及计入月度配额的数量。 |
list_event_names | 你的事件中不同的接收点标签,便于构建筛选条件。 |
event_map | 将 es-python 事件以图的形式展示:来源、读取数据的文件,以及数据经过的操作。 |
list_runs | 产生事件的程序调用记录及其命令行(已屏蔽机密信息)。 |
ci_findings | 自某个时间点起,一台机器上的运行记录报告了什么内容;按严重程度统计,并显示哪些发现是新出现的。 |
list_machines | 所有机器:状态、操作系统目标、产品、已安装版本和最新版本,以及是否有待安装的更新。 |
supported_targets | es-python 支持安装的 Linux 发行版、架构和 Python 版本。 |
list_rules、list_filters、get_taint_settings、get_event_uniqueness、list_rule_templates | 你的账户和每台机器的配置。 |
list_labels、list_saved_searches | 你的分类标签和已保存的搜索。 |
get_account、list_activity | 你的个人资料和限额、密钥的权限范围和到期时间(绝不包含密钥本身)、设置进度,以及活动日志。 |
可以尝试:
- “按机器总结本周的严重和高危事件。”
- “打开最新的 SQL 注入事件,并说明从请求到查询的路径。”
- “昨天哪些
app.py运行记录产生了命令注入事件?” - “有没有机器有待安装的更新,或安装卡在待处理状态?”
安全注意事项
- 事件中包含不可信文本。 到达接收点的值、堆栈跟踪或命令行来自受监控的程序及其输入,其中可能包含攻击者编写的文本。服务会告知助手将其视为数据,而非指令;对于助手建议据此采取的任何操作,都应由人工审核。
- 使用只读密钥。 它只能读取此服务可读取的所有内容,不能做更多操作。密钥也可以设置到期日期。
- 密钥由你保管。 密钥从环境中读取,只通过 HTTPS 发送到你的 EyalSec 地址,任何工具都不会返回密钥。除
localhost外,服务会拒绝纯 HTTP 请求。 - 适用 API 的速率限制。
search_events每次调用最多读取 10 页,并返回用于获取剩余内容的游标。
开发
git clone https://github.com/EyalSec/eyalsec-mcp && cd eyalsec-mcp
python -m venv .venv && . .venv/bin/activate
pip install -e '.[test]'
pytest
测试使用模拟 API 运行。如需使用自己的账户额外运行一轮只读测试,请设置 EYALSEC_LIVE=1 和 EYALSEC_API_KEY。
帮助
欢迎在 issues 中提问或报告错误,也可以发送邮件至 [email protected]。安全问题请发送至 [email protected],而不要发布在公开 issue 中。
许可证
MIT。详见 LICENSE。该许可证适用于此 MCP 服务;你的 EyalSec 账户受 EyalSec 条款约束。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。