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

Overview
基本能力
产品定位
该项目是一个安全的本地MCP服务器,主要用于提供安全的通信和认证服务。
核心功能
- HTTPS加密:确保客户端与服务器之间的通信安全。
- GitHub OAuth认证:允许用户使用GitHub账户登录。
- 速率限制:防止滥用和拒绝服务(DoS)攻击。
- 安全会话管理:使用
express-session
和安全cookie。 - HTTP头安全:使用
helmet
保护免受常见漏洞攻击。
适用场景
- 需要安全通信的本地开发环境。
- 需要GitHub认证的应用。
- 需要防止滥用和DoS攻击的服务。
使用教程
使用依赖
在开始之前,请确保系统已安装以下软件: - Node.js(v16或更高版本) - npm(随Node.js一起安装) - OpenSSL(用于生成SSL证书)
安装教程
-
克隆仓库
bash git clone https://github.com/omar-steam/MCP-Server-with-HTTPS-and-GitHub-OAuth.git cd mcp-server
-
安装依赖
bash npm install
-
生成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
-
配置环境变量 在项目根目录创建
.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
-
启动服务器
bash node server.js
调试方式
-
访问服务器 打开浏览器并访问:
https://localhost:3000
-
GitHub认证 访问
/auth
开始GitHub认证流程:https://localhost:3000/auth
-
受保护路由 访问
/secure-data
测试需要认证的路由:https://localhost:3000/secure-data
常见问题解答
端口已被占用(EADDRINUSE
)
如果端口3000
已被占用,停止使用该端口的进程或在server.js
中更改端口。
查找并终止使用端口3000
的进程:
netstat -ano | findstr :3000
taskkill /PID <PID> /F
浏览器中的证书警告
自签名证书不被浏览器信任。生产环境中,请使用受信任的证书颁发机构如Let’s Encrypt。