返回市场
工具库-mcp服务器

工具库-mcp服务器

作者:rossja2 星标更新:2025-04-14

项目介绍

IR Toolshed MCP Server

一个全面的模型上下文协议(MCP)服务器,提供事件响应和网络分析工具,供安全专业人员使用。此服务器允许像Claude这样的AI代理执行各种与网络相关的查找和分析,以协助安全调查。

概述

IR Toolshed MCP Server 提供了一套可通过模型上下文协议访问的网络和安全工具。它旨在作为网络事件响应者的通用服务,使他们能够使用以下功能进行基本查找:

  • 自治系统编号(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许可证密钥。您可以:

  1. 从以下链接获取免费密钥:https://dev.maxmind.com/geoip/geolite2-free-geolocation-data
  2. 选择以下任一方式:
    • 设置MAXMIND_LICENSE_KEY环境变量
    • 在使用工具时将其作为参数提供
    • 在提示时输入

未来版本中将添加更多工具。

预备条件

  • Python 3.8或更高版本(推荐3.13+)
  • uv Python包管理器

安装

  1. 克隆此仓库:
git clone <repository-url>
cd ir-toolshed-mcp-server
  1. 创建虚拟环境:
uv venv
  1. 激活虚拟环境:

在Windows上:

.venv\Scripts\activate

在macOS/Linux上:

source .venv/bin/activate
  1. 以开发模式安装包:
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")

示例输出:

{
    "domain": "example.com",
    "record_type": "A",
    1"record_value": "93.184.216.34"
}

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": "详细错误消息",
    "query": "原始查询值"
}

特定工具的错误示例:

ASN 查找:

{
    "ip_addr": "<被查询的IP>",
    "status": "error",
    "error": "无效的IP地址格式"
}

DNS 查找:

{
    "domain": "<被查询的域名>",
    "record_type": "<请求的类型>",
    "status": "error",
    "error": "DNS解析失败"
}

WHOIS 查找:

{
    "domain": "<被查询的域名>",
    "status": "error",
    "error": "WHOIS服务器不可用"
}

地理定位:

{
    "ip_addr": "<被查询的IP>",
    "status": "error",
    "error": "未找到MaxMind数据库或许可证密钥无效"
}

项目结构

项目遵循标准的Python包结构:

irtoolshed_mcp_server/     # 主包目录
├── __init__.py           # 包初始化
├── asnlookup.py         # ASN查找功能
├── dnslookup.py         # DNS查找功能
├── geolookup.py         # 地理定位功能
├── mcp_server.py        # 主MCP服务器实现
└── whoislookup.py       # WHOIS查找功能

tests/                    # 测试目录
├── test_asnlookup.py    # ASN查找测试
├── test_dnslookup.py    # DNS查找测试
├── test_geolookup.py    # 地理定位测试
└── test_whoislookup.py  # WHOIS查找测试

开发

设置开发环境

  1. 克隆此仓库:
git clone <repository-url>
cd ir-toolshed-mcp-server
  1. 创建虚拟环境并安装依赖项:
uv venv
source .venv/bin/activate  # 在Windows上使用:.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工具或改进现有工具。请按照以下步骤操作:

  1. 分叉仓库
  2. 创建功能分支
  3. 根据mcp_server.py中的现有模式添加您的工具
  4. 包含适当的文档作为资源
  5. 提交清晰描述您更改的拉取请求

许可证

Apache 2.0

安全注意事项

此服务器旨在用于合法的安全研究和事件响应。用户必须确保在使用这些工具时遵守所有适用的法律和法规。