ZeMCP-数据库模型上下文协议服务器
一组用于数据库交互的模型上下文协议(MCP)服务器,提供对Microsoft SQL Server和Oracle数据库系统的安全和标准化访问。
📦 包裹
这个monorepo包含三个npm包:
- zemcp-mssql -Microsoft SQL server的MCP服务器
- zemcp-oracle 的 -Oracle数据库的MCP服务器
- zemcp postgres -PostgreSQL的MCP服务器
🚀 快速开始
安装
# No installation required! Use npx to run directly:
npx @zemcp/mssql
npx @zemcp/oracle
npx @zemcp/postgres
# Or install globally if preferred:
npm install -g @zemcp/mssql
npm install -g @zemcp/oracle
npm install -g @zemcp/postgres用法
这两台服务器都是通过环境变量配置的。有关详细配置,请参阅单个软件包文档:
- zemcp-mssql配置 -Microsoft SQL Server安装程序
- zemcp oracle配置 -Oracle数据库设置
- zemcp postgres配置 -PostgreSQL设置
基本示例:
# Microsoft SQL Server
export DB_HOST=localhost DB_PORT=1433 DB_NAME=mydb DB_USER=sa DB_PASSWORD=mypass
npx @zemcp/mssql
# Oracle Database
export DB_USER=sys DB_PASSWORD=mypass DB_CONNECT_STRING=localhost:1521/XEPDB1
npx @zemcp/oracle
# PostgreSQL
export DB_HOST=localhost DB_PORT=5432 DB_NAME=mydb DB_USER=postgres DB_PASSWORD=mypass
npx @zemcp/postgres🛠️ 发展
先决条件
- Node.js 18+
- TypeScript
- 访问SQL Server和/或Oracle数据库
设置
# Clone the repository
git clone https://github.com/aziouiz/zemcp.git
cd zemcp
# Install dependencies
npm install
# Build all packages
npm run build项目结构
zemcp/
├── zemcp-mssql/ # MSSQL MCP Server
│ ├── index.js # Main server code
│ ├── package.json # Package configuration
│ └── tsconfig.json # TypeScript config
├── zemcp-oracle/ # Oracle MCP Server
│ ├── index.js # Main server code
│ ├── package.json # Package configuration
│ └── tsconfig.json # TypeScript config
├── zemcp-postgres/ # PostgreSQL MCP Server
│ ├── index.js # Main server code
│ ├── package.json # Package configuration
│ └── tsconfig.json # TypeScript config
├── .github/workflows/ # GitHub Actions
├── docker-compose.yml # Development databases
└── mcp.sample.json # MCP configuration example📋 可用工具
所有服务器都提供以下MCP工具:
- 执行查询 -安全执行SELECT查询
- 执行脚本 -执行多个SQL语句(INSERT、UPDATE、DELETE、DDL)
安全功能
- 输入验证(启用时)
- 参数化查询以防止SQL注入
- 基于环境的配置
- 明确分开的只读和写操作
- 可选危险操作检测(默认禁用以提高性能)
🔧 MCP客户端集成
这些服务器旨在与MCP兼容的客户端(如VS Code的MCP扩展)配合使用。
配置:每台服务器在各自的文档中提供了具体的MCP配置示例:
- zemcp-mssql MCP配置 -SQL Server的VS代码设置
- zemcp oracle MCP配置 -Oracle数据库的VS代码设置
- zemcp postgres MCP配置 -PostgreSQL的VS代码设置
快速设置:使用 npx @zemcp/mssql, npx @zemcp/oracle,或 npx @zemcp/postgres 作为MCP客户端配置中的命令。
🚢 部署
自动NPM发布
此项目使用GitHub Actions在您创建新的发布标签时自动将包发布到npm。
发布过程
- 进行更改并提交
- 运行发布脚本:
# Patch version (1.0.0 -> 1.0.1)
./release.sh patch
# Minor version (1.0.0 -> 1.1.0)
./release.sh minor
# Major version (1.0.0 -> 2.0.0)
./release.sh major- 脚本将:
- 更新软件包版本 - 创建一个git标签 - 推送到GitHub - 触发npm自动发布
设置要求
- 创建一个npm帐户并生成访问令牌
- 将令牌添加为
NPM_TOKEN在您的GitHub存储库秘密中 - 更新package.json文件中的存储库URL
🐳 Docker开发
使用附带的docker-compose.yml进行本地开发:
# Start databases
docker-compose up -d
# Stop databases
docker-compose down这提供了:
- 端口1433上的SQL Server 2022
- 端口1521上的Oracle XE 21c
- PostgreSQL 17.5在端口5432上
- 一个代理,将zemcp-mssql-stdio服务器代理为OpenApi兼容,以便在Open WebUI控制台中使用
如果您使用的是OpenWebUI控制台,则需要在.env文件中设置openapi密钥(复制.env.example.)。否则,如果你有一个好的GPU,请使用Olama!
打开WebUi控制台
使用docker compose up-d启动容器后,您可以导航到控制台http://localhost:3000并在“设置”>“工具”>“url=”中进行配置http://localhost:8000保留默认的openapi.json路径。 然后你就可以开始了,选择你最喜欢的模型,并使用以下内容进行查询:
Show Your Magic And Do Performance Check On All My DBs🤝 贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
📄 许可证
ISC许可证-有关详细信息,请参阅许可证文件
🐛 问题
请报告以下问题 页面。
