MCPQL 是一款全面的 模型上下文协议(MCP) 服务器,专为 SQL Server 数据库操作而设计。该服务器通过 MCP 协议提供了 10 种强大的工具,可用于数据库分析、对象发现和数据操作。
无需安装!只需配置您的 MCP 客户端:
对于 Claude Desktop (claude_desktop_config.json
):
{
"mcpServers": {
"mcpql": {
"command": "npx",
"args": ["-y", "hendrickcastro/mcpql"],
"env": {
"DB_AUTHENTICATION_TYPE": "sql",
"DB_SERVER": "your_server",
"DB_NAME": "your_database",
"DB_USER": "your_username",
"DB_PASSWORD": "your_password",
"DB_PORT": "1433",
"DB_ENCRYPT": "false",
"DB_TRUST_SERVER_CERTIFICATE": "true"
}
}
}
}
对于 Cursor IDE:
{
"mcpServers": {
"mcpql": {
"command": "npx",
"args": ["-y", "hendrickcastro/mcpql"],
"env": {
"DB_AUTHENTICATION_TYPE": "sql",
"DB_SERVER": "your_server",
"DB_NAME": "your_database",
"DB_USER": "your_username",
"DB_PASSWORD": "your_password",
"DB_PORT": "1433",
"DB_ENCRYPT": "false",
"DB_TRUST_SERVER_CERTIFICATE": "true"
}
}
}
}
git clone https://github.com/hendrickcastro/MCPQL.git
cd MCPQL
npm install
npm run build
.env
文件,并填入您的数据库凭证:# 基本 SQL Server 连接
DB_AUTHENTICATION_TYPE=sql
DB_SERVER=localhost
DB_NAME=MyDatabase
DB_USER=sa
DB_PASSWORD=YourPassword123!
DB_PORT=1433
DB_ENCRYPT=false
DB_TRUST_SERVER_CERTIFICATE=true
{
"mcpServers": {
"mcpql": {
"command": "node",
"args": ["path/to/MCPQL/dist/server.js"]
}
}
}
MCPQL 为 SQL Server 数据库操作提供了 10 种全面的工具:
mcp_table_analysis
完成表结构分析,包括列、键、索引和约束。
mcp_sp_structure
分析存储过程结构,包括参数、依赖项和源代码。
mcp_preview_data
预览表数据,支持可选的过滤和行限制。
mcp_get_column_stats
获取特定列的全面统计信息。
mcp_execute_procedure
使用参数执行存储过程并返回结果。
mcp_execute_query
执行自定义 SQL 查询,并进行全面的错误处理。
mcp_quick_data_analysis
进行快速统计分析,包括行数统计、列分布和前几个值。
mcp_search_comprehensive
根据名称和定义在数据库对象中进行搜索,支持可配置的搜索条件。
mcp_get_dependencies
获取数据库对象(表、视图、存储过程等)的依赖关系。
mcp_get_sample_values
从表的特定列中获取示例值。
// 获取完整的表结构
const analysis = await mcp_table_analysis({
table_name: "dbo.Users"
});
// 获取快速数据概述
const overview = await mcp_quick_data_analysis({
table_name: "dbo.Users",
sample_size: 500
});
// 使用过滤器预览表数据
const data = await mcp_preview_data({
table_name: "dbo.Users",
filters: { "Status": "Active", "Department": "IT" },
limit: 25
});
// 查找所有包含 "User" 的对象
const objects = await mcp_search_comprehensive({
pattern: "User",
search_in_names: true,
search_in_definitions: false
});
// 查找查询特定表的存储过程
const procedures = await mcp_search_comprehensive({
pattern: "FROM Users",
object_types: ["PROCEDURE"],
search_in_definitions: true
});
// 获取完整的存储过程分析
const spAnalysis = await mcp_sp_structure({
sp_name: "dbo.usp_GetUserData"
});
// 执行存储过程
const result = await mcp_execute_procedure({
sp_name: "dbo.usp_GetUserById",
params: { "UserId": 123, "IncludeDetails": true }
});
// 获取列统计信息
const stats = await mcp_get_column_stats({
table_name: "dbo.Users",
column_name: "Age"
});
// 从列中获取示例值
const samples = await mcp_get_sample_values({
table_name: "dbo.Users",
column_name: "Department",
limit: 15
});
MCPQL 支持多种 SQL Server 连接类型,并提供全面的配置选项:
将 DB_AUTHENTICATION_TYPE
设置为以下之一:
sql
- SQL Server 身份验证(默认)windows
- Windows 身份验证azure-ad
- Azure Active Directory 身份验证变量 | 描述 | 默认值 | 适用场景 |
---|---|---|---|
基本连接 | |||
DB_AUTHENTICATION_TYPE |
身份验证类型 (sql/windows/azure-ad) | sql | 所有 |
DB_SERVER |
SQL Server 主机名/IP | - | 所有 |
DB_NAME |
数据库名称 | - | 所有 |
DB_PORT |
SQL Server 端口 | 1433 | 所有 |
DB_TIMEOUT |
连接超时时间 (ms) | 30000 | 所有 |
DB_REQUEST_TIMEOUT |
请求超时时间 (ms) | 30000 | 所有 |
SQL Server 身份验证 | |||
DB_USER |
SQL Server 用户名 | - | SQL 身份验证 |
DB_PASSWORD |
SQL Server 密码 | - | SQL 身份验证 |
Windows 身份验证 | |||
DB_DOMAIN |
Windows 域名 | - | Windows 身份验证 |
DB_USER |
Windows 用户名 | 当前用户 | Windows 身份验证 |
DB_PASSWORD |
Windows 密码 | - | Windows 身份验证 |
Azure AD 身份验证 | |||
DB_USER |
Azure AD 用户名 | - | Azure AD(密码) |
DB_PASSWORD |
Azure AD 密码 | - | Azure AD(密码) |
DB_AZURE_CLIENT_ID |
Azure AD 应用客户端 ID | - | Azure AD(服务主体) |
DB_AZURE_CLIENT_SECRET |
Azure AD 应用客户端密钥 | - | Azure AD(服务主体) |
DB_AZURE_TENANT_ID |
Azure AD 租户 ID | - | Azure AD(服务主体) |
SQL Server Express | |||
DB_INSTANCE_NAME |
命名实例(例如,SQLEXPRESS) | - | Express 实例 |
安全设置 | |||
DB_ENCRYPT |
启用加密 | false | 所有 |
DB_TRUST_SERVER_CERTIFICATE |
信任服务器证书 | false | 所有 |
DB_ENABLE_ARITH_ABORT |
启用算术中止 | true | 所有 |
DB_USE_UTC |
日期使用 UTC | true | 所有 |
连接池 | |||
DB_POOL_MAX |
最大连接数 | 10 | 所有 |
DB_POOL_MIN |
最小连接数 | 0 | 所有 |
DB_POOL_IDLE_TIMEOUT |
空闲超时时间 (ms) | 30000 | 所有 |
高级设置 | |||
DB_CANCEL_TIMEOUT |
取消超时时间 (ms) | 5000 | 所有 |
DB_PACKET_SIZE |
数据包大小 (字节) | 4096 | 所有 |
DB_CONNECTION_STRING |
完整的连接字符串 | - | 替代单独设置 |
{
"mcpServers": {
"mcpql": {
"command": "npx",
"args": ["-y", "hendrickcastro/mcpql"],
"env": {
"DB_AUTHENTICATION_TYPE": "sql",
"DB_SERVER": "localhost",
"DB_NAME": "MyDatabase",
"DB_USER": "sa",
"DB_PASSWORD": "YourPassword123!",
"DB_PORT": "1433",
"DB_ENCRYPT": "false",
"DB_TRUST_SERVER_CERTIFICATE": "true"
}
}
}
}
{
"mcpServers": {
"mcpql": {
"command": "npx",
"args": ["-y", "hendrickcastro/mcpql"],
"env": {
"DB_AUTHENTICATION_TYPE": "sql",
"DB_SERVER": "localhost",
"DB_INSTANCE_NAME": "SQLEXPRESS",
"DB_NAME": "MyDatabase",
"DB_USER": "sa",
"DB_PASSWORD": "YourPassword123!",
"DB_ENCRYPT": "false",
"DB_TRUST_SERVER_CERTIFICATE": "true"
}
}
}
}
{
"mcpServers": {
"mcpql": {
"command": "npx",
"args": ["-y", "hendrickcastro/mcpql"],
"env": {
"DB_AUTHENTICATION_TYPE": "windows",
"DB_SERVER": "MYSERVER",
"DB_NAME": "MyDatabase",
"DB_DOMAIN": "MYDOMAIN",
"DB_USER": "myuser",
"DB_PASSWORD": "mypassword",
"DB_ENCRYPT": "false",
"DB_TRUST_SERVER_CERTIFICATE": "true"
}
}
}
}
{
"mcpServers": {
"mcpql": {
"command": "npx",
"args": ["-y", "hendrickcastro/mcpql"],
"env": {
"DB_AUTHENTICATION_TYPE": "azure-ad",
"DB_SERVER": "myserver.database.windows.net",
"DB_NAME": "MyDatabase",
"DB_USER": "user@domain.com",
"DB_PASSWORD": "userpassword",
"DB_PORT": "1433",
"DB_ENCRYPT": "true",
"DB_TRUST_SERVER_CERTIFICATE": "false"
}
}
}
}
{
"mcpServers": {
"mcpql": {
"command": "npx",
"args": ["-y", "hendrickcastro/mcpql"],
"env": {
"DB_AUTHENTICATION_TYPE": "azure-ad",
"DB_SERVER": "myserver.database.windows.net",
"DB_NAME": "MyDatabase",
"DB_AZURE_CLIENT_ID": "your-client-id",
"DB_AZURE_CLIENT_SECRET": "your-client-secret",
"DB_AZURE_TENANT_ID": "your-tenant-id",
"DB_PORT": "1433",
"DB_ENCRYPT": "true",
"DB_TRUST_SERVER_CERTIFICATE": "false"
}
}
}
}
{
"mcpServers": {
"mcpql": {
"command": "npx",
"args": ["-y", "hendrickcastro/mcpql"],
"env": {
"DB_CONNECTION_STRING": "Server=localhost;Database=MyDatabase;User Id=sa;Password=YourPassword123!;Encrypt=false;TrustServerCertificate=true;"
}
}
}
}
DB_AUTHENTICATION_TYPE=windows
DB_INSTANCE_NAME
DB_TRUST_SERVER_CERTIFICATE=true
DB_TIMEOUT
或检查网络连接DB_INSTANCE_NAME=SQLEXPRESS
server.database.windows.net
DB_ENCRYPT=true
和 DB_TRUST_SERVER_CERTIFICATE=false
运行全面的测试套件:
npm test
测试套件包括对所有 10 种工具的全面测试,使用真实数据库进行测试并实现了完全覆盖。
MCPQL/
├── src/
│ ├── __tests__/ # 全面的测试套件
│ ├── tools/ # 模块化工具实现
│ │ ├── tableAnalysis.ts # 表分析工具
│ │ ├── storedProcedureAnalysis.ts # 存储过程分析工具
│ │ ├── dataOperations.ts # 数据操作工具
│ │ ├── objectSearch.ts # 搜索和发现工具
│ │ ├── types.ts # 类型定义
│ │ └── index.ts # 工具导出
│ ├── db.ts # 数据库连接管理
│ ├── server.ts # MCP 服务器设置和处理程序
│ ├── tools.ts # 工具定义和模式
│ └── mcp-server.ts # 工具重新导出
├── dist/ # 编译后的 JavaScript 输出
└── package.json # 依赖项和脚本
⚠️ 重要提示
- 对象名称:始终使用带架构限定的名称(例如,
dbo.Users
、api.Idiomas
)- 错误处理:所有工具都返回带有成功/错误指示的结构化响应
- 类型安全:完全支持 TypeScript,并提供适当的类型定义
- 连接管理:自动连接池和重试逻辑
- 安全性:使用参数化查询以防止 SQL 注入
git checkout -b feature/amazing-feature
)npm test
)git commit -m 'Add amazing feature'
)git push origin feature/amazing-feature
)本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件。
数据库: sql-server
azure-sql
database-analysis
database-tools
mssql
t-sql
database-management
database-administration
database-operations
data-analysis
MCP 与 AI: model-context-protocol
mcp-server
mcp-tools
ai-tools
claude-desktop
cursor-ide
anthropic
llm-integration
ai-database
intelligent-database
技术: typescript
nodejs
npm-package
cli-tool
database-client
sql-client
database-sdk
rest-api
json-api
database-connector
特性: table-analysis
stored-procedures
data-preview
column-statistics
query-execution
database-search
object-dependencies
schema-analysis
data-exploration
database-insights
部署: docker
azure-deployment
cloud-ready
enterprise-ready
production-ready
scalable
secure
authenticated
encrypted
configurable
用例: database-development
data-science
business-intelligence
database-migration
schema-documentation
performance-analysis
data-governance
database-monitoring
troubleshooting
automation
🎯 MCPQL 通过模型上下文协议提供全面的 SQL Server 数据库分析和操作功能。非常适合数据库管理员、开发人员以及任何使用 SQL Server 数据库的人员! 🚀