使用说明
MCP服务器研究项目
一组模型上下文协议(MCP)项目,演示了各种MCP服务器实现和客户端交互。
📋 目录
🔧 先决条件
在运行这些项目之前,请确保已安装以下内容:
- Python 3.11+ (适用于mcp客户端的Python 3.10+)
- 紫外线 (Python包安装程序和环境管理器)
- Git (用于克隆存储库)
安装uv
Windows(PowerShell)
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
📦 安装
克隆存储库
git clone https://github.com/dawkareshubham/mcp-server-study.git
cd mcp-server-study
所有项目的快速设置
每个项目使用 uv 用于依赖性管理。您可以根据需要设置单个项目:
# Navigate to a specific project directory
cd <project-name>
# Install dependencies
uv sync
# Activate virtual environment (optional)
source .venv/bin/activate # On macOS/Linux
.venv\Scripts\activate # On Windows
📚 项目概述
| 项目 | 描述 | Python版本 | 密钥依赖关系 |
|---|---|---|---|
| 客户端 | MCP客户端基本实现 | 3.11+ | MCP[cli] |
| 你好世界 | 简单的hello world MCP服务器 | 3.11+ | MCP[cli] |
| mcp客户端 | 具有OpenAI集成的高级MCP客户端 | 3.10+ | MCP[cli]、OpenAI、dotenv |
| mcp原语和输入 | MCP原语和输入处理示例 | 3.11+ | MCP[cli] |
| mcp服务器深度部署 | 可部署的MCP服务器包 | 3.11+ | MCP[cli] |
| mcp服务器深入功能 | 具有扩展功能的MCP服务器 | 3.11+ | MCP[cli]、枕头、pyautogui、请求 |
| mcp服务器http流已更新 | HTTP流式MCP服务器 | 3.11+ | MCP[cli] |
| mcp构建国际象棋 | Chess.com API MCP服务器,带有玩家统计数据 | 3.10+ | MCP[cli],请求 |
| mcp构建内存跟踪器 | 使用OpenAI进行矢量存储内存管理 | 3.10+ | mcp[cli],OpenAI |
| mcp构建客户端代理airbnb内存 | 带Airbnb和内存的多服务器MCP客户端 | 3.10+ | MCP[cli]、openai、streamlit |
🚀 运行项目
1.客户
基本MCP客户端示例。
cd client
uv sync
uv run python main.py
备选方案:
cd client
uv run python client.py # If using client.py
2.你好世界
简单的hello world MCP服务器演示。
cd helloworld
uv sync
uv run python main.py
3.mcp客户端
MCP客户端与OpenAI集成。需要环境配置。
cd mcp-client
uv sync
# Create .env file with your OpenAI API key
echo "OPENAI_API_KEY=your_api_key_here" > .env
# Run the main client
uv run python main.py
# Or run specific clients
uv run python client_simple.py
uv run python client_query.py
# Run the server
uv run python server.py
4.mcp原语和输入
MCP原语和输入处理的示例。
cd mcp-primitives-and-inputs
uv sync
# Run main example
uv run python main.py
# Run specific examples
uv run python prompt.py
uv run python resources.py
5.mcp服务器深度部署
具有适当结构的可部署MCP服务器包。
cd mcp-server-deepdive-deployment
uv sync
# Install the package in development mode
uv pip install -e .
# Run the server using the installed command
mcp-server
# Or run directly
uv run python main.py
6.mcp服务器深入功能
MCP服务器具有高级功能,包括屏幕截图功能、加密操作和文件处理。
cd mcp-server-deepdive-functionality
uv sync
# Run main server
uv run python main.py
# Run specific functionality
uv run python crypto.py
uv run python screenshot.py
uv run python local.py
uv run python other_inputs.py
7.mcp服务器http流已更新
HTTP流式MCP服务器实现。
cd mcp-server-http-streamable-updated
uv sync
# Run the server
uv run python server.py
# Or run main
uv run python main.py
8.mcp构建国际象棋
MCP服务器,通过公共API提供对Chess.com玩家数据的访问。
cd mcp-build-chess
uv sync
# Install the package in development mode
uv pip install -e .
# Run using the installed command
chess
# Or run with PYTHONPATH
$env:PYTHONPATH="src" # Windows PowerShell
uv run python -m chess.server
主要特点:
- 获取Chess.com玩家资料
- 检索玩家统计数据(评分、获胜、失败)
- FastMCP集成
- 请参阅中的详细README
mcp-build-chess/文件夹
9.mcp构建内存跟踪器
MCP服务器与OpenAI矢量存储集成,用于内存管理。
cd mcp-build-memory-tracker
uv sync
# Create .env file with your OpenAI API key
echo "OPENAI_API_KEY=your_api_key_here" > .env
# Run the server
uv run python server.py
主要特点:
- 将内存保存到OpenAI矢量存储
- 使用语义搜索搜索记忆
- 持久内存存储
- OpenAI集成
10.mcp构建客户端代理airbnb内存
高级MCP客户端,同时连接到多个MCP服务器(Airbnb API+内存服务器)。
cd mcp-build-client-agent-airbnb-memory
uv sync
# Create .env file with your OpenAI API key
echo "OPENAI_API_KEY=your_api_key_here" > .env
# Run the client
uv run python client.py
# Or run the Streamlit UI
uv run streamlit run chat_ui.py
主要特点:
- 多服务器MCP客户端架构
- 将Airbnb搜索与内存存储集成
- 基于Streamlit的聊天界面
- OpenAI函数调用
- 演示高级MCP模式
📖 项目详细信息
客户端
演示基本客户端操作的基本MCP客户端实现。
关键文件:
main.py-主要入口点client.py-客户端实现weather.py-天气相关功能
你好世界
极简主义MCP服务器示例,非常适合理解基础知识。
关键文件:
main.py-服务器入口点weather.py-气象服务示例
mcp客户端
采用OpenAI集成的高级客户端实现,用于AI驱动的MCP交互。
关键文件:
main.py-主客户端应用程序client_simple.py-简单客户端示例client_query.py-基于查询的客户端server.py-用于测试的本地服务器.env-环境配置(创建此)
环境变量:
OPENAI_API_KEY=your_openai_api_key
mcp原语和输入
演示MCP原语、提示和资源处理。
关键文件:
main.py-主要示例prompt.py-及时处理resources.py-资源管理
mcp服务器深度部署
生产就绪的MCP服务器,具有适当的部署包结构。
结构:
mcp-server-deepdive-deployment/
├── src/
│ └── mcpserver/
│ ├── __init__.py
│ ├── __main__.py
│ └── deployment.py
├── main.py
└── pyproject.toml
关键文件:
src/mcpserver/deployment.py-部署逻辑src/mcpserver/__main__.py-包裹入口点main.py-替代入口点
mcp服务器深入功能
功能丰富的MCP服务器,具有多种功能。
关键文件:
main.py-主服务器crypto.py-加密操作screenshot.py-截图功能(需要显示)local.py-本地文件操作other_inputs.py-各种输入处理notes.txt/log.txt-数据文件
依赖关系:
pillow-图像处理pyautogui-屏幕截图功能pyscreeze-屏幕截图requests-HTTP请求
mcp服务器http流已更新
支持流媒体的现代基于HTTP的MCP服务器。
关键文件:
server.py-HTTP服务器实现main.py-服务器入口点
mcp构建国际象棋
Chess.com API集成服务器,用于检索玩家档案和统计数据。
关键文件:
src/chess/server.py-带FastMCP的主MCP服务器src/chess/chess_api.py-Chess.com API客户端README.md-全面的文件
工具:
get_chess_player_profile-获取玩家资料信息get_chess_player_stats-获取详细的游戏统计数据
API集成: 使用Chess.com Public API(无需身份验证)
mcp构建内存跟踪器
内存管理服务器使用OpenAI向量存储进行语义搜索和存储。
关键文件:
server.py-带矢量存储集成的FastMCP服务器main.py-替代入口点.env-OpenAI API密钥配置
工具:
search_memory-使用语义相似性搜索记忆save_memory-将新记忆保存到矢量存储
依赖关系:
- 用于向量存储操作的OpenAI API
- 需要
OPENAI_API_KEY环境变量
mcp构建客户端代理airbnb内存
多服务器MCP客户端展示了Airbnb搜索和内存集成的高级模式。
关键文件:
client.py-多服务器MCP客户端实现chat_ui.py-基于Streamlit的聊天界面main.py-备选客户端运行程序.env-OpenAI API密钥配置
特征:
- 同时连接到多个MCP服务器
- 集成Airbnb房源搜索(通过@openbnb/mcp服务器Airbnb)
- 内存存储和检索(通过内存跟踪服务器)
- OpenAI函数调用智能工具选择
- 交互式流媒体用户界面
架构:
- 客户端连接到两个服务器:Airbnb API服务器+内存跟踪器服务器
- 组合来自两个服务器的工具
- 使用OpenAI进行自然语言理解和工具调用
环境变量:
OPENAI_API_KEY=your_openai_api_key
🔍 常用命令
再进行
uv sync
运行Python文件
uv run python <filename>.py
激活虚拟环境
# Windows
.venv\Scripts\activate
# macOS/Linux
source .venv/bin/activate
更新依赖关系
uv sync --upgrade
检查Python版本
python --version
🐛 故障排除
问题:“uv:找不到命令”
解决方案: 使用先决条件部分中的安装命令安装uv。
问题:Python版本不匹配
解决方案: 请确保您已安装Python 3.11+。与核对 python --version.
问题:mcp-client中的OpenAI API错误
解决方案: 确保您的 .env 文件包含有效 OPENAI_API_KEY.
问题:屏幕截图功能不起作用
解决方案: 确保有可用的显示器。在无头系统上,屏幕截图功能可能不起作用。
问题:找不到模块错误
解决方案: 跑 uv sync 在项目目录中安装所有依赖项。
📝 备注
- 每个项目都是独立的,有自己的依赖关系
- 使用
uv实现更好的依赖关系管理和更快的安装 - 某些项目可能需要额外的环境设置(例如,API密钥)
- 检查单个项目的README文件以了解具体的配置详细信息
🤝 贡献
您可以自由地探索、修改这些项目,并从中学习。每个都演示了模型上下文协议的不同方面。
📄 许可证
这些是学习MCP实施的研究项目。
👤 作者
Shubham Dawkare
- github: @达夫卡雷苏巴姆
- 电子邮件:dawkare.shubham@gmail.com