README
🚀 ETH 安全 MCP
ETH 安全 MCP 是一个为安全分析师、审计员和事件响应人员收集的 MCP 服务器,可助力相关人员更高效地开展工作。
🚀 快速开始
📦 安装指南
依赖项
eth-security-mcp 需要以下依赖项已安装:
环境变量设置
eth-security-mcp 中的 MCP 服务器可能会使用环境变量来传递信息,例如 API 密钥。.env.example 列出了运行所有 MCP 服务器所需的相关值。要设置 .env 文件,请运行 cp .env.example .env 并填写相关信息。
工作区
此仓库使用 npm 工作区将每个操作分开。要与特定的工作区交互,请使用 npm <action> -w src/<directory-name>。
构建和调试
此 repo 使用 justfile 来自动化构建和调试,使用的是 MCP Inspector。例如,要构建并调试 dune MCP 服务器,可以运行以下命令:
$ just -l
Available recipes:
build workspace
debug workspace
$ just debug dune
将 MCP 服务器安装到 Claude Desktop
要将此仓库中的 MCP 服务器安装到 Claude Desktop 中:
- 运行
just setup-<machine> <mcp-server>,其中<machine>要么是linux要么是macos,而<mcp-server>是包含 MCP 服务器的目录名称。 - 此 just 命令将在 MCP 服务器目录中生成一个文件
claude.config.tmp.json,可以将其复制粘贴到以下文件中的mcpServers下:- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - linux:
~/.config/Claude/claude_desktop_config.json
- macOS:
- 添加配置信息后,重启 Claude Desktop 以使更改生效。
💻 使用示例
Dune MCP 服务器
基础用法
# 示例命令,使用 Dune MCP 服务器获取地址的交易
# 这里假设要获取地址为 0xabc123 的交易
$ just debug dune
# 调用 get_transactions_by_address 工具
# 假设使用默认参数,仅传入必填的 address 参数
# 实际使用时根据需要添加可选参数
# 这里只是示意,具体调用方式可能因环境而异
高级用法
# 高级场景:获取地址为 0xabc123 的交易,同时筛选链 ID 为 1、2,限制返回交易数量为 10
# 调用 get_transactions_by_address 工具并传入相关参数
# 这里只是示意,具体调用方式可能因环境而异
$ just debug dune
# 调用 get_transactions_by_address 工具
# 传入 address、chain_ids 和 limit 参数
# 实际使用时根据需要添加其他可选参数
Cast MCP 服务器
基础用法
# 示例命令,使用 Cast MCP 服务器模拟事务
# 假设要模拟事务哈希为 0xdef456 的事务
# 假设使用的 Ethereum 节点的 RPC URL 为 http://example.com/rpc
$ just debug cast
# 调用 run_transaction 工具
# 传入 transactionHash 和 rpcUrl 参数
# 这里只是示意,具体调用方式可能因环境而异
高级用法
# 高级场景:使用快速模式模拟事务哈希为 0xdef456 的事务
# 假设使用的 Ethereum 节点的 RPC URL 为 http://example.com/rpc
$ just debug cast
# 调用 run_transaction 工具
# 传入 transactionHash、rpcUrl 和 quick 参数
# 这里只是示意,具体调用方式可能因环境而异
📚 详细文档
MCP 服务器
Dune
Dune MCP 服务器提供对 Dune API 端点的访问,返回结构化的交易结果。
可用工具
get_transactions_by_address
- 概述:使用 Dune 的 Echo API 获取地址的交易。
- 参数
address(必填):要获取交易的地址。chain_ids(可选):逗号分隔的链 ID 列表,用于筛选交易。method_id(可选):过滤交易以返回具有提供的方法 ID(函数选择器)的交易。log_address(可选):过滤交易以返回日志中包含该地址的交易。topic0(可选):过滤交易以返回具有提供的主要事件主题的交易。min_block_number(可选):过滤交易以返回从该块编号开始及之后的交易。limit(可选):限制返回的交易数量。is_sender(可选):返回发送方为提供的地址的交易。is_receiver(可选):返回接收方为提供地址的交易。
- 返回
返回一个交易对象数组,每个交易包含以下相关信息:
address:合约或账户涉及的地址。block_number:包含交易的块编号。data:事务数据。from:事务发送方地址。gas_used:使用的气数。to:事务接收方地址(如果是合约创建,则为 null)。value:转移的 ETH 数量,以 wei 为单位。receipt:交易收据,包含 gas 使用情况、状态等信息。
Cast
Cast MCP 服务器提供对 Foundry 的 cast 命令行工具的访问,允许与 Ethereum 节点和智能合约交互。
可用工具
run_transaction
- 概述:使用 Foundry 的 cast 运行命令模拟事务。
- 参数
transactionHash(必填):要模拟的事务哈希。rpcUrl(必填):用于模拟的 Ethereum 节点的 RPC URL。quick(可选):是否使用快速模式以加快模拟(默认:false)。
- 返回
返回模拟结果作为字符串,包括:
- 事务执行详细信息。
- 状态更改。
- 气体使用情况。
- 任何重置原因(如果有)。
Scan to contact