使用 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

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

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"
    }
    
<think>好的,我现在需要解决用户的问题:如何在Python中安装mcp.server.fastmcu库。用户提到这个库是Blender-MCP服务源码的一部分,由某位大佬在2025年3月7日首次提交,现在他想从零开始学习这个代码。首先,我应该考虑这个库是否已经发布到PyPI或者其他的Python包索引中。如果已经发布,用户可以直接使用pip安装。但根据用户的描述,这个库可能还处于开发阶段,尚未发布,所以可能需要从源码安装。 接下来,我需要检查用户提供的引用信息。引用[1]提到的是Blender-MCP源码的第一次提交时间是2025年3月7日,而用户提问的时间是2025年3月15日,仅一周之后。因此,这个库可能还没有正式发布,或者可能还在开发中,所以无法通过pip直接安装。这时候,用户可能需要从源代码仓库(如GitHub)克隆仓库,然后手动安装依赖项,再进行安装。 另外,用户提到想了解如何安装Pythonmcp.server.fastmcp。这可能意味着该库的模块结构是mcp.server.fastmcp,所以安装时需要确保正确的导入路径。通常,Python包的名称和导入名称可能不同,因此需要确认仓库中的结构是否符合预期。 可能的安装步骤包括: 1. 克隆仓库到本地。 2. 检查项目是否有setup.py或pyproject.toml文件,以便使用pip install .进行安装。 3. 安装所需的依赖项,可能通过requirements.txt文件。 4. 处理可能存在的依赖问题,比如特定版本的Python或其他库。 如果项目没有提供安装文件,可能需要手动将代码添加到Python路径中,但这不太规范。因此,建议用户先按照标准Python包安装流程尝试安装,并检查仓库的文档(如果有的话)。 此外,用户提到的时间是未来的日期(2025年),这可能是一个假设场景或者笔误。但处理方式相同,主要关注如何从源码安装。 总结可能的回答步骤: - 确认库是否已发布,若未发布则从源码安装。 - 提供克隆仓库和安装的命令。 - 处理可能的依赖问题。 - 建议查看项目文档或联系作者获取更多信息。</think>根据目前的信息,`mcp.server.fastmcp` 可能是 **Blender-MCP源码项目** 中的一个自定义模块,尚未发布到PyPI公共仓库[^1]。以下是两种可能的安装方式: --- ### 方法1:从源码安装(推荐) 1. **克隆仓库** ```bash git clone https://github.com/{作者仓库路径}/Blender-MCP.git cd Blender-MCP ``` 2. **安装依赖** ```bash # 若项目有requirements.txt pip install -r requirements.txt ``` 3. **以可编辑模式安装包** ```bash pip install -e . ``` --- ### 方法2:直接引用源码(临时调试) 若项目未提供`setup.py`,可将代码目录添加到Python路径: ```python import sys sys.path.append("/path/to/Blender-MCP") from mcp.server import fastmcp ``` --- ### 常见问题 1. **依赖冲突** 检查项目是否依赖特定版本的库(如`numpy>=1.20`),可通过`pip freeze`验证。 2. **C扩展编译失败** 若包含C/C++代码,需安装编译工具链(如Linux的`build-essential`,Windows的`Visual Studio Build Tools`)。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值