Local MCP-Server-with-HTTPS-and-GitHub-OAuth

Local MCP-Server-with-HTTPS-and-GitHub-OAuth

site icon
2025.04.15 0
JavaScript安全通信认证服务其它
该项目是一个基于Node.js和Express构建的安全本地MCP服务器,具有HTTPS加密、GitHub OAuth认证、速率限制和HTTP头保护等安全功能。
View on GitHub

Overview

基本能力

产品定位

该项目是一个安全的本地MCP服务器,主要用于提供安全的通信和认证服务。

核心功能

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

适用场景

  • 需要安全通信的本地开发环境。
  • 需要GitHub认证的应用。
  • 需要防止滥用和DoS攻击的服务。

使用教程

使用依赖

在开始之前,请确保系统已安装以下软件: - Node.js(v16或更高版本) - npm(随Node.js一起安装) - OpenSSL(用于生成SSL证书)

安装教程

  1. 克隆仓库 bash git clone https://github.com/omar-steam/MCP-Server-with-HTTPS-and-GitHub-OAuth.git cd mcp-server

  2. 安装依赖 bash npm install

  3. 生成SSL证书 bash 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

  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

  5. 启动服务器 bash node server.js

调试方式

  1. 访问服务器 打开浏览器并访问: https://localhost:3000

  2. GitHub认证 访问/auth开始GitHub认证流程: https://localhost:3000/auth

  3. 受保护路由 访问/secure-data测试需要认证的路由: https://localhost:3000/secure-data

常见问题解答

端口已被占用(EADDRINUSE

如果端口3000已被占用,停止使用该端口的进程或在server.js中更改端口。

查找并终止使用端口3000的进程:

netstat -ano | findstr :3000
taskkill /PID <PID> /F

浏览器中的证书警告

自签名证书不被浏览器信任。生产环境中,请使用受信任的证书颁发机构如Let’s Encrypt

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。