MCP协议从入门到实战:手把手搭建AI Agent工具调用系统
MCP协议从入门到实战手把手搭建AI Agent工具调用系统一、背景为什么需要MCP说实话半年前我第一次接触AI Agent开发的时候最头疼的问题不是模型能力不够而是怎么让AI碰到真实世界。你想啊大模型再强它也只是一个会说话的脑子。你想让它查数据库、发邮件、调用API它做不到。除非你给它写一堆工具函数然后手动编排调用逻辑。但问题来了——每个Agent都要重新写一套工具集成每换一个模型就要重新适配API。这活儿干一次还行干十次就真的想骂人了。MCPModel Context Protocol就是来解决这个问题的。它是由Anthropic提出的一种开放协议目的是让AI模型和外部工具之间有一个标准化的通信方式。说白了就是给AI装一个USB接口你想插什么工具就插什么。二、MCP核心概念MCP的核心就三个东西Client、Server、Tool。2.1 Client客户端Client是宿主也就是运行AI模型的地方。它可以是一个CLI工具、一个IDE插件、或者一个Web应用。Client负责连接MCP Server把Server暴露的工具列表告诉模型把模型的工具调用请求转发给Server把Server的返回结果送回给模型2.2 Server服务器Server是工具提供方。每个MCP Server可以暴露一个或多个工具。比如一个文件系统Server可以提供读写文件、列目录等工具。2.3 Tool工具Tool是具体的能力单元。一个工具包含名称name描述description输入参数定义input schema执行函数handlermcp.tool()asyncdefsearch_web(query:str,max_results:int5)-str:搜索互联网并返回结果resultsawaitweb_search(query,max_results)returnformat_results(results)三、环境准备在开始之前你需要准备以下环境组件版本要求备注Python 3.10推荐3.12Node.js 18运行MCP Inspectorpip最新版安装Python包# 安装MCP Python SDKpipinstallmcp# 安装MCP CLI工具npminstall-gmodelcontextprotocol/inspector四、实战搭建一个文件搜索Agent接下来我们手写一个实战案例一个能搜索本地文件的AI Agent。4.1 创建MCP Server# file_search_server.pyfrommcp.serverimportServer,NotificationOptionsfrommcp.server.modelsimportInitializationOptionsimportmcp.server.stdioimportmcp.typesastypesimportosimportfnmatch# 创建Server实例serverServer(file-search)server.list_tools()asyncdefhandle_list_tools()-list[types.Tool]:return[types.Tool(namefind_files,description在指定目录中搜索文件支持通配符,inputSchema{type:object,properties:{directory:{type:string,description:要搜索的目录路径},pattern:{type:string,description:文件通配符模式如 *.py},max_results:{type:integer,description:最大返回结果数,default:20}},required:[directory,pattern]})]server.call_tool()asyncdefhandle_call_tool(name:str,arguments:dict)-list[types.TextContent]:ifnamefind_files:directoryarguments[directory]patternarguments[pattern]max_resultsarguments.get(max_results,20)results[]forroot,dirs,filesinos.walk(directory):forfilenameinfnmatch.filter(files,pattern):full_pathos.path.join(root,filename)results.append(full_path)iflen(results)max_results:breakiflen(results)max_results:breakreturn[types.TextContent(typetext,textf找到{len(results)}个匹配文件:\n\n.join(results))]raiseValueError(f未知工具:{name})asyncdefmain():asyncwithmcp.server.stdio.stdio_server()as(read_stream,write_stream):awaitserver.run(read_stream,write_stream,InitializationOptions(server_namefile-search,server_version1.0.0,capabilitiesserver.get_capabilities(notification_optionsNotificationOptions(),experimental_capabilities{},),),)if__name____main__:importasyncio asyncio.run(main())4.2 启动Server并测试# 启动MCP Serverpython file_search_server.py# 在另一个终端中用MCP Inspector测试npx modelcontextprotocol/inspector python file_search_server.py这样你就有了一个可以通过MCP协议暴露的文件搜索工具。任何支持MCP的AI Client都可以调用它。五、将MCP接入Claude Code如果你在用Claude Code只需要在配置文件里注册MCP Server// claude_desktop_config.json{mcpServers:{file-search:{command:python,args:[path/to/file_search_server.py]}}}重启Claude Code后它就能自动发现并调用file_search工具了。你可以直接说帮我找一下最近修改的Python文件Claude会自己调用find_files工具来完成。六、常见问题Q: MCP和Function Calling有什么区别A: Function Calling是模型的能力MCP是工具通信协议。两者是互补关系——MCP定义怎么暴露工具Function Calling定义模型怎么调用工具。Q: 一个Server可以暴露多个工具吗A: 可以在handle_list_tools里返回多个Tool对象就行。Q: MCP支持流式输出吗A: 支持。MCP协议支持text streamingServer可以逐步返回结果。Q: 安全性如何A: 每个Server都在独立的进程中运行Client控制权限。建议不要以root权限运行MCP Server。七、总结MCP协议让AI Agent的工具集成变得标准化了。你不用再为每个框架写一套工具适配层一套MCP Server走天下。说实话这玩意儿虽然刚出来不久但生态已经起来了——从文件系统到数据库到浏览器各种MCP Server层出不穷。下一步你可以试试自己写一个MCP Server连上你常用的内部API在MCP Hub上找别人写好的Server把MCP集成到你自己的AI应用里有问题欢迎在评论区留言一起交流。

相关新闻

GESP2026年6月认证C++一级( 第三部分编程题(2、交税))精讲

GESP2026年6月认证C++一级( 第三部分编程题(2、交税))精讲

本题考察了同学们的循环、判断、浮点数、累加统计等多个知识点,是一级编程题中比较有代表性的一道综合题。题目要求根据每个月的劳务报酬,计算全年应预交个税总额,也很有实践意义。第三部分 编程题第二题《税务小助手——帮小杨计算全年预交个…

2026/7/7 17:52:17 阅读更多 →
2026国内数字孪生头部企业TOP5:空间智能、平台能力与行业落地分析

2026国内数字孪生头部企业TOP5:空间智能、平台能力与行业落地分析

2026年,国内数字孪生行业已经从概念普及期进入规模化落地阶段。企业选型时,不能只看三维画面是否精细,也不能只看大屏展示是否震撼,更要关注平台是否具备空间智能、数据融合、仿真推演、国产化适配、AI融合和行业闭环能力。站在行…

2026/7/7 17:52:17 阅读更多 →
Runway三款AI视频生成模型对比:从场景选择到实战避坑指南

Runway三款AI视频生成模型对比:从场景选择到实战避坑指南

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 1. 先搞清楚这三款模型到底解决什么实际问题 如果你关注AI视频生成领域,最近Runway推出的Seedance 4K、Seedance Mini和K…

2026/7/7 17:52:17 阅读更多 →

最新新闻

AD5593R与PIC32MZ的混合信号系统设计与实践

AD5593R与PIC32MZ的混合信号系统设计与实践

1. AD5593R与PIC32MZ1024EFK144的硬件协同设计AD5593R这颗芯片最吸引人的地方在于它的多功能引脚配置——8个I/O引脚可以独立配置为12位DAC输出、12位ADC输入、数字输出或数字输入。我在实际项目中经常用它来替代传统的独立ADC和DAC芯片组合,特别是在空间受限的嵌入…

2026/7/7 19:10:38 阅读更多 →
力扣1008:前序重建BST

力扣1008:前序重建BST

力扣 1008 题解析与 C 代码 一、问题解析题目描述:给定一个整数数组 preorder,表示二叉搜索树(BST)的前序遍历结果,请重建该二叉搜索树并返回其根节点。题目保证对于给定的测试用例,总能找到一棵二叉搜索树…

2026/7/7 19:06:38 阅读更多 →
Donau集群环境变量配置指南:SLURM_*变量到Donau的完美转换

Donau集群环境变量配置指南:SLURM_*变量到Donau的完美转换

Donau集群环境变量配置指南:SLURM_*变量到Donau的完美转换 【免费下载链接】donau-slurm-wrappers donau-slurm-wrappers provide some scripts for Slurm Users to submit and manage jobs in Donau cluster environment 项目地址: https://gitcode.com/openeule…

2026/7/7 19:06:37 阅读更多 →
OpenSSL漏洞修复与版本升级:保障系统安全的关键步骤

OpenSSL漏洞修复与版本升级:保障系统安全的关键步骤

OpenSSL漏洞修复与版本升级:保障系统安全的关键步骤 【免费下载链接】openssl 项目地址: https://gitcode.com/openeuler/openssl 前往项目官网免费下载:https://ar.openeuler.org/ar/ OpenSSL作为开源的加密库,广泛应用于各种系统和…

2026/7/7 19:06:37 阅读更多 →
终极鸣潮游戏模组指南:解锁无限游戏体验的完整教程

终极鸣潮游戏模组指南:解锁无限游戏体验的完整教程

终极鸣潮游戏模组指南:解锁无限游戏体验的完整教程 【免费下载链接】wuwa-mod Wuthering Waves pak mods 项目地址: https://gitcode.com/GitHub_Trending/wu/wuwa-mod 还在为《鸣潮》游戏中的技能冷却、体力限制和繁琐操作而烦恼吗?WuWa-Mod作为…

2026/7/7 19:06:37 阅读更多 →
物联网Node-Red开发教程-第2章工作界面与流程基础

物联网Node-Red开发教程-第2章工作界面与流程基础

第2章 工作界面与流程基础 学习目标 熟悉 Node-RED 编辑器的四大区域布局 独立完成第一个 Hello World 流程 深入理解消息对象 msg 的结构和属性 掌握节点端口与连线的规则 学会流程的导入导出和日常管理操作 2.1 编辑器布局 Node-RED 的编辑器是一个基于 Web 的界面,打开 ht…

2026/7/7 19:04:37 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/7 14:24:45 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/7 15:59:06 阅读更多 →

月新闻