MCP Server for automated IoT firmware binary security auditing
Project description
autoi-mcp
autoi-mcp 是一个基于 Model Context Protocol (MCP) 的自动化安全审计扩展,该项目通过 MCP 服务调用底层脚本操控 Idat (IDA Pro Python 自动化接口),旨在实现对 IoT 固件二进制程序的批量静态分析、敏感函数挖掘、输入可控点追踪及潜在漏洞定位。
安装
方式一:uvx(推荐,用于 Claude Code)
在项目的 .mcp.json 或全局 ~/.claude/claude_desktop_config.json 中添加:
{
"mcpServers": {
"autoi-mcp": {
"command": "uvx",
"args": ["autoi-mcp"]
}
}
}
uvx 会自动从 PyPI 下载并运行最新版本。
方式二:pip
pip install autoi-mcp
然后配置 Claude Code:
{
"mcpServers": {
"autoi-mcp": {
"command": "python",
"args": ["-m", "autoi_mcp.server"]
}
}
}
方式三:源码开发
git clone <repo-url>
cd autoi-mcp
uv sync
uv run python -m autoi_mcp.server
MCP 工具
| 工具 | 说明 | 需要 IDA |
|---|---|---|
scan_firmware |
批量扫描固件目录下所有 ELF,风险评分 + 过滤 | 否 |
check_elf |
单文件快速检查:安全缓解措施 + 危险符号 | 否 |
核心思路
1. 自动搜索
自动搜索 system/popen/strcpy/sprintf/strcat/memcpy/gets 等函数的导入和交叉引用
2. 定位输入
定位输入 Source — 搜索 cgi_param/getenv/fgets/fread 等 CGI 输入源
3. 追踪 Source-to-Sink 路径
同一函数内同时调用了输入源和危险函数 = 高风险路径
4. 识别认证函数
识别认证函数 — 函数名含 auth/login/session/check 的全部标记
5. 风险评分排名
有 system/popen 得 30 分,有 strcpy/sprintf 得 25 分,有高危路径再加 30 分
开发说明
本项目使用 DeepSeek 辅助 vibe coding 开发,部分代码由 AI 生成并经人工审查后合入。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file autoi_mcp-0.1.0.tar.gz.
File metadata
- Download URL: autoi_mcp-0.1.0.tar.gz
- Upload date:
- Size: 18.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c17ec5407c3de256a87985562e533b48ecad8922789be764a90a40535bd88c17
|
|
| MD5 |
e712f98b5d7a2dc44c1d4dfa0dc4f67a
|
|
| BLAKE2b-256 |
b61f617c47b89b3142b5cb11b90c0ced8e68daad0c57800d77e51e980fc0e56a
|
File details
Details for the file autoi_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: autoi_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 21.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4095e43a5733cde98aa6cadc476f7afea43b2ea932ee6a81d0df7ba3fc50442c
|
|
| MD5 |
9575d2ce8f08a01178090989d20e903a
|
|
| BLAKE2b-256 |
e485c670d5080259f0847c090ddf07d7f58c95bf2892d937aab9569c12bc5bd5
|