MCP Security Inspector
专为 Model Context Protocol (MCP) 服务器设计的AI增强安全检测Chrome扩展.[项目由Cursor完成]
🚀 项目概述
MCP Security Inspector 是一款 Chrome 扩展,面向 Model Context Protocol (MCP) 远程服务器,提供 协议调试 与 AI 增强安全检测 两大能力:
- 协议调试:连接 SSE / Streamable HTTP 服务器,浏览并调用工具、资源、提示,支持自定义 Headers 与多种认证方式
- 安全检测:结合主动扫描与被动监控,集成 OpenAI、Claude、Gemini 等 LLM,自动生成测试用例并输出风险报告
配置可在 Cursor、Claude Desktop、VS Code 等工具与本扩展之间 导入 / 导出标准 mcp.json,便于复用已有 MCP 配置进行安全审计。
详细介绍:《MCP Security Inspector:AI驱动的MCP协议安全检测工具》
✨ 核心特性
- 🔌 MCP 协议浏览器: SSE / Streamable HTTP;调用工具、读取资源、获取提示
- 📥 配置导入导出: 标准
mcp.json格式,兼容 Cursor、Claude Desktop、VS Code、Windsurf;自动过滤本地 stdio 进程 - 🧠 AI 增强检测: 集成 OpenAI、Claude、Gemini 等多种 LLM 服务
- 🔄 双重检测模式: 主动扫描 + 被动监控,全面覆盖 MCP 交互
- 🎯 统一检测引擎: 工具、提示、资源三类 MCP 组件统一检测框架
- 📋 可配置结果展示:
{{auto}}自动美化,原始 / 格式化双栏,通配路径模板 - 🌐 多语言支持: 完整中英双语界面
- 📊 智能报告: 实时生成详细安全分析报告
- 🛡️ 隐私保护: 本地检测,敏感信息智能遮蔽
🏗️ 技术架构
统一安全检测引擎
采用统一的安全检测引擎,将工具、提示、资源三种不同类型的MCP组件纳入统一的安全检测框架:
// 统一安全检测接口
public async performSecurityAnalysis(
type: 'tool' | 'prompt' | 'resource',
target: MCPTool | MCPPrompt | MCPResource,
config: SecurityCheckConfig,
parameters?: Record<string, unknown>
): Promise<SecurityAnalysisResult>
双重检测模式
🔍 主动扫描模式
- 用户主动触发的全面安全扫描
- LLM增强的深度安全分析
- 智能测试用例生成和执行
- 详细的安全报告和修复建议
📡 被动监控模式
- 实时监控MCP调用和交互
- 自动检测潜在的安全威胁
- 实时安全警报和日志记录
- 历史记录和趋势分析
检测流程
- 静态分析: 对组件定义进行初步分析,识别潜在安全风险
- LLM深度分析: 使用大语言模型进行深度安全分析
- 规则检测: 基于预定义的安全规则进行威胁检测
- 动态测试: 执行实际的安全测试,验证潜在漏洞
- 风险评估: 综合各种检测结果,计算整体风险等级
- 报告生成: 生成详细的安全报告和修复建议
🔒 安全检测能力
工具安全检测
- 输入验证分析: 检查工具参数的验证机制
- 权限控制检查: 评估工具的权限控制机制
- 数据泄露检测: 识别工具可能泄露的敏感信息
- 注入攻击防护: 检测SQL注入、XSS、命令注入等攻击
- 拒绝服务防护: 评估对资源消耗攻击的防护能力
提示安全检测
- 提示注入检测: 识别可能绕过AI模型安全边界的恶意提示
- 角色操纵检测: 检测可能改变AI模型行为的角色定义
- 上下文污染检测: 识别可能导致上下文污染的提示内容
- 隐私泄露检测: 检测可能泄露敏感信息的提示
- 恶意引导检测: 识别可能引导AI模型执行恶意行为的提示
资源安全检测
- 路径遍历检测: 识别可能绕过访问控制的路径遍历攻击
- 访问控制检测: 验证资源的访问控制机制是否有效
- 敏感数据检测: 识别可能泄露的敏感文件和数据
- 内容注入检测: 检测资源内容中可能包含的恶意内容
- 协议安全检测: 验证资源访问协议的安全性
🤖 LLM增强分析
支持的LLM服务
- OpenAI GPT系列: GPT-3.5、GPT-4
- Anthropic Claude系列: Claude-3 Sonnet、Claude-3.5 Sonnet
- Google Gemini系列: Gemini Pro、Gemini Ultra
- 自定义Ollama服务: 支持本地部署的开源模型
- 通用HTTP API接口: 兼容OpenAI API格式的服务
智能测试用例生成
- 基于组件定义分析潜在风险点
- 使用LLM识别可能的安全风险
- 根据风险点制定相应的测试策略
- 生成具体的测试用例和测试数据
- 执行测试用例并智能评估结果
🚀 快速开始
安装步骤
方式一:从Chrome商店安装(推荐)
- 直接安装
- 访问 Chrome应用商店 - MCP Security Inspector
- 点击"添加至Chrome"按钮
- 在弹出的确认对话框中点击"添加扩展程序"
方式二:从源码构建安装
-
下载源码
git clone https://github.com/purpleroc/mcp-security-inspector.git cd mcp-security-inspector npm install npm run build:extension -
加载到Chrome
- 打开
chrome://extensions/ - 启用"开发者模式"
- 点击"加载已解压的扩展程序"
- 选择
dist文件夹
- 打开
使用方法
-
管理 MCP 配置
- 在 已保存配置 列表中点击条目,可加载到左侧连接表单进行编辑
- 导入:上传 Cursor / Claude / VS Code 等工具的
mcp.json,预览后确认;自动跳过本地 stdio 与 OAuth 配置 - 导出:下载标准
mcp.json,可直接用于 Cursor、Claude Desktop 等工具
-
连接 MCP 服务器
- 传输模式:多数远程服务使用 SSE(如 Cursor
url指向的 HTTP 端点);部分服务使用 Streamable HTTP - 主机:仅填协议与域名,例如
http://example.com - 路径:SSE 路径填服务端暴露的地址,例如
/mcp/server/<id>/ - 认证:若需
app_id、app_token等自定义请求头,请在配置中填写 Headers JSON,或使用 组合认证 → 自定义请求头(SSE 长连接也会携带这些头) - 连接成功后在 MCP 浏览器 中查看工具 / 资源 / 提示列表
- 传输模式:多数远程服务使用 SSE(如 Cursor
-
调用工具与查看结果
- 在 MCP 浏览器选择工具、填写参数并执行
- 格式化结果默认展开,内容区可下拉滚动;可点击 ▼ 拉高展示区
- 原始返回默认折叠,需要时展开查看完整 JSON
- 展开 结果展示设置 可编辑模板(默认
{{auto}}自动适配任意content[]结构) - 模板支持:
{{content[*].text}}、{{content[?type=text].text}}、{{parsed[*]}}、print(路径)等;可根据当前返回点击路径标签插入
-
配置 LLM 服务(可选)
- 选择 LLM 服务提供商
- 输入 API 密钥和配置参数
- 测试连接是否正常
-
执行安全检测
- 选择检测模式(主动扫描 / 被动监控)
- 配置检测参数和规则
- 启动检测并查看实时进度
-
查看安全检测报告
- 查看详细的安全报告
- 分析风险等级和修复建议
- 导出报告或历史记录
🛠️ 开发指南
项目结构
src/
├── components/ # React 组件
│ ├── SecurityPanel.tsx # 安全检测主面板
│ ├── MCPExplorer.tsx # MCP 工具/资源/提示浏览器
│ ├── McpResultViewer.tsx # 调用结果展示(模板 + 折叠)
│ ├── ConfigPanel.tsx # 服务器连接配置
│ ├── MCPListPanel.tsx # 已保存配置列表、导入/导出
│ └── AuthConfig.tsx # 认证配置
├── services/
│ ├── securityEngine.ts # 统一安全检测引擎
│ ├── mcpClient.ts # MCP 客户端(SSE / Streamable)
│ └── llmClient.ts # LLM 调用
├── types/
│ └── resultDisplay.ts # 结果展示配置类型
├── utils/
│ ├── mcpConfigParser.ts # 多格式 mcp.json 解析与导出
│ ├── resultDisplay.ts # 结果模板解析与 {{auto}} 格式化
│ └── storage.ts # 本地配置持久化
└── i18n/ # 中英双语
常用脚本
npm run dev # 本地开发
npm run build:extension # 构建 Chrome 扩展(输出 dist/)
npm run type-check # TypeScript 检查
npm run package # 打包 dist 为 zip
核心API
安全检测引擎
import { SecurityEngine } from './services/securityEngine';
const engine = new SecurityEngine();
// 执行安全检测
const result = await engine.performSecurityAnalysis(
'tool', // 检测类型
toolDefinition, // 组件定义
config, // 检测配置
parameters // 测试参数
);
MCP 客户端
import { mcpClient } from './services/mcpClient';
mcpClient.configure({
name: 'My MCP',
host: 'http://example.com',
ssePath: '/mcp/server/xxx/',
transport: 'sse', // 或 'streamable'
headers: { app_id: '...', app_token: '...' },
});
await mcpClient.connect();
const tools = await mcpClient.listTools();
const result = await mcpClient.callTool('tool_name', { /* args */ });
说明:SSE 模式下服务端常返回
202 Accepted,JSON-RPC 响应经 同一条 SSE 流 异步推送;客户端在配置了自定义 Headers 时会使用 Fetch 维持 SSE,并持续读取直至收到对应id的响应。
扩展开发
添加新的检测规则
// src/services/detectionRules.ts
export const customRule: DetectionRule = {
id: 'custom-rule',
name: 'Custom Security Rule',
description: 'Description of the rule',
pattern: /malicious-pattern/gi,
severity: 'high',
category: 'injection'
};
集成新的LLM服务
// src/services/llmClient.ts
class CustomLLMProvider implements LLMProvider {
async analyze(prompt: string): Promise<LLMResponse> {
// 实现自定义LLM服务的调用逻辑
}
}
📊 更新日志
v2.1.0
- ✅ 配置导入导出:支持标准
mcp.json,兼容 Cursor、Claude Desktop、VS Code、Windsurf 及本应用旧格式 - ✅ 智能导入预览:导入前展示来源识别、可导入远程服务器列表及跳过项(stdio / OAuth / 无效配置)
- ✅ 配置列表交互:点击已保存配置加载到连接表单;选中态与连接态视觉区分
- ✅ 表单回填增强:选中配置时同步加载 Headers JSON 与认证信息
- ✅ UI 修复:Switch 开关在深色主题下对比度优化
v2.0.8
- ✅ MCP 浏览器:通用结果展示(
{{auto}}、通配路径、双栏原始/格式化) - ✅ 原始返回默认折叠;格式化结果区可滚动、可拉高展开
- ✅ 结果展示配置持久化至本地存储
v2.0.7
- ✅ SSE 模式:自定义 Headers 时使用 Fetch 建立 SSE(修复 EventSource 无法带头导致的超时)
- ✅ SSE 连接在获取 session 后继续读流,正确接收
202 Accepted后的异步 JSON-RPC 响应 - ✅ 工具调用超时与
timeout_sec对齐;请求 ID 兼容 string/number
v2.0.6
- ✅ 按照 tool schema 自动转换调用参数类型
v2.0.5
- ✅ 修复streamable的CORS问题
v2.0.2
- ✅ 适配streamable模式MCP服务端
v2.0.1 - 统一检测引擎
- ✅ 引入统一安全检测引擎
- ✅ 支持工具、提示、资源三种组件类型
- ✅ 新增被动监控模式
- ✅ 集成多种LLM服务
- ✅ 完善的中英双语支持
v1.0.6 - 基础功能
- ✅ 基础MCP连接功能
- ✅ 简单的安全检测
- ✅ 报告生成功能
🤝 贡献指南
我们欢迎所有形式的贡献!请查看 CONTRIBUTING.md 了解详细信息。
贡献方式
- 🐛 报告Bug
- 💡 提出新功能建议
- 🔧 提交代码修复
- 📚 改进文档
- 🌐 提供翻译
开发流程
- Fork 项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建Pull Request
公众号
欢迎关注,一起交流...
🌟 English
AI-enhanced security inspection and MCP protocol debugger for remote MCP servers
🚀 Project Overview
MCP Security Inspector is a Chrome extension for Model Context Protocol (MCP) remote servers, combining protocol debugging and AI-enhanced security inspection:
- Protocol debugging: Connect via SSE or Streamable HTTP, browse and invoke tools/resources/prompts, with custom headers and auth
- Security inspection: Active scanning + passive monitoring, powered by OpenAI, Claude, Gemini, etc., with automated test cases and risk reports
Configs can be imported/exported as standard mcp.json, compatible with Cursor, Claude Desktop, VS Code, and more — reuse existing MCP setups for security audits.
✨ Core Features
- 🔌 MCP Protocol Explorer: SSE / Streamable HTTP; invoke tools, read resources, get prompts
- 📥 Config Import/Export: Standard
mcp.json; compatible with Cursor, Claude Desktop, VS Code, Windsurf; auto-filters local stdio servers - 🧠 AI-Enhanced Detection: OpenAI, Claude, Gemini, and other LLM services
- 🔄 Dual Detection Modes: Active scanning + passive monitoring
- 🎯 Unified Detection Engine: Tools, prompts, and resources in one framework
- 📋 Configurable Result Display:
{{auto}}formatting, raw/formatted dual view, wildcard paths - 🌐 Multi-language Support: English / Chinese
- 📊 Intelligent Reports: Real-time security analysis reports
- 🛡️ Privacy Protection: Local detection with sensitive data masking
🔒 Security Detection Capabilities
Tool Security Detection
- Input Validation Analysis: Check tool parameter validation mechanisms
- Permission Control Check: Evaluate tool permission control mechanisms
- Data Leakage Detection: Identify sensitive information that tools might leak
- Injection Attack Protection: Detect SQL injection, XSS, command injection attacks
- DoS Protection: Evaluate protection against resource consumption attacks
Prompt Security Detection
- Prompt Injection Detection: Identify malicious prompts that might bypass AI model security boundaries
- Role Manipulation Detection: Detect role definitions that might change AI model behavior
- Context Pollution Detection: Identify prompt content that might cause context pollution
- Privacy Leakage Detection: Detect prompts that might leak sensitive information
- Malicious Guidance Detection: Identify prompts that might guide AI models to perform malicious actions
Resource Security Detection
- Path Traversal Detection: Identify path traversal attacks that might bypass access control
- Access Control Detection: Verify the effectiveness of resource access control mechanisms
- Sensitive Data Detection: Identify sensitive files and data that might be leaked
- Content Injection Detection: Detect malicious content that might be included in resources
- Protocol Security Detection: Verify the security of resource access protocols
🤖 LLM Enhanced Analysis
Supported LLM Services
- OpenAI GPT Series: GPT-3.5, GPT-4
- Anthropic Claude Series: Claude-3 Sonnet, Claude-3.5 Sonnet
- Google Gemini Series: Gemini Pro, Gemini Ultra
- Custom Ollama Service: Support for locally deployed open-source models
- Generic HTTP API Interface: Compatible with OpenAI API format services
🚀 Quick Start
Installation Steps
Option 1: Install from Chrome Web Store (Recommended)
- Direct Installation
- Visit Chrome Web Store - MCP Security Inspector
- Click "Add to Chrome" button
- Confirm by clicking "Add extension" in the popup dialog
Option 2: Build from Source Code
-
Download Source Code
git clone https://github.com/purpleroc/mcp-security-inspector.git cd mcp-security-inspector npm install npm run build:extension -
Load into Chrome
- Open
chrome://extensions/ - Enable "Developer mode"
- Click "Load unpacked"
- Select the
distfolder
- Open
Usage
-
Manage MCP Configs
- Click a saved config to load it into the connection form
- Import: upload
mcp.jsonfrom Cursor, Claude, VS Code, etc.; preview before confirm; stdio and OAuth entries are skipped - Export: download standard
mcp.jsonfor use in other MCP clients
-
Connect to MCP Server
- Transport: use SSE for most HTTP
url-style servers; Streamable HTTP where supported - Host: scheme + host only (e.g.
http://example.com); put the path in SSE path (e.g./mcp/server/<id>/) - Auth: put custom headers (
app_id,app_token, etc.) in Headers JSON or Combined auth → Custom headers so the SSE stream also sends them - Browse tools / resources / prompts in MCP Explorer after connecting
- Transport: use SSE for most HTTP
-
Invoke Tools & View Results
- Run tools from MCP Explorer; formatted output is expanded and scrollable; raw JSON is collapsed by default
- Edit display templates under Result display settings (default
{{auto}}for any MCPcontent[]shape) - Wildcards:
{{content[*].text}},{{parsed[*]}},print(path), etc.
-
Configure LLM Service (Optional)
- Select LLM service provider
- Enter API key and configuration parameters
- Test connection
-
Execute Security Detection
- Choose detection mode (Active Scan / Passive Monitor)
- Configure detection parameters and rules
- Start detection and view real-time progress
-
View Security Reports
- View detailed security reports
- Analyze risk levels and remediation recommendations
- Export reports or history
🛠️ Development Guide
Project Structure
src/
├── components/ # MCPExplorer, McpResultViewer, SecurityPanel, …
├── services/ # mcpClient, securityEngine, llmClient
├── utils/resultDisplay.ts # Result template engine
└── i18n/ # en-US / zh-CN
Build
npm install
npm run build:extension # output: dist/
npm run type-check
📊 Changelog (recent)
- v2.1.0: Standard
mcp.jsonimport/export (Cursor, Claude, VS Code, Windsurf); import preview modal; config list selection; Switch contrast fix - v2.0.8: Generic result display templates; collapsible raw JSON; scrollable formatted panel
- v2.0.7: Fetch-based SSE with custom headers; async response handling after HTTP 202
🤝 Contributing
We welcome all forms of contributions! Please see CONTRIBUTING.md for details.
No comments yet
Be the first to share your take.