本地LLM集成MSSQL MCP服务器

该MCP服务器实现了本地LLM(如Qwen2.5 7B)与Microsoft SQL Server数据库的安全只读集成,支持通过自然语言查询和分析SQL数据。

  • by Mortaza76
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Mortaza76/MCPhost-MSSQL-EasyGuide

使用说明

用于本地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语言

在继续之前,此步骤是强制性的!

  1. 下载Go 来自官方网站:

    https://go.dev/doc/install
    
  2. 安装Go 对于您的操作系统:

    • macOS:下载.pkg安装程序并按照安装向导进行操作
    • 视窗:使用.msi安装程序
    • Linux:使用tar.gz包或包管理器
  3. 验证安装:

    go version
    

    如果安装正确,您应该会看到Go版本号。

步骤2:安装mcphost

安装Go后,运行:

go install github.com/mark3labs/mcphost@latest

这将安装mcphost实用程序,这对于在Ollama上运行MCP服务器至关重要。

步骤3:设置Python环境

  1. 创建虚拟环境:

    python -m venv loca
    
  2. 激活虚拟环境:

    • macOS/Linux:
      source loca/bin/activate
      
    • 视窗:
      loca\Scripts\activate
      
  3. 安装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和正确的模型

  1. 安装Ollama 从 奥拉玛

  2. 拉正确的模型 (工具启用版本):

    ollama pull qwen2.5:7b
    

关键:工具集成的模型选择

⚠️ 重要:在选择Olama车型时 必须 选择一个支持工具/函数调用功能的模型。并非所有型号都内置了此功能。

MCP集成的推荐模型:

  • qwen2.5:7b (确认工作)
  • 美洲驼3.1:8b (工具启用版本)
  • phi3:中等 (函数调用支持)
  • 吉玛书2:2b (工具已启用)

为什么这很重要:MCP服务器依赖于LLM理解和调用特定工具/功能的能力。没有工具集成功能的模型将无法利用此MCP服务器提供的数据库查询功能。

运行MCP服务器

步骤1:启动MCP服务器

在VS代码终端(或您首选的IDE)中:

  1. 激活您的虚拟环境 (如果尚未激活):

    source loca/bin/activate  # macOS/Linux
    # or
    loca\Scripts\activate    # Windows
    
  2. 运行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成本
  • 定制:与现有系统的定制集成

未来潜力:

  1. 企业采用MCP将成为人工智能集成的标准
  2. 多模态扩展:从数据库到文件系统、API和物联网
  3. 标准化:全行业人工智能工具调用协议
  4. 专用服务器:医疗保健、金融等领域的特定MCP。
  5. 联邦学习:MCP实现了无需数据共享的协作人工智能

需要帮助?

如果您在设置或操作过程中遇到任何问题,请随时联系我们寻求帮助:

联系: 网站: Mortaza76.github.io

结论

这个MSSQL MCP服务器将您的本地Qwen2.5 LLM从通用聊天机器人转换为强大的数据分析工具。通过仔细遵循这些步骤并确保为您的特定操作系统进行正确配置,您将创建一个能够真正理解并与您的组织数据交互的AI助手。

记住关键步骤:

  1. 先安装Go
  2. 通过Go安装mcphost
  3. 设置Python虚拟环境
  4. 在一个终端中运行mssql.py
  5. 在另一个终端中连接mcphost
  6. 为您的特定操作系统调整路径

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)集成。

⸻

  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)。

⸻

  1. 安装所需的Python库

在虚拟环境中,安装mssql.py所需的所有库:

pip安装mcp-pyodbc-python-dotenv

mcp中已经包含了其他依赖项: •starlette、uvicorn、httpx等。

检查已安装的软件包:

pip列表

⸻

  1. 安装SQL Server ODBC驱动程序

由于Python脚本使用pyodbc,您需要微软的ODBC驱动程序:

更新源 sudo apt-get安装-y msodbcsql18 unixodbc开发

这确保pyodbc可以从Linux连接到SQL Server。

⸻

  1. 为数据库凭据创建.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

⸻

  1. 创建mssql.py

此文件使用MCP.server实现MSSQL的MCP服务器。您将其放置在:

/主页/devops/桌面/mssql.py

它 •Loads.env •使用pyodbc连接到SQL Server •定义MCP工具: •列表_数据库 •列表表 •列表_列 •run_query

手动运行它进行测试:

(loca)python mssql.py

您应该看到以下日志:

加载环境变量并初始化MCP服务器。.. 正在启动MCP服务器主循环。..

⸻

  1. 安装Olama和模型

您从官方脚本安装了Ollama:

curl-fsSLhttps://ollama.com/install.sh|sh

然后拉取模型:

奥拉玛拉qwen2.5:7b Ollama Pull Callama 3.1:8b

检查已安装的型号:

奥拉玛列表

⸻

  1. 安装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-版本

⸻

  1. 创建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” } } } }

⸻

  1. 使用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+最适合这个项目。