用于本地LLM集成的MSSQL MCP服务器
概述
此MCP(模型上下文协议)服务器实现了本地LLM(Qwen2.57B,通过Ollama)和Microsoft SQL server数据库之间的无缝集成。该服务器为您的本地AI模型提供安全、只读的数据库访问,使其能够通过自然语言交互查询和分析您的SQL数据。
先决条件
所需软件
- Go语言 (必须先安装)
- 奥拉玛 -本地LLM运行时环境
- Python 3.10+ -MCP服务器的运行时环境
- Microsoft SQL Server -目标数据库系统
- SQL Server的ODBC驱动程序18 -数据库连接
分步安装指南
第一步:安装Go语言
在继续之前,此步骤是强制性的!
- 下载Go 来自官方网站:
https://go.dev/doc/install- 安装Go 对于您的操作系统:
- macOS:下载.pkg安装程序并按照安装向导进行操作 - 视窗:使用.msi安装程序 - Linux:使用tar.gz包或包管理器
- 验证安装:
go version如果安装正确,您应该会看到Go版本号。
步骤2:安装mcphost
安装Go后,运行:
go install github.com/mark3labs/mcphost@latest这将安装mcphost实用程序,这对于在Ollama上运行MCP服务器至关重要。
步骤3:设置Python环境
- 创建虚拟环境:
python -m venv loca- 激活虚拟环境:
- macOS/Linux:
source loca/bin/activate- 视窗:
loca\Scripts\activate- 安装Python依赖项:
pip install pyodbc python-dotenv mcp步骤4:配置环境变量
创建一个 .env 项目目录中的文件,其中包含:
MSSQL_SERVER=your_server_name
MSSQL_USERNAME=your_username
MSSQL_PASSWORD=your_password
MSSQL_DRIVER=ODBC Driver 18 for SQL Server步骤5:下载Olama和正确的模型
- 安装Ollama 从 奥拉玛
- 拉正确的模型 (工具启用版本):
ollama pull qwen2.5:7b关键:工具集成的模型选择
⚠️ 重要:在选择Olama车型时 必须 选择一个支持工具/函数调用功能的模型。并非所有型号都内置了此功能。
MCP集成的推荐模型:
- qwen2.5:7b (确认工作)
- 美洲驼3.1:8b (工具启用版本)
- phi3:中等 (函数调用支持)
- 吉玛书2:2b (工具已启用)
为什么这很重要:MCP服务器依赖于LLM理解和调用特定工具/功能的能力。没有工具集成功能的模型将无法利用此MCP服务器提供的数据库查询功能。
运行MCP服务器
步骤1:启动MCP服务器
在VS代码终端(或您首选的IDE)中:
- 激活您的虚拟环境 (如果尚未激活):
source loca/bin/activate # macOS/Linux
# or
loca\Scripts\activate # Windows- 运行MSSQL服务器脚本:
python mssql.py您应该看到: "Starting MCP server main loop..." 表示服务器正在运行。
第二步:与mcphost建立联系
在单独的终端窗口(macOS/Linux/Windows)中:
重要:根据您的系统架构调整路径:
- 适用于macOS(ARM64) -按原样使用:
mcphost -m ollama:qwen2.5 --config "/Users/ameermortaza/Desktop/Ollama/loca.json"- 对于Windows -相应地调整路径:
mcphost -m ollama:qwen2.5 --config "C:\path\to\your\loca.json"- 对于Linux -相应地调整路径:
mcphost -m ollama:qwen2.5 --config "/home/username/path/to/loca.json"关键配置说明
更新 loca.json 文件 对于您的特定系统:
{
"mcpServers": {
"mssql": {
"command": "python",
"args": ["/ABSOLUTE/PATH/TO/YOUR/mssql.py"],
"env": {
"VIRTUAL_ENV": "/ABSOLUTE/PATH/TO/YOUR/loca",
"PATH": "/ABSOLUTE/PATH/TO/YOUR/loca/bin:...rest of your PATH..."
}
}
}
}用实际的系统路径替换路径!
可用工具
MCP服务器提供了四种主要工具来增强您的本地LLM:
1. list_databases
- 目的:发现SQL Server上的所有可用数据库
- 用法:“显示可用的数据库”
- 输出:不包括系统数据库的用户数据库列表
2. list_tables
- 目的:探索特定数据库中的表
- 参数:
database(必填) - 用法:“‘Sales’数据库中有哪些表?”
- 输出:带有计数的架构和表名
3. list_columns
- 目的:检查表结构和元数据
- 参数:
database,table(两者都需要) - 用法:“显示'客户'表中的列”
- 输出:列名、数据类型、可空性和默认值
4. run_query
- 目的:执行安全的只读SQL查询
- 参数:
database,sql(两者都需要) - 安全:验证查询以阻止写入操作(INSERT、UPDATE、DELETE等)
- 用法:“按购买金额获得前10名客户”
- 输出:带列标题和数据的格式化查询结果
安全特性
- 只读访问:所有写入操作都被明确阻止
- 查询验证:正则表达式验证可防止危险的SQL命令
- 环境变量:存储在代码外部的敏感凭据
- 错误处理:全面的日志记录和错误管理
常见问题排查
问题1:“未找到命令:mcphost”
解决方案:确保Go已正确安装,并且您的GOPATH位于您的PATH中:
export PATH=$PATH:$(go env GOPATH)/bin问题2:Python模块错误
解决方案:确保您的虚拟环境已激活并安装了依赖项:
source loca/bin/activate
pip install -r requirements.txt # or reinstall dependencies问题3:Windows/Linux上的路径错误
解决方案:更新中的所有路径 loca.json 为了与您的系统架构相匹配:
- 窗户:
C:\Users\YourName\Desktop\Ollama\mssql.py - Linux:
/home/yourname/Desktop/Ollama/mssql.py
问题4:模型无法识别工具
解决方案:确保您使用的是启用工具的模型,如 qwen2.5:7b
人工智能中MCP的未来
当前影响:
- 民主化:使本地LLM能够安全地访问企业数据
- 隐私:数据永远不会离开您的基础设施
- 降低成本:消除了基于云的人工智能服务的API成本
- 定制:与现有系统的定制集成
未来潜力:
- 企业采用MCP将成为人工智能集成的标准
- 多模态扩展:从数据库到文件系统、API和物联网
- 标准化:全行业人工智能工具调用协议
- 专用服务器:医疗保健、金融等领域的特定MCP。
- 联邦学习:MCP实现了无需数据共享的协作人工智能
需要帮助?
如果您在设置或操作过程中遇到任何问题,请随时联系我们寻求帮助:
联系:
结论
这个MSSQL MCP服务器将您的本地Qwen2.5 LLM从通用聊天机器人转换为强大的数据分析工具。通过仔细遵循这些步骤并确保为您的特定操作系统进行正确配置,您将创建一个能够真正理解并与您的组织数据交互的AI助手。
记住关键步骤:
- 先安装Go
- 通过Go安装mcphost
- 设置Python虚拟环境
- 在一个终端中运行mssql.py
- 在另一个终端中连接mcphost
- 为您的特定操作系统调整路径
MCP协议代表了人工智能集成的未来——安全、可定制和企业就绪。
如果你想使用Linux AMD-64架构在虚拟机上部署它 太好了!🙌 既然你的VM中已经有了整个管道,让我为你起草一份全面的、循序渐进的文档,解释你所做的一切——从设置Python到创建虚拟环境、安装依赖项、配置Ollama+MCP,以及运行查询。
⸻
📝 在Ubuntu虚拟机上使用Ollama+MSSQL设置MCP
本文档解释了如何在Ubuntu 20.04 VM中设置本地开发环境,以运行连接到SQL server的Python MCP服务器(mssql.py),并使用MCPHost将其与Ollama模型(如Qwen2.5或Llama3.1)集成。
⸻
- 安装Python 3.10.18和虚拟环境
Ubuntu 20.04附带了Python 3.8,对于现代库来说太旧了。您从源代码构建了Python 3.10.18,然后为您的项目创建了一个专用的虚拟环境。
验证Python版本
python3--版本 python3.10--版本
在桌面中创建一个名为“loca”的venv
cd~/桌面 python3.10-m虚拟局域网
激活venv
来源~/桌面/loca/bin/activate
激活后,您的提示显示(loca)。
⸻
- 安装所需的Python库
在虚拟环境中,安装mssql.py所需的所有库:
pip安装mcp-pyodbc-python-dotenv
mcp中已经包含了其他依赖项: •starlette、uvicorn、httpx等。
检查已安装的软件包:
pip列表
⸻
- 安装SQL Server ODBC驱动程序
由于Python脚本使用pyodbc,您需要微软的ODBC驱动程序:
更新源 sudo apt-get安装-y msodbcsql18 unixodbc开发
这确保pyodbc可以从Linux连接到SQL Server。
⸻
- 为数据库凭据创建.env文件
您的脚本从.env加载数据库凭据。在~/Desktop/.env中创建它:
MSSQL_SERVER=192.168.1.16 MSSQL_DATABASE=SkyUpAuth MSSQL_USERNAME=admin MSSQL_PASSWORD=Prosoft@bel21 MSSQL_DRIVER=SQL Server的ODBC驱动程序18
⸻
- 创建mssql.py
此文件使用MCP.server实现MSSQL的MCP服务器。您将其放置在:
/主页/devops/桌面/mssql.py
它 •Loads.env •使用pyodbc连接到SQL Server •定义MCP工具: •列表_数据库 •列表表 •列表_列 •run_query
手动运行它进行测试:
(loca)python mssql.py
您应该看到以下日志:
加载环境变量并初始化MCP服务器。.. 正在启动MCP服务器主循环。..
⸻
- 安装Olama和模型
您从官方脚本安装了Ollama:
curl-fsSLhttps://ollama.com/install.sh|sh
然后拉取模型:
奥拉玛拉qwen2.5:7b Ollama Pull Callama 3.1:8b
检查已安装的型号:
奥拉玛列表
⸻
- 安装Go和MCPHost
MCPHost是用Go编写的。要安装:
下载Go
wgethttps://go.dev/dl/go1.25.1.linux-amd64.tar.gz sudo rm-rf/usr/local/go sudo tar-C/usr/local-xzf go1.25.1.linux-amd64.tar.gz
添加到PATH
echo'导出路径=$PATH:/usr/local/go/bin:$HOME/go/bin'>~/.bashrc 源码~/.bashrc
验证
go版本
安装mcphost:
去安装github。com/mark3labs/mcphost@latest
检查:
哪种mcphost mcphost-版本
⸻
- 创建loca.json配置
此命令将告诉MCPHost如何启动MSSQL MCP服务器:
{ “mcpServers”:{ “mssql”:{ “command”:“python”, “args”:\[“/home/develops/Desktop/mssql.py”\], “env”:{ “VIRTUAL_ENV”:“/home/deops/桌面/loca”, “路径”:“/home/devops/Destop/loca/bin:/usr/local/sbin:/usr/sbin:usr/bin:/bin:usr/local/go/bin:/home/depops/go/bin” } } } }
⸻
- 使用Ollama+MSSQL运行MCPHost
现在,您可以启动整个系统:
mcphost-m ollama:qwen2.5--配置“/home/develops/Desktop/loca.json”
您将看到:
加载型号:olama(qwen2.5) 从MCP服务器加载了4个工具
您现在可以与Qwen2.5聊天,它可以访问MSSQL.py中定义的MSSQL工具。
⸻
🔹 工作流程概述 1.Python 3.10.18 venv(loca)→ 运行mssql.py MCP服务器。 2..env文件→ 存储MSSQL连接凭据。 3.pyodbc+ODBC驱动程序→ 让Python与SQL Server对话。 4.奥利玛→ 运行本地LLM(Qwen2.5,Llama3.1)。 5.Go+MCPHost→ 将LLM与MCP服务器连接起来。 6.loca.json→ 告诉MCPHost如何启动MCP服务器。 7.运行mcphost→ 连接LLM+MCP服务器+数据库。
⸻
⚡ 此时,您有一个完全正常工作的管道: 当地法学硕士(Qwen/Llama)↔ MCP主机↔ MSSQL通过Python服务器
⸻
如有任何疑问,请通过我的网站Mortaza76/github.io与我联系。 确保您有一个.env文件,其中包含您登录MSSQL数据库服务器的所有凭据。 我注意到,由于所使用的库和下载的模块的支持,python 3.10+最适合这个项目。
