StarRocks MCP Server
A TypeScript implementation of a Model Context Protocol server that enables interaction with StarRocks databases, supporting SQL operations like queries, table creation, and data manipulation through standardized MCP tools.
README
StarRocks MCP Server
一个专业的 TypeScript 版本的 StarRocks MCP (Model Context Protocol) 服务器实现。
功能特性
- 🔌 完整的 MCP 协议支持 - 实现了标准的 MCP 协议
- 🗄️ StarRocks 数据库集成 - 支持 StarRocks 数据库的所有操作
- 🛠️ 多种 SQL 操作 - 支持 SELECT、INSERT、UPDATE、DELETE、CREATE TABLE 等
- 🔒 安全性 - 内置 SQL 验证和错误处理
- 📝 完整的日志系统 - 支持不同级别的日志记录
- 🧪 测试覆盖 - 包含完整的单元测试
- 📦 TypeScript 支持 - 完整的类型定义和类型安全
支持的 MCP 工具
| 工具名称 | 描述 | 参数 |
|---|---|---|
run_sql_query |
执行只读 SQL 查询(仅限 SELECT 语句) | query: string |
create_table |
在 StarRocks 数据库中创建新表 | query: string |
insert_data |
向 StarRocks 数据库表插入数据 | query: string |
update_data |
更新 StarRocks 数据库表中的数据 | query: string |
delete_data |
从 StarRocks 数据库表中删除数据 | query: string |
execute_sql |
执行任意非 SELECT 的 SQL 语句 | query: string |
安装和设置
1. 克隆项目
git clone https://github.com/your-username/StarRocks-MCP.git
cd StarRocks-MCP
2. 安装依赖
npm install
3. 配置环境变量
复制环境变量示例文件:
cp env.example .env
编辑 .env 文件,配置你的 StarRocks 数据库连接信息:
# StarRocks Database Configuration
STARROCKS_HOST=localhost
STARROCKS_PORT=9030
STARROCKS_USER=root
STARROCKS_PASSWORD=your_password_here
STARROCKS_DATABASE=your_database_name
# Optional Configuration
STARROCKS_CHARSET=utf8mb4
STARROCKS_TIMEZONE=local
STARROCKS_CONNECTION_LIMIT=10
STARROCKS_ACQUIRE_TIMEOUT=60000
STARROCKS_TIMEOUT=60000
# Logging Configuration
NODE_ENV=production
LOG_LEVEL=info
4. 构建项目
npm run build
5. 运行服务器
npm start
开发
开发模式运行
npm run dev
运行测试
npm test
代码检查
npm run lint
代码格式化
npm run format
项目结构
src/
├── connection/ # 数据库连接管理
│ └── StarRocksConnection.ts
├── server/ # MCP 服务器核心
│ └── StarRocksMCPServer.ts
├── types/ # TypeScript 类型定义
│ └── index.ts
├── utils/ # 工具类
│ ├── ErrorHandler.ts
│ ├── Logger.ts
│ └── SqlValidator.ts
├── tests/ # 测试文件
│ ├── setup.ts
│ └── StarRocksConnection.test.ts
└── index.ts # 主入口文件
使用示例
1. 查询数据
{
"method": "tools/call",
"params": {
"name": "run_sql_query",
"arguments": {
"query": "SELECT * FROM users WHERE age > 18;"
}
}
}
2. 创建表
{
"method": "tools/call",
"params": {
"name": "create_table",
"arguments": {
"query": "CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(100), age INT);"
}
}
}
3. 插入数据
{
"method": "tools/call",
"params": {
"name": "insert_data",
"arguments": {
"query": "INSERT INTO users (id, name, age) VALUES (1, 'John', 25);"
}
}
}
配置选项
数据库配置
| 配置项 | 默认值 | 描述 |
|---|---|---|
STARROCKS_HOST |
localhost |
StarRocks 服务器主机 |
STARROCKS_PORT |
9030 |
StarRocks 服务器端口 |
STARROCKS_USER |
root |
数据库用户名 |
STARROCKS_PASSWORD |
'' |
数据库密码 |
STARROCKS_DATABASE |
undefined |
默认数据库名 |
STARROCKS_CHARSET |
utf8mb4 |
字符集 |
STARROCKS_TIMEZONE |
local |
时区 |
连接配置
| 配置项 | 默认值 | 描述 |
|---|---|---|
STARROCKS_CONNECTION_LIMIT |
10 |
连接池大小 |
STARROCKS_ACQUIRE_TIMEOUT |
60000 |
获取连接超时时间(毫秒) |
STARROCKS_TIMEOUT |
60000 |
查询超时时间(毫秒) |
日志配置
| 配置项 | 默认值 | 描述 |
|---|---|---|
LOG_LEVEL |
info |
日志级别(debug, info, warn, error) |
NODE_ENV |
production |
运行环境 |
错误处理
服务器包含完整的错误处理机制:
- 连接错误 - 自动重连和错误恢复
- SQL 错误 - 详细的错误信息和建议
- MCP 协议错误 - 标准化的错误响应
- 日志记录 - 完整的错误日志记录
安全性
- ✅ SQL 注入防护
- ✅ 参数化查询
- ✅ 输入验证
- ✅ 错误信息过滤
- ✅ 连接池管理
贡献
欢迎提交 Issue 和 Pull Request!
开发指南
- Fork 项目
- 创建功能分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add some amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 打开 Pull Request
许可证
MIT License - 详见 LICENSE 文件
支持
如果你遇到问题或有建议,请:
- 查看 Issues
- 创建新的 Issue
- 联系维护团队
StarRocks MCP Server - 让 StarRocks 数据库操作更简单、更安全!
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。