使用说明
带有OAuth的MCP远程服务器
一个使用FastMCP 2.x构建远程MCP(模型上下文协议)服务器的学习项目,采用GitHub OAuth进行身份验证。
项目状态
当前阶段GitHub OAuth 认证已实现 ✅ 下一个通过Coolify将生产环境部署到Hetzner VPS上🚧
什么是MCP?
模型上下文协议(MCP)是一种标准化方式,使人工智能应用(如Claude)能够与外部工具和数据源进行交互。可以将其视为“AI的USB-C”——一种用于将AI连接到您系统的通用协议。
项目目标
- 学习如何构建远程MCP服务器
- 理解在MCP(多云平台/混合云平台,具体含义根据上下文确定)环境中的OAuth集成
- 实践现代Python开发,使用
uv和FastMCP - 准备生产环境部署(从Hetzner VPS迁移到Google Cloud)
技术栈
- python3.13+
- 包管理器紫外线
- 框架FastMCP 2.12.4
- 认证GitHub OAuth(OAuth代理模式)
- 交通HTTP/SSE(服务器发送事件)
设置
先决条件
- Python 3.13及以上版本
- UV包管理器
- GitHub 账户(用于 OAuth)
安装
# Clone the repository
git clone <repo-url>
cd mcptest
# Install dependencies
uv sync
本地开发
选项1:基础服务器(无认证)
uv run python server.py
uv run python client_test.py
选项2:OAuth保护的服务器
# 1. Register GitHub OAuth App (see OAUTH_SETUP.md)
# 2. Create .env file
cp .env.example .env
# 3. Add your GitHub OAuth credentials to .env
# 4. Run server and client
uv run python server_oauth.py
uv run python client_oauth_test.py # Requires GUI for browser auth
服务器将在 http://localhost:8000/mcp
当前功能
工具(AI可以调用的功能)
greet(name)- 简单问候工具add_numbers(a, b)- 加两个数get_server_info()- 获取服务器信息
资源(人工智能可读取的数据)
info://welcome- 欢迎信息及学习笔记
生产部署
见 DEPLOYMENT.md 翻译为中文是:“部署说明.md” 或 “部署文档.md”。(注:".md" 是 Markdown 文件的扩展名,通常用于编写技术文档或说明文件。) 关于通过Coolify使用Docker部署到Hetzner VPS的说明。
学习资源
项目背景
见 claude.md 关于项目的详细背景、决策及学习笔记。
许可证
MIT 许可证 - 学习项目
