内容
# Mythril MCP Server
该项目实现了一个模型上下文协议(Model Context Protocol,MCP)服务器,提供用于使用Mythril的工具,Mythril是一个用于以太坊智能合约的安全分析工具。
## 描述
Mythril MCP Server提供了一个接口,通过模型上下文协议(MCP)运行Mythril安全分析工具。这使得将Mythril的智能合约安全分析能力与支持MCP的AI模型和其他应用程序集成变得简单。
## 特性
- 分析Solidity智能合约文件
- 按地址分析链上合约
- 具有可自定义选项的高级分析
- 访问Mythril使用文档作为资源
## 需求
- Python 3.12+
- Mythril已安装并可在PATH中访问
- Solc编译器(用于分析Solidity文件)
## 安装
1. 克隆此仓库
2. 使用 `pip install -e .` 或 `pip install mcp[cli]>=1.6.0` 安装依赖
3. 使用 `pip install mythril` 安装Mythril
## 使用
### 启动服务器
使用MCP CLI运行服务器:
```bash
mcp dev server.py
```
或直接运行:
```bash
python server.py
```
### 可用工具
1. **analyze_solidity_file** - 分析本地Solidity文件
2. **analyze_contract_address** - 分析已部署在链上的合约
3. **analyze_with_options** - 具有自定义选项的高级分析
### 可用资源
- **resource://mythril/usage** - 关于Mythril使用的文档
## 示例客户端使用
```python
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
params = StdioServerParameters(command="python", args=["server.py"])
async with stdio_client(params) as (r, w):
async with ClientSession(r, w) as session:
await session.initialize()
# 列出可用工具
tools = await session.list_tools()
print(f"可用工具: {tools}")
# 分析一个Solidity文件
result = await session.call_tool(
"analyze_solidity_file",
arguments={"file_path": "path/to/contract.sol", "output_format": "text"}
)
print(result)
```