fenrir-mcp
fenrir-mcp
MCP 服务器。封装 DFIR-FENRIR v2 REST API。通过 stdio 与 Claude Code 通信。 Python 实现。仅使用 stdio,不监听端口。
操作指南 — 首次运行
只需执行一次。将 https://HOST 替换为你的 FENRIR 浏览器 URL。打开 VPN。
# 1. get code + deps
git clone <repo> dfir-fenrir-mcp
cd dfir-fenrir-mcp
uv sync
# 2. get the internal CA onto this machine
scp deploy-host:/path/dfir-fenrir-v2/certs/ca.crt ~/ca.crt
# 3. verify the CA matches the live server (expect: {"needs_setup":false})
curl --cacert ~/ca.crt https://HOST/api/auth/setup-check
# 4. write deployment config
mkdir -p ~/.config/fenrir-mcp && chmod 700 ~/.config/fenrir-mcp
printf 'FENRIR_URL=https://HOST\nFENRIR_CA_CERT=%s/ca.crt\n' "$HOME" > ~/.config/fenrir-mcp/env
chmod 600 ~/.config/fenrir-mcp/env
# 5. mint a token (asks user + pass + TOTP, then role cap: analyst for standard)
.venv/bin/fenrir-mcp login
# 6. register with Claude Code (run from the project dir you want the tools in)
claude mcp add-json fenrir '{"type":"stdio","command":"'"$PWD"'/.venv/bin/fenrir-mcp","env":{"FENRIR_MCP_MODE":"standard","FENRIR_MCP_UPLOAD_DIRS":"'"$HOME"'/cases"}}'或者跳过第 4–6 步:运行 ./install.sh(会逐一提示所有信息,并可获取+固定 CA)。
验证:启动 claude,运行 /mcp → fenrir ✔ connected,然后让 Claude 执行 run fenrir_whoami。
Related MCP server: SIFTGuard
操作指南 — 日常操作
# start of day: mint fresh 8 h token
.venv/bin/fenrir-mcp login
# check state any time
.venv/bin/fenrir-mcp status # user, token role, mode, live server check
# work: in Claude Code, plain language. examples:
# "triage INC-0006" (loads the SOC skill)
# "list open critical incidents"
# "analyze ~/cases/x.eml into INC-0006 and promote the IOCs"
# "verify the custody chain on INC-0006"
# "write up findings and close INC-0006"
# end of day: revoke
.venv/bin/fenrir-mcp logout工具返回 401 = 令牌已过期。重新运行
login。会话内无法修复。写入操作返回 403 = 令牌上限低于该模式的要求。重新
login,选择更高的上限。更改模式/上传目录 = 编辑
.mcp.json注册配置,然后重启claude。服务器代码更新(git pull)= 重启
claude(可编辑安装,无需重新安装)。
功能
基于 FENRIR API 的 52 个工具。按模式分级:readonly 22 个,standard +25 个,full +5 个。
51 个精选工具 + 1 个逃生通道(
fenrir_api,经 OpenAPI 验证)。认证 = FENRIR bearer 令牌。由 CLI 在密码 + TOTP 之后签发。TTL 8 小时。
读取事件/时间线/IOC/实体/证据。写入调查发现。上传 .eml/pcap/工件。运行分析。管理 CoC。关闭事件。
依赖
Python >= 3.12
uv
claude CLI
到 FENRIR 的网络路径(VPN)
FENRIR 内部 CA 文件(部署主机上的
certs/ca.crt)
安装
git clone <repo> dfir-fenrir-mcp
cd dfir-fenrir-mcp
./install.sh # prompts: URL, CA, mode, upload dirs, register, skill手动安装:
uv sync
mkdir -p ~/.config/fenrir-mcp && chmod 700 ~/.config/fenrir-mcp
printf 'FENRIR_URL=https://HOST\nFENRIR_CA_CERT=/abs/ca.crt\n' > ~/.config/fenrir-mcp/env
chmod 600 ~/.config/fenrir-mcp/env
claude mcp add-json fenrir '{"type":"stdio","command":"/abs/dfir-fenrir-mcp/.venv/bin/fenrir-mcp","env":{"FENRIR_MCP_MODE":"standard"}}'使用 add-json,不要使用带标志的 add 形式(会错误解析 -e)。
认证
.venv/bin/fenrir-mcp login # user + pass + TOTP, then pick role cap
.venv/bin/fenrir-mcp status # token meta + live check
.venv/bin/fenrir-mcp logout # revoke server-side + wipe local登录时选择令牌角色上限。不得高于你的 FENRIR 账户角色。
每个请求的有效角色 = min(账户角色, 令牌上限)。由 FENRIR 强制执行。
令牌存储在操作系统钥匙串中,否则存储为 0600 权限文件。绝不放入环境变量,绝不放入仓库。
客户端 TTL 8 小时。每天重新登录。401 = 已过期。
配置
环境变量,或 ~/.config/fenrir-mcp/env(KEY=VALUE)。实际环境变量优先。
变量 | 必需 | 含义 |
| 是 | https 基础 URL |
| 推荐 | 内部 CA 路径;成为唯一信任锚 |
| 否 | readonly(默认)/ standard / full |
| 上传 | 冒号分隔的允许列表;未设置 = 禁用上传 |
| 否 | 1 = 拒绝 0600 文件令牌回退 |
| 否 | 0 = 原始响应(默认去除 null/空值) |
URL + CA = 部署事实,放入环境变量文件。模式 + 上传目录 = 按项目设置,
放入 .mcp.json 注册配置。
模式与角色
模式 | 工具 | 所需令牌上限 |
readonly | 读取 | viewer |
standard | + 写入、上传 | analyst |
full | + 删除、管理 | analyst(管理工具需要 admin) |
高于当前模式的工具不会被注册。GUI 管理员 != 令牌上限。写入返回 403 = 令牌上限过低;重新登录并选择更高上限。
安全规则(代码中强制执行)
字节仅流向 FENRIR。证据/导出/照片/报告的字节不会写入磁盘。 硬性拒绝列表,覆盖精选工具 + 逃生通道,每个模式均适用。文本导出仅内联显示。
MCP 从不签发令牌。
POST /api/tokens已被拒绝列表禁用。仅限 CLI 登录。/api/auth/*已被拒绝列表禁用。TLS 1.3 下限。CA 固定。verify 永不关闭。重定向关闭。 (固定 CA 路径仅放宽 RFC 5280 严格格式检查——generate-certs.sh 生成的 CA 缺少 keyUsage;证书链和主机名仍会验证。系统存储保持严格。)
仅允许从
FENRIR_MCP_UPLOAD_DIRS上传。路径经检查,无法越界遍历。高开销调用(enrich-all、feed pull、reports、analyses)串行化, 信号量为 1。FENRIR 后端为单 worker。
破坏性操作集中在单个工具(
fenrir_delete,full 模式)中。Dispose 需要confirm=true。
令牌效率
响应精简(丢弃 null/空值)。
FENRIR_MCP_SLIM=0可禁用。列表类工具接受
fields=[...]和limit。请传入这些参数。incident_id接受INC-####引用或 UUID。引用→UUID 映射缓存于~/.config/fenrir-mcp/refcache.json。readonly 模式 = 加载 22 个 schema,而非 52 个。
技能
.claude/skills/fenrir-soc-analyst/ 随仓库提供。SOC 分诊方法论
行动手册 + 令牌纪律。仅当分诊工作开始时加载。安装程序 会将其符号链接到
~/.claude/skills/。
目录结构
src/fenrir_mcp/
__main__.py entry: serve (default) | login | logout | status
server.py MCPServer, tier-gated registration, startup checks
config.py env + env-file + upload allowlist
client.py httpx: TLS, bearer, errors, slim, ref-rewrite, semaphore
token_store.py keyring -> 0600 file
cli.py login / logout / status
denylist.py single-source hard denylist + byte-drift scan
openapi_guard.py escape-hatch spec validation
refcache.py INC-ref -> UUID memory
tools/ 15 modules, @tool(tier) registry
tests/ 40 testsdocs/(DESIGN、TOOLS、SBD-REVIEW、api-inventory)和 THREAT_MODEL.md 已被
gitignore——仅限本地,它们描述部署态势和完整 API 面。
开发
uv run pytest # 35 tests: denylist, tiering, guard, uploads, tls, env, efficiency失陷响应
fenrir-mcp logout。或者在其他位置撤销:GUI 设置 > API 令牌,管理员
/api/admin/tokens。审计可按令牌前缀 claude-mcp 过滤。爆炸半径 =
8 小时 TTL × 角色上限 × VPN 可达范围。
This server cannot be deployed
Maintenance
Related MCP Connectors
A paid remote MCP for ClawManager, built to return verdicts, receipts, usage logs, and audit-ready J
Submit files and URLs to a malware sandbox, poll scans, fetch reports, hashes and IOCs.
NVD MCP — wraps the NIST National Vulnerability Database API (free, no auth)
Exposes FEDLIN's public security scanners as agent-callable tools over Streamable HTTP.
Related MCP Servers
- AlicenseAqualityDmaintenanceWraps Anthropic Claude Code CLI as tools, allowing MCP clients to invoke headless Claude Code sessions.2972 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables autonomous digital forensics and incident response by wrapping SIFT Workstation tools as MCP tools and orchestrating a multi-agent AI pipeline for evidence analysis and remediation planning.2MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that transforms Claude Code into an autonomous DFIR analyst by providing typed, audited forensic tools for disk, memory, timeline, registry, and IOC analysis on the SANS SIFT Workstation.Apache 2.0
- AlicenseNot gradedqualityDmaintenanceThis MCP server connects Claude Desktop to a Velociraptor instance and local forensic tools. It enables remote endpoint investigation and local evidence analysis through natural language commands.1MIT