不写一行代码,用MCP+魔搭API-Inference 搭建一个本地数据助手! 附所有工具和清单

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,100CU*H 3个月
简介: 还在为大模型开发的复杂技术栈、框架不兼容和工具调用问题头疼吗?MCP(Model Context Protocol servers)来拯救你了!它用统一的技术栈、兼容主流框架和简化工具调用的方式,让大模型开发变得简单高效。

00.引言

还在为大模型开发的复杂技术栈、框架不兼容和工具调用问题头疼吗?MCP(Model Context Protocol servers)来拯救你了!它用统一的技术栈、兼容主流框架和简化工具调用的方式,让大模型开发变得简单高效。

本文将带你学习一下MCP是什么,以及如何用MCP打造一个数据助手,用自然语言与数据库交互。

01.MCP是什么

MCP,全称是“模型上下文协议”(Model Context Protocol),是Anthropic开源的一个标准协议。打个比方,它就像是AI世界的“USB-C”接口。你知道USB-C吧?一根线就能连接手机、电脑、充电器,超级方便。MCP的作用也差不多,它让AI模型(比如Claude)可以轻松地跟外部的数据源和工具连接起来,比如数据库、文件系统、API等等。 MCP 帮助您在大型语言模型(LLMs)的基础上构建智能代理和复杂的工作流程。大型语言模型通常需要与数据和工具进行集成,而 MCP 提供了以下功能:

  • 一个不断扩展的预构建集成列表,您的 LLM 可以直接接入使用
  • 基于标准的模型上下文协议,可以方便的切换不同的LLM
  • 数据更加安全

MCP的核心架构

这张图展示了MCP的核心架构:host,client和server是独立的。host可以是客户端或者APP,client建立起跟server的连接,而server实现对data、resource的封装,可以看成工具调用。

MCP Hosts: 例如 Claude Desktop、集成开发环境(IDE)或希望通过 MCP 访问数据的 AI 工具等程序

MCP Clients: 协议客户端,负责和大模型进行输入输出交互

MCP Server: 协议服务端,负责和外部服务进行交互,暴露外部服务的接口,并且和客户端进行通信

Local Data Resource: 本地的文件,数据等

Remote Resource: 远程的服务,可以通过Server连接

MCP在数据开发上的优势

做过数据开发或者数据应用的同学都肯定被一堆问题困扰过,特别的是数据和模型的部署问题,数据在本地,模型在哪里?应用在哪里?很多时候我们的数据因为安全问题无法上云,只能在本地或者私有环境中,但模型很多时候在云上,而且我们还需要准备环境部署应用层代码。

而现在,MCP可以帮助你解决这个困扰。通过几个问题,我们来对比一下使用或者不使用MCP的情况下数据助手的开发和部署方案。

问题

不用MCP

用MCP

接入模型去做text-to-sql

自己去接入大模型平台

不用管,server封装了

接入数据schema帮助模型理解

在应用层手动开发一个适配器,从数据库拉schema

不用管,server封装了

前端与展示

开发一个前端页面,或者用gradio简单做一个

不用管,有用开源的应用

后端的开发

需要开发一个web服务,连接大模型,连接数据库

不用管,不需要后端服务

支持私有化?

需要完全开发一套,并且在本地使用ollama或者vllm接入模型

不用管,server封装了

支持agent和跟其他模型功能集成?

非常难搞,无法支持

非常简单,直接接入其他MCP server就好

02.让我们构建一个数据集助手吧

我们在本地机器上构建数据助手,调用云上的模型,处理本地机器的数据。

本地开发环境:

-Macbook M3 Pro

-MySQL 5.8 (需要在本地有个数据库,如果没有的话可以提前装上mysql并构建一个虚拟的数据库)

准备一个MCP数据服务

我们需要一个MCP服务把数据库接入进来,现在有非常多的MCP server都可以帮我连接数据库,比如社区在维护的MCP server[1]、MCP server的平台(Smithery.AI[2]、MCP.run[3]),但基本上都只是提供了一个SQL执行接口。

为了更好的工具调用效果,选择支持自然语言接口的析言MCP服务(Xiyan-mcp-server[4]),可以用自然语言访问数据库,并从数据库获得答案,是当前Test-to-SQL公开基准上的SOTA。

step1: 如何安装和启动析言MCP数据服务

  • 安装xiyan-mcp-server

在终端上运行以下命令

pip install xiyan-mcp-server
  • 配置模型和数据库

需要将两类配置信息写入配置文件config.yml,模型配置(LLM )和数据库配置(Database)。

模型配置:魔搭上部署了XiYanSQL-QwenCoder-32B——xiyan_mcp_server官方提供的专属模型——的推理服务,在该模型页面[5](右侧的推理API- Inference部分),可找到配置信息(name、key、url)。

数据库配置:默认本地有mysql数据库,数据库的配置信息包括:本地数据库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"

将这个配置文件放在本地(假设为/path/to/config.yml)

step2: 如何使用mcp inspector调试服务

选择mcp inspector[6]作为调试器

  • 在终端安装node.js
brew install node
  • 用终端启动inspector
npx @modelcontextprotocol/inspector -e YML= /path/to/config.yml python -m xiyan_mcp_server

这个inspector会直接在本地拉起一个web服务供调试用,地址在http://localhost:5173

  • 打开inspector web服务,点击connect,绿灯亮起表示已连接

  • 切换到tools页面,点击list tools会跳出来文本到sql的工具

  • 点击get_data_via_natural_language工具,用自然语言取个数据看看

输入问题“查询年龄16岁以上的邮箱”,点击“run tool”

输出是个markdown格式的数据

| email |
| --- |
| alice@example.com |
| bob@example.com |
| charlie@example.com |

准备一个客户端

为了更方便交互,我们找一个客户端来调用后台的数据服务。目前有非常多支持MCP的客户端,比如开源的MCP的client[7]、闭源的claude desktop等等。这里我们选用的是goose,这是一个开源的支持MCP的client,原生支持MacOS。

step1: 如何在本地安装配置goose

  • goose[8]下载与安装

下载地址:

https://block.github.io/goose/docs/quickstart/

下载后根据提示一步步安装即可。

step2: 在goose后台配置LLM模型

为了能用起来chat,需要找一个大语言模型API。我们选择用通义千问2.5-72B-Instruct[9],魔搭社区上提供了兼容OpenAI接口的推理API,只需要在后台配置endpoint就好。

  • 在标签栏点击Goose- setting进入到设置页

  • 新增OpenAI的模型:Models——Browse——AddModel

这里我们选用通义千问2.5-72B的模型[9],模型名字填Qwen/Qwen2.5-72B-Instruct即可。

  • 配置模型endpoint和key: Models——Browse——Configure——OpenAI——“+”号

第一栏:Key从https://www.modelscope.cn/my/myaccesstoken 页面获取。

第二栏:通义千问2.5-72B的模型直接填“https://api-inference.modelscope.cn/” 。

第三栏:用默认的即可。

step3: 添加xiyan_mcp_server拓展

  • 点击Extensions——Add custon extension

  • 在拓展参数上填入启动命令,ID、Name和Description的内容自定义即可。

step4: 开启新的会话测试

回到goose主页面,新开一个会话测试,比如在会话栏输入“查询年龄16岁以上的邮箱”

03.用新建的数据助手处理真实的数据库

我从云端拷贝了一份真正的数据库到本地,测试了更多问题,具体请看图。

image.png

依靠MCP的强大框架和各种开源工具,我们实现了没写一行代码就轻松搭建了一个完善的数据助手 ,可以用自然语言从数据库取数。未来甚至可以接入更多MCP,做更多更全面更有深度的数据分析,简直太棒啦!

04.参考的网站

[1] awesome mcp server

https://github.com/punkpeye/awesome-mcp-servers

[2]Smithery.AI

https://smithery.ai

[3] MCP.run

https://www.mcp.run/

[4] xiyan-mcp-server

https://github.com/XGenerationLab/xiyan_mcp_server

[5] XiYanSQL-QwenCoder-32B-2412

https://www.modelscope.cn/models/XGenerationLab/XiYanSQL-QwenCoder-32B-2412

[6]MCP inspector

https://github.com/modelcontextprotocol/inspector

[7] awesome mcp client

https://github.com/punkpeye/awesome-mcp-clients

[8] goose

https://github.com/block/goose

[9] Qwen2.5-72B-Instruct

https://www.modelscope.cn/models/Qwen/Qwen2.5-72B-Instruct

点击链接阅读原文,可跳转模型链接~

通义千问2.5-72B-Instruct

目录
相关文章
|
11天前
|
JSON 安全 Java
什么是用于REST API的JWT Bearer令牌以及如何通过代码和工具进行调试
在Web开发中,保护REST API至关重要,而JSON Web令牌(JWT)特别是JWT Bearer令牌,是一种高效方法。它通过紧凑、自包含的结构实现安全信息交换,提升用户体验。本文探讨JWT Bearer的基本概念、结构与实现,包括在Java中的应用步骤,以及使用Apipost和cURL进行测试的方法。JWT优势明显:无状态、互操作性强,适用于分布式系统。掌握JWT Bearer,可助开发者构建更安全、高效的API解决方案。
|
20天前
|
XML JSON API
淘宝商品详情API的调用流程(python请求示例以及json数据示例返回参考)
JSON数据示例:需要提供一个结构化的示例,展示商品详情可能包含的字段,如商品标题、价格、库存、描述、图片链接、卖家信息等。考虑到稳定性,示例应基于淘宝开放平台的标准响应格式。
|
1月前
|
存储 供应链 监控
1688商品数据实战:API搜索接口开发与供应链分析应用
本文详细介绍了如何通过1688开放API实现商品数据的获取与应用,涵盖接入准备、签名流程、数据解析存储及商业化场景。开发者可完成智能选品、价格监控和供应商评级等功能,同时提供代码示例与问题解决方案,确保法律合规与数据安全。适合企业开发者快速构建供应链管理系统。
|
10天前
|
人工智能 JSON API
0代码将存量 API 适配 MCP 协议
本文主要讲述通过 Nacos+Higress 的方案实现0代码改造将 Agent 连接到存量应用,能够显著降低存量应用的改造成本。
241 40
0代码将存量 API 适配 MCP 协议
|
11天前
|
人工智能 API 开发工具
GitHub官方开源MCP服务!GitHub MCP Server:无缝集成GitHub API,实现Git流程完全自动化
GitHub MCP Server是基于Model Context Protocol的服务器工具,提供与GitHub API的无缝集成,支持自动化处理问题、Pull Request和仓库管理等功能。
209 2
GitHub官方开源MCP服务!GitHub MCP Server:无缝集成GitHub API,实现Git流程完全自动化
|
2天前
|
前端开发 测试技术 API
2025年API开发必备:10款优秀Postman替代工具大盘点
API测试在现代开发中至关重要,Postman虽为首选,但市场上涌现出许多优秀替代工具。本文精选2025年10款好评如潮的API测试工具:Apifox、Insomnia、Hoppscotch、Paw、Talend API Tester、HTTPie、ARC、Swagger UI、SoapUI和Thunder Client。这些工具各具特色,满足不同需求,如团队协作、开源易用、自动化测试等。无论是简洁轻量还是功能全面,总有一款适合你的团队,助力效率提升。
|
18天前
|
存储 人工智能 API
离线VS强制登录?Apipost与Apifox的API工具理念差异深度解析
在代码开发中,工具是助手还是枷锁?本文通过对比Apipost和Apifox在断网环境下的表现,探讨API工具的选择对开发自由度的影响。Apifox强制登录限制了离线使用,而Apipost支持游客模式与本地存储,尊重开发者数据主权。文章从登录策略、离线能力、协作模式等方面深入分析,揭示工具背后的设计理念与行业趋势,帮助开发者明智选择,掌握数据控制权并提升工作效率。
|
10天前
|
数据采集 搜索推荐 API
Python 原生爬虫教程:京东商品列表页面数据API
京东商品列表API是电商大数据分析的重要工具,支持开发者、商家和研究人员获取京东平台商品数据。通过关键词搜索、分类筛选、价格区间等条件,可返回多维度商品信息(如名称、价格、销量等),适用于市场调研与推荐系统开发。本文介绍其功能并提供Python请求示例。接口采用HTTP GET/POST方式,支持分页、排序等功能,满足多样化数据需求。
|
17天前
|
人工智能 数据可视化 API
开箱即用的可视化AI应用编排工具 Langflow,可调用魔搭免费API作为tool
ModelScope 社区基于优秀的开源可视化AI应用编排工具 Langflow 搭建了创空间,以方便社区开发者基于社区开源模型及免费魔搭 API-Inference,快速创建Agent应用、RAG应用并将其部署为API服务。
158 14
|
10天前
|
安全 Java API
什么是用于 REST API 的 Bearer Token以及如何通过代码和工具进行调试
Bearer Token 是一种基于 OAuth 2.0 的身份验证机制,广泛应用于 REST API 的授权访问中。它通过在 HTTP 请求头中传递令牌,确保用户凭据安全传输并验证。本文深入解析了 Bearer Token 的概念、实现步骤及调试方法,包括其无状态特性、灵活性与安全性优势。同时,提供了 Java 实现示例和使用 Apipost、cURL 等工具测试的实践指导,帮助开发者掌握这一核心技能,保障 API 系统的安全与高效运行。

热门文章

最新文章