From 61ec40f3009968cc1188796f99d92aad64b94f52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=8C=AE=E7=BB=B4?= Date: Mon, 28 Apr 2025 15:19:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E6=89=93=E5=8C=85=E6=93=8D?= =?UTF-8?q?=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +++ main.go | 13 +++++++----- 使用说明.md | 56 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 5 deletions(-) create mode 100644 使用说明.md diff --git a/.gitignore b/.gitignore index 115d712..36874e9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ /.idea/ /main /go.sum +/dist/ +/MCP-DB.zip +/使用说明.pdf diff --git a/main.go b/main.go index 512e9f2..b7d8afd 100644 --- a/main.go +++ b/main.go @@ -2,13 +2,13 @@ package main import ( _ "dm" // 达梦数据库驱动 + "flag" "fmt" "github.com/mark3labs/mcp-go/server" "log" "mcp-go-db/vConfig" "mcp-go-db/vService" "mcp-go-db/vTool" - "os" ) func main() { @@ -16,10 +16,13 @@ func main() { // name := "dm://HY_ZGGL_FRAME:HY_ZGGL_FRAME@10.200.21.19:5296/DAMENG?schema=HY_ZGGL_FRAME" // 部署 - fmt.Println("程序名称:") - dsn := os.Args[1] + var dsn string + flag.StringVar(&dsn, "dsn", "dm://usr:pwd@ip:port/db?schema=name", "服务连接信息") - fmt.Printf("启动数据库服务...\n") + // 必须调用 flag.Parse() 来解析命令行参数 + flag.Parse() + + fmt.Printf("启动数据库服务...\n%v\n", dsn) // 加载配置 config, err := vConfig.LoadConfig(dsn) if err != nil { @@ -38,7 +41,7 @@ func main() { log.Fatalf("发生异常: %v", err) } }(dbSvc) - fmt.Printf("数据库连接成功: %v\n", config.Database.DmDsn) + fmt.Printf("数据库连接成功...\n") // 创建MCP服务器 s := server.NewMCPServer( diff --git a/使用说明.md b/使用说明.md new file mode 100644 index 0000000..fe1da2a --- /dev/null +++ b/使用说明.md @@ -0,0 +1,56 @@ +# MCP-GO-DB 操作数据方法 + + + +## 作用 + +让 AI 操作数据库,是给数据库的工具,读取数据,操作字段等(其他功能后续补充...) + + + + + +## 操作 + +复制有效部分到自己的MCP服务配置文件中 + + + +**1. 注意** : 需要替换 command 自己对应的应用(当前提供 windows+linux :: amd64 版本的) + +**2. 注意** : 需要替换 args 内部自己数据库的参数 + + + +```json +{ + ... 有效部分::开始 + "dm-tools": { + "name": "数据库服务", + "version": "1.0.0", + "command": "/home/Viviman/Music/code-go/mcp-go-db/dist/default_linux_amd64_v1/mcp-go-db", + "args": [ + "dm://xxx:xxx@xxx:xxx/DAMENG?schema=xxx" + ], + "description": "提供查询数据库操作", + "enabled": true, + "autoApprove": [ + "获取表数据", + "添加注释", + "获取所有表" + ], + "disabled": false, + "timeout": 30 + } + } + ... 有效部分::结束 +} +``` + + + +### 效果图 + + + +![](/home/Viviman/Pictures/Screenshots/截图_选择区域_20250428130720.png) \ No newline at end of file