安全MCP服务器

一个基于Node.js和Express的本地安全MCP服务器,提供HTTPS加密、GitHub OAuth认证、速率限制和HTTP头部保护等功能。

  • by omar-steam
  • JavaScript
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 omar-steam/mcp-server-with-https-and-github-oauth

使用说明

使用HTTPS和GitHub OAuth的本地MCP服务器

这个项目是一个使用Node.js和Express构建的安全本地MCP服务器。它具有使用自签名证书的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应用程序.

步骤5:启动服务器

运行服务器: node server.js

您应该看到:

Secure server running on https://localhost:3000

用法

访问服务器

打开浏览器并导航到:

https://localhost:3000

通过GitHub进行身份验证

  1. 访问 /auth 要启动GitHub身份验证过程:

https://localhost:3000/auth

  1. 成功登录后,您将被重定向到 /success.
  2. 如果身份验证失败,您将被重定向到 /failure.

受保护的路线

访问 /secure-data 要测试需要身份验证的路由,请执行以下操作:

https://localhost:3000/secure-data

如果您未通过身份验证,您将看到 401 Unauthorized 错误。

项目结构

mcp-server/ ├── key.pem # Private key for HTTPS ├── cert.pem # Self-signed certificate for HTTPS ├── server.js # Main server file ├── package.json # Project metadata and dependencies ├── .env # Environment variables (not included in version control) └── README.md # Project documentation (this file)

故障排除

端口已在使用中(EADDRINUSE)

中频端口 3000 已在使用中,请停止使用它的任何进程或在中更改端口 server.js.

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

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

浏览器中的证书警告

浏览器不信任自签名证书。对于生产,请使用受信任的证书颁发机构,如 让我们加密.

贡献

请随意分叉此存储库,进行改进,并提交pull请求!欢迎捐款。

许可证

该项目根据MIT许可证获得许可。请参阅 许可证 文件以获取详细信息。

致谢

特别感谢:


享受构建安全MCP服务器的过程! 🔥🔥🔥


定制注意事项:

  1. 替换占位符,如 your-github-client-id 凭你的真实证件。
  2. 更新存储库URL(git clone)如果您托管此代码,请使用您的GitHub存储库链接。