
如何在 Apifox 中發(fā)布多語言的 API 文檔?
MCP Hosts: 例如 Claude Desktop、集成開發(fā)環(huán)境(IDE)或希望通過 MCP 訪問數(shù)據(jù)的 AI 工具等程序
MCP Clients: 協(xié)議客戶端,負(fù)責(zé)和大模型進(jìn)行輸入輸出交互
MCP Server: 協(xié)議服務(wù)端,負(fù)責(zé)和外部服務(wù)進(jìn)行交互,暴露外部服務(wù)的接口,并且和客戶端進(jìn)行通信
Local Data Resource: 本地的文件,數(shù)據(jù)等
Remote Resource: 遠(yuǎn)程的服務(wù),可以通過Server連接
做過數(shù)據(jù)開發(fā)或者數(shù)據(jù)應(yīng)用的同學(xué)都肯定被一堆問題困擾過,特別的是數(shù)據(jù)和模型的部署問題,數(shù)據(jù)在本地,模型在哪里?應(yīng)用在哪里?很多時(shí)候我們的數(shù)據(jù)因?yàn)榘踩珕栴}無法上云,只能在本地或者私有環(huán)境中,但模型很多時(shí)候在云上,而且我們還需要準(zhǔn)備環(huán)境部署應(yīng)用層代碼。
而現(xiàn)在,MCP可以幫助你解決這個(gè)困擾。通過幾個(gè)問題,我們來對比一下使用或者不使用MCP的情況下數(shù)據(jù)助手的開發(fā)和部署方案。
問題 | 不用MCP | 用MCP |
接入模型去做text-to-sql | 自己去接入大模型平臺 | 不用管,server封裝了 |
接入數(shù)據(jù)schema幫助模型理解 | 在應(yīng)用層手動(dòng)開發(fā)一個(gè)適配器,從數(shù)據(jù)庫拉schema | 不用管,server封裝了 |
前端與展示 | 開發(fā)一個(gè)前端頁面,或者用gradio簡單做一個(gè) | 不用管,有用開源的應(yīng)用 |
后端的開發(fā) | 需要開發(fā)一個(gè)web服務(wù),連接大模型,連接數(shù)據(jù)庫 | 不用管,不需要后端服務(wù) |
支持私有化? | 需要完全開發(fā)一套,并且在本地使用ollama或者vllm接入模型 | 不用管,server封裝了 |
支持agent和跟其他模型功能集成? | 非常難搞,無法支持 | 非常簡單,直接接入其他MCP server就好 |
我們在本地機(jī)器上構(gòu)建數(shù)據(jù)助手,調(diào)用云上的模型,處理本地機(jī)器的數(shù)據(jù)。
本地開發(fā)環(huán)境:
-Macbook M3 Pro
-MySQL 5.8 (需要在本地有個(gè)數(shù)據(jù)庫,如果沒有的話可以提前裝上mysql并構(gòu)建一個(gè)虛擬的數(shù)據(jù)庫)
我們需要一個(gè)MCP服務(wù)把數(shù)據(jù)庫接入進(jìn)來,現(xiàn)在有非常多的MCP server都可以幫我連接數(shù)據(jù)庫,比如社區(qū)在維護(hù)的MCP server[1]、MCP server的平臺(Smithery.AI[2]、MCP.run[3]),但基本上都只是提供了一個(gè)SQL執(zhí)行接口。
為了更好的工具調(diào)用效果,選擇支持自然語言接口的析言MCP服務(wù)(Xiyan-mcp-server[4]),可以用自然語言訪問數(shù)據(jù)庫,并從數(shù)據(jù)庫獲得答案,是當(dāng)前Test-to-SQL公開基準(zhǔn)上的SOTA。
在終端上運(yùn)行以下命令
pip install xiyan-mcp-server
需要將兩類配置信息寫入配置文件config.yml,模型配置(LLM )和數(shù)據(jù)庫配置(Database)。
模型配置:魔搭上部署了XiYanSQL-QwenCoder-32B——xiyan_mcp_server官方提供的專屬模型——的推理服務(wù),在該模型頁面[5](右側(cè)的推理API- Inference部分),可找到配置信息(name、key、url)。
數(shù)據(jù)庫配置:默認(rèn)本地有mysql數(shù)據(jù)庫,數(shù)據(jù)庫的配置信息包括:本地?cái)?shù)據(jù)庫host、port、username、password和database名字。
整體的配置如下:
model:
name: "XGenerationLab/XiYanSQL-QwenCoder-32B-2412"
key: "xxxx" # key可從https://www.modelscope.cn/my/myaccesstoken 頁面獲取
url: "https://api-inference.modelscope.cn/v1/"
database:
host: "localhost"
port: 3306
user: "root"
password: "123456"
database: "mydb"
將這個(gè)配置文件放在本地(假設(shè)為/path/to/config.yml)
選擇mcp inspector[6]作為調(diào)試器
brew install node
npx @modelcontextprotocol/inspector -e YML= /path/to/config.yml python -m xiyan_mcp_server
這個(gè)inspector會(huì)直接在本地拉起一個(gè)web服務(wù)供調(diào)試用,地址在http://localhost:5173
輸入問題“查詢年齡16歲以上的郵箱”,點(diǎn)擊“run tool”
輸出是個(gè)markdown格式的數(shù)據(jù)
email |
| --- |
| alice@example.com |
| bob@example.com |
| charlie@example.com
為了更方便交互,我們找一個(gè)客戶端來調(diào)用后臺的數(shù)據(jù)服務(wù)。目前有非常多支持MCP的客戶端,比如開源的MCP的client[7]、閉源的claude desktop等等。這里我們選用的是goose,這是一個(gè)開源的支持MCP的client,原生支持MacOS。
下載地址:
https://block.github.io/goose/docs/quickstart/
下載后根據(jù)提示一步步安裝即可。
為了能用起來chat,需要找一個(gè)大語言模型API。我們選擇用通義千問2.5-72B-Instruct[9],魔搭社區(qū)上提供了兼容OpenAI接口的推理API,只需要在后臺配置endpoint就好。
這里我們選用通義千問2.5-72B的模型[9],模型名字填Qwen/Qwen2.5-72B-Instruct即可。
第一欄:Key從https://www.modelscope.cn/my/myaccesstoken 頁面獲取。
第二欄:通義千問2.5-72B的模型直接填“https://api-inference.modelscope.cn/” 。
第三欄:用默認(rèn)的即可。
step3: 添加xiyan_mcp_server拓展
回到goose主頁面,新開一個(gè)會(huì)話測試,比如在會(huì)話欄輸入“查詢年齡16歲以上的郵箱”
我從云端拷貝了一份真正的數(shù)據(jù)庫到本地,測試了更多問題,具體請看圖。
依靠MCP的強(qiáng)大框架和各種開源工具,我們實(shí)現(xiàn)了沒寫一行代碼就輕松搭建了一個(gè)完善的數(shù)據(jù)助手 ,可以用自然語言從數(shù)據(jù)庫取數(shù)。未來甚至可以接入更多MCP,做更多更全面更有深度的數(shù)據(jù)分析,簡直太棒啦!
文章轉(zhuǎn)載自:不寫一行代碼,用MCP+魔搭A(yù)PI-Inference 搭建一個(gè)本地?cái)?shù)據(jù)助手! 附所有工具和清單
如何在 Apifox 中發(fā)布多語言的 API 文檔?
在 Golang 中實(shí)現(xiàn) JWT 令牌認(rèn)證
國產(chǎn)頂流AI大模型:比喻文案生成能力API測試效果對比
Claude API 能使用 OpenAI 接口協(xié)議嗎?
天貓商品數(shù)據(jù)爬取方案:官方API與非官方接口實(shí)戰(zhàn)
地圖開發(fā)者平臺對比:高德、百度、騰訊、必應(yīng)、天地圖等API
讓大模型“聯(lián)網(wǎng)”的第一步?手把手教你調(diào)用搜索API!
API接口安全—webservice、Swagger、WEBpack
從零開始認(rèn)識 API,讓網(wǎng)頁信息成為你的「知識庫」