MCP Server With HTTPS And GitHub OAuth

MCP Server With HTTPS And GitHub OAuth

🚀 本地 MCP-Server 带 HTTPS 和 GitHub OAuth

本项目是一个安全的本地 MCP 服务器,基于 Node.js 和 Express 构建。它支持 HTTPS 加密(采用自签名证书)、GitHub OAuth 身份验证,还具备速率限制和 HTTP 头保护等额外安全措施,为用户提供安全便捷的使用体验。

🚀 快速开始

此项目是一个安全的本地 MCP 服务器,使用 Node.js 和 Express 构建。它支持 HTTPS 加密(使用自签名证书)、GitHub OAuth 身份验证以及速率限制和 HTTP 头保护等额外的安全措施。

✨ 主要特性

  • HTTPS 加密:确保客户端与服务器之间的通信安全。
  • GitHub OAuth 身份验证:允许用户使用其 GitHub 帐户登录。
  • 速率限制:防止滥用和拒绝服务(DoS)攻击。
  • 安全会话管理:使用 express-session 和安全的 cookie。
  • HTTP 头保护:使用 helmet 保护常见漏洞。

📦 安装指南

在开始之前,请确保以下内容已安装:

  • Node.js(v16 或更高版本)
  • npm(随 Node.js 提供)
  • OpenSSL(用于生成 SSL 证书)

步骤 1:克隆仓库

将此仓库克隆到本地机器:

git clone https://github.com/omar-steam/MCP-Server-with-HTTPS-and-GitHub-OAuth.git
cd mcp-server

步骤 2:安装依赖项

安装所需的 npm 包:

npm install

步骤 3:生成 SSL 证书

使用 OpenSSL 生成自签名 SSL 证书:

openssl genrsa -out key.pem 2048
openssl req -new -key key.pem -out csr.pem
openssl x509 -req -days 365 -in csr.pem -signkey key.pem -out cert.pem

这将在项目目录中创建以下文件:

  • key.pem:私钥
  • cert.pem:自签名证书

步骤 4:配置环境变量

在项目根目录下创建一个 .env 文件,并添加以下变量:

CLIENT_ID=your-github-client-id
CLIENT_SECRET=your-github-client-secret
REDIRECT_URI=https://localhost:3000/auth/callback
SESSION_SECRET=your-session-secret

your-github-client-idyour-github-client-secret 替换为从您的 GitHub OAuth App 获取的凭证。

步骤 5:启动服务器

运行服务器:

node server.js

您应该看到以下输出:

安全服务器在 https://localhost:3000 运行

💻 使用示例

基础用法

访问服务器

打开浏览器并访问:

https://localhost:3000

通过 GitHub 身份验证

  1. 访问 /auth 开始 GitHub 身份验证流程:
https://localhost:3000/auth
  1. 完成身份验证后,您将重定向到 http://localhost:3000/callback

受保护路由使用说明

在终端中运行以下命令以访问受保护路由:

curl -X POST http://localhost:3000/protected --user user:password

📚 详细文档

项目结构

  • index.js:主服务器文件。
  • routes/api.js:定义 API 路由。
  • public/index.html:简单的 HTML 页面用于测试。

故障排除

端口被占用

如果遇到端口被占用的问题,请尝试更换端口:

node server.js 3001

然后在 .env 文件中更新端口设置。

SSL 证书警告

在控制台中接受证书以继续访问 HTTPS 链接。

贡献指南

我们欢迎任何贡献!请 fork 此仓库并在提交 Pull Request 前阅读我们的 CONTRIBUTING.md

📄 许可证

本项目由 MIT 许可证授权。

鸣谢

⚠️ 重要提示

请替换占位符,例如 your-github-client-idyour-github-client-secret。如果您托管此代码,请更新仓库 URL。

  • 0 关注
  • 0 收藏,12 浏览
  • system 提出于 2025-09-30 09:15

相似服务问题