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或更高版本
– 安装uv
和httpx
:
# 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"
}
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...