mcp-maigret 是一个 MCP(Model Context Protocol)服务器,用于让 AI 智能体运行 maigret 这一 OSINT 工具。maigret 可在数千个站点中检查某个用户名是否被注册,也可以接收一个资料 URL 进行分析。你可以要求智能体查找某个用户名在哪些地方已注册,或分析某个资料 URL,然后获得一份保存下来的报告。
主要能力
- 用户名搜索:在数百到数千个站点中搜索用户名,并可按标签过滤,例如 photo、dating、us 等。
- URL 分析:传入一个资料 URL,maigret 会尽量提取信息并查找关联的用户名。
- 报告格式:提供六种报告格式(txt、html、csv、json、xmind、pdf),保存到指定目录。
- 输入加固:严格校验并采用 execFile 加参数数组的方式执行,不涉及 shell。
- 基于 Docker:首次使用时拉取 maigret 镜像,保证每台机器运行相同的 maigret 版本。
可用工具
- search_username:跨社交网络和站点搜索用户名。结果包含已保存报告的路径以及 maigret 的控制台输出。如果没有生成报告文件,结果会明确说明,而不会报告成功。
- 另一个工具用于解析 URL,提取信息并搜索关联用户名。结果以 maigret 的扫描输出文本返回。
使用方式 要求:Node.js 18 或更高版本,且已安装并运行 Docker。开发与测试在 macOS 上进行;Linux 和 Windows(Docker Desktop)理论上可用,但未经过测试。
- 选择报告目录。服务器会把报告保存在该目录,目录不存在时会自动创建。该变量为必填项(MAIGRET_REPORTS_DIR)。
- 将服务器添加到客户端。编辑配置文件(macOS:~/Library/Application Support/Claude/claude_desktop_config.json,Windows:%APPDATA%\Claude\claude_desktop_config.json),然后重启 Claude Desktop。再让客户端以 node /absolute/path/to/mcp-maigret/build/index.js 启动,并带上相同的 MAIGRET_REPORTS_DIR 变量。
- 试用。可以要求智能体:“Use maigret to check where the username octocat is registered, filtered to the coding tag.” 首次搜索会拉取 maigret 镜像(约 800 MB),因此耗时较长。
报告输出 报告写入 MAIGRET_REPORTS_DIR。文件名由 maigret 决定,某些格式会附加后缀。当 maigret 发现关联用户名时,会在主报告旁边写入额外报告(例如 report_octocatsup.txt)。文中列出的状态检查针对 maigret 0.6.6(镜像 soxoj/maigret:latest)。由于 maigret 的命令行在不同版本间会变化,这些信息可能发生偏移。
安全与限制
- 用户名、URL 和标签来自 AI 智能体,被视为不可信输入。
- 校验规则:用户名仅允许 [A-Za-z0-9_.-](最多 100 个字符);标签仅允许 [A-Za-z0-9_-](最多 50 个字符);URL 必须能解析为 http 或 https,且不得包含 shell 元字符。
- 不使用 shell:Docker 通过 execFile 和参数数组启动,绝不使用拼接的命令字符串。
- 写入受限:报告由容器写入你挂载的单一目录,服务器不会读写其他位置。
- 未覆盖的风险:服务器会在你的机器上代表你的智能体运行 Docker,并从你的 IP 地址向众多第三方站点发起网络请求。请仅对你信任的智能体和客户端运行它。
- 使用场景应限于合法、经授权的公开信息 OSINT 研究。遵守法律和各站点的服务条款,尊重他人隐私。一些站点会对自动查询进行限流或封锁。
其他信息 发现漏洞请私下报告(见 SECURITY.md)。文档中还有更多排障内容。欢迎贡献,参见 CONTRIBUTING.md。问题与帮助见 SUPPORT,安全报告见 SECURITY.md(私下报告,不要发公开 issue)。项目采用 MIT 许可证,是独立项目,与 maigret 项目无隶属关系;maigret 由 soxoj 开发,有其自己的许可证。