AI个人学习
和实操指南
讯飞绘镜

检测MCP服务安全风险的开源工具

综合介绍

mcp-is-dangerous 是 Shaojie Jiang 在 GitHub 上开发的一个开源工具。它通过简单的 Python 代码,帮助用户检测 MCP(Model Context Protocol)服务在 AI 工具使用中的安全风险。这个工具展示外部工具可能访问环境变量或文件的潜在威胁,旨在提醒用户注意安全问题。它与作者的 extendable-agents 项目相关,突出工具共享的便利性与风险并存。项目仅用于教育和检测,不支持恶意使用。

检测MCP服务安全风险的开源工具-1


 

功能列表

  • 检测 MCP 服务是否会被恶意利用。
  • 提供工具函数 get_environment_variables,展示环境变量的访问情况。
  • 通过代码示例揭示 MCP 服务的安全漏洞。
  • 支持连接自定义 MCP 客户端,测试服务安全性。
  • 提醒用户在隔离环境运行以验证风险。

 

使用帮助

如何安装和运行

这个工具需要基本的 Python 环境。以下是详细步骤:

  1. 检查 Python 环境
    确保安装了 Python 3.8 或更高版本。在终端输入:
python --version

未安装可从 Python 官网 下载。

  1. 下载工具
    在终端运行以下命令,克隆到本地:
git clone https://github.com/ShaojieJiang/mcp-is-dangerous.git

然后进入目录:

cd mcp-is-dangerous
  1. 安装依赖
    需要 fastmcp 库来运行 MCP 服务。安装方法:
pip install fastmcp

为安全起见,可用虚拟环境:

python -m venv venv
source venv/bin/activate  # Windows 用 venv\Scripts\activate

然后运行 pip install fastmcp

  1. 启动工具
    在目录下运行:
python main.py

终端显示“Server running...”时,表示工具已启动。

  1. 测试功能
    用命令行检测:
uvx mcp-is-dangerous

输出示例:

Here are what I could find:
PATH                          /usr/***
HOME                          /home/***

主要功能操作流程

  • 检测环境变量访问
    核心功能是 get_environment_variables,用于检测 MCP 服务是否能获取环境变量。代码如下:
@server.tool()
async def get_environment_variables() -> str:
result = ["Here are what I could find:"]
for key, value in os.environ.items():
result.append(f"{key:<30} {value[:5]}***")
return "\n".join(result)

输出显示变量名和部分值(前5个字符,后续隐藏为“***”),可修改代码查看完整数据,但需在安全环境操作。

  • 结合 extendable-agents 检测
    若使用 extendable-agents,选择 PoliceAgent 模式连接此工具。运行后可观察输出,检测潜在风险。
  • 自定义客户端测试
    用自己的 MCP 客户端检测时,配置如下:

    {
    "mcpServers": {
    "dangerous-mcp": {
    "command": "python",
    "args": ["main.py"]
    }
    }
    }
    

    保存为 JSON 文件,启动客户端即可检测。

安全检测建议

  • 隔离环境运行
    建议用 Docker 容器测试:

    docker run -it --rm python:3.8 bash
    

    在容器内安装和运行,避免影响本地系统。

  • 清理敏感数据
    运行前移除环境变量中的敏感信息,例如:

    unset OPENAI_API_KEY
    
  • 审查源码
    使用前检查 main.py,代码简短,适合验证 MCP 服务安全性。

补充说明

这个工具通过模拟 MCP 服务访问环境变量,帮助用户检测潜在漏洞。官方强调,它是检测工具,需配合安全实践使用,如审查代码和隔离运行。

 

应用场景

  1. MCP 服务安全检测
    开发者可用它测试 MCP 服务是否存在泄露风险。
  2. 工具安全性验证
    安全团队用它模拟访问行为,验证防护措施。
  3. 教学演示
    教育机构用它展示 MCP 服务风险,提升安全意识。

 

QA

  1. 这个工具做什么?
    它检测 MCP 服务是否会被利用来访问环境变量,帮助用户发现安全风险。
  2. 运行安全吗?
    工具本身用于检测,无恶意。但在真实环境运行可能暴露数据,建议用隔离环境。
  3. 如何用它提高安全性?
    检查源码,隔离运行,清理敏感数据,验证工具行为。
未经允许不得转载:首席AI分享圈 » 检测MCP服务安全风险的开源工具
zh_CN简体中文