MCP服务器Python开发工具

MCP Python SDK是一个用于构建结构化、标准化接口的工具,支持在LLM应用程序中安全、模块化地暴露数据和功能。

  • by THENHKHAN
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 thenhkhan/mcp-servrer-learning-in-python

使用说明

🧠 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\<YourUsername>\.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 <FilePath> 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