Python构建MCP Server与Inspector工具深度剖析

3小时前发布 gsjqwyl
2 0 0

Python构建MCP Server与Inspector工具深度剖析

运用Python开发MCP Server及Inspector工具详解

引言
模型上下文协议(Model Context Protocol,MCP)是一种新兴的协议,其主要作用是让大型语言模型(LLM)可以更为轻松地与外部工具和服务进行融合。本文将会讲解如何使用Python去开发一个MCP Server,并且会详细说明怎样利用MCP Inspector工具来进行测试和调试。

何为MCP?
MCP能让LLM通过清晰界定的接口,也就是资源、工具以及提示等,和外部世界进行互动。这使得LLM能够获取实时信息、执行复杂运算,还能与各种各样的应用程序和服务实现集成。

MCP Server架构
MCP Server负责处理来自LLM的请求,执行相应操作,并把结果返回给LLM。一个MCP Server能够提供三类能力:
* 资源(Resources):类似文件,LLM能够读取资源的内容,例如API响应或者文件内容。
* 工具(Tools):类似函数,LLM能够调用工具来完成特定任务,比如获取天气预报或者发送电子邮件。
* 提示(Prompts):预先定义好的模板,帮助用户达成特定任务。

使用Python开发MCP Server
下面是一个基于官方教程开发简单天气服务器的示例:

1. 环境准备
– Python 3.10或更高版本
– 安装uvhttpx

# MacOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
  • 创建项目并设置虚拟环境:
# MacOS/Linux
uv init weather
cd weather
uv venv
source .venv/bin/activate

# Windows
uv init weather
cd weather
uv venv
.venv\Scripts\activate
  • 安装依赖:
uv add "mcp[cli]" httpx
  • 创建服务器文件weather.py

2. 代码实现(weather.py)

from typing import Any
import httpx
from mcp.server.fastmcp import FastMCP

# 初始化FastMCP服务器
mcp = FastMCP("weather")

# 常量
NWS_API_BASE = "https://api.weather.gov"
USER_AGENT = "weather-app/1.0"

async def make_nws_request(url: str) -> dict[str, Any] | None:
    """向NWS API发起请求,并进行错误处理。"""
    headers = {
        "User-Agent": USER_AGENT,
        "Accept": "application/geo+json"
    }
© 版权声明

相关文章

暂无评论

暂无评论...