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

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

本地服务
github.com/omar-steam开发工具680 周前更新

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

Local MCP-Server-with-HTTPS-and-GitHub-OAuth 是一个基于 Node.js 和 Express 的本地 MCP 服务示例,结合 HTTPS、GitHub OAuth、会话管理、速率限制和 HTTP 标头防护。

主要功能

  1. 01使用自签名证书提供 HTTPS
  2. 02GitHub OAuth 登录
  3. 03安全会话 Cookie
  4. 04速率限制
  5. 05HTTP 标头防护

适用场景

  1. 01为受保护路由启用 GitHub 登录
  2. 02在本地测试 HTTPS 服务
  3. 03限制服务请求频率

MCP 相关

项目说明这是一个本地 MCP 服务,但 README 未说明它向客户端提供哪些 MCP 工具或能力。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

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

这是一个使用 Node.js 和 Express 构建的安全本地 MCP 服务。它支持使用自签名证书进行 HTTPS 加密、GitHub OAuth 身份验证,以及速率限制和 HTTP 标头保护等额外安全措施。

功能

  • HTTPS 加密:确保客户端与服务端之间的通信安全。
  • GitHub OAuth 身份验证:允许用户使用 GitHub 帐户登录。
  • 速率限制:防止滥用和拒绝服务(DoS)攻击。
  • 安全会话管理:使用带有安全 Cookie 的 express-session。
  • HTTP 标头安全:使用 helmet 防范常见漏洞。

前提条件

开始之前,请确保系统已安装以下内容:

  • Node.js(v16 或更高版本)
  • npm(随 Node.js 一同提供)
  • OpenSSL(用于生成 SSL 证书)

设置说明

第 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 进行身份验证
  1. 访问 /auth,开始 GitHub 身份验证流程:

https://localhost:3000/auth

  1. 登录成功后,你将被重定向到 /success。
  2. 如果身份验证失败,你将被重定向到 /failure。
受保护的路由

访问 /secure-data,测试需要身份验证的路由:

https://localhost:3000/secure-data

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

项目结构

mcp-server/ ├── key.pem # HTTPS 私钥 ├── cert.pem # HTTPS 自签名证书 ├── server.js # 服务主文件 ├── package.json # 项目元数据和依赖项 ├── .env # 环境变量(不纳入版本控制) └── README.md # 项目文档(本文件)

故障排除

端口已被占用(EADDRINUSE)

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

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

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

浏览器中的证书警告

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

参与贡献

欢迎 Fork 此仓库、改进项目并提交拉取请求!欢迎贡献。

许可证

本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。

致谢

特别感谢:


祝大家构建安全的 MCP 服务,玩得开心!🔥🔥🔥

自定义说明:
  1. 将 your-github-client-id 等占位符替换为你的实际凭据。
  2. 如果你要托管此代码,请将仓库 URL(git clone)更新为你的 GitHub 仓库链接。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。