【Agent学习笔记3:使用Python开发简单MCP服务】

使用 Python 开发 MCP Server 及 Inspector 工具详解 阅读详情

Agent学习笔记3:使用Python开发简单MCP服务

前言

在构建智能体应用时,让大语言模型与外部世界进行交互是一个核心需求。MCP(Model Context Protocol,模型上下文协议)提供了一种标准化的方式来实现这一目标。本文将通过一个实际的代码示例,带你快速掌握使用Python开发MCP服务的方法。

一、认识MCP协议

MCP是Anthropic推出的一种通信协议,专门用于连接大语言模型与外部工具、数据源。通过MCP,AI模型可以调用文件系统、数据库、Web API等各种外部资源,实现更强大的功能。

MCP的核心优势体现在三个方面。首先是标准化,它提供了统一的协议规范,使不同来源的工具可以无缝集成。其次是安全性,通过受控的工具调用机制,避免AI模型直接访问敏感资源。第三是可扩展性,支持动态注册和发现工具,易于扩展新的功能。

MCP采用经典的客户端-服务器架构。服务端负责提供各种工具,执行实际的功能逻辑;客户端负责管理连接,将用户请求路由到相应的工具;大语言模型则负责理解用户意图,决定调用哪些工具并生成最终响应。

二、环境准备

在开始开发之前,我们需要准备Python环境并安装必要的依赖包。FastMCP是MCP协议的Python实现框架,我们需要通过pip进行安装:

pip install mcp requests python-dotenv

mcp包提供了FastMCP框架的核心功能,requests库用于调用外部API,python-dotenv用于管理环境变量。这些是开发MCP服务的基本依赖。

三、代码结构解析

让我们先看一下完整的代码结构,然后逐部分详细讲解:

from mcp.server.fastmcp import FastMCP
import requests
import os

# 从环境变量获取API密钥,确保安全性
AMAP_API_KEY = os.environ.get("AMAP_API_KEY", "")

mcp = FastMCP()

@mcp.tool()
def write_file(filename:str, content:str) -> str:
    """往文件文件中写入内容"""
    with open(f"D:/AITest/{filename}", "w", encoding="utf-8") as file:
        file.write(content)
    return f"文件{filename}写入成功"

@mcp.tool()
def get_weather(city:str) -> str:
    """查询某个城市或区县的天气"""
    if not AMAP_API_KEY:
        return "错误:未配置高德地图API密钥"
    
    url = f"https://restapi.amap.com/v3/weather/weatherInfo?city={city}&key={AMAP_API_KEY}&extensions=all"
    response = requests.get(url)
    return response.json()["forecasts"]

if __name__ == "__main__":
    mcp.settings.port = 8001
    mcp.run(transport='sse')

四、初始化FastMCP服务

代码的第一行导入了FastMCP框架的核心类,这是构建MCP服务的基础:

from mcp.server.fastmcp import FastMCP
import requests
import os

FastMCP框架的设计理念是让开发者专注于业务逻辑,而无需关心协议解析、请求路由等底层细节。框架提供了简洁的装饰器API,通过@mcp.tool()即可将普通函数注册为MCP工具。

初始化一个FastMCP实例作为服务的根对象:

mcp = FastMCP()

这个实例将承载所有的工具定义,并负责处理客户端的请求。

安全提示:为了保护敏感信息,建议将API密钥存储在环境变量中,而不是硬编码在代码里。通过os.environ.get()方式获取可以有效避免密钥泄露风险。

五、定义MCP工具

5.1 文件写入工具

工具是MCP服务的核心概念,每个工具代表一个可被AI模型调用的功能。文件写入工具演示了如何将文件系统操作封装为MCP工具:

@mcp.tool()
def write_file(filename:str, content:str) -> str:
    """往文件文件中写入内容"""
    with open(f"D:/AITest/{filename}", "w", encoding="utf-8") as file:
        file.write(content)
    return f"文件{filename}写入成功"

这个工具包含几个关键要素。@mcp.tool()装饰器将普通Python函数注册为MCP工具,FastMCP会自动处理协议层面的细节。函数参数使用了类型注解(filename:str和content:str),MCP框架会基于这些类型注解生成参数模式定义,帮助大模型理解参数的类型约束。文档字符串描述了工具的用途,这是大模型判断是否应该调用该工具的重要依据。函数返回一个字符串,表示操作结果,会被传递回调用方。

安全提示:在实际应用中,文件操作工具需要特别注意安全性。建议限制可写入的目录范围,对文件名进行校验,防止路径遍历攻击。

5.2 天气查询工具

天气查询工具展示了MCP如何封装外部API调用:

@mcp.tool()
def get_weather(city:str) -> str:
    """查询某个城市或区县的天气"""
    if not AMAP_API_KEY:
        return "错误:未配置高德地图API密钥"
    
    url = f"https://restapi.amap.com/v3/weather/weatherInfo?city={city}&key={AMAP_API_KEY}&extensions=all"
    response = requests.get(url)
    return response.json()["forecasts"]

这个工具的实现流程很清晰:首先检查API密钥是否配置,然后接收城市名称作为参数,构建高德地图天气API的请求URL,接着发起HTTP GET请求获取天气数据,最后解析JSON响应并返回预报信息。

通过这个例子可以看到,MCP工具可以封装任意复杂的业务逻辑,包括调用第三方API、操作数据库、访问文件系统等。这种封装方式使得AI模型可以透明地使用这些功能,无需了解底层的实现细节。

安全提示:工具函数中应该包含适当的参数验证和错误处理逻辑,确保在异常情况下也能安全地返回信息,而不是暴露敏感的内部细节。

六、启动MCP服务

服务端的启动配置体现了MCP的灵活性:

if __name__ == "__main__":
    mcp.settings.port = 8001
    mcp.run(transport='sse')

这段代码使用SSE传输模式在端口8001上启动服务。SSE(Server-Sent Events,服务器发送事件)是一种基于HTTP的技术,允许服务器主动向客户端推送数据。相比另一种传输方式STDIO(标准输入输出),SSE支持跨网络访问,适合远程部署场景。

FastMCP支持三种传输方式,各有适用场景。STDIO方式通过标准输入输出进行进程间通信,适用于本地工具集成,延迟最低,不需要网络配置。SSE方式通过HTTP长连接实现双向通信,适合远程服务部署,可以被网络中的其他机器访问。
它们分别对应不同的应用场景:

🎯 三种核心传输方式详解

传输方式工作原理典型应用场景特点
stdio (标准输入输出)通过命令行启动服务,客户端与服务器进程通过管道进行双向通信。本地集成开发、桌面应用插件、与 CLI 工具深度绑定。简单、高效、低延迟,无需网络,适合紧密集成的本地环境。
SSE (Server-Sent Events)客户端发起一个持久的 HTTP 连接,服务器可以单向地、持续地向客户端推送数据流。需要服务器主动推送更新的场景,如实时日志、状态监控、AI 流式文本输出。单向实时流,协议轻量,适合需要“长连接”推送信息的 MCP 工具。
HTTP客户端与服务器通过离散的 HTTP 请求/响应进行通信,每次调用都是独立的。通用服务器、微服务架构、需要明确请求/响应的远程调用。最通用、最灵活,易于调试、负载均衡和跨网络调用,但每次交互都需要建立连接。

🔧 FastMCP 中的具体实现

当你使用 FastMCP 开发一个具体的工具服务器时,通常需要在代码中明确指定你希望该服务器使用哪种(或哪几种)传输方式来对外提供服务。

七、环境变量配置

为了安全地管理API密钥和其他敏感配置,我们使用环境变量。在项目根目录下创建.env文件:

# 高德地图API密钥
AMAP_API_KEY=your_api_key_here

# DeepSeek API密钥(用于客户端)
DEEPSEEK_API_KEY=your_deepseek_api_key_here

在代码中通过python-dotenv加载环境变量:

from dotenv import load_dotenv
load_dotenv()

AMAP_API_KEY = os.environ.get("AMAP_API_KEY")

安全最佳实践:

  1. 永远不要将包含真实密钥的.env文件提交到版本控制系统
  2. 在.gitignore中添加.env文件
  3. 为不同环境(开发、测试、生产)使用不同的配置
  4. 定期轮换API密钥

八、运行服务

启动MCP服务非常简单,只需运行脚本即可:

# 设置环境变量并启动服务
export AMAP_API_KEY=your_api_key_here  # Linux/Mac
# 或
$env:AMAP_API_KEY="your_api_key_here"  # Windows PowerShell

python mcp_server.py

服务启动后,会在指定端口监听SSE连接。当客户端连接并,服务会自动注册的所有请求工具列表时工具提供给客户端使用。

九、扩展建议

9.1 添加新工具

在现有代码基础上添加新工具非常方便,只需定义新的函数并使用@mcp.tool()装饰器即可:

@mcp.tool()
def read_file(filename: str) -> str:
    """读取文件内容"""
    try:
        with open(f"D:/AITest/{filename}", "r", encoding="utf-8") as file:
            return file.read()
    except FileNotFoundError:
        return f"文件{filename}不存在"
    except Exception as e:
        return f"读取文件时出错:{str(e)}"

9.2 参数验证

为了确保工具的健壮性,可以添加参数验证逻辑:

@mcp.tool()
def get_weather(city:str) -> str:
    """查询某个城市或区县的天气"""
    if not city or len(city.strip()) == 0:
        return "城市参数不能为空"
    
    # 限制城市名称长度,防止恶意输入
    if len(city.strip()) > 50:
        return "城市名称过长"
    
    # 过滤特殊字符,防止注入攻击
    if any(char in city for char in [";", "|", "&", "$"]):
        return "城市名称包含非法字符"
    
    # 原有逻辑...

9.3 工具调用日志记录

添加日志记录功能有助于监控和调试:

import logging

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

@mcp.tool()
def write_file(filename:str, content:str) -> str:
    """往文件文件中写入内容"""
    logger.info(f"执行写文件操作:{filename}")
    try:
        with open(f"D:/AITest/{filename}", "w", encoding="utf-8") as file:
            file.write(content)
        logger.info(f"文件写入成功:{filename}")
        return f"文件{filename}写入成功"
    except Exception as e:
        logger.error(f"文件写入失败:{str(e)}")
        return f"写入文件时出错:{str(e)}"

9.4 访问控制

对于敏感工具,可以添加访问控制机制:

def check_access(allowed_users: list):
    """访问控制装饰器"""
    def decorator(func):
        def wrapper(*args, **kwargs):
            # 实际应用中需要从请求上下文中获取用户信息
            # 这里仅作为示例
            return func(*args, **kwargs)
        return wrapper
    return decorator

@mcp.tool()
def sensitive_operation() -> str:
    """敏感操作工具"""
    # 添加权限检查逻辑
    return "操作执行成功"

十、安全最佳实践

10.1 敏感信息管理

API密钥、数据库密码等敏感信息绝对不能硬编码在源代码中。正确做法是使用环境变量或专业的密钥管理服务。在开发环境中可以使用.env文件配合python-dotenv管理;在生产环境中应该使用云服务商提供的密钥管理服务(如AWS Secrets Manager、Azure Key Vault等)。

10.2 输入验证与清理

所有来自外部的输入都可能包含恶意内容,工具函数必须对输入参数进行严格验证。验证内容包括:参数类型检查、长度限制、特殊字符过滤、格式校验等。对于文件名等路径相关的参数,要防止路径遍历攻击。

10.3 错误处理

工具函数应该捕获可能的异常并进行适当处理,而不是让异常信息直接暴露给调用方。错误信息不应该包含敏感的系统内部细节,如文件路径、数据库结构等。建议记录详细错误日志供开发者调试,但返回给用户的信息应该经过脱敏处理。

10.4 权限控制

根据实际需求,为不同的工具设置访问权限控制。敏感操作(如删除文件、执行系统命令等)应该要求额外的权限验证。在生产环境中,可以通过API密钥、令牌等方式实现访问控制。

10.5 网络安全

如果MCP服务需要暴露在公网,应该使用HTTPS/TLS加密通信。同时,应该配置适当的访问速率限制,防止恶意请求导致服务不可用。对于允许访问的客户端IP,可以考虑设置白名单。

十一、总结

通过本文的学习,我们了解了如何使用Python和FastMCP框架开发简单的MCP服务。核心要点包括:FastMCP框架提供了简洁的装饰器API来注册工具;工具函数通过类型注解和文档字符串提供元信息;SSE传输方式支持远程部署;MCP协议实现了AI与外部世界的标准化连接。

同时,我们也强调了开发MCP服务时需要注意的安全事项:不要硬编码API密钥、对用户输入进行严格验证、实现完善的错误处理机制、根据需要设置访问控制。这些安全最佳实践对于保护你的应用和数据至关重要。

参考资料

手把手教你用MCP和Python完成一个小项目 解锁 MCP:AI 与外部世界的高效连接之道。 阅读详情

相关推荐

python如何使用MCP

VS Code Cline插件配置。Windows路径问题。

DKPT的博客 3471

Python 从0到1构建MCP Server & Client

MCP Server 是实现模型上下文协议(MCP)的服务器,旨在为 AI 模型提供一个标准化接口,连接外部数据源和工具,例如文件系统、数据库或 API。

GOBinCC的博客 1万+

深度解析:AI Agent 实战之 MCP 开发指南

MCP(Model Context Protocol,模型上下文协议)是 Anthropic 于 2024 年 11 月推出的开放标准,旨在为大语言模型(LLM)提供统一、标准化的方式与外部数据源和工具通信,解决传统 AI 集成架构碎片化、扩展困难的问题。

沐雪架构师 1550

【MCP实践】Python构建MCP应用全攻略:从入门到实战

本文详解基于Python的FastMCP服务开发框架,其通过工具(Tool)、提示(Prompt)、资源(Resource)三大核心组件构建智能应用生态。工具模块通过@mcp.tool()装饰器注册业务逻辑单元,实现API对接与数据处理;提示模块借助@mcp.prompt()创建结构化指令模板,精准引导大语言模型输出;资源模块利用@mcp.resource()整合静态配置与动态数据流。三者在Cherry Studio开发环境中无缝协同:资源提供数据支撑,提示生成AI指令,工具执行具体操作

Arbboter的专栏 9941

【Qwen3大模型+Ollama本地部署+Qwen-Agent代理+调用Mcp】

基于 Qwen3大模型,使用Ollama本地部署,Qwen-Agent代理启用本地Gui界面,交互实现使用多个Mcp服务的演示Demo。├── pyproject.toml # Poetry 配置与依赖管理。│ ├── core.py # 主程序入口,包含主要逻辑。tips: 推荐选择 Hosted标签的mcp服务,MCP广场中云托管服务的标识。tips: 每个模型广场的MCP服务点进其网页后都会有,服务详情,工具测试。文件夹,便于隔离和管理依赖。

chuangshijie的专栏 2437

搭建你的第一个MCP服务器(Python版)

在上两篇博客中,我们已经对MCP(Model Context Protocol)有了初步的了解。MCP是一种强大的协议,能够简化LLM(大型语言模型)与外部工具的交互。今天,我们将通过一个具体的例子,展示如何使用Python搭建一个简单的MCP服务器。通过这个过程,你将能够更好地理解MCP的工作原理,并为后续的应用开发打下基础。在MCP中,工具(Tool)是服务器提供给LLM的接口。我们将定义一个简单的工具,用于接收输入文本并返回处理后的结果。首先,我们需要定义一个工具类。这个工具类将继承自,并实现run。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 8093

Agent学习笔记3:用Python从零开发一个简单MCP服务(FastMCP+SSE)

用 Python + FastMCP 从零开发一个可被 Agent 调用的 MCP 服务,注册写文件与查天气两个工具,以 SSE 传输启动并用客户端完成真实调用验证。文中给出完整可复制代码、依赖清单与常见报错排查,模型通道可借助 TaoToken 统一 Key 简化配置,详见 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 。

weixin_36311421的博客 203

8台 × 8卡 910B NPU之顶尖大模型选型分析

本文对比了2026年主流大语言模型在昇腾910B NPU集群上的部署方案。重点评估了GLM5、MiniMax M2.5、Kimi K2.5、DeepSeek V3.2和Qwen 3.5旗舰版等候选模型,从部署需求(显存占用)、能力表现(基准测试、多模态支持)和NPU生态适配度三个维度进行分析。结果显示DeepSeek V3.2综合表现最优:支持BF16/W8A8/INT4量化,在4TB显存环境下可实现2000+ TPS,首token延迟<100ms,且具备官方NPU支持。备选方案Qwen 3.5旗舰版

FeelTouch Labs 754

Folia 全屏歌词播放器安装指南:10 分钟装好三端桌面版

Folia 是一款全屏沉浸式歌词音乐播放器,支持网易云、QQ 音乐、酷狗、Navidrome 在线音源和本地音乐库,播放时歌词会在整个屏幕里以动画形式展开。本文带你完成选包、安装、启动、验证 4 步,全程约 10 分钟,无需预装任何开发工具。 [![Folia 全屏歌词动画流光主题播放预览](https://raw.gitcode.com/GitHub_Trending/fo/folia-maj

gitblog_00467的博客 881

手把手教你使用ESM-2进行蛋白质结构预测:从安装到实战

本文详细介绍了如何使用ESM-2蛋白质语言模型进行蛋白质结构预测,从环境准备、模型安装到实战应用。通过逐步指导,读者可以掌握ESM-2的配置、单序列预测、结果可视化及高级优化技巧,适用于生物信息学研究和药物开发。

weixin_29306875的博客 531

从零到一:手把手教你用HFSS仿真60GHz圆极化磁电偶极子天线(附参数调优心得)

本文详细介绍了在HFSS中设计60GHz圆极化磁电偶极子天线的全流程,包括仿真环境搭建、参数化建模、收敛性优化和性能验证。通过系统化的参数扫描和优化策略,显著提升了天线的轴比带宽和增益性能,为毫米波通信应用提供了高效的天线设计解决方案。

weixin_42614269的博客 310

【图书介绍】《AI Agent智能体与MCP开发实践:基于Qwen3大模型》

随着人工智能技术的蓬勃发展,大语言模型与智能体技术正引领着新一轮的技术革新。本书聚焦于智能体技术前沿领域,系统阐述AI Agent智能体开发的技术栈及其示例,并剖析5个大型智能体项目案例,帮助读者深入掌握智能体开发方法。本书配套示例源码、PPT课件、配图PDF文件、读者微信技术交流群,所有代码经过测试,均能正确运行。

夏天又到了的专栏 1316

YOLOv11的扩散模型去噪预处理-(在推理前对低质量图像进行增强)

摘要: 扩散模型与YOLOv11的结合有效提升了复杂场景下的目标检测性能。针对低质量图像(如噪声、低光照)导致YOLOv11特征提取退化的问题,研究提出了一种基于条件扩散模型的预处理方法。通过语义引导的渐进式去噪,在保留关键检测特征的同时,显著改善了图像质量。技术核心包括:1)利用YOLOv11浅层特征作为条件输入;2)交叉注意力机制实现任务感知去噪;3)知识蒸馏与潜空间扩散加速推理。实验表明,该方法使mAP50提升19%,在15步内达到传统百步去噪效果,平衡了精度与实时性需求,为鲁棒性目标检测提供了新思路

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 874

MCP Agent Demo: 你的第一个 MCP Agent

本项目是一个基于的简单 Agent 示例,用于演示 MCP Host 的基本功能。它基于项目中 MCP Host 端 Agent 的实现方式,旨在帮助你快速理解和上手 MCP 应用开发。

2502_91178484的博客 1339

图机器学习(2)——图的可视化

图结构可通过图形化方式直观呈现。节点通常用圆形表示,边则用连接线表示。然而当节点和边数量增加时,绘制清晰的图形表示可能会变得相当困难,这主要源于节点在二维坐标系中的布局问题。对于包含数百个节点的图,手动指定每个节点的坐标显然不切实际。在本节中,我们将介绍如何在不指定每个节点坐标的情况下绘制图形。我们将利用两种不同的解决方案:networkx 和 Gephi。

盼小辉丶的博客 8675

基于 51 单片机的智能手势控制小车设计与实现

智能手势控制小车以STC89C52RC 单片机为控制核心,通过手势识别模块采集用户手势指令,经单片机处理后驱动电机执行前进、后退、左转、右转等动作。该项目融合了传感器技术、单片机编程和电机驱动技术,具有成本低、易实现、互动性强的特点,适合作为嵌入式系统入门实践案例。本项目成功实现了基于 51 单片机的智能手势控制小车,通过 APDS-9960 模块采集手势信号,经单片机处理后驱动电机完成基本动作,验证了 “传感器 + 单片机 + 执行器” 的嵌入式系统设计思路。

weixin_42300449的博客 177

Python实现一个简单的MCP

首先我们先知道mcp底层会发生什么。

jennycisp的博客 1311

Flow Matching05:概率路径与插值【概率路径:线性插值路径(最简单)、高斯插值路径】【先尝试线性插值,看效果如何;若不够好,尝试高斯插值】

好的,我将从数学角度详细解释Flow Matching,从高中生能理解的基础知识开始,逐步深入到高级概念。

u013250861的博客 173

实战:使用 Qwen-Agent 调用自定义 MCP 服务

实战:使用 Qwen-Agent 调用自定义 MCP 服务

core815的专栏 1418

Vue3 - 详细实现移动端H5网页调用摄像头拍照功能,微信公众号网页h5页面打开本地摄像头并点击按钮照相,vue3获取摄像头画面执行拍照保存,调整摄像头前置后置抓拍图片给用户展示或保存手机上传服务器

vue3,H5网页,手机移动端,vue3摄像头拍照,前端h5调用手机摄像头,移动端网页调用摄像头,H5实现手机拍照和选择上传,调用本地摄像头实现拍照,vue3调用摄像头拍照,手机浏览器开启摄像头并进行拍照,H5移动端网页中调用手机摄像头,H5实现web调用摄像头在线照相,vue3h5调用摄像头,微信公众号网页如何调用摄像头拍照,公众号H5页面实现打开摄像头照相,怎么生成临时图片,vue3项目调用摄像头实现拍照功能,摄像头打不开没反应,浏览器不兼容怎么办,摄像头权限不弹出,只能在本地运行,拒绝权限后怎么办,

🏆 前端领域优质创作者 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

mcp-agent MCP Agent Server 实战:把 Agent 工作流封装成标准 MCP 服务端

mcp-agent 提供了"Agent as Server"的完整落地路径:用 `MCPApp` 注册工作流与工具,通过 `create_mcp_server_for_app` 一键把 Agent 工作流暴露成标准 MCP Server,任何 MCP 客户端(Claude Desktop、Cursor、MCP Inspector、自定义程序)都能直接调用。本文基于仓库 [examples/mcp_

gitblog_00324的博客 908

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

mcp-agent: 简单的MCP代理框架

​mcp-agent​ 是一个基于 Model Context Protocol (MCP) 的简单、可组合的框架,用于构建智能代理。它旨在通过 MCP 服务器来管理代理的生命周期,并提供构建生产就绪的 AI 代理的简单模式。

748

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

MCP Server开发教程

MCP Server 开发教程,从零构建一个天气服务端

qzqxqc的专栏 1492

从零到一:用 Python 构建 MCP Server,基于 LangChain 的 Agent 与工具调用实战

摘要 本文介绍了一个基于MCP协议的AI Agent工具调用系统实现。该系统包含四个核心组件:MCP服务器、工具模块、LangGraph对话代理和配置文件。MCP服务器通过JSON-RPC协议处理工具调用请求,支持工具自动注册和调度。系统提供了获取时间和日期等实用工具,并通过标准化的接口暴露给AI Agent使用。文章详细解析了MCP服务器的核心实现逻辑,包括请求处理、工具调用和错误处理机制,展示了如何构建一个完整的Agent工具调用闭环。该项目为开发者提供了MCP协议实现的参考范例,可用于构建标准化、可扩

weixin_46244623的博客 1871

MCP服务完全指南:Python实现大模型工具调用与自定义开发

摘要 本文详细介绍了使用Python搭建MCP服务的完整流程。首先通过uv工具初始化项目并配置环境,利用FastMCP SDK开发服务器端,创建自定义工具(如天气查询)。随后介绍了使用Cherry Studio作为MCP Host加载服务的方法,并展示了如何开发Python MCP Client连接服务调用工具。文章从环境配置到实际开发,为开发者提供了从零构建MCP服务的实用指南,涵盖服务端开发、调试测试和客户端对接全流程。

m0_65555479的博客 1436

用MCP构建AI Agent搜索服务:从协议原理到Python代码实战

在AI Agent应用开发中,MCP(模型上下文协议)正成为连接模型与外部工具的标准桥梁。随着Agent数量爆发式增长,如何高效发现和路由可用Agent成为开发者面临的新挑战。MCP Server作为能力封装载体,不仅用于暴露工具,还能将搜索自身协议化。本文从MCP核心原理讲起,拆解Agent搜索Server的架构设计,并通过Python示例代码,从零构建一个基于SQLite数据源的搜索服务。借助FastMCP实现工具注册、关键词过滤与健康状态筛选,最后通过MCP Inspector验证调用链路。无论你是企

congjukun0600的博客 295
上一篇: 【Agent学习笔记2:深入理解Function Calling技术:从原理到实践】
下一篇: Python开发:深入理解 Python 字节码缓存文件
Stream_Silver
博客等级 码龄5年 73粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值