MCP (Model Context Protocol) Server について
GitHub、Azure、Google、PostgreSQL などのサービスを一つの窓口から扱う、開発者や AI クライアント向けの MCP サーバーです。ウェブページ取得、画像分析、Python 実行にも対応します。
主な機能
- 01GitHub リポジトリの閲覧と検索
- 02Azure Log Analytics のクエリ
- 03PostgreSQL データの読み取り
- 04Google・YouTube 検索と字幕取得
- 05画像分析と Azure OpenAI の利用
- 06ウェブページ取得と Python 実行
活用シーン
- 01リポジトリのファイル、ワークフロー、コミットの確認
- 02KQL クエリによる Azure ログの調査
- 03PostgreSQL 内のデータ検索
- 04動画検索と YouTube 字幕の取得
MCP 対応
MCP サーバーとして動作し、GitHub、Azure、Google、PostgreSQL などの連携ツールを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP(Model Context Protocol)サーバー
GitHub、Azure Log Analytics、Google、Azure OpenAI、Azure Vision、PostgreSQL など、複数のサービスとやり取りするための統一インターフェースを提供する MCP サーバーです。現在、これらのサービスに対応しています。
🔧 機能
GitHub 連携
- ファイル/フォルダーへのアクセス:GitHub リポジトリからファイルやディレクトリー一覧を取得します
- ワークフローのモニタリング:最近のワークフロー実行とそのステータスを取得します
- コード検索:リポジトリ全体からコードを検索します
- リポジトリ構造:リポジトリの完全なファイル構造を取得します
- コミット履歴:ファイルによる絞り込みに対応したコミット履歴を表示します
- コミット差分:特定のコミットにおけるファイル単位の変更を確認します
Azure 連携
- Log Analytics クエリ:Azure Log Analytics ワークスペースに対して Kusto Query Language(KQL)クエリを実行します
- セキュア認証:安全な API アクセスのために OAuth2 クライアントクレデンシャルフローを使用します
ユーティリティ
- タイムスタンプ生成:マイクロ秒精度の現在の UTC タイムスタンプを取得します
- ウェブサイトのコンテンツ:ウェブサイトのコンテンツを Markdown 形式で取得します
データベース連携
- データベースの読み取り:PostgreSQL サーバーからデータベースを読み取ります
⚠️
SELECTのみの権限を持つ DB ユーザーを使用してください
Google 連携
- Google 検索:Google でクエリを検索します
- YouTube 検索:YouTube でクエリを検索します
- YouTube の文字起こし:YouTube 動画の文字起こしを取得します
Azure Vision 連携
- 画像分析:画像の分析結果を取得します
LLM 連携
- Azure OpenAI:Azure OpenAI から応答を取得します
📦 前提条件
- Python 3.8+
- Docker(任意)
- トークンと認証情報:
- GitHub PAT(
repoスコープ) - Azure AD アプリ:クライアント ID、シークレット、テナント ID
- Azure OpenAI キーとエンドポイント
- Azure Vision キーとエンドポイント
- PostgreSQL の認証情報
- GitHub PAT(
インストール
-
リポジトリをクローンします:
git clone https://github.com/DrFloflo/MCP-github.git -
依存関係をインストールします:
pip install -r requirements.txt -
プロジェクトのルートに次の変数を記載した
.envファイルを作成します:# GitHub Configuration GITHUB_TOKEN=your_github_token # Azure Configuration AZURE_CLIENT_ID=your_client_id AZURE_CLIENT_SECRET=your_client_secret AZURE_TENANT_ID=your_tenant_id # Azure OpenAI Configuration AZURE_OPENAI_ENDPOINT=your_azure_openai_endpoint AZURE_OPENAI_KEY=your_azure_openai_key AZURE_OPENAI_API_VERSION=your_azure_openai_api_version # Azure Vision Configuration VISION_ENDPOINT=your_vision_endpoint VISION_KEY=your_vision_key # Database Configuration POSTGRES_HOST=your_postgres_host POSTGRES_PORT=your_postgres_port POSTGRES_DB=your_postgres_db POSTGRES_USER=your_postgres_user POSTGRES_PASSWORD=your_postgres_password
🔐 トークンの設定
GitHub
- GitHub Personal Access Tokens にアクセスします
repoスコープを指定して新しいトークンを生成します- これを
.envファイルに追加します:
Azure AD(Log Analytics)
- Azure Active Directory で新しいアプリを登録します
- 次の情報をコピーします:
- テナント ID(ディレクトリー ID)
- クライアント ID(アプリケーション ID)
- 新しいクライアントシークレットを作成してコピーします(Certificates & secrets 内)
.envに追加します:AZURE_TENANT_ID=your_tenant_id AZURE_CLIENT_ID=your_client_id AZURE_CLIENT_SECRET=your_client_secret
Log Analytics ワークスペース
- Azure で Log Analytics ワークスペースにアクセスします
- Workspace ID をコピーします
- Azure AD アプリケーションにアクセス権があることを確認します:
- Azure AD でアプリにアクセスします
- API Permissions に移動します
- Add a permission をクリックします
- Microsoft Graph > Delegated permissions を選択します
User.Readを選択して確定します
Azure OpenAI
- Azure OpenAI リソース(または Foundry)にアクセスします
- エンドポイントとキーをコピーします
- これを
.envに追加します:AZURE_OPENAI_ENDPOINT=your_azure_openai_endpoint AZURE_OPENAI_KEY=your_azure_openai_key AZURE_OPENAI_API_VERSION=your_azure_openai_api_version
Azure Vision
- Azure Vision リソース(または Vision)にアクセスします
- エンドポイントとキーをコピーします
- これを
.envに追加します:VISION_ENDPOINT=your_vision_endpoint VISION_KEY=your_vision_key
PostgreSQL
- PostgreSQL サーバーにアクセスします
- ホスト、ポート、データベース、ユーザー、パスワードをコピーします
- これを
.envに追加します:POSTGRES_HOST=your_postgres_host POSTGRES_PORT=your_postgres_port POSTGRES_DB=your_postgres_db POSTGRES_USER=your_postgres_user POSTGRES_PASSWORD=your_postgres_password
使用方法
サーバーの実行
python server.py
サーバーはデフォルトで http://0.0.0.0:6277 で起動します。
Docker
Docker イメージをビルドします:
docker build -t mcp-server .
コンテナーを実行します:
docker run -p 6277:6277 --env-file .env mcp-server
🧰 利用可能な API ツール
GitHub ツール
get_github_file_folder:ファイルの内容を取得するか、ディレクトリーを一覧表示しますget_workflow_runs:最近のワークフロー実行を取得しますsearch_codebase:リポジトリ全体からコードを検索しますget_file_structure:リポジトリの完全な構造を取得しますget_commit_history:コミット履歴を表示しますget_commit_diff:コミット内のファイル単位の変更を表示します
Azure ツール
run_log_analytics_query:Azure Log Analytics に対して KQL クエリを実行します
PostgreSQL ツール
read_db:PostgreSQL からデータをクエリします
⚠️ 読み取り専用(
SELECT)アクセス権を持つデータベースユーザーを使用してください
Google ツール
search_google:任意のクエリで Google を検索しますsearch_youtube:YouTube の動画を検索しますget_youtube_transcript:YouTube 動画の文字起こしを取得します
Azure Vision ツール
get_image_analysis:Azure Vision を使用して画像の内容を分析します
Azure OpenAI ツール
get_azure_openai_response:Azure OpenAI(LLM)を使用して応答を生成します
ユーティリティツール
get_current_utc_timestamp:現在の UTC タイムスタンプを取得しますget_website_content:ウェブサイトの HTML を取得し、Markdown に変換します
コードツール
execute_python_code:Python コードスニペットを安全に実行します
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。