Token导航 LogoToken导航TokenDH.com
MCP Alchemy Backend logo
数据服务未说明官方级别未说明来源级核验

MCP Alchemy Backend

MCP Server

该服务利用大型语言模型(LLM)将自然语言查询转换为SQL语句,支持多种LLM提供商,提供智能SQL生成、安全验证和批量处理功能,适用于数据库查询和数据分析场景。

工具数

4

提示词数

0

GitHub Stars

0

资源数

0
数据分析自然语言处理JavaScriptClaudeLLM应用Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ChiragKottary

提供方

ChiragKottary

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

基于LLM的自然语言转SQL Server

概述

这台服务器利用大型语言模型(LLMs)将自然语言查询转换为SQL语句。它不依赖于模式匹配,而是借助人工智能来理解您的意图,并生成相应的SQL查询。

特点/特性

  • 多个大型语言模型(LLM)提供商OpenAI、Anthropic Claude、Ollama(本地)和Groq
  • 智能SQL生成大型语言模型(LLM)能够理解上下文并生成复杂的SQL语句
  • 模式感知为大型语言模型(LLM)提供数据库模式,以生成准确的查询
  • 安全验证验证生成的SQL语句,以防止危险操作
  • 美观的网页用户界面实时SQL生成的交互式界面
  • 批处理同时处理多个查询

快速入门

1. 安装依赖项

cd http-server
npm install

2. 配置大型语言模型(LLM)提供商

复制示例配置:

cp .env.example .env

编辑 .env 并添加您的大型语言模型(LLM)配置:

选项A:OpenAI(推荐)

LLM_PROVIDER=openai
LLM_API_KEY=sk-your-openai-api-key
LLM_MODEL=gpt-4-turbo-preview

选项B:Anthropic的Claude

LLM_PROVIDER=anthropic
LLM_API_KEY=sk-ant-your-anthropic-key
LLM_MODEL=claude-3-opus-20240229

选项C:Ollama(本地,免费)

LLM_PROVIDER=ollama
LLM_MODEL=codellama
# No API key needed!

首先安装Ollama并拉取一个模型:

# Install from https://ollama.ai/
ollama pull codellama

选项D:Groq云(快速)

LLM_PROVIDER=groq
LLM_API_KEY=gsk-your-groq-key
LLM_MODEL=mixtral-8x7b-32768

3. 设置数据库

创建包含示例数据的测试数据库:

npm run setup-db

4. 启动服务器

npm start
# or for development with auto-reload
npm run dev

5. 打开浏览器

导航至 http://localhost:3000

它是如何工作的

  1. 你写的是自然语言“给我展示前五大客户的总订单金额”
  1. 大型语言模型(LLM)接收上下文

- 您的查询 - 完整的数据库模式 - SQL生成指令

  1. 大型语言模型生成SQL
   SELECT u.username, u.email, SUM(o.total_amount) as total_spent
   FROM users u
   JOIN orders o ON u.id = o.user_id
   GROUP BY u.id, u.username, u.email
   ORDER BY total_spent DESC
   LIMIT 5
  1. 服务器验证并执行 SQL(Structured Query Language,结构化查询语言)
  1. 返回结果 为提高透明度,附上生成的SQL语句

API 端点

生成并执行查询

POST(邮政) /api/llm/query

curl -X POST http://localhost:3000/api/llm/query \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Show me customers who spent more than $1000"
  }'

回答:

{
  "success": true,
  "prompt": "Show me customers who spent more than $1000",
  "generatedSQL": "SELECT u.username, u.email, SUM(o.total_amount) as total_spent FROM users u JOIN orders o ON u.id = o.user_id GROUP BY u.id HAVING total_spent > 1000",
  "result": {
    "columns": ["username", "email", "total_spent"],
    "data": [...]
  },
  "llmProvider": "openai",
  "model": "gpt-4-turbo-preview"
}

仅生成SQL

POST(邮政) /api/llm/generate

生成SQL语句而不执行它:

curl -X POST http://localhost:3000/api/llm/generate \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Delete all inactive users"
  }'

批处理

POST(邮政/帖子/发布) /api/llm/batch

处理多个查询:

curl -X POST http://localhost:3000/api/llm/batch \
  -H "Content-Type: application/json" \
  -d '{
    "prompts": [
      "Count all users",
      "Average order value",
      "Top selling product"
    ]
  }'

测试LLM连接

POST(邮政/帖子/发布) /api/llm/test

curl -X POST http://localhost:3000/api/llm/test

获取模式(或架构)

GET(获取) /api/schema

返回当前的数据库架构。

自然语言查询示例

大型语言模型(LLM)能够理解复杂且自然的查询:

基本查询

  • “显示所有用户”
  • “列出50美元以下的产品”
  • “获取最新订单”

复杂查询

  • “查找那些已下单超过3次但最近30天内未下单的客户”
  • “给我展示过去一年每个月的收入趋势”
  • “哪些产品经常一起被购买?”
  • “找出从未进行过购买的用户”

聚合

  • “按客户细分来看,平均订单价值是多少?”
  • “显示月度销售增长率”
  • “计算前10大客户的终身价值”

连接与关系

  • “显示所有订单,包括客户详细信息和产品信息”
  • “列出客户及其最常购买的产品类别”
  • “查找从未订购过的产品”

大型语言模型(LLM)提供商对比

服务提供商优点缺点最适合
OpenAI GPT-4 最佳SQL生成,处理复杂查询需付费,需API密钥生产环境使用
Anthropic的Claude 出色的推理,安全的输出需要付费,需要API密钥复杂的业务逻辑
Ollama(本地) 免费、私密、无API限制需要本地资源,速度较慢开发、隐私敏感
Groq 非常快,质量好需要API密钥大量查询

配置选项

环境变量

# LLM Settings
LLM_PROVIDER=openai              # Provider choice
LLM_API_KEY=sk-...               # API key (not needed for Ollama)
LLM_MODEL=gpt-4-turbo-preview   # Model selection
LLM_TEMPERATURE=0.1              # 0.0-1.0 (lower = more deterministic)
LLM_MAX_TOKENS=500              # Max response length

# For Ollama
LLM_BASE_URL=http://localhost:11434  # Ollama server URL

# Database
DB_URL=sqlite:///test.db        # Your database connection

温度设置

  • 0.0-0.3确定性、一致性的SQL生成(推荐)
  • 0.3-0.7平衡创意与一致性
  • 0.7-1.0更具创意,可能为相同提示生成不同的SQL

安全特性

  1. SQL 验证防止危险操作,如 DROP DATABASE
  2. 查询限制自动添加 LIMIT 子句以防止返回大量结果集
  3. 模式隔离LLM只看到模式,看不到实际数据
  4. 参数化生成的SQL在执行前会经过验证

故障排除

大型语言模型(LLM)未能生成有效SQL

  1. 检查您的API密钥是否正确
  2. 验证模型名称是否有效
  3. 尝试将温度降低到0.1
  4. 先用更简单的查询进行测试

连接错误

# Test LLM connection
curl -X POST http://localhost:3000/api/llm/test

# Check health
curl http://localhost:3000/health

Ollama 安装设置

# Install Ollama
curl -fsSL https://ollama.ai/install.sh | sh

# Pull a model
ollama pull codellama

# Start Ollama server
ollama serve

# Test
curl http://localhost:11434/api/generate -d '{
  "model": "codellama",
  "prompt": "SELECT * FROM users LIMIT 1"
}'

高级用法

自定义系统提示

修改系统提示中的 server.js:

function createSQLGenerationPrompt(userQuery) {
  return `You are a SQL expert. Generate optimized SQL...

  Additional rules:
  - Always use indexes when available
  - Prefer JOIN over subqueries
  - Add comments for complex logic

  User request: "${userQuery}"`;
}

添加新的大型语言模型(LLM)提供商

添加一个新的提供商 server.js:

case 'your-provider':
  return await callYourProvider(prompt);

async function callYourProvider(prompt) {
  // Your implementation
}

监控和日志记录

服务器日志:

  • 所有自然语言查询
  • 生成的SQL语句
  • 执行时间
  • 错误和警告

查看日志:

npm start 2>&1 | tee llm-server.log

性能优化技巧

  1. 缓存模式启动时缓存模式
  2. 使用合适的模型

- GPT-3.5-turbo适用于简单查询(更快、更便宜) - GPT-4用于复杂查询(准确性更高)

  1. 批量查询使用批量端点进行多次查询
  2. 本地模型使用Ollama进行开发以节省API成本

成本估算

提供者模型每次查询的成本\*速度
OpenAIGPT-4-turbo约0.03美元2-3秒
OpenAIGPT-3.5-turbo约0.002美元1-2秒
人类(Anthropic)Claude-3-Opus约0.04美元2-3秒
人类偏好模型Claude-3-Haiku约0.001美元1-2秒
OllamaCodellama免费3-5秒
GroqMixtral约$0.001\ 500

AND days_since_last_order > 60 ORDER BY lifetime_value DESC LIMIT 10;


## 贡献

要添加新功能或大型语言模型(LLM)提供商:

1. 为仓库创建分支(或:克隆仓库)
1. 添加您的提供商 `server-llm.js`
1. 更新文档
1. 提交一个拉取请求

## 许可证

与MCP炼金术主项目相同。

## 支持

对于问题或疑问:

- 查看故障排除部分
- 查看服务器日志
- 测试LLM连接端点
- 验证数据库模式是否已加载

目录标签

目录标签

数据分析自然语言处理JavaScriptClaudeLLM应用本地部署SQL生成数据库查询

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

api-key

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明api-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP