此MCP(模型上下文协议)服务器实现了本地LLM(通过Ollama运行的Qwen2.5 7B)与Microsoft SQL Server数据库之间的无缝集成。该服务器提供安全的只读数据库访问权限给您的本地AI模型,使其能够通过自然语言交互查询和分析SQL数据。
在继续之前,这一步是强制性的!
从官方网站下载Go:
https://go.dev/doc/install
安装适用于您操作系统的Go:
验证安装:
go version
如果安装正确,您应该能看到Go版本号。
在安装Go之后,运行:
go install github.com/mark3labs/mcphost@latest
这将安装mcphost工具,这是运行带有Ollama的MCP服务器所必需的。
创建虚拟环境:
python -m venv loca
激活虚拟环境:
source loca/bin/activate
loca\Scripts\activate
安装Python依赖项:
pip install pyodbc python-dotenv mcp
在项目目录中创建一个.env文件,内容如下:
MSSQL_SERVER=your_server_name
MSSQL_USERNAME=your_username
MSSQL_PASSWORD=your_password
MSSQL_DRIVER=ODBC Driver 18 for SQL Server
从ollama.ai安装Ollama
拉取正确的模型(支持工具调用的版本):
ollama pull qwen2.5:7b
⚠️ 重要提示:在选择Ollama模型时,您必须选择支持工具/函数调用能力的模型。并非所有模型都内置了这一功能。
为什么这很重要:MCP服务器依赖于LLM理解并调用特定工具/函数的能力。没有工具集成能力的模型将无法利用此MCP服务器提供的数据库查询功能。
在VS Code终端(或您偏好的IDE)中:
激活您的虚拟环境(如果尚未激活):
source loca/bin/activate # macOS/Linux
# 或
loca\Scripts\activate # Windows
运行MSSQL服务器脚本:
python mssql.py
您应看到:"Starting MCP server main loop...",表示服务器正在运行。
在另一个终端窗口(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更强大:
list_databaseslist_tablesdatabase(必需)list_columnsdatabase,table(两者都必需)run_querydatabase,sql(两者都必需)解决方案:确保Go已正确安装且您的GOPATH在PATH中:
export PATH=$PATH:$(go env GOPATH)/bin
解决方案:确保您的虚拟环境已激活且依赖项已安装:
source loca/bin/activate
pip install -r requirements.txt # 或重新安装依赖项
解决方案:更新loca.json中的所有路径以匹配您的系统架构:
C:\Users\YourName\Desktop\Ollama\mssql.py/home/yourname/Desktop/Ollama/mssql.py解决方案:确保您使用的是支持工具调用的模型,如qwen2.5:7b
如果您在设置或操作过程中遇到任何问题,请随时联系寻求帮助:
联系方式:Mortaza76.github.io
此MSSQL MCP服务器将您的本地Qwen2.5 LLM从通用聊天机器人转变为强大的数据分析工具。通过仔细遵循这些步骤,并确保针对您的特定操作系统进行适当的配置,您将创建一个能够真正理解和与组织数据互动的AI助手。
记住关键步骤:
MCP协议代表了AI集成的未来——安全、可定制且面向企业。
如果您想在使用Linux AMD-64架构的VM上部署它 完美 🙌 现在您已经在VM中成功设置了整个管道,让我为您起草一份详尽的分步文档,解释您所做的每一步——从设置Python开始,到创建虚拟环境、安装依赖项、配置Ollama + MCP,以及运行查询。
⸻
📝 在Ubuntu VM中设置MCP与Ollama + MSSQL
本文档解释如何在Ubuntu 20.04 VM内部设置本地开发环境,以运行连接到SQL Server的Python MCP服务器(mssql.py),并通过MCPHost将其与Ollama模型(如Qwen2.5或Llama3.1)集成。
⸻
Ubuntu 20.04自带Python 3.8,对于现代库来说太旧了。您从源码构建了Python 3.10.18,并为项目创建了一个专用的虚拟环境。
python3 --version python3.10 --version
cd ~/Desktop python3.10 -m venv loca
source ~/Desktop/loca/bin/activate
激活后,您的提示符会显示(loca)。
⸻
在虚拟环境中,安装mssql.py所需的所有库:
pip install mcp pyodbc python-dotenv
额外的依赖项已经随mcp一起提供: • starlette, uvicorn, httpx等。
检查已安装的包:
pip list
⸻
由于Python脚本使用pyodbc,您需要Microsoft的ODBC驱动程序:
sudo apt-get update sudo apt-get install -y msodbcsql18 unixodbc-dev
这确保了pyodbc可以从Linux连接到SQL Server。
⸻
您的脚本从.env加载DB凭据。在~/Desktop/.env中创建它:
MSSQL_SERVER=192.168.1.16 MSSQL_DATABASE=SkyUpAuth MSSQL_USERNAME=admin MSSQL_PASSWORD=Prosoft@bel21 MSSQL_DRIVER=ODBC Driver 18 for SQL Server
⸻
此文件实现了用于MSSQL的MCP服务器,使用mcp.server。您将其放置在:
/home/devops/Desktop/mssql.py
它: • 加载.env • 使用pyodbc连接到SQL Server • 定义MCP工具: • list_databases • list_tables • list_columns • run_query
手动运行以测试:
(loca) python mssql.py
您应看到日志: 加载环境变量并初始化MCP服务器... 启动MCP服务器主循环...
⸻
您从官方脚本安装了Ollama:
curl -fsSL https://ollama.com/install.sh | sh
然后拉取模型:
ollama pull qwen2.5:7b ollama pull llama3.1:8b
检查已安装的模型:
ollama list
⸻
MCPHost是用Go编写的。为了安装:
wget https://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
echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> ~/.bashrc source ~/.bashrc
go version
安装mcphost:
go install github.com/mark3labs/mcphost@latest
检查:
which mcphost mcphost --version
⸻
这告诉MCPHost如何启动您的MSSQL MCP服务器:
{ "mcpServers": { "mssql": { "command": "python", "args": ["/home/devops/Desktop/mssql.py"], "env": { "VIRTUAL_ENV": "/home/devops/Desktop/loca", "PATH": "/home/devops/Desktop/loca/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/home/devops/go/bin" } } } }
⸻
现在您可以启动整个系统:
mcphost -m ollama:qwen2.5 --config "/home/devops/Desktop/loca.json"
您将看到: 加载模型:ollama (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. Ollama → 运行本地LLM(Qwen2.5, Llama3.1)。 5. Go + MCPHost → 将LLM与MCP服务器桥接。 6. loca.json → 告诉MCPHost如何启动MCP服务器。 7. 运行mcphost → 连接LLM + MCP服务器 + 数据库。
⸻
⚡ 到此为止,您已经有一个完全工作的管道: 本地LLM (Qwen/Llama) ↔ MCPHost ↔ 通过Python服务器的MSSQL
⸻
如有任何疑问,请通过我的网站Mortaza76/github.io联系我。 确保您有一个包含所有凭据的.env文件,以便登录到MSSQL数据库服务器。 我发现Python 3.10+最适合这个项目,因为支持使用的库和下载的模块。