Netwrix 访问分析器的 MCP 服务器
基于 FastMCP 的 Netwrix Access Analyzer 数据分析服务器,旨在与 Claude Desktop 集成以增强数据分析能力。
特征
- SQL Server 集成启动时自动连接
- 动态数据库模式探索
- SQL 查询执行
- Netwrix Access Analyzer 文件系统工具
依赖项
此 MCP 服务器需要以下依赖项:
- Python 3.12 或更高版本
- MCP SDK
- pyodbc 4.0.39 或更高版本(用于 SQL Server 连接)
- python-dotenv 1.0.0 或更高版本(用于环境变量管理)
- 适用于 SQL Server 的 ODBC 驱动程序 17 或更高版本(必须安装在您的系统上)
Netwrix 访问分析器(NAA)依赖项
此 MCP 服务器需要完成 Netwrix Access Analyzer (NAA) 文件系统扫描。
安装
系统依赖项
首先,确保您已安装 SQL Server 的 ODBC 驱动程序:
- macOS :使用 Homebrew 安装:
brew install microsoft/mssql-release/msodbcsql17
- Windows :从Microsoft ODBC 驱动程序页面下载并安装
- Linux :请遵循Microsoft 针对您的发行版的说明
Python依赖项
使用uv
安装所需的 Python 包
数据库设置
仅用于开发或测试目的:
- 在您的项目目录中创建一个包含 SQL Server 连接详细信息的
.env
文件:
- 将示例值替换为您的实际数据库连接信息。
与 Claude Desktop 集成
要使此 MCP 服务器在 Claude Desktop 中可用:
- 打开 Claude 桌面
- 导航到 Claude Desktop 配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
- 将以下配置添加到
mcpServers
部分。 - 重启Claude桌面
示例配置
- 将
/path/to/your/uv
替换为您的uv
可执行文件的实际路径(使用which uv
或where uv
查找),并更新您的main.py
文件的路径以及数据库连接信息。 - 重新启动 Claude Desktop 以应用更改
可用工具和示例提示
MCP 服务器提供以下与数据库系统交互和分析访问数据的工具:
数据库连接工具
连接数据库
连接到 MS SQL Server 数据库。
参数:
server
:SQL Server 地址database
:数据库名称username
:SQL Server 用户名(如果使用 Windows 身份验证则为可选)password
:SQL Server 密码(如果使用 Windows 身份验证则为可选)trusted_connection
:Windows 身份验证的布尔标志
提示示例: “使用 [USERNAME] 用户和 [PASSWORD] 密码连接到位于 [DBSERVER] 且名称为 [DBNAME] 的 SQL Server 数据库。”
显示连接状态
检查当前数据库连接状态。
示例提示: “数据库当前是否连接?显示连接状态。”
数据查询和模式工具
显示表架构
获取数据库表模式的详细解释。
参数:
table_name
:要解释的表的名称
示例提示: “解释权限表的模式。它有哪些列?”
获取表架构
检索特定表的架构信息。
参数:
table_name
:要获取架构的表的名称。
提示示例: “显示用户表的架构。”
获取表样本
从指定表中检索 10 行样本。
参数:
tablename
:要采样的表的名称
提示示例: “请给我权限表中的 10 行样本。”
访问分析工具
发现敏感数据
识别包含敏感数据的位置。
提示示例: “查找我们环境中包含敏感数据的所有共享。”
获取受托人访问权限
确定特定用户或组有权访问的位置。
参数:
trustee
:域\用户名格式levelsdown
:遍历多少个目录级别(默认值:0)
提示示例: “DOMAIN\JohnDoe 在我们的文件系统中可以访问哪些内容?”
获取受托人权限源
确定用户对特定资源的权限来源。
参数:
trustee
:域\用户名格式resourcepath
:资源路径
示例提示: “DOMAIN\JaneDoe 为何有权访问 \server\share\folder?此权限的来源是什么?”
获取资源访问
显示谁有权访问特定资源。
参数:
resource
:资源路径
提示示例: “谁有权访问 \server\finance?显示所有用户和组。”
获取未使用的访问权限
查找对特定资源具有未使用访问权限的用户。
参数:
resource
:资源路径
示例提示: “查找去年未访问过 \server\hr 的所有用户。”
获取ShadowAccess
查找对关键资源具有影子访问权限的用户。
提示示例: “查找所有具有信用卡影子访问权限的用户” “查找 sbcloudlab\admins 影子访问权限”
操作工具
获取正在运行的作业
检查当前正在运行的 Netwrix Access Analyzer 作业。
提示示例: “现在是否有任何 Access Analyzer 作业正在运行?显示状态。”
故障排除
连接问题
如果遇到连接问题:
- 验证 SQL Server 是否正在运行并可从网络访问
- 检查
.env
文件中的凭据 - 确保 ODBC 驱动程序已正确安装
- 检查日志以获取详细的错误消息
Claude 桌面集成
如果 Claude Desktop 找不到uv
命令:
- 在您的配置中使用
uv
的完整路径(使用which uv
或where uv
来找到它) - 确保在配置更改后重新启动 Claude Desktop
- 检查 Claude 日志中是否有与 MCP 服务器相关的错误消息
This server cannot be installed
模型上下文协议服务器使 AI 代理能够通过标准化接口与 Netwrix 访问分析器进行交互,从而可以了解数据访问风险、数据分类和用户访问模式,帮助组织更好地保护其最敏感的数据。