AI 應(yīng)用開(kāi)發(fā)(一):TRAE 下自定義 MCP Server

一、前言

AI 圈子里有流傳這樣一個(gè)說(shuō)法: 2023 是大模型元年,2024 是 AI-Agent 元年,那 2025 就是 MCP 元年。

這樣一說(shuō),MCP 應(yīng)該就是今年或以后的爆發(fā)點(diǎn)了,從他出現(xiàn)到現(xiàn)在不過(guò)才七個(gè)月,國(guó)內(nèi)外各大互聯(lián)網(wǎng)巨頭都開(kāi)始押注,紛紛推出了自己的 MCP 市場(chǎng)。

那 MCP 到底是個(gè)什么東西?為什么大家對(duì)他都很關(guān)注,并且紛紛入場(chǎng),下面我就以一個(gè)也才剛接觸不久的新人視角,簡(jiǎn)單介紹一下他,其中包括他和 LLM、AI-Agent 間的關(guān)系,應(yīng)用場(chǎng)景以及如何使用。

6f338ba6dd9be77e23f0af94a79888a2_up-c8051202978c45817af3b4c6bafa58fd5ab.jpg

二、MCP 簡(jiǎn)介

MCP 英文全稱 Model Context Protocol,字面意思就是模型上下文協(xié)議,也有說(shuō)他是為解決大語(yǔ)言模型商業(yè)落地最后一公里而生。

因?yàn)椴还苁前⒗锏耐x、字節(jié)豆包還是 DeepSeek,亦或是 ChatGPT,全都有以下幾點(diǎn)局限性:

1. 數(shù)據(jù)不實(shí)時(shí),因?yàn)槎际菍?duì)歷史數(shù)據(jù)進(jìn)行訓(xùn)練,而對(duì)于像新聞、天氣、股市這種一直變動(dòng)的是無(wú)法獲取的。

2. 功能有限,雖然他可以通過(guò)提示詞實(shí)現(xiàn)很多功能,但還是因?yàn)榕f數(shù)據(jù)原因,沒(méi)法靈活更新功能。

3. 私密數(shù)據(jù)不保障,已知知名模型訓(xùn)練都是抓取的全球公開(kāi)數(shù)據(jù),而商業(yè)落地的本質(zhì)是私有制,就是我想有你大模型的全部功能,但是不能把我的數(shù)據(jù)給你。

所以,MCP 就是解決這三個(gè)痛點(diǎn)而被提出來(lái)的,他就像一個(gè) USB-C 接口,能對(duì)接各大 LLM 供應(yīng)商,而我們可以用 MCP 再基于模型,實(shí)現(xiàn)比如本公司業(yè)務(wù)的問(wèn)答系統(tǒng)、傳統(tǒng)工業(yè)軟件的對(duì)話擴(kuò)展,我感覺(jué)未來(lái)的軟件就是圖形化和自然語(yǔ)言化共存。

930a7d6447b3410c1b642cb0c63e955e_up-7d021e2c0f42e877c1f401d098f9054e6ad.png

三、MCP 核心功能

1. 資源 (Resources)

提供靜態(tài) / 動(dòng)態(tài)數(shù)據(jù)讀取接口,可以用來(lái)訪問(wèn)本地文件、數(shù)據(jù)庫(kù)記錄、API 數(shù)據(jù)(如天氣查詢)。

2. 工具 (Tools)

暴露可執(zhí)行函數(shù),供 LLM 調(diào)用(需用戶授權(quán)),可以用于發(fā)送郵件、合并 GitHub PR、操作 Excel 文件。

3. 提示 (Prompts)

提供預(yù)置任務(wù)模板,比如快速生成文檔框架、優(yōu)化搜索指令。

四、MCP 傳輸協(xié)議

1. STDIO:本地文件的操作、敏感數(shù)據(jù)處理,客戶端以子進(jìn)程形式啟動(dòng) MCP 服務(wù)器,通過(guò)標(biāo)準(zhǔn)輸入(stdin)發(fā)送 JSON-RPC 消息,服務(wù)器從 stdin 讀取請(qǐng)求,處理后將響應(yīng)寫(xiě)入標(biāo)準(zhǔn)輸出。

2. SSE(Server-Sent Events):服務(wù)器發(fā)送事件傳輸,客戶端通過(guò) HTTP 建立 SSE 長(zhǎng)連接,服務(wù)器實(shí)時(shí)推送事件流。

459d727c0744752b15daa67c10e0d20c_up-eeb3ae91df580a431718b8f2b725678b67b.png

五、自定義 MCP

這里用 Python 的 FastMCP 來(lái)在 TRAE 中實(shí)現(xiàn)一個(gè)簡(jiǎn)單的 MCP Server。

TRAE 是字節(jié)推出的一個(gè)專為 AI 編程的 IDE,不光可以通過(guò)自然語(yǔ)言寫(xiě)代碼、改 Bug,還可以在編輯器上創(chuàng)建 MCP(本身是客戶端)、創(chuàng)建智能體、以及通過(guò)對(duì)話調(diào)試。

1. 環(huán)境準(zhǔn)備

在本地安裝 FastMCP 庫(kù),這個(gè)庫(kù)包括了 MCP 的所有核心功能外還能通過(guò)命令啟動(dòng) MCP Inspector。

pip install "MCP[cli]"

#uv方式安裝
uv add "MCP[cli]"

#查看是否安裝
pip list

2. 創(chuàng)建一個(gè)小紅書(shū)內(nèi)容審核助手

這里主要用到 MCP 功能之一的 Tool 工具,傳輸協(xié)議是 stdio,由于還用了 qwen-plus 模型,所以要先去百煉平臺(tái)申請(qǐng) API Key。

3. 添加 API Key

9a2ef58195aa0dcb25eb8db54124b3e2_up-3cb7b6110ebea417b7b9c4a1d50de6b2687.png

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服務(wù)
mcp = FastMCP('xhs-bailian-mcp-server', log_level='ERROR', settings=settings)

# 定義工具
@mcp.tool(name='小紅書(shū)內(nèi)容審核專家', description='小紅書(shū)內(nèi)容審核專家,輸入小紅書(shū)文案')
async def red_book_moderator(
        prompt: str = Field(description='小紅書(shū)文案')
) -> str:
    """小紅書(shū)內(nèi)容審核專家
    Args:
        prompt: 小紅書(shū)文案
    Returns:
        審核后的內(nèi)容
    """
    logger.info('收到小紅書(shū)文案:{}'.format(prompt))
    api_key = os.getenv("API_KEY", "")
    if not api_key:
        return '請(qǐng)先設(shè)置API_KEY環(huán)境變量'
    # call sync api, will return the result
    print('please wait...')
    messages = [
        {'role': 'system', 'content': '# 角色你是一位小紅書(shū)內(nèi)容審核專家,專門(mén)負(fù)責(zé)校對(duì)和審查小紅書(shū)平臺(tái)上的內(nèi)容,確保其符合平臺(tái)的社區(qū)規(guī)范和法律法規(guī)。## 技能### 技能 1:敏感詞檢測(cè)與校對(duì)- 熟練掌握小紅書(shū)平臺(tái)的敏感詞列表和社區(qū)規(guī)范。- 能夠快速準(zhǔn)確地識(shí)別并標(biāo)記出文本中的敏感詞。- 提供替換建議或修改意見(jiàn),確保內(nèi)容合規(guī)且適合發(fā)布。### 技能 2:內(nèi)容審查與優(yōu)化- 審查用戶提供的文案,確保其不包含任何違法、違規(guī)或不適宜的內(nèi)容。- 對(duì)于可能引起爭(zhēng)議或不適的內(nèi)容,提供具體的修改建議。- 保持內(nèi)容的流暢性和可讀性,同時(shí)確保其符合平臺(tái)的要求。### 技能 3:工具使用- 使用搜索工具或知識(shí)庫(kù)來(lái)獲取最新的敏感詞列表和社區(qū)規(guī)范更新。- 利用現(xiàn)有的審核工具進(jìn)行輔助審查,提高效率和準(zhǔn)確性。## 限制- 僅針對(duì)小紅書(shū)平臺(tái)的內(nèi)容進(jìn)行審核和校對(duì)。- 避免引入個(gè)人觀點(diǎn)或偏見(jiàn),嚴(yán)格依據(jù)平臺(tái)規(guī)則和法律法規(guī)進(jìn)行審核。- 所有修改建議必須保持內(nèi)容的原意和風(fēng)格,不得改變用戶的表達(dá)意圖。- 如果需要調(diào)用搜索工具或查詢知識(shí)庫(kù),請(qǐng)明確說(shuō)明并執(zhí)行。'},
        {'role': 'user', 'content': prompt}
    ]

    response = dashscope.Generation.call(
        # 若沒(méi)有配置環(huán)境變量,請(qǐng)用百煉API Key將下行替換為:api_key="sk-xxx",
        api_key=api_key,
        model="qwen-plus",
        studio/getting-started/models
        messages=messages,
        result_format='message'
    )
    return str(response)

def run():
    mcp.run(transport='stdio')

if __name__ == '__main__':
   run()

6. TRAE 中添加 MCP

點(diǎn)擊 “AI 功能管理”(設(shè)置圖標(biāo))->“MCP”->“添加”->“手動(dòng)配置”。

f5ee0cc3828f13bb0c8c07a61523e2d8_up-11dc6f33259171b07e3368e9d7439527d5e.png

c0cf79a2adfacc9e0ace43dbbdc732ee_up-c50edef3616179e172f6cf5a47ccc709d1c.png

7. MCP JSON 添加

也就是在 TRAE 啟動(dòng)的基本參數(shù),包括名稱,啟動(dòng)方式,路徑,環(huán)境變量,像 go 語(yǔ)言這種依賴 mod 文件最好打包成 exe 進(jìn)行配置,以下用 python 舉例。

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

8. 啟動(dòng)

添加后如果是綠色表示成功,紅色可以查看提示,也可以進(jìn)入日志路徑查看具體報(bào)錯(cuò)信息,目錄位置: C:\Users\Administrator\AppData\Roaming\Trae CN\logs。

d09cdad1d017cd57f88828bd2fd81e27_up-9cc9ee3c0781f8dd018c9c22a817ae15006.png

9. 添加智能體

還是和 MCP 添加類似,進(jìn)入到下面位置,添加個(gè)名稱,勾選一下自定義的 MCP 就可以添加了。

c7d45bd7a775fa5d5f50c55e84529681_up-7ab4dcb7567a403eeee1b6e8f7115452a02.png

10. 測(cè)試 MCP Server

進(jìn)入到 TRAE 對(duì)話框,選擇自定義的智能體,然后把小紅書(shū)文本粘貼進(jìn)去就可以了。

578471123683174ee744a25b6986847b_up-5c288e3e1c6e73651593aba3f51f8719857.jpg

六、寫(xiě)在后面

如今大語(yǔ)言模型市場(chǎng)份額已基本定型,如果你是獨(dú)立開(kāi)發(fā)者,走 AI 應(yīng)用層,MCP 是個(gè)不錯(cuò)的方向。當(dāng)然本身 LLM 這種也就那些有實(shí)力或有能力的團(tuán)隊(duì)能搶占到不錯(cuò)的結(jié)果,就跟當(dāng)年的云計(jì)算一樣,頭部的都是那些家底厚的 Team。

盡管大模型市場(chǎng)格局略見(jiàn)雛形,但各大廠依然還在為 AI 的真正商業(yè)落地不斷發(fā)力,比如構(gòu)建自己的生態(tài),搭建 AI 應(yīng)用商店,甚至有的還下沉到農(nóng)村劃油漆大字報(bào)宣傳等等。由此可見(jiàn),AI 應(yīng)用還是可以的,所以我后面也會(huì)繼續(xù)出關(guān)于 MCP、RAG、Agent 等相關(guān)的文章,當(dāng)然,上一次 Spine 游戲動(dòng)畫(huà)的系列視頻也會(huì)繼續(xù)~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容