MCP网络分析工具
一种模型上下文协议服务器,为安全专业人士提供网络分析工具,使像克劳德这样的AI模型能够执行ASN查找、DNS分析、WHOIS检索和IP地理定位等安全调查任务。
服务介绍
IR Toolshed MCP 服务器
一个全面的模型上下文协议(MCP)服务器,为安全专业人员提供事件响应和网络分析工具。该服务器允许像 Claude 这样的 AI 代理执行各种与网络相关的查找和分析,以协助安全调查。
概述
IR Toolshed MCP 服务器通过模型上下文协议提供一套网络和安全工具。它被设计成一种通用服务,供网络事件响应者使用,使他们能够执行基本的查找操作,包括:
- 自治系统号(ASN)查找
- DNS 查找和分析
- WHOIS 记录检索
- IP 地理定位
- 以及更多即将推出的网络分析功能
每个工具都附有详细的文档作为资源,使 AI 系统易于理解如何使用这些工具及其预期输出。
当前工具
ASN 查找工具
ASN 查找工具返回有关 IP 地址的信息,包括:
- 被查询的 IP 地址
- 与 IP 地址关联的 AS 号
- 拥有 AS 号的组织名称
DNS 查找工具
DNS 查找工具提供域名的 DNS 记录信息:
- 支持多种记录类型(A, AAAA, MX, NS, TXT)
- 返回格式化的 DNS 记录
- 处理 IPv4 和 IPv6 查询
WHOIS 查找工具
WHOIS 查找工具检索域名注册信息:
- 域名所有权详情
- 注册日期
- 名称服务器信息
- 注册商详情
地理定位工具
IP 地理定位工具使用 MaxMind 的 GeoLite2 数据库提供位置信息:
- 国家和城市级别的位置数据
- 经纬度坐标
- 网络信息
- 时区数据
注意:地理定位工具需要 MaxMind 许可密钥。您可以:
- 从这里获取免费密钥: https://dev.maxmind.com/geoip/geolite2-free-geolocation-data
- 选择以下任一方式:
- 设置 MAXMIND_LICENSE_KEY 环境变量
- 在使用工具时提供该密钥作为参数
- 在提示时输入密钥
未来版本中将添加更多工具。
先决条件
- Python 3.8 或更高版本(推荐 3.13+)
- uv Python 包管理器
安装
- 克隆此仓库:
git clone <repository-url>
cd ir-toolshed-mcp-server
- 创建虚拟环境:
uv venv
- 激活虚拟环境:
在 Windows 上:
.venv\Scripts\activate
在 macOS/Linux 上:
source .venv/bin/activate
- 以开发模式安装包:
uv pip install -e .
运行服务器
使用以下命令启动 MCP 服务器:
uv run mcp dev src/mcp_server.py
这将以开发模式启动服务器,使其对诸如 Claude Desktop 之类的 MCP 客户端可用。
使用工具
ASN 查找工具
当连接到如 Claude Desktop 之类的 MCP 客户端时,可以通过提供 IP 地址来使用 ASN 查找工具:
asnlookup("8.8.8.8")
示例输出:
{
"ip_addr": "8.8.8.8",
"as_number": "15169",
"as_name": "GOOGLE - Google LLC"
}
DNS 查找工具
当连接到如 Claude Desktop 之类的 MCP 客户端时,可以通过提供域名来使用 DNS 查找工具:
dnslookup("example.com")
WHOIS 查询工具
当连接到如 Claude Desktop 这样的 MCP 客户端时,你可以通过提供一个域名来使用 WHOIS 查询工具:
whoislookup("example.com")
示例输出:
{
"domain": "example.com",
"ownership_details": "Google LLC",
"registration_date": "2004-04-26",
"nameserver_information": "ns1.google.com",
"registrar_details": "MarkMonitor Inc."
}
地理位置工具
当连接到如 Claude Desktop 这样的 MCP 客户端时,你可以通过提供一个 IP 地址来使用地理位置工具:
geolocation("8.8.8.8")
示例输出:
{
"ip_addr": "8.8.8.8",
"country": "US",
"city": "Mountain View",
"latitude": 37.40599,
"longitude": -122.078514,
"network": "AS15169 Google LLC",
"timezone": "America/Los_Angeles"
}
错误处理
每个工具都遵循一致的错误处理模式:
通用错误响应格式:
{
"status": "error",
"error": "Detailed error message",
"query": "Original query value"
}
特定工具的错误示例:
ASN 查找:
{
"ip_addr": "<queried-ip>",
"status": "error",
"error": "Invalid IP address format"
}
DNS 查找:
{
"domain": "<queried-domain>",
"record_type": "<requested-type>",
"status": "error",
"error": "DNS resolution failed"
}
WHOIS 查找:
{
"domain": "<queried-domain>",
"status": "error",
"error": "WHOIS server not available"
}
地理位置:
{
"ip_addr": "<queried-ip>",
"status": "error",
"error": "MaxMind database not found or license key invalid"
}
项目结构
该项目遵循标准的 Python 包结构:
irtoolshed_mcp_server/ # Main package directory
├── __init__.py # Package initialization
├── asnlookup.py # ASN lookup functionality
├── dnslookup.py # DNS lookup functionality
├── geolookup.py # Geolocation functionality
├── mcp_server.py # Main MCP server implementation
└── whoislookup.py # WHOIS lookup functionality
tests/ # Test directory
├── test_asnlookup.py # ASN lookup tests
├── test_dnslookup.py # DNS lookup tests
├── test_geolookup.py # Geolocation tests
└── test_whoislookup.py # WHOIS lookup tests
开发
设置开发环境
- 克隆此仓库:
git clone <repository-url>
cd ir-toolshed-mcp-server
- 创建虚拟环境并安装依赖项:
uv venv
source .venv/bin/activate # On Windows use: .venv\Scripts\activate
uv pip install -e ".[dev]"
运行测试
要运行测试套件:
uv run pytest
这将:
- 在
tests/目录下运行所有测试 - 显示测试覆盖率信息
- 对于任何失败显示详细输出
注意:某些测试需要额外配置:
- 地理位置测试需要 MaxMind GeoLite2 数据库和许可证密钥
- 如果 WHOIS 服务不可用,WHOIS 测试可能会失败
代码质量
该项目使用了几个工具来维护代码质量:
- 使用 Black 格式化代码:
uv run black .
- 使用 isort 排序导入:
uv run isort .
- 使用 mypy 进行类型检查:
uv run mypy .
- 使用 ruff 进行代码检查:
uv run ruff .
路线图
已完成:
✓ ASN 查询
✓ DNS 记录查询(A, AAAA, MX 等)
✓ WHOIS 记录检索
✓ IP 地理位置服务
未来计划包含的工具:
- 域名信誉评分
- SSL 证书分析
- 网络端口扫描
- 威胁情报集成
- 被动 DNS 历史
- 电子邮件安全分析(SPF, DKIM, DMARC)
- BGP 路由分析
- 网络流量可视化
- 恶意软件哈希查找
- URL 信誉检查
贡献
欢迎贡献新的 IR 工具或改进现有工具。请按照以下步骤操作:
- 叉取仓库
- 创建功能分支
- 按照 mcp_server.py 中现有的模式添加你的工具
- 包含适当的文档作为资源
- 提交带有清晰更改描述的拉取请求
许可证
Apache 2.0
安全注意事项
此服务器旨在用于合法的安全研究和事件响应。用户必须确保在使用这些工具时遵守所有适用的法律和法规。