# stardb_mcp_server **Repository Path**: kindsof/stardb_mcp_server ## Basic Information - **Project Name**: stardb_mcp_server - **Description**: 支持与StarDB数据库进行安全交互的MCP Server实现。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 5 - **Created**: 2026-03-17 - **Last Updated**: 2026-03-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 概述 一个支持与StarDB数据库进行安全交互的MCP Server实现。 ## 版本信息 ### MCP Server 版本 可以通过以下方式获取 MCP Server 版本号: ``` # 命令行方式 cd src && uv run python -c "from server import VERSION; print(VERSION)" # 或者使用 MCP 工具调用 {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_version","arguments":{}}} # 或者使用 MCP 资源访问 {"jsonrpc":"2.0","id":1,"method":"resources/read","params":{"uri":"stardb://version"}} ``` ### StarDB 数据库版本 可以通过 MCP 工具调用获取 StarDB 数据库版本: ``` # 使用 MCP 工具调用 {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_database_version","arguments":{}}} ``` 返回示例: ``` StarDB version: 6.5.0 ``` StarDB MCP Server负责AI应用程序(主机/客户端)与StarDB数据库之间的通信。支持如下接口操作: - 查看可用的数据库和表,类似 `SHOW DATABASE`和 `SHOW TABLES` - 查看表结构,类似 `DESCRIBE TABLE` - 执行SQL语句,包括SELECT、SHOW、USE等只读SQL,也支持INSERT、DELETE、UPDATE、CREATE等写操作。 ## 安装 ``` python -m venv .venv source .venv/bin/activate pip install uv python --version uv --version ``` ## 环境变量 通过环境变量或.env文件进行设置的配置参数 | 变量 | 描述 | Required | Default | | ------------------------ | ------------------------------------------------- | -------- | ------------- | | `RUN_MODE` | StarDB MCP Server Mode(stdio or sse) | Yes | `stdio` | | `STARDB_HOST` | StarDB host address | No | `localhost` | | `STARDB_PORT` | StarDB port | No | `3306` | | `STARDB_USER` | StarDB username | Yes | | | `STARDB_PASSWORD` | StarDB password | Yes | | | `STARDB_DATABASE` | Default database (optional; can be set per query) | No | `mysql` | | `STARDB_MCP_READ_ONLY` | Enforce read-only SQL mode (`true`/`false`) | No | `true` | | `SSE_BIND_HOST` | StarDB MCP server SSE bind host | No | `127.0.0.1` | | `SSE_BIND_PORT` | StarDB MCP server SSE bind port | No | `9001` | ## 命令行启动stdio模式MCP Server ### 启动MCP Server,默认使用.env环境变量文件中定义的环境变量 ``` uv run src/server.py ``` https://mcpcat.io/guides/understanding-json-rpc-protocol-mcp/ ### 初始化 MCP协议要求首先发送一个初始化请求。 ``` {"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","clientInfo":{"name":"stardb-client","version":"0.1"},"capabilities":{}}} ``` ### 执行Resoure相关操作 ``` {"jsonrpc": "2.0", "method": "resources/list", "params": {}, "id": 2} {"jsonrpc": "2.0", "method": "resources/templates/list", "params": {}, "id": 2} {"jsonrpc": "2.0", "id":4,"method": "resources/read", "params": {"uri":"stardb://databases"}} {"jsonrpc":"2.0","id":2,"method":"resources/read","params":{"uri":"stardb://test/tables"}} {"jsonrpc":"2.0","id":2,"method":"resources/read","params":{"uri":"stardb://test/customers/field"}} {"jsonrpc":"2.0","id":2,"method":"resources/read","params":{"uri":"stardb://test/customers/data"}} ``` ### 执行Tools相关操作 ``` {"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}} {"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"execute_sql","arguments":{"query":"select * from test.customers"}}} ``` ## 使用MCP Inspector进行可视化验证 https://mcpcat.io/guides/setting-up-mcp-inspector-server-testing/ * 安装 MCP Inspector ``` npx @modelcontextprotocol/inspector ``` 使用--directory目录下默认的.env文件加载环境变量 ``` --directory /User/demo/stardb_mcp_server/ run src/server.py ``` * 在Web界面中配置MCP Server ![mcp_inspector](image/README/mcp_inspector.png) ## 集成JoyCode 安装Visual Studio Code插件Joycode,并配置MCP Server ### stdio模式运行StarDB MCP Server ``` { "mcpServers": { "StarDB_Server": { "autoApprove": [ "execute_sql" ], "disabled": false, "timeout": 180, "command": "uv", "type": "stdio", "args": [ "--directory", "/Users/demo/stardb_mcp_server/src", "run", "server.py" ], "env": { "STARDB_HOST": "127.0.0.1", "STARDB_USER": "hypoindex", "STARDB_PASSWORD": "password", "STARDB_PORT": "13308", "STARDB_DATABASE": "tpch_tiny", "STARDB_MCP_READ_ONLY": "false" }, "transportType": "stdio" } } } ``` ![1766650559037](image/README/1766650559037.png) MCP服务创建成功 ![1767521656073](image/README/1767521656073.png) Joycode聊天窗口,通过MCP访问StarDB数据库 ![joycode_q&a](image/README/joycode_q&a.png) ### SSE模式运行MCP Server 设置.env配置文件 ``` RUN_MODE=sse SSE_BIND_HOST=127.0.0.1 SSE_BIND_PORT=9001 STARDB_HOST=***.**.**.*** STARDB_USER=root STARDB_PASSWORD=**** STARDB_PORT=3306 STARDB_NAME=mysql STARDB_MCP_READ_ONLY=true ``` 启动MCP Server ``` uv run src/server.py ``` 配置MCP Server ``` { "mcpServers": { "StarDB_Server": { "type": "sse", "url": "http://127.0.0.1:9001/sse" } } } ``` ## 集成Cursor ### stdio模式运行MCP Server ![1767522173087](image/README/1767522173087.png) 编辑mcp.json ``` { "mcpServers": { "StarDB_Server": { "command": "uv", "args": [ "--directory", "/User/demo/stardb_mcp_server/src", "run", "server.py" ], "env": { "RUN_MODE": "stdio", "STARDB_HOST": "127.0.0.1", "STARDB_USER": "root", "STARDB_PASSWORD": "passwd123", "STARDB_PORT": "3306", "STARDB_DATABASE": "mysql", "STARDB_MCP_READ_ONLY": "false" } } } } ``` ### SSE模式运行MCP Server 设置.env配置文件 ``` RUN_MODE=sse #stdio SSE_BIND_HOST=127.0.0.1 SSE_BIND_PORT=9001 STARDB_HOST=***.**.**.*** STARDB_USER=root STARDB_PASSWORD=**** STARDB_PORT=3306 STARDB_NAME=mysql STARDB_MCP_READ_ONLY=true ``` 启动MCP Server ``` uv run src/server.py ``` 配置mcp.json ``` { "mcpServers": { "StarDB_Server": { "type": "sse", "url": "http://127.0.0.1:9001/sse" } } } ``` ## 集成Cline Visual Studio Code插件Cline ![1762755838647](image/README/1762755838647.png) ### stdio模式运行MCP Server 配置stdio模式的StarDB MCP Sever,编辑cline_mcp_settings.json: ``` { "mcpServers": { "StarDB_Server": { "command": "uv", "args": [ "--directory", "/User/demo/stardb_mcp_server/src", "run", "server.py" ], "env": { "RUN_MODE": "stdio", "STARDB_HOST": "192.168.1.16", "STARDB_USER": "root", "STARDB_PASSWORD": "passwd123", "STARDB_PORT": "3306", "STARDB_DATABASE": "mysql", "STARDB_MCP_READ_ONLY": "false" } } } } ``` 测试验证 ![1762756568358](image/README/1762756568358.png) ### SSE模式运行MCP Server 设置.env配置文件 ``` RUN_MODE=sse SSE_BIND_HOST=127.0.0.1 SSE_BIND_PORT=9001 STARDB_HOST=192.168.1.16 STARDB_USER=root STARDB_PASSWORD=passwd123 STARDB_PORT=3306 STARDB_NAME=mysql STARDB_MCP_READ_ONLY=true ``` 启动MCP Server ``` uv run src/server.py ``` 配置cline_mcp_settings.json ``` { "mcpServers": { "StarDB_Server": { "type": "sse", "url": "http://127.0.0.1:9001/sse", "autoApprove": [ "execute_sql" ] } } } ```