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

AI 应用开发(一):TRAE 下自定义 MCP Server

一、前言

AI 圈子里有流传这样一个说法: 2023 是大模型元年,2024 是 AI-Agent 元年,那 2025 就是 MCP 元年。

这样一说,MCP 应该就是今年或以后的爆发点了,从他出现到现在不过才七个月,国内外各大互联网巨头都开始押注,纷纷推出了自己的 MCP 市场。

那 MCP 到底是个什么东西?为什么大家对他都很关注,并且纷纷入场,下面我就以一个也才刚接触不久的新人视角,简单介绍一下他,其中包括他和 LLM、AI-Agent 间的关系,应用场景以及如何使用。

img

二、MCP 简介

MCP 英文全称 Model Context Protocol,字面意思就是模型上下文协议,也有说他是为解决大语言模型商业落地最后一公里而生。

因为不管是阿里的通义、字节豆包还是 DeepSeek,亦或是 ChatGPT,全都有以下几点局限性:

1. 数据不实时,因为都是对历史数据进行训练,而对于像新闻、天气、股市这种一直变动的是无法获取的。

2. 功能有限,虽然他可以通过提示词实现很多功能,但还是因为旧数据原因,没法灵活更新功能。

3. 私密数据不保障,已知知名模型训练都是抓取的全球公开数据,而商业落地的本质是私有制,就是我想有你大模型的全部功能,但是不能把我的数据给你。

所以,MCP 就是解决这三个痛点而被提出来的,他就像一个 USB-C 接口,能对接各大 LLM 供应商,而我们可以用 MCP 再基于模型,实现比如本公司业务的问答系统、传统工业软件的对话扩展,我感觉未来的软件就是图形化和自然语言化共存。

img

三、MCP 核心功能

1. 资源 (Resources)

提供静态 / 动态数据读取接口,可以用来访问本地文件、数据库记录、API 数据(如天气查询)。

2. 工具 (Tools)

暴露可执行函数,供 LLM 调用(需用户授权),可以用于发送邮件、合并 GitHub PR、操作 Excel 文件。

3. 提示 (Prompts)

提供预置任务模板,比如快速生成文档框架、优化搜索指令。

四、MCP 传输协议

**1. STDIO:**本地文件的操作、敏感数据处理,客户端以子进程形式启动 MCP 服务器,通过标准输入(stdin)发送 JSON-RPC 消息,服务器从 stdin 读取请求,处理后将响应写入标准输出。

**2. SSE(Server-Sent Events):**服务器发送事件传输,客户端通过 HTTP 建立 SSE 长连接,服务器实时推送事件流。

img

五、自定义 MCP

这里用 Python 的 FastMCP 来在 TRAE 中实现一个简单的 MCP Server。

TRAE 是字节推出的一个专为 AI 编程的 IDE,不光可以通过自然语言写代码、改 Bug,还可以在编辑器上创建 MCP(本身是客户端)、创建智能体、以及通过对话调试。

1. 环境准备

在本地安装 FastMCP 库,这个库包括了 MCP 的所有核心功能外还能通过命令启动 MCP Inspector。

pip install "MCP[cli]"#uv方式安装
uv add "MCP[cli]"#查看是否安装
pip list

2. 创建一个小红书内容审核助手

这里主要用到 MCP 功能之一的 Tool 工具,传输协议是 stdio,由于还用了 qwen-plus 模型,所以要先去百炼平台申请 API Key。

3. 添加 API Key

img

4. 安装 dashscope

pip install dashscope#查看列表
pip list 

5. 编码

# -*- coding: utf-8 -*-
from mcp.server.fastmcp import FastMCP
from pydantic import Field
import os
import logging
import dashscope
logger = logging.getLogger('mcp')settings = {'log_level': 'DEBUG'
}# 初始化mcp服务
mcp = FastMCP('xhs-bailian-mcp-server', log_level='ERROR', settings=settings)# 定义工具
@mcp.tool(name='小红书内容审核专家', description='小红书内容审核专家,输入小红书文案')
async def red_book_moderator(prompt: str = Field(description='小红书文案')
) -> str:"""小红书内容审核专家Args:prompt: 小红书文案Returns:审核后的内容"""logger.info('收到小红书文案:{}'.format(prompt))api_key = os.getenv("API_KEY", "")if not api_key:return '请先设置API_KEY环境变量'# call sync api, will return the resultprint('please wait...')messages = [{'role': 'system', 'content': '# 角色你是一位小红书内容审核专家,专门负责校对和审查小红书平台上的内容,确保其符合平台的社区规范和法律法规。## 技能### 技能 1:敏感词检测与校对- 熟练掌握小红书平台的敏感词列表和社区规范。- 能够快速准确地识别并标记出文本中的敏感词。- 提供替换建议或修改意见,确保内容合规且适合发布。### 技能 2:内容审查与优化- 审查用户提供的文案,确保其不包含任何违法、违规或不适宜的内容。- 对于可能引起争议或不适的内容,提供具体的修改建议。- 保持内容的流畅性和可读性,同时确保其符合平台的要求。### 技能 3:工具使用- 使用搜索工具或知识库来获取最新的敏感词列表和社区规范更新。- 利用现有的审核工具进行辅助审查,提高效率和准确性。## 限制- 仅针对小红书平台的内容进行审核和校对。- 避免引入个人观点或偏见,严格依据平台规则和法律法规进行审核。- 所有修改建议必须保持内容的原意和风格,不得改变用户的表达意图。- 如果需要调用搜索工具或查询知识库,请明确说明并执行。'},{'role': 'user', 'content': prompt}]response = dashscope.Generation.call(# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx",api_key=api_key,model="qwen-plus",studio/getting-started/modelsmessages=messages,result_format='message')return str(response)def run():mcp.run(transport='stdio')if __name__ == '__main__':run()

6. TRAE 中添加 MCP

点击 “AI 功能管理”(设置图标)->“MCP”->“添加”->“手动配置”。

img

img

7. MCP JSON 添加

也就是在 TRAE 启动的基本参数,包括名称,启动方式,路径,环境变量,像 go 语言这种依赖 mod 文件最好打包成 exe 进行配置,以下用 python 举例。

{"mcpServers": {"xhs_check": {"command": "python","args": ["D:\\3code\\3Python\\python_lean\\10_mcp_server\\xhs_check_server.py"],"env": {"API_KEY": "sk-***********************"}}}
}

8. 启动

添加后如果是绿色表示成功,红色可以查看提示,也可以进入日志路径查看具体报错信息,目录位置: C:\Users\Administrator\AppData\Roaming\Trae CN\logs。

img

9. 添加智能体

还是和 MCP 添加类似,进入到下面位置,添加个名称,勾选一下自定义的 MCP 就可以添加了。

img

10. 测试 MCP Server

进入到 TRAE 对话框,选择自定义的智能体,然后把小红书文本粘贴进去就可以了。

img

六、写在后面

如今大语言模型市场份额已基本定型,如果你是独立开发者,走 AI 应用层,MCP 是个不错的方向。当然本身 LLM 这种也就那些有实力或有能力的团队能抢占到不错的结果,就跟当年的云计算一样,头部的都是那些家底厚的 Team。

尽管大模型市场格局略见雏形,但各大厂依然还在为 AI 的真正商业落地不断发力,比如构建自己的生态,搭建 AI 应用商店,甚至有的还下沉到农村划油漆大字报宣传等等。由此可见,AI 应用还是可以的,所以我后面也会继续出关于 MCP、RAG、Agent 等相关的文章,当然,上一次 Spine 游戏动画的系列视频也会继续~
错的方向。当然本身 LLM 这种也就那些有实力或有能力的团队能抢占到不错的结果,就跟当年的云计算一样,头部的都是那些家底厚的 Team。

尽管大模型市场格局略见雏形,但各大厂依然还在为 AI 的真正商业落地不断发力,比如构建自己的生态,搭建 AI 应用商店,甚至有的还下沉到农村划油漆大字报宣传等等。由此可见,AI 应用还是可以的,所以我后面也会继续出关于 MCP、RAG、Agent 等相关的文章,当然,上一次 Spine 游戏动画的系列视频也会继续~

http://www.xdnf.cn/news/1015921.html

相关文章:

  • 【压缩中断数目--二级中断查找】
  • PostgreSQL的扩展adminpack
  • 机器翻译指标:BLEU
  • 基于边缘计算的丝杆状态实时监测系统设计?
  • 【通用定时器TIM2 TIM3 TIM4 TIM5】
  • Codeforces Round 1023 (Div. 2) C. Maximum Subarray Sum
  • 2025秋招后端突围:JVM核心面试题与高频考点深度解析
  • 电脑在使用过程中频繁死机怎么办
  • Java并发编程实战 Day 21:分布式并发控制
  • 华为云Flexus+DeepSeek征文 | 基于Dify构建个人在线旅游助手
  • 《AI日报 · 0613|ChatGPT支持导出、Manus免费开放、GCP全球宕机》
  • 常用的排序算法
  • UDS协议中0x31服务(Routine Control)详解及应用
  • AI 重构的陷阱:如何避免旧项目越改越烂?
  • 从弦到膜:在1D和2D云环境中探索波动方程-AI云计算数值分析和代码验证
  • SpringBoot的5种签到打卡实现方案(完整版)
  • 红帽认证工程师(RHCE):掌握Linux自动化的关键
  • 浅谈为windows7平台打包基于pyside6的UI程序
  • AD工程面板拖动以及固定位置
  • 通过XML方式在Word段落前添加空白段落
  • “交错推理”降低首token耗时,并且显著提升推理准确性!!
  • DMC-E 系列总线控制卡----雷赛板卡介绍(五)
  • 组合模式深度解析:Java设计模式实战指南与树形结构处理架构设计
  • 在ros中动态调整雷达,线激光雷达等设备的静态坐标关系
  • NaluCFD 介绍和使用指南
  • 复习embedding编码范式及理解代理Agentic RAG及传统RAG的区别
  • 【leetcode】101. 对称二叉树
  • 编译,多面体库
  • Java SE(13)——工具类
  • 基于深度学习的智能语音合成系统:技术与实践