MCP模型上下文協(xié)議服務器開發(fā)快速入門教程

2025-04-27 15:48 更新

在AI應用飛速發(fā)展的當下,大型語言模型(LLM)的應用場景正不斷拓展。為了讓LLM更好地整合數(shù)據(jù)和工具,MCP(Model Context Protocol)應運而生。今天,我們就來詳細了解一下如何開發(fā)一個MCP服務器。

一、準備工作

在開始之前,你需要具備一些基礎知識和系統(tǒng)要求:

  1. 基礎知識:熟悉Python以及LLM(如Claude)的相關知識。
  2. 系統(tǒng)要求:安裝Python 3.10或更高版本,并使用Python MCP SDK 1.2.0或更高版本。

二、搭建環(huán)境

首先,我們需要安裝uv并設置Python項目環(huán)境:

pip install uv

確保安裝完成后重啟終端,以便正確識別uv命令。

接下來,創(chuàng)建并設置項目:

mkdir weather_server
cd weather_server

三、構建服務器

導入包并設置實例

weather.py文件頂部添加以下代碼:

from fastmcp import FastMCP


mcp = FastMCP()

FastMCP類利用Python類型提示和文檔字符串自動生成工具定義,方便我們創(chuàng)建和維護MCP工具。

添加輔助函數(shù)

然后,添加查詢和格式化數(shù)據(jù)的輔助函數(shù)。這里,我們以美國國家氣象局API為例:

import requests


def get_weather_data(location):
    # 這里是向國家氣象局API發(fā)送請求的代碼
    # 響應數(shù)據(jù)將從API返回
    pass


def format_weather_data(data):
    # 這里是格式化天氣數(shù)據(jù)的代碼
    pass

實現(xiàn)工具執(zhí)行

工具執(zhí)行處理器負責執(zhí)行每個工具的邏輯。我們繼續(xù)添加:

@mcp.tool()
def get_current_weather(location):
    """獲取當前位置的天氣情況"""
    weather_data = get_weather_data(location)
    return format_weather_data(weather_data)

運行服務器

最后,初始化并運行服務器:

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

現(xiàn)在,你的服務器已經(jīng)構建完成!運行uv run weather.py來確認一切正常。

四、測試服務器

我們可以使用Claude for Desktop來測試服務器。

  1. 首先,確保已安裝Claude for Desktop。若未安裝,可從官網(wǎng)下載最新版本。若已安裝,請確保它是最新版本。
  2. 打開Claude for Desktop的配置文件claude_desktop_config.json,通常位于~/Library/Application Support/Claude/目錄下。如果文件不存在,則需要創(chuàng)建它。
  3. 在配置文件中添加MCP服務器信息。例如:

{
  "mcpServers": [
    {
      "name": "weather",
      "launchCommand": "uv --directory /ABSOLUTE/PATH/TO/PARENT/FOLDER/weather run weather.py"
    }
  ]
}

保存文件后,重啟Claude for Desktop。

通過上述步驟,你就成功搭建并測試了一個簡單的MCP服務器。在編程獅(W3Cschool.cn)平臺,你可以找到更多關于MCP開發(fā)的實例和教程,幫助你進一步提升開發(fā)技能。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號