内容
# 数据日出 CLI MCP 服务器
本项目为 DataSunrise 数据库安全套件命令行接口提供了一个[模型-上下文-协议(MCP)服务器](https://modelcontextprotocol.io/docs/learn/server-concepts)。它作为原生 CLI 的桥梁,以一组全面的**工具**形式暴露其功能,可供任何 MCP 兼容的客户端调用。
这使得 DataSunrise 命令与 AI 助手和其他应用程序实现无缝集成,促进了数据库安全管理中的程序化和智能自动化。
## 功能特点
- **MCP 服务器:** 实现模型-上下文-协议,为与 DataSunrise 交互的工具提供服务。
- **全面的工具集:** 将 DataSunrise CLI 命令作为 MCP 工具公开,提供广泛的命令支持。
- **TypeScript 和 SDK:** 使用官方的 `@modelcontextprotocol/sdk` 采用 TypeScript 构建。
- **跨平台:** 继承 Node.js 的跨平台能力。
## 快速入门
### 前提条件
- Node.js 16.x 或更高版本
- npm 8.x 或更高版本
- Java 运行环境(JRE)11 或更高版本。
- 现有的 DataSunrise 安装,且具有 CLI 访问权限。
### 安装
1. **克隆仓库:**
```bash
git clone https://github.com/datasunrise-github/datasunrise_mcp_cli.git
cd datasunrise_mcp_cli
```
2. **安装依赖:**
```bash
npm install
```
3. **构建项目:**
```bash
npm run build
```
## 使用方法
该服务器设计用于与 MCP 兼容的客户端(如 Claude、GPT 模型或自定义应用程序)一起使用。
### 示例:连接到 Windows 上的 Claude Desktop
以下步骤提供了一个**示例**,用于将此服务器连接到 Windows 上的 Claude Desktop 客户端。
1. **下载并安装 Claude Desktop**
* 从其[官方来源](https://claude.ai/download)安装应用程序。
2. **准备 DataSunrise CLI**
* 在某些环境中,您可能需要将 `executecommand.bat` 复制为 `dscli.bat`:
```powershell
cd "C:\Program Files\DataSunrise Database Security Suite\cmdline"
copy executecommand.bat dscli.bat
```
3. **配置 MCP 客户端**
* 您需要通过编辑其 JSON 配置文件来配置客户端。
* **文件路径:** `C:\Users\<YourUsername>\AppData\Roaming\Claude\claude_desktop_config.json`
* *(注意:如果此文件不存在,您需要创建它。)*
* 将以下 JSON 对象添加到文件中:
```json
{
"mcpServers": {
"datasunrise-cli-mcp": {
"command": "node",
"args": [
"C:\\Path\\To\\datasunrise_mcp_cli\\build\\src\\index.js",
"--cli-path",
"C:\\Program Files\\DataSunrise Database Security Suite\\cmdline\\dscli.bat"
],
"env": {
"DS_PASSWORD": "<your password (optional)>"
}
}
}
}
```
* **重要:** 确保将 `C:\\Path\\To\\datasunrise_mcp_cli` 替换为克隆的存储库文件夹的实际路径。
* **Windows/Nodist 用户提示:** 如果您使用像 `nodist` 这样的 Node.js 版本管理器,它可能会干扰路径(例如 `dscli.bat`)的传递,防止 MCP 服务器连接。要解决此问题,请在 `"command"` 字段中提供 `node.exe` 的完整绝对路径(例如 `"C:\\path\\to\\your\\node.exe"`)。
* *(注意:确切的 JSON 结构可能因客户端版本而异。)*
4. **运行和验证**
* 打开 Claude Desktop 应用程序。
* 要验证连接,请导航到 `File -> Settings -> Developer`。
* `datasunrise-cli-mcp` 的状态应为 **"running"**。
### MCP 服务器实战
下面的屏幕截图显示了 MCP 客户端请求执行 `instance_add_plus` 命令的示例。
<details>
<summary>DataSunrise MCP 服务器实战</summary>

</details>
### 重要提示
- **始终允许安全工具:** 以下工具是只读且安全的,可以预先批准:
- `get_command_schema`:检索命令的参数模式。
- `set_cli_executable_path`:为当前会话设置 `dscli` 可执行文件的路径。
- `get_enhanced_description`:检索命令的增强文档。
- **仔细审查参数:** 在批准 `run_cli_command` 执行之前,请始终审查参数以确保其正确。如果发现任何不准确之处,请拒绝执行并向助手提供澄清细节。
## 可用工具
服务器提供了一组用于与 DataSunrise CLI 交互的核心工具,以及一组直接映射到 CLI 命令的综合工具集。
### 核心工具
这些是用于与服务器交互的主要工具:
- **`run_cli_command`**:执行 DataSunrise CLI 命令。每个命令的参数必须在执行前进行验证。
- **`get_command_schema`**:检索特定 CLI 命令的输入模式。
- **`set_cli_executable_path`**:为当前会话设置 `dscli` 可执行文件的路径并验证它。
- **`get_enhanced_description`**:检索命令的增强文档。
### 命令工具
服务器将 DataSunrise CLI 命令的完整套件作为单独的 MCP 工具公开,这些工具按功能分组。这些工具是根据 `src/commands` 目录中的命令定义动态生成的。要执行命令,客户端应使用 `run_cli_command` 工具,在 `command_name` 参数中传递所需命令的工具名称,在 `arguments` 参数中传递其参数。
有关可用命令工具及其类别的完整列表,请参阅 `src/commands` 中的源代码。一些可用的类别包括:
- 应用程序管理
- CEF 配置
- 连接管理
- 核心功能
- 数据库用户管理
- 字典管理
- 数据发现
- ... 以及更多。
## 文档
有关命令的详细文档,请参阅:
- `DataSunrise_Database_Security_CLI_Guide.pdf`(位于 DataSunrise 安装目录的 `doc` 文件夹中)。
- `test/test-data/README.md`,了解测试数据结构的信息。
## 许可证
本项目为 DataSunrise Inc. 拥有的专有软件。