README
🚀 本地 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保护常见漏洞。
📦 安装指南
在开始之前,请确保以下内容已安装:
步骤 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-id 和 your-github-client-secret 替换为从您的 GitHub OAuth App 获取的凭证。
步骤 5:启动服务器
运行服务器:
node server.js
您应该看到以下输出:
安全服务器在 https://localhost:3000 运行
💻 使用示例
基础用法
访问服务器
打开浏览器并访问:
https://localhost:3000
通过 GitHub 身份验证
- 访问
/auth开始 GitHub 身份验证流程:
https://localhost:3000/auth
- 完成身份验证后,您将重定向到
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-id和your-github-client-secret。如果您托管此代码,请更新仓库 URL。
微信扫一扫