本项目是一个安全的本地 MCP 服务器,基于 Node.js 和 Express 构建。它支持 HTTPS 加密(采用自签名证书)、GitHub OAuth 身份验证,还具备速率限制和 HTTP 头保护等额外安全措施,为用户提供安全便捷的使用体验。
此项目是一个安全的本地 MCP 服务器,使用 Node.js 和 Express 构建。它支持 HTTPS 加密(使用自签名证书)、GitHub OAuth 身份验证以及速率限制和 HTTP 头保护等额外的安全措施。
express-session
和安全的 cookie。helmet
保护常见漏洞。在开始之前,请确保以下内容已安装:
将此仓库克隆到本地机器:
git clone https://github.com/omar-steam/MCP-Server-with-HTTPS-and-GitHub-OAuth.git
cd mcp-server
安装所需的 npm 包:
npm install
使用 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
:自签名证书在项目根目录下创建一个 .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 获取的凭证。
运行服务器:
node server.js
您应该看到以下输出:
安全服务器在 https://localhost:3000 运行
打开浏览器并访问:
https://localhost:3000
/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
文件中更新端口设置。
在控制台中接受证书以继续访问 HTTPS 链接。
我们欢迎任何贡献!请 fork 此仓库并在提交 Pull Request 前阅读我们的 CONTRIBUTING.md。
本项目由 MIT 许可证授权。
⚠️ 重要提示
请替换占位符,例如
your-github-client-id
和your-github-client-secret
。如果您托管此代码,请更新仓库 URL。