MCP与数据库查询

MCP与数据库查询

[原创 快乐王子HP 快乐王子AI说 2025年03月24日 23:32 广东]--同步公众号

1、前置条件

    a. Python 3.11;

    b. mysql , 数据库中要增加数据;

    c. 大模型的基座(最好有代码的);

    d. 了解MCP;

MCP,全称是“模型上下文协议”(Model Context Protocol),是Anthropic开源的一个标准协议。

图片

2、xiyan-mcp-server 

    xiyan-mcp-server是一个模型上下文协议 (MCP) 服务器,支持通过自然语言查询数据库。

图片

参考: https://github.com/XGenerationLab/xiyan_mcp_server

2.1 安装

pip install xiyan-mcp-server

设置配置文件:

model:     name: "qwen2.5_7b"       key: "sk-"   # key可从https://www.modelscope.cn/my/myaccesstoken 页面获取       url: "http://192.168.*.*:*/v1"database:       host: "localhost"       port: 3306       user: "root"       password: "********"       database: "world"

3、MCP inspectory

The MCP inspector is a developer tool for testing and debugging MCP servers.(mcp inspector是测试与调试MCP服务的工具。)

图片

MCP inspector:

https://github.com/modelcontextprotocol/inspector

注: npx可以通过安装node来安装。

npx @modelcontextprotocol/inspector -e YML=C:/Users/liangr/Desktop/H20/mcp/config.yml python -m xiyan_mcp_server

0

打开http://localhost:5173

0

4、附相关的知识

查看大模型输出的日志:

<|im_start|>system你现在是一名mysql数据分析专家,你的任务是根据参考的数据库schema和用户的问题,编写正确的SQL来回答用户的问题,生成的SQL用``sql 和```包围起来。【数据库schema】【DB_ID】 【Schema】# Table: countrylanguage[(IsOfficial:ENUM, Examples: [T, F]),(Percentage:DECIMAL, Examples: [5.3, 9.5, 76.7]),(Language:CHAR, Primary Key, Examples: [Dutch, English, Papiamento]),(CountryCode:CHAR, Primary Key, Examples: [ABW, AFG, AGO])]# Table: country[(HeadOfState:CHAR, Examples: [Beatrix]),(LifeExpectancy:DECIMAL, Examples: [78.4, 45.9, 38.3]),(Continent:ENUM, Examples: [North America, Asia, Africa]),(Name:CHAR, Examples: [Aruba, Afghanistan, Angola]),(GNPOld:DECIMAL, Examples: [793.0, 7984.0, 2500.0]),(Population:INTEGER, Examples: [103000, 22720000, 12878000]),(Region:CHAR, Examples: [Caribbean]),(GNP:DECIMAL, Examples: [828.0, 5976.0, 6648.0]),(SurfaceArea:DECIMAL, Examples: [193.0, 652090.0, 1246700.0]),(GovernmentForm:CHAR, Examples: [Nonmetropolitan Territory of The Netherlands]),(LocalName:CHAR, Examples: [Aruba]),(Code:CHAR, Primary Key, Examples: [ABW, AFG, AGO]),(Capital:INTEGER, Examples: [129, 1, 56]),(IndepYear:SMALLINT, Examples: [1919, 1975, 1912]),(Code2:CHAR, Examples: [AW, AF, AO])]# Table: city[(ID:INTEGER, Primary Key, Examples: [129, 1, 2]),(Population:INTEGER, Examples: [1780000, 237500, 186800]),(District:CHAR, Examples: [Kabol, Qandahar, Herat]),(CountryCode:CHAR, Examples: [ABW, AFG, AGO]),(Name:CHAR, Examples: [Kabul, Qandahar, Herat])]【Foreign keys】city.CountryCode=country.Codecountrylanguage.CountryCode=country.Code【问题】中国在哪个洲?<|im_end|><|im_start|>user用户的问题是: 中国在哪个洲?<|im_end|><|im_start|>assistant

从源码中也可以找到:

0

查看mysql数据库:

0

[更多相关内容关注公从号"快乐王子AI说" ]--同步公众号 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值