AnJian Agent
A local-first, authorization-gated MCP server for web security assessment that transforms URLs into traceable, reviewable reports and integrates with Claude Code and local LLMs.
README
安鉴台 AnJian Agent
<p align="center"> <strong>把“一个网址”变成可追溯、可复核的本地 Web 安全评估报告</strong><br> Local-first · Authorization-gated · MCP-ready · Local-LLM friendly </p>
<p align="center"> <a href="https://github.com/ck3938700-ship-it/anjian-agent/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/ck3938700-ship-it/anjian-agent/actions/workflows/ci.yml/badge.svg"></a> <a href="https://www.python.org/"><img alt="Python 3.11+" src="https://img.shields.io/badge/Python-3.11%2B-3776AB?logo=python&logoColor=white"></a> <a href="LICENSE"><img alt="MIT License" src="https://img.shields.io/badge/License-MIT-green.svg"></a> <a href="https://modelcontextprotocol.io/"><img alt="MCP" src="https://img.shields.io/badge/MCP-stdio-6f42c1"></a> <img alt="Windows first" src="https://img.shields.io/badge/Windows-11-0078D4?logo=windows11"> </p>
安鉴台是一套本地优先、授权门禁明确的安全评估工具。它把内置检查、Nmap、httpx、Nuclei、受控 FFUF、detection-only SQLMap、Burp/HAR、TShark/PCAP 和源码扫描结果整理成统一证据,再生成中文 Markdown、HTML 与 Obsidian 报告。
它可以作为 CLI 独立运行,也可以接入 Claude Code、任意 MCP 客户端,或 Ollama、LM Studio、vLLM、llama.cpp 等 OpenAI 兼容本地模型。AI 只负责理解意图、编排和解释;真正的授权校验、目标限制和工具执行始终在本地 Python 层完成。
[!IMPORTANT] 只对你本人拥有,或已取得资产所有者明确书面授权的系统使用。本项目不提供口令爆破、拒绝服务、漏洞利用、权限绕过、持久化、数据提取或批量互联网扫描能力。自动结果是待复核观察,不等于已确认漏洞。
为什么需要它
手动运行多个工具时,最费时间的通常不是输入命令,而是保持范围一致、过滤重复和误报、保存证据、解释覆盖缺口、再把结果写成可交付报告。安鉴台把这些重复工作固定成可复用流程:
- 一次授权,一个网址:精确目标在终端登记一次,有效期内可直接
/anjian <URL>。 - 工具可用就运行,不可用就说明:不会把超时、Device Guard 阻止或代理 Fake-IP 伪装成“已完成”。
- 结果不会自动升级成漏洞:
suspected、informational、passed与人工确认的 finding 严格分开。 - 证据统一:跨运行、Burp/HAR、PCAP、源码结果按稳定指纹去重并交叉印证。
- 数据留在本地:默认存储在
%USERPROFILE%\.anjian,不依赖云端账号或在线 AI。 - 报告可长期积累:输出 Markdown/HTML/Obsidian,保留 SHA-256 清单和复核记录。
工作方式
flowchart LR
U["用户 / Claude Code / 本地模型"] --> A["一次性精确目标授权"]
A --> G["本地范围门禁"]
G --> T["内置检查与外部工具"]
T --> E["脱敏证据与 SHA-256"]
E --> C["去重与交叉印证"]
C --> O["待复核观察"]
O --> H["人工确认"]
H --> R["Markdown / HTML / Obsidian 报告"]
模型无法通过 MCP 创建授权、扩大端口、允许内网或解锁主动工具。即使本地模型产生错误指令,Python 层仍会再次检查目标、端口、有效期、内网许可和工具级授权。
能力矩阵
| 通道 | 能力 | 关键限制 |
|---|---|---|
| 内置 baseline | DNS、HTTP(S)、TLS、响应头、Cookie | 低影响;不保存响应正文 |
| 外部 baseline | Nmap、ProjectDiscovery httpx | 仅明确端口;代理 Fake-IP 时安全跳过原始端口扫描 |
| 模板检查 | Nuclei | 受系统策略与终端工具授权约束 |
| 内容枚举 | FFUF | 有界字典、低速、单线程、SPA/soft-404/挑战页过滤 |
| 注入观察 | SQLMap | 只对已发现的同源 GET 参数做 detection-only 检查 |
| 被动资产 | subfinder、amass | 只有显式允许下级子域时运行 |
| Web 证据 | Burp XML、HAR | 删除正文、Cookie、Authorization 和令牌值 |
| 流量证据 | TShark/PCAP | 用户指定文件、只读分析、不导出载荷 |
| 源码证据 | 内置规则、Semgrep、Trivy、Gitleaks | 只扫描用户明确提供的本地目录 |
| 输出 | Markdown、HTML、Obsidian、浏览器 PDF | 自动观察需人工复核后才进入正式发现 |
5 分钟开始
1. 安装
需要 Windows 11、Python 3.11+ 和 PowerShell。在仓库目录执行:
powershell -ExecutionPolicy Bypass -File .\setup.ps1
或使用普通 Python 环境:
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e .
2. 检查本机能力
anjian doctor
缺少外部工具不会阻止安装;运行时会安全降级并在报告中记录覆盖限制。
3. 为精确目标登记一次授权
anjian authorize-target "https://example.com"
根据提示亲自输入 AUTHORIZE DEEP example.com。默认端口为 80/443、有效期 90 天、不包含下级子域和私有网络。未登记或授权过期时,quick-assess 不会访问目标。
4. 一键评估
anjian quick-assess "https://example.com"
命令会返回评估 ID、阶段状态、观察摘要和 report.md 的本地路径。
接入 Claude Code
powershell -ExecutionPolicy Bypass -File .\claude-integration\install-claude.ps1
重启 Claude Code 后输入:
/anjian https://example.com
安装器会创建隔离运行环境、注册本地 stdio MCP Server,并安装 /anjian 命令与 Skill;不会读取或修改你的 API Key。完整说明见 Claude Code 指南。
接入本地大模型
安鉴台 v0.5.0 提供无需模型工具调用能力的本地模型适配器:确定性 Python 核心先执行授权评估,再把脱敏结构化结果交给本地模型解释。小模型即使不会 function calling,也能稳定使用。
以 Ollama 为例:
ollama pull qwen2.5:7b
anjian-local-agent "评估 https://example.com" --model qwen2.5:7b
LM Studio、vLLM 或 llama.cpp 只需指定兼容地址:
anjian-local-agent "审计 https://example.com" `
--base-url http://127.0.0.1:1234/v1 `
--model local-model
如果模型服务不可用,适配器仍会保留确定性 JSON 结果,不会丢失已经完成的评估。详见 本地大模型部署。
浏览器工作台
anjian seed-demo
anjian serve
浏览器打开 http://127.0.0.1:8765。工作台默认只监听本机回环地址,可维护项目、授权范围、人工发现、复测与正式报告。不要为了远程访问直接改成 0.0.0.0。
数据与隐私
- CLI、MCP 和本地模型数据:
%USERPROFILE%\.anjian - 浏览器工作台数据库:项目目录中的
data/anjian.db .gitignore默认排除数据库、报告、HAR、PCAP、Burp XML、虚拟环境和.env- Web 证据只持久化必要的脱敏元数据;源代码秘密只保存哈希前缀
- 客户材料、授权文件和真实报告不应提交到公开 Git 仓库
备份与保留期检查:
anjian backup
anjian retention
当前边界
安鉴台适合授权的小型网站安全基线评估、证据整理和报告交付,不是“自动渗透万能平台”。它不能证明网站没有漏洞,也不能代替登录态业务逻辑测试、复杂授权测试、代码审计、云配置审计、移动端或内网横向评估。Cloudflare、代理、WAF 和 Windows 应用控制也可能限制外部工具覆盖,报告会如实列出这些缺口。
开发与验证
python -m pip install -e ".[dev]"
pytest
自动测试只访问测试进程拥有的 127.0.0.1 服务,不向公共互联网发送扫描请求。架构、安全边界与后续计划分别见:
项目原则
- 授权和范围控制优先于“能力更多”。
- 自动化负责减少重复劳动,人类负责最终判断。
- 任何失败、跳过和覆盖限制都必须出现在报告中。
- 默认本地存储、最少数据、证据脱敏。
- 新增网络能力必须先有滥用分析、范围约束与本地测试。
License
MIT © 2026 AnJian Desk Contributors
如果安鉴台对你有帮助,欢迎 Star、提交问题或改进文档。请不要在公开 Issue 中粘贴真实目标、客户名称、授权文件、Cookie、Token 或未公开漏洞细节。
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.