使用说明
OSINT MCP服务器
一个全面的开源智能(OSINT)模型上下文协议(MCP)服务器,具有适当的结构、错误处理和道德保障。该服务器专注于收集公开可用的信息,同时尊重隐私、法律界限和道德标准。
特性
🛡️ 道德护栏
- 速率限制:可配置的请求限制,以防止滥用
- robots.txt合规性:尊重网站爬行规则
- 同意要求:敏感操作的可选明确同意
- 被阻止的域名:可配置的域块列表
- 用户代理标识:明确识别请求
🔍 OSINT工具
DNS和网络工具
- 域名解析:查询DNS记录(A、AAAA、MX、NS、TXT、CNAME、SOA)
- 反向域名解析:查找与IP地址关联的主机名
- 名称服务器信息:获取域的权威名称服务器
- MX记录:检索邮件交换记录
IP智能
- IP地理定位:获取IP地址的位置和网络信息
- 信誉评分技术:根据威胁情报数据库检查IP地址(需要API密钥)
网络智能
- robots.txt检查器:验证是否可以访问URL
- HTTP头处理模块:检索HTTP标头(最小带宽)
- 元数据抽取:提取网页元数据(标题、描述等)
- SSL证书检查:验证SSL/TLS配置
🏗️ 建筑
- 模块化设计:关注点的清晰分离(配置、工具、实用工具)
- 错误处理:全面的错误处理和详细的日志记录
- 速率限制:用于公平资源使用的令牌桶算法
- 验证:输入验证和净化
- 异步操作:高效的异步/等待模式
安装
先决条件
- Python 3.10或更高版本
- pip或uv包管理器
从源代码安装
# Clone the repository
git clone https://github.com/canstralian/OSINT-MCP-Server.git
cd OSINT-MCP-Server
# Install dependencies
pip install -r requirements.txt
# Or install in development mode
pip install -e .
配置
- 复制示例环境文件:
cp .env.example .env
- 编辑
.env要自定义设置,请执行以下操作:
# Rate limiting (requests per minute)
OSINT_RATE_LIMIT=10
# User agent for web requests
OSINT_USER_AGENT=OSINT-MCP-Server/0.1.0 (Educational/Research Purpose)
# Optional API Keys
ABUSEIPDB_API_KEY=your_key_here
IPINFO_API_KEY=your_key_here
SHODAN_API_KEY=your_key_here
用法
运行服务器
# Run directly
python -m osint_mcp
# Or use the installed package
osint-mcp-server
与MCP客户端一起使用
该服务器实现了模型上下文协议,可以与任何兼容MCP的客户端(例如Claude Desktop、其他AI助手)一起使用。
MCP客户端配置示例:
{
"mcpServers": {
"osint": {
"command": "python",
"args": ["-m", "osint_mcp"]
}
}
}
工具调用示例
域名解析
{
"tool": "dns_lookup",
"arguments": {
"domain": "example.com",
"record_type": "A"
}
}
IP地理定位
{
"tool": "get_ip_info",
"arguments": {
"ip_address": "8.8.8.8"
}
}
Web元数据提取
{
"tool": "extract_metadata",
"arguments": {
"url": "https://example.com"
}
}
项目结构
OSINT-MCP-Server/
├── src/
│ └── osint_mcp/
│ ├── __init__.py # Package initialization
│ ├── __main__.py # Entry point
│ ├── server.py # MCP server implementation
│ ├── config/ # Configuration management
│ │ ├── __init__.py
│ │ └── settings.py # Server and ethical settings
│ ├── tools/ # OSINT tools
│ │ ├── __init__.py
│ │ ├── dns_tools.py # DNS and domain tools
│ │ ├── ip_tools.py # IP intelligence tools
│ │ └── web_tools.py # Web scraping tools
│ └── utils/ # Utility modules
│ ├── __init__.py
│ ├── errors.py # Error handling
│ ├── rate_limiter.py # Rate limiting
│ └── validators.py # Input validation
├── tests/ # Test suite
├── pyproject.toml # Project metadata
├── requirements.txt # Dependencies
├── .env.example # Example configuration
└── README.md # This file
道德准则
此服务器的设计考虑了OSINT的道德实践:
- 仅供公众参考:仅访问公开信息
- 尊重robots.txt:荣誉网站爬行政策
- 速率限制:防止目标服务器不堪重负
- 透明标识:使用清晰的用户代理字符串
- 无剥削:不试图绕过安全措施
- 隐私尊重:不收集或存储个人信息
- 法律合规:遵守适用的法律法规
推荐使用案例
✅ 安全研究和漏洞评估(经许可) ✅ 用于个人或组织安全的数字足迹分析 ✅ 威胁情报收集 ✅ 领域和基础设施研究 ✅ 教育目的和学习
禁止使用案例
❌ 未经授权的访问或黑客攻击企图 ❌ 骚扰或跟踪 ❌ 违反隐私 ❌ 任何非法活动 ❌ 绕过安全措施
发展
运行测试
# Install development dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Run with coverage
pytest --cov=osint_mcp --cov-report=html
代码质量
# Format code
black src/ tests/
# Lint code
ruff check src/ tests/
# Type checking
mypy src/
API密钥
某些功能需要API密钥才能增强功能:
- 滥用IPDB:IP信誉检查(可用免费层)
- 在以下地址获取钥匙:https://www.abuseipdb.com/
- 油漆:增强的IP地理定位(可选)
- 在以下地址获取钥匙:https://ipinfo.io/
- 肖丹:端口扫描和服务检测(可选)
- 在以下地址获取钥匙:https://www.shodan.io/
服务器在没有API密钥的情况下工作,但功能有限。
贡献
欢迎投稿!请确保您的贡献:
- 遵循伦理OSINT原则
- 包括适当的测试
- 维护代码质量标准
- 根据需要更新文档
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
免责声明
此工具仅用于教育和研究目的。用户有责任确保其使用符合所有适用的法律法规。作者和贡献者不对此工具造成的误用或损坏负责。
在对您不拥有或没有明确许可测试的系统或数据进行安全研究或情报收集之前,始终获得适当的授权。
支持
对于问题、疑问或贡献:
- GitHub问题:https://github.com/canstralian/OSINT-MCP-Server/issues
- 文档:请参阅此README和内联代码文档
致谢
内置:
- MCP(模型上下文协议)
- httpx -现代HTTP客户端
- dnspython -DNS工具包
- 皮丹提克 -数据验证
- 验证器 -数据验证库
