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サーバーとして紹介されていますが、クライアントに公開するMCPツールや機能はREADMEに記載されていません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの 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

以下のように表示されます。

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 # 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 のような信頼できる認証局を使用してください。

貢献

このリポジトリをフォークして改善し、プルリクエストを送ってください。貢献を歓迎します。

ライセンス

このプロジェクトは MIT ライセンスの下でライセンスされています。詳細は LICENSE ファイルをご覧ください。

謝辞

以下の皆さんに感謝します:


安全な MCP サーバーの構築を楽しんでください! 🔥🔥🔥

カスタマイズに関する注意事項:
  1. your-github-client-id のようなプレースホルダーを、実際の認証情報に置き換えてください。
  2. このコードをホストする場合は、リポジトリの URL(git clone)を GitHub リポジトリのリンクに更新してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。