Tradecraft MCP
OSINT(开源情报)谍报工具包作为 主控程序 服务器。提供31个用于领域侦察、电子邮件/身份研究、威胁情报和网络/社交媒体分析的工具,以及12个指导结构化调查工作流程的提示模板。
17个工具无需配置即可开箱即用。剩下的14个使用可选的API密钥解锁,服务器优雅地“告诉”你如何在它们丢失时设置它们。
快速开始
# Install dependencies
uv sync
# Run the server
uv run tradecraft-mcp克劳德桌面
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"tradecraft-mcp": {
"command": "uv",
"args": ["run", "--directory", "/path/to/tradecraft-mcp", "tradecraft-mcp"]
}
}
}克劳德代码
claude mcp add tradecraft-mcp -- uv run --directory /path/to/tradecraft-mcp tradecraft-mcpMCP检查员
mcp dev src/tradecraft_mcp/server.py远程访问(SSE/流式HTTP)
服务器支持三种传输方式: stdio (默认), sse,以及 streamable-http。使用基于HTTP的传输在机器上运行服务器并远程连接到它。
# Start with SSE transport on default port 8000
uv run tradecraft-mcp --transport sse
# Start with streamable-http on a custom port
uv run tradecraft-mcp --transport streamable-http --port 9000
# Bind to a specific interface
uv run tradecraft-mcp --transport sse --host 127.0.0.1 --port 8080然后配置您的MCP客户端以连接到远程URL:
{
"mcpServers": {
"tradecraft-mcp": {
"url": "http://:8000/sse"
}
}
}对于 streamable-http,端点为 http://: /mcp.
跑 uv run tradecraft-mcp --help 查看所有选项。
认证
默认情况下,HTTP传输是打开的。要要求不记名代币,请执行以下操作:
# Via CLI flag
uv run tradecraft-mcp --transport sse --auth-token my-secret
# Via environment variable
MCP_AUTH_TOKEN=my-secret uv run tradecraft-mcp --transport streamable-http客户必须包括 Authorization: Bearer my-secret 在每一个请求中。没有有效令牌的请求将收到401响应。
| 选项 | 环境变量 | 描述 |
|---|---|---|
--auth-token | MCP_AUTH_TOKEN | 承载令牌(设置后启用身份验证) |
--issuer-url | MCP_AUTH_ISSUER_URL | OAuth颁发者URL(默认值: `http://localhost: |
| `) | ||
--required-scopes | MCP_AUTH_SCOPES | 逗号分隔的必填范围 |
CLI标志优先于环境变量。stdio传输忽略Auth。
工具
域/IP/DNS重新配置(9个工具)
| 工具 | 说明 | API密钥 |
|---|---|---|
whois_lookup | 域名或IP的WHOIS——注册商、日期、名称服务器 | 无 |
dns_enumerate | 查询A、AAAA、MX、NS、TXT、CNAME、SOA记录 | 无 |
reverse_dns | 在IP上反向DNS以查找主机名 | 无 |
cert_transparency_search | 在crt.sh中搜索证书和子域 | 无 |
subdomain_discover | 通过CT日志+可选暴力+安全追踪的子域 | SECURITYTRAILS_API_KEY (可选) |
ip_geolocation | 地理数据--国家、城市、ISP、ASN | 无 |
shodan_host_lookup | Shodan主机信息--端口、服务、漏洞、地理位置 | SHODAN_API_KEY |
shodan_domain_search | Shodan为域提供主机 | SHODAN_API_KEY |
censys_host_lookup | Censys主机——服务、TLS、ASN | CENSYS_API_ID + CENSYS_API_SECRET |
电子邮件和身份(6个工具)
| 工具 | 说明 | API密钥 |
|---|---|---|
email_validate | 格式检查+MX记录验证 | 无 |
email_domain_info | MX、SPF、DKIM、DMARC分析+邮件提供商检测 | 无 |
gravatar_lookup | 来自电子邮件哈希的Gravatar配置文件 | 无 |
username_enumerate | 通过HTTP探测跨主要平台检查用户名 | 无 |
hibp_breach_check | 我是否已经进行了漏洞查找 | HIBP_API_KEY |
hibp_paste_check | 我被粘贴索引查找了吗 | HIBP_API_KEY |
威胁情报(7种工具)
| 工具 | 说明 | API密钥 |
|---|---|---|
threat_feed_check | 检查Abuse.ch URLhaus、Feodo跟踪器、SSL黑名单 | 无 |
virustotal_file_report | VirusTotal文件哈希分析 | VIRUSTOTAL_API_KEY |
virustotal_url_scan | URL的VirusTotal扫描/报告 | VIRUSTOTAL_API_KEY |
virustotal_domain_report | VirusTotal域名信誉+DNS+检测 | VIRUSTOTAL_API_KEY |
virustotal_ip_report | VirusTotal IP信誉+相关URL/文件 | VIRUSTOTAL_API_KEY |
abuseipdb_check | 滥用IPDB报告、信心、ISP | ABUSEIPDB_API_KEY |
ioc_enrich | 自动检测IOC类型,查询所有相关工具,合并报表 | 使用基础键 |
网络和社交媒体(7个工具)
| 工具 | 说明 | API密钥 |
|---|---|---|
web_fetch | 以纯文本+元数据的形式获取页面,尊重robots.txt | 无 |
web_headers_analyze | 安全标头分析——CSP、HSTS、X-Frame、Cookie | 无 |
metadata_extract | OpenGraph、推特卡、链接资源、技术指纹 | 无 |
google_dork_generate | 为目标+目标生成Google dork查询 | 无 |
wayback_lookup | Wayback Machine存档快照 | 无 |
social_media_profile | 从社交媒体URL提取公共配置文件数据 | 无 |
website_technology_detect | CMS、框架、CDN、分析检测 | 无 |
提示模板
提示模板指导结构化调查工作流程。选择一个以获得按正确顺序调用正确工具的分步方法。
领域调查
domain_full_recon--多阶段域重构(WHOIS、DNS、子域、服务、网络、历史)infrastructure_mapping--从域映射一个组织面向互联网的基础设施domain_threat_assessment--使用信誉+DNS+证书评估域威胁态势
人员/身份调查
email_investigation--从电子邮件开始:验证、违规、域名、gravatar、用户名搜索username_investigation--从用户名开始:枚举平台、查找模式、构建配置文件person_osint--使用所有可用标识符进行全人调查
威胁评估
ioc_investigation--通过富集+威胁信息调查可疑的国际奥委会malware_hash_analysis--分析恶意软件哈希:VT报告+检测率+行为suspicious_url_analysis--分析可疑网址:信誉、WHOIS、证书、钓鱼清单ip_threat_profile--构建IP威胁配置文件:地理+Shodan+滥用IPDB+VT+反向DNS
OSINT将军
osint_methodology--OSINT通用方法框架(计划、收集、处理、分析、报告)attack_surface_discovery--发现组织攻击面:域、服务、信誉、文档、技术
API密钥
所有钥匙都是可选的。复制 .env.example 到 .env 并填写您所拥有的:
cp .env.example .env| 变量 | 服务 | 如何获取 |
|---|---|---|
SHODAN_API_KEY | 肖丹 | 注册 (免费版可用) |
CENSYS_API_ID | 人口普查 | API页面 |
CENSYS_API_SECRET | 人口普查 | API页面 |
VIRUSTOTAL_API_KEY | 病毒总数 | 注册 (免费版可用) |
HIBP_API_KEY | 我被人欺负了吗 | 购买密钥 |
ABUSEIPDB_API_KEY | 滥用IPDB | 注册 (免费版可用) |
SECURITYTRAILS_API_KEY | 安全追踪 | 注册 (免费版可用) |
当调用需要缺少密钥的工具时,它会返回一条带有设置URL的明确错误消息——没有神秘的失败。
发展
# Install with dev dependencies
uv sync --group dev
# Run tests
uv run pytest tests/ -v
# Run a single test file
uv run pytest tests/test_domain_recon.py -v项目结构
tradecraft-mcp/
├── pyproject.toml
├── src/
│ └── tradecraft_mcp/
│ ├── __init__.py # Entry point, version
│ ├── __main__.py # python -m tradecraft_mcp
│ ├── auth.py # Optional bearer token authentication
│ ├── server.py # FastMCP instance, lifespan, registration
│ ├── config.py # API key loading from env vars
│ ├── tools/
│ │ ├── __init__.py # register_all_tools(mcp)
│ │ ├── domain_recon.py # 9 tools
│ │ ├── email_identity.py # 6 tools
│ │ ├── threat_intel.py # 7 tools
│ │ └── web_social.py # 7 tools
│ └── prompts/
│ ├── __init__.py # register_all_prompts(mcp)
│ ├── domain_investigation.py
│ ├── person_investigation.py
│ ├── threat_assessment.py
│ └── general_osint.py
└── tests/
├── conftest.py
├── test_domain_recon.py
├── test_email_identity.py
├── test_threat_intel.py
└── test_web_social.py建筑
- 身份验证: HTTP传输的可选承载令牌身份验证
--auth-token(使用MCP SDKTokenVerifier协议) - 运输: stdio(默认)、SSE或可流式传输的http——可通过以下方式选择
--transport - HTTP会话: 单
aiohttp.ClientSession通过FastMCP生命周期在所有工具之间共享 - 输出格式: Markdown字符串针对LLM消费进行了优化
- 错误处理: 缺少API密钥引发
ValueError(MCP SDK将其视为工具错误);捕获网络错误并将其作为描述性字符串返回 - 登录中: 通过Python将所有日志记录到stderr
logging--永不标准输出(MCP标准输出传输要求)
许可证
麻省理工学院
