当前位置: 首页 > news >正文

MCP Server搭建

MCP是一个由Anthropic公司推出的开源标准,旨在统一AI模型与外部工具及数据源的交互方式。在MCP出现之前,开发者需要为每一个AI需要接入的应用编写特定的集成代码,过程繁琐且难以扩展。MCP的出现改变了这一现状,它就如同一个为AI应用打造的“USB-C”接口,提供了一个标准化的连接方式,让AI模型可以轻松地与不同的数据源和工具进行连接和通信。

在这里插入图片描述
MCP搭建

1 安装UV
pip install uv

创建一个MCP_TEST文件夹
文件夹内启用powershell执行命令:

$env:http_proxy = "http://xxx:pwd@10.xxx:port"
$env:https_proxy = "http://xxx:pwd@10.xxx:port"uv init . -p 3.11uv add "mcp[cli]"Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass& "e:/AI/MCP_TEST2/.venv/Scripts/Activate.ps1"

将文件夹拖入到trae
在拓展中安装Python和Python Debugger这两个插件

代码编写以及代码讲解
打开python-mcp官网https://github.com/modelcontextprotocol/python-sdk
这个官网里面就是关于如何搭建MCP的英文教程

# -*- coding: utf-8 -*-  
"""
FastMCP 快速入门示例。  
首先,请切换到 `examples/snippets/clients` 目录,然后运行以下命令来启动服务器:uv run server fastmcp_quickstart stdio
"""
# 从 mcp.server.fastmcp 模块中导入 FastMCP 类,这是构建 MCP 服务器的核心。
from mcp.server.fastmcp import FastMCP 
# 创建一个 MCP 服务器实例,并将其命名为 "Demo"。
# 这个名字会向连接到此服务器的 AI 客户端展示。
mcp = FastMCP("Demo")  
# 使用 @mcp.tool() 装饰器来定义一个“工具”。
# 工具是 AI 可以调用的具体函数,用于执行特定的操作。
@mcp.tool()
def add(a: int, b: int) -> int:"""这个工具的功能是计算两个整数的和。文档字符串(docstring)会作为工具的描述,帮助 AI 理解其功能。"""return a + b   
# 使用 @mcp.resource() 装饰器来定义一个“资源”。
# 资源代表 AI 可以访问的数据或信息。这里的路径 "greeting://{name}" 是动态的,
# {name} 部分可以被实际的名称替换,例如 "greeting://World"。
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:"""根据提供的名称,获取一句个性化的问候语。"""# 使用 f-string 格式化字符串,返回包含名字的问候语。return f"Hello, {name}!"
# 使用 @mcp.prompt() 装饰器来定义一个“提示词模板”。
# 这个功能可以根据输入动态生成更复杂的、用于指导大语言模型(LLM)的指令(Prompt)。
@mcp.prompt()
def greet_user(name: str, style: str = "friendly") -> str:"""根据给定的名字和风格,生成一句问候语的提示词。"""# 定义一个字典,存储不同风格对应的提示词文本。styles = {"friendly": "Please write a warm, friendly greeting","formal": "Please write a formal, professional greeting","casual": "Please write a casual, relaxed greeting",}# 根据传入的 style 参数,从字典中获取对应的提示词。# 如果 style 参数无效或未提供,则默认使用 "friendly" 风格。# 最后,将选择的风格提示词与用户名组合,形成一个完整的指令。return f"{styles.get(style, styles['friendly'])} for someone named {name}."

将代码粘贴到main.py中,这个文件就是我们的开发文件了

添加执行代码

if __name__ == "__main__":mcp.run(transport="stdio")

MCP服务器:三种传输模式详解

1、模式一:stdio(标准输入/输出)
工作原理:通过命令行的标准输入(stdin)和标准输出(stdout)进行直接的进程间通信,无网络开销。
适用场景:本地开发、单元测试、脚本集成。
2.模式二: (http(标准Web API)- 通用与开放的行业标准
工作原理:将服务器作为标准的Web API运行,通过”请求-响应”模式与客户端交互,通常使用JSON格式。
适用场景:公共API、Web应用后端、通用微服务。
3.模式三:SSE(Server-Sent Events)-实时流式响应的最佳选择
SSE 是一种网页技术,它允许服务器在与客户端建立一个持久的HTTP连接后,单向地、持续地向客户端推送数据流。这与传统的“一次请求,一次完整响应”的HTTP模式完全不同。
工作原理:

1、客户端发起请求: 客户端(如浏览器)向MCP服务器的一个特定端点发起一个普通的HTTP请求。
2、服务器保持连接: 服务器收到请求后,不立即关闭连接,而是返回一个特殊的响应头 content-Type:text/event-stream,并保持该连接处于打开状态。
3、服务器推送数据:当MCP服务内部有新的数据产生时(例如,大语言模型生成了下一个词或一小段文本),服务器会立即将这些数据块通过这个打开的连接发送给客户端。
4、客户端接收事件: 客户端会持续监听这个连接,每当收到一个数据块,就会触发一个事件,从而可以实时地处理和展示新数据。
对于AI应用,这通常意味着:
一个生成长文本的请求,用户不必等待几十秒看到全部结果,而是能像在ChatGPT中一样,看着文字一个一个地“流”出来。

终端执行命令

python main.py

Trae应用添加MCP

{"mcpServers": {"mcp-plus": {"command": "E:\\AI\\MCP_TEST2\\.venv\\Scripts\\python.exe","args": ["E:\\AI\\MCP_TEST2\\main.py"]}}
}

MCP服务添加成功

http://www.dtcms.com/a/330815.html

相关文章:

  • OpenCV中对图像进行平滑处理的4种方式
  • 微美全息(WIMI.US)借区块链与聚类技术,开启物联网去中心化安全架构新纪元
  • 我的第一个开源项目-jenkins集成k8s项目
  • .Net4.0 WPF中实现下拉框搜索效果
  • RabbitMQ高级特性——消息确认、持久性、发送方确认、重试
  • 解锁Prompt秘籍:框架、技巧与指标全解析
  • 基于Django的福建省旅游数据分析与可视化系统【城市可换】
  • 《量子雷达》第4章 量子雷达的检测与估计 预习2025.8.14
  • 【51单片机学习】定时器、串口、LED点阵屏、DS1302实时时钟、蜂鸣器
  • 量子人工智能
  • Python训练营打卡Day32-神经网络的训练
  • Swift 数据类型全景解析(基础到高阶)
  • 按位运算的枚举在 Swift 里如何实现?
  • 《吃透 C++ 类和对象(中):拷贝构造函数与赋值运算符重载深度解析》
  • 【数据分享】2014-2023年长江流域 (0.05度)5.5km分辨率的每小时日光诱导叶绿素荧光SIF数据
  • Pytest自动化测试框架总结
  • iOS性能监控新方法多版本对比与趋势分析实战指南
  • C++进阶:特殊类
  • 手写MyBatis第16弹:泛型魔法应用:MyBatis如何破解List的运行时类型
  • 笔试——Day38
  • 根据图片远程地址复制图片内容,可以在富文本、word等文本里粘贴
  • word——删除最后一页空白页
  • Exif.js获取手机拍摄照片的经纬度
  • 【网络】TCP/UDP总结复盘
  • Unity人形角色IK优化指南
  • AI搜索优化专家孟庆涛:以技术温度重构“人机信息对话”新范式
  • 手机实时提取SIM卡打电话的信令声音-当前现状与思考
  • CICD-DevOps进阶-2
  • 提升工作效率的利器:GitHub Actions Checkout V5
  • 多种适用于 MCU 固件的 OTA 升级方案