GitHub OAuth认证服务器

一个简单的MCP服务器示例,演示了如何通过GitHub OAuth进行认证,并获取用户信息。

  • by AlesoGio
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 alesogio/mcp-github

使用说明

使用GitHub OAuth身份验证的简单MCP服务器

这是一个具有GitHub OAuth身份验证的MCP服务器的简单示例。它演示了使用单个工具集成OAuth所需的基本组件。

这只是一个使用auth的服务器示例,官方的GitHub mcp服务器是 这里

概述

这个简单的演示演示了如何设置服务器:

  • GitHub OAuth2授权流程
  • 单一工具: get_user_profile 检索GitHub用户信息

先决条件

  1. 创建GitHub OAuth应用程序:
    • 转到GitHub设置>开发人员设置>OAuth应用程序>新OAuth应用程序
    • 应用程序名称:任何名称(例如,“简单MCP认证演示”)
    • 主页网址: http://localhost:8000
    • 授权回调URL: http://localhost:8000/github/callback
    • 点击“注册申请”
    • 记下你的客户ID和客户密码

所需的环境变量

在运行服务器之前,您必须设置这些环境变量:

export MCP_GITHUB_GITHUB_CLIENT_ID="your_client_id_here"
export MCP_GITHUB_GITHUB_CLIENT_SECRET="your_client_secret_here"

如果没有正确设置这些环境变量,服务器将无法启动。

运行服务器

# Set environment variables first (see above)

# Run the server
uv run mcp-simple-auth

服务器将于启动 http://localhost:8000.

运输选项

此服务器支持可以在同一端口上运行的多种传输协议:

SSE(服务器发送事件)-默认值

uv run mcp-simple-auth
# or explicitly:
uv run mcp-simple-auth --transport sse

SSE传输提供端点:

  • /sse

流式HTTP

uv run mcp-simple-auth --transport streamable-http

流式HTTP传输提供端点:

  • /mcp

这确保了向后兼容性,而不需要多个服务器实例。使用SSE传输时(--transport sse),只有 /sse 端点可用。

可用工具

get_user_profile

这个简单例子中的唯一工具。返回经过身份验证的用户的GitHub配置文件信息。

所需范围: user

退货:GitHub用户配置文件数据,包括用户名、电子邮件、个人简介等。

故障排除

如果服务器无法启动,请检查:

  1. 环境变量 MCP_GITHUB_GITHUB_CLIENT_ID 和 MCP_GITHUB_GITHUB_CLIENT_SECRET 已设置
  2. GitHub OAuth应用程序回调URL匹配 http://localhost:8000/github/callback
  3. 没有其他服务正在使用端口8000
  4. 指定的传输有效(sse 或 streamable-http)

您可以使用 检查员 测试Auth