MCP远程服务器

一个学习项目,用于构建带有GitHub OAuth认证的远程MCP服务器,采用FastMCP框架。

  • by sebastianbartmann
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 sebastianbartmann/mcp-oauth-server

使用说明

带有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 许可证 - 学习项目