一个生产就绪的 Node.js 包,提供了一个 MCP(模型上下文协议)服务器,使用 AI 驱动的多代理系统将自然语言问题转换为 SQL 查询。
# 全局安装
npm install -g nlsql-mcp-server
# 启动服务器
nlsql-mcp-server start
# 或直接运行
npx nlsql-mcp-server start
npm install -g nlsql-mcp-server
npm install nlsql-mcp-server
该包会自动:
# 设置你的 OpenAI API 密钥
export OPENAI_API_KEY="your_api_key_here"
# 或创建一个 .env 文件
echo "OPENAI_API_KEY=your_api_key_here" > .env
npm install -g nlsql-mcp-server
sk- 开头)在 Windows 上:
Windows + R%APPDATA%\Claudeclaude_desktop_config.json在 Mac 上:
Cmd + Shift + G~/Library/Application Support/Claudeclaude_desktop_config.json在 Linux 上:
~/.config/Claudeclaude_desktop_config.json如果文件存在: 打开它,并将 nlsql 配置添加到现有的 mcpServers 部分。
如果文件不存在: 创建一个名为 claude_desktop_config.json 的新文件,内容如下:
{
"mcpServers": {
"nlsql": {
"command": "npx",
"args": ["nlsql-mcp-server", "start"],
"env": {
"OPENAI_API_KEY": "sk-your-actual-api-key-here"
}
}
}
}
重要: 将 sk-your-actual-api-key-here 替换为你真实的 OpenAI API 密钥!
在 Claude Desktop 中尝试询问:
"连接到示例数据库并显示可用的表"
如果成功,你会看到 Claude 连接到 NBA 示例数据库!
# 启动 MCP 服务器
nlsql-mcp-server start
# 启动调试模式
nlsql-mcp-server start --debug
# 测试安装
nlsql-mcp-server test
# 安装/重新安装 Python 依赖项
nlsql-mcp-server install-deps
# 生成 Claude Desktop 配置
nlsql-mcp-server config
# 显示帮助
nlsql-mcp-server --help
const NLSQLMCPServer = require('nlsql-mcp-server');
const server = new NLSQLMCPServer({
debug: true,
pythonExecutable: 'python3',
env: {
OPENAI_API_KEY: 'your_key_here'
}
});
await server.start();
运行时,服务器提供以下 MCP 工具:
| 工具 | 描述 |
|---|---|
connect_database | 连接到 SQLite、PostgreSQL 或 MySQL |
connect_sample_database | 连接到内置的 NBA 示例数据库 |
natural_language_to_sql | 使用 AI 将问题转换为 SQL |
execute_sql_query | 安全地执行 SQL 查询 |
analyze_schema | AI 驱动的数据库模式分析 |
get_database_info | 获取表和列信息 |
validate_sql_query | 验证 SQL 语法 |
get_table_sample | 从表中获取样本数据 |
get_connection_status | 检查数据库连接状态 |
disconnect_database | 断开数据库连接 |
设置 Claude Desktop 集成后,你可以使用自然语言与数据库交互:
连接到我的示例数据库并显示模式
将这个转换为 SQL: "NBA 有多少支球队?"
显示球队表的样本数据
分析我的数据库结构并建议有用的查询
使用内置的 NBA 数据库进行测试(30 支球队,15 张表,包括球员、比赛、统计数据):
使用 connect_sample_database 工具
然后询问:
# 测试 Node.js 包装器
npm test
# 测试底层 Python 服务器
nlsql-mcp-server test
# 使用示例数据库测试
nlsql-mcp-server start --debug
# 然后使用 Claude Desktop
# 安装 Python 3.8+
# 在 Ubuntu/Debian 上:
sudo apt update && sudo apt install python3 python3-pip
# 在 macOS 上:
brew install python3
# 在 Windows 上:
# 从 python.org 下载
# 手动安装
nlsql-mcp-server install-deps
# 或手动安装
pip3 install mcp crewai sqlalchemy pandas openai python-dotenv psycopg2-binary pymysql cryptography
# 设置环境变量
export OPENAI_API_KEY="your_key_here"
# 或使用 .env 文件
echo "OPENAI_API_KEY=your_key_here" > .env
# 调试模式以获得详细日志
nlsql-mcp-server start --debug
# 测试安装
nlsql-mcp-server test
使用调试模式以获得详细日志:
nlsql-mcp-server start --debug
日志写入:
~/.config/nlsql-mcp-server/logs/%APPDATA%\nlsql-mcp-server\logs\添加到你的 Continue.dev 配置:
{
"mcpServers": {
"nlsql": {
"command": "npx",
"args": ["nlsql-mcp-server", "start"]
}
}
}
const { spawn } = require('child_process');
const mcpServer = spawn('npx', ['nlsql-m_服务器', 'start'], {
stdio: ['pipe', 'pipe', 'pipe'],
env: {
...process.env,
OPENAI_API_KEY: 'your_key_here'
}
});
// 处理 MCP 协议通信
mcpServer.stdout.on('data', handleMCPMessage);
mcpServer.stdin.write(JSON.stringify(mcpRequest));
npm testMIT 许可证 - 详情见 LICENSE 文件。
由 Tushar Badhwar 制作