新闻详情

新闻详情

首页 / 资讯中心 / 详情

MCP 怎么接大模型?Model Context Protocol 接入教程

发布时间:2026/10/7 17:23:25来源:尧图网络
MCP 怎么接大模型?Model Context Protocol 接入教程
MCP 怎么接大模型Model Context Protocol 接入教程Agent 想读文件、查数据库、调内部接口早期每个工具都得自己写一套适配代码。MCPModel Context Protocol把「模型 ↔ 工具」的协议统一了只要工具实现了 MCP server任何支持 MCP 的客户端都能直接用。这篇文章讲怎么在应用里接上 MCP server让大模型调起真实工具。MCP 在架构里的位置大模型 ↑ 函数调用function calling 应用客户端把 MCP 工具转成函数 schema ↑ MCP 协议 MCP server文件系统 / 数据库 / 内部 API …MCP server 暴露三类能力tools可执行的动作、resources可读取的数据、prompts预设提示。我们最常用的是 tools。环境准备pipinstallmcp openai# 以官方 filesystem server 为例pipinstallmcp-server-filesystem启动一个文件系统 MCP serverstdio 方式# 让 server 能访问 /data 目录python-mmcp_server_filesystem /data客户端列出工具并转成函数 schemaimportasynciofrommcpimportClientSession,StdioServerParametersfrommcp.client.stdioimportstdio_clientasyncdeflist_tools():server_paramsStdioServerParameters(commandpython,args[-m,mcp_server_filesystem,/data],)asyncwithstdio_client(server_params)as(read,write):asyncwithClientSession(read,write)assession:awaitsession.initialize()toolsawaitsession.list_tools()fortintools.tools:print(t.name,→,t.description)returntools.tools toolsasyncio.run(list_tools())把工具交给大模型调用拿到工具后转成 OpenAI 的函数定义让模型决定什么时候调fromopenaiimportOpenAIdefto_function_schema(tool):return{type:function,function:{name:tool.name,description:tool.descriptionor,parameters:tool.inputSchema,},}clientOpenAI(api_keyYOUR_API_KEY,base_urlYOUR_BASE_URL)messages[{role:user,content:把 /data/report.txt 的前 5 行读出来}]respclient.chat.completions.create(modelYOUR_MODEL,messagesmessages,tools[to_function_schema(t)fortintools],)执行模型选中的工具再把结果喂回去importjson tool_callresp.choices[0].message.tool_calls[0]nametool_call.function.name argsjson.loads(tool_call.function.arguments)# 真正执行 MCP 工具asyncdefcall_tool(name,args):server_paramsStdioServerParameters(commandpython,args[-m,mcp_server_filesystem,/data])asyncwithstdio_client(server_params)as(read,write):asyncwithClientSession(read,write)assession:awaitsession.initialize()returnawaitsession.call_tool(name,args)resultasyncio.run(call_tool(name,args))# 把工具结果回传给模型让它生成最终回答messages.append(resp.choices[0].message)messages.append({role:tool,tool_call_id:tool_call.id,content:str(result.content),})finalclient.chat.completions.create(modelYOUR_MODEL,messagesmessages)print(final.choices[0].message.content)Agent 循环多轮工具调用真实 Agent 会反复「模型选工具 → 执行 → 回传」直到模型不再调用工具whileTrue:respclient.chat.completions.create(modelYOUR_MODEL,messagesmessages,toolsfunction_schemas)msgresp.choices[0].messageifnotmsg.tool_calls:print(msg.content)breakmessages.append(msg)forcallinmsg.tool_calls:outasyncio.run(call_tool(call.function.name,json.loads(call.function.arguments)))messages.append({role:tool,tool_call_id:call.id,content:str(out.content)})安全工具别裸奔MCP 让模型能执行真实动作权限必须收口风险做法模型删库只暴露只读工具写操作加人工确认越权读文件server 根目录锁死禁止..逃逸工具参数注入校验参数类型与范围无限循环限制最大工具调用轮数快速排错表问题可能原因解决方法连不上 server命令/路径错先本地手动起 server工具列表为空没 initialize调用前session.initialize()模型不调工具schema 描述差写清名称与用途参数解析失败类型不符按 inputSchema 校验死循环无轮数上限限制最大调用次数执行报错权限不足检查 server 目录/账号结果太大返回超长工具侧截断再回传超时工具太慢设客户端超时配置检查清单检查项怎么确认server 能独立启动手动运行无报错工具 schema 清晰名称/描述/参数齐全权限最小化只读优先、写操作确认轮数有上限防止无限循环参数校验类型与范围都检查结果截断大返回先裁剪超时设置慢工具不卡死日志留痕每次调用可回溯MCP 的价值是把「接工具」从体力活变成标准协议。客户端负责把 MCP 工具转成函数调用模型负责决定何时调用你负责把权限收口。三层各管各的Agent 就能稳稳跑起来。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/10/6 15:16:42

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/10/7 8:13:40

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/10/6 15:18:24

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/10/6 16:48:59

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/10/7 12:13:57

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/10/6 16:58:56

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉