🧠 Python中的MCP服务器学习
📘 概述
这 模型上下文协议(MCP) 允许您构建公开的服务器 数据 和 功能 LLM(大型语言模型)应用程序 安全, 模块化,以及 标准化的 方式。
把它看作是一个专业 网络API 为LLMs量身定制。
✨ MCP服务器可以做什么:
- 🔍 资源:暴露数据(如
GET端点)-用于将上下文加载到LLM中。 - 🛠️ 工具:提供功能(如
POST端点)-用于运行代码或引起副作用。 - 💬 提示:定义用于与LLM交互的可重用模板。
- 📦 还有更多!
______________________________________________________________________
🎯 项目目的
此存储库是 学习沙盒 对于MCP服务器,包括:
- 🚀 基本启动器示例
- 📁 从小型到大型项目
- 🔬 不同MCP模式的实验
无论你是MCP的新手,还是想用它构建严肃的项目,这个仓库都会随着你的理解而增长。
______________________________________________________________________
🧠 MCP图元 🗃️ 资源——比如用于将数据加载到LLM上下文中的只读API(GET)
🛠️ 工具——触发副作用的类似动作(POST)
🧾 提示–模板化用户交互模式
🧩 什么是MCP Python SDK?
这 模型上下文协议(MCP)Python SDK 是用于在LLM和外部工具或数据源之间构建结构化、标准化接口的官方工具。它既支持建筑 服务器 和 客户 它们使用定义的原语进行通信。
______________________________________________________________________
🧠 预备知识
本快速入门假定您熟悉以下概念:
- pythonPython编程的基础到中级知识。
- LLM熟悉大型语言模型(LLMs),如Claude。
如果您不熟悉这些技术,我们建议您在继续之前查看相关文档或教程。
______________________________________________________________________
💻 系统要求
- python 3.10或更高
- MCP Python SDK v1.2.0或更高版本
uv–建议用于管理依赖关系和虚拟环境
______________________________________________________________________
🛠 安装 uv
紫外线的 是一个快速的Python包和环境管理器。
______________________________________________________________________
✅ Windows(PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# ✅ After install, verify versions:
python --version
uv --version警告: “uv”不被识别为内部或外部命令。.. 然后编辑系统环境变量和uv路径
C:\Users\\.local\bin🧰 创建项目
uv init mcp-server-demo
cd mcp-server-demo
uv add "mcp[cli]"这个:
- 使用pyproject.toml初始化项目
- 创建.vnv文件夹
- 安装MCP SDK及其CLI
✅ 您可以在Claude Desktop中安装此服务器,并通过运行以下命令立即与之交互:
mcp install server.py
or
uv run mcp install ex: server.py或者,您可以使用MCP检查器进行测试:当前发生错误
mcp dev server.py🔁 激活虚拟环境
激活虚拟环境(在 命令行 或 PowerShell):
source .venv/Scripts/activate
On CMD:
.\.venv\Scripts\activate.bat- 现在,您应该看到提示更改为以下内容:
(mcp-server-demo) $- 要停用环境,只需运行:
deactivate
same for bash and cmd ✅ 要以检查器身份运行服务器和客户端,请执行以下操作:
- 仅使用两个工具的入门代码:因为您可以在项目内阅读Readme.md
mcp-server-demo
from mcp.server.fastmcp import FastMCP
# Create an MCP server named "Demo"
mcp = FastMCP("Demo")
print("MCP Connected ...............")
# Define a tool for addition
@mcp.tool(description="Add two numbers together")
def add(a: int, b: int) -> int:
"""Adds two integers and returns the result."""
return a + b
@mcp.tool(description="Subtracts two numbers together")
def difference(a: int, b: int) -> int:
"""Subtracts two integers and returns the result."""
return a - b
# Define a resource for personalized greetings
@mcp.resource("greeting://{name}", description="Get a personalized greeting by name")
def get_greeting(name: str) -> str:
"""Returns a greeting message for the given name."""
return f"Hello, {name}!"
print("MCP Work done ...............")- 编写了运行服务器的脚本:
runMcpServerViaInspectorCLient.bat
@echo off
echo Activating virtual environment...
call .venv\Scripts\activate.bat
echo Ensuring npx is available in PATH...
set PATH=C:\nvm4w\nodejs;%PATH%
echo Starting MCP Dev Server...
mcp dev server.py:mcp
pause