Skip to main content
Glama

** 注:このプロジェクトはメンテナンスを終了しました。小規模モデルのモデルメモリに問題があるため、MCPサーバーとしてはモノリシックなルーティングプロバイダーではなく、個別のコンテナ化されたサーバープロバイダーを使用する方法を推奨しています。他のユーザーが引き続きこの方法を試したい場合に備えて、コードは更新されています。

モデルコンテキストプロトコル(MCP)サーバー

モデルコンテキストプロトコル標準を実装し、GitHub、GitLab、Google マップ、メモリストレージ、Puppeteer Web 自動化用のツールを提供するモジュラー サーバーです。

建築

MCPサーバーはモジュール型アーキテクチャで構築されており、各ツールは個別のモジュールとして実装されています。サーバーは、リクエストを適切なツールにルーティングする統合ゲートウェイを提供します。

MCP サーバーアーキテクチャ

Related MCP server: GitHub MCP Server

特徴

  • MCP ゲートウェイ: MCP 標準に準拠したすべてのツール リクエストの統合エンドポイント

  • MCPマニフェスト: 利用可能なすべてのツールとその機能を記述するエンドポイント

  • 直接ツールアクセス:各ツールは独自のAPIエンドポイントを介して直接アクセスできます。

  • モジュラー設計:必要に応じてツールを簡単に追加または削除できます

付属ツール

  1. GitHubツール: GitHubリポジトリ、問題、検索を操作する

  2. GitLabツール: GitLabプロジェクト、問題、パイプラインを操作する

  3. Google マップツール: ジオコーディング、ルート案内、場所検索

  4. メモリツール: データを永続的に保存および取得する

  5. Puppeteer Tool : スクリーンショットを撮り、PDFを生成し、ウェブサイトからコンテンツを抽出します

はじめる

前提条件

  • Python 3.8以上

  • Node.js 14以上

  • Red Hat ベースの Linux ディストリビューション (RHEL、CentOS、Fedora) または任意の Linux/macOS システム

インストール

  1. このリポジトリをクローンします:

    git clone https://github.com/yourusername/mcp-server.git cd mcp-server
  2. Python の依存関係をインストールします。

    pip install -r requirements.txt
  3. Node.js の依存関係をインストールします。

    npm install
  4. 設定を含む.envファイルを作成します。

    SECRET_KEY=your-secret-key DEBUG=False # GitHub configuration GITHUB_TOKEN=your-github-token # GitLab configuration GITLAB_TOKEN=your-gitlab-token # Google Maps configuration GMAPS_API_KEY=your-google-maps-api-key # Memory configuration MEMORY_DB_URI=sqlite:///memory.db # Puppeteer configuration PUPPETEER_HEADLESS=true CHROME_PATH=/usr/bin/chromium-browser
  5. サーバーを起動します。

    python app.py

コンテナ化されたデプロイメント

Docker または Podman (Red Hat のコンテナ エンジン) を使用してサーバーを実行できます。

Docker デプロイメント

Docker と docker-compose がすでにインストールされている場合:

  1. Docker イメージをビルドします。

    docker build -t mcp-server .
  2. コンテナを実行します。

    docker run -p 5000:5000 --env-file .env mcp-server
  3. あるいは、docker-compose を使用します。

    docker-compose.ymlファイルを作成します。

    version: '3' services: mcp-server: build: . ports: - "5000:5000" volumes: - ./data:/app/data env_file: - .env restart: unless-stopped

    次に以下を実行します:

    docker-compose up -d

Podmanの展開

Podman を使用する Red Hat ベースのシステム (RHEL、CentOS、Fedora) の場合:

  1. コンテナイメージをビルドします。

    podman build -t mcp-server .
  2. コンテナを実行します。

    podman run -p 5000:5000 --env-file .env mcp-server
  3. 永続的なストレージが必要な場合:

    mkdir -p ./data podman run -p 5000:5000 --env-file .env -v ./data:/app/data:Z mcp-server

    注: :Zサフィックスは SELinux 対応システムにとって重要です。

  4. Podman Compose を使用する (インストールされている場合):

    # Install podman-compose if needed pip install podman-compose # Use the same docker-compose.yml file as above podman-compose up -d

MCPサーバーの使用

MCPゲートウェイ

MCP ゲートウェイは、MCP 標準を使用するすべてのツールにアクセスするためのメイン エンドポイントです。

エンドポイント: POST /mcp/gateway

リクエスト形式:

{ "tool": "github", "action": "listRepos", "parameters": { "username": "octocat" } }

応答形式:

{ "tool": "github", "action": "listRepos", "status": "success", "result": [ { "id": 1296269, "name": "Hello-World", "full_name": "octocat/Hello-World", "owner": { "login": "octocat", "id": 1 }, ... } ] }

MCPマニフェスト

MCP マニフェストには、利用可能なすべてのツールとその機能が記述されています。

エンドポイント: GET /mcp/manifest

応答形式:

{ "manifestVersion": "1.0", "tools": { "github": { "actions": { "listRepos": { "description": "List repositories for a user or organization", "parameters": { "username": { "type": "string", "description": "GitHub username or organization name" } }, "returns": { "type": "array", "description": "List of repository objects" } }, ... } }, ... } }

直接ツールアクセス

各ツールには、独自の API エンドポイントを介して直接アクセスすることもできます。

  • GitHub: /tool/github/...

  • GitLab: /tool/gitlab/...

  • Google マップ: /tool/gmaps/...

  • メモリ: /tool/memory/...

  • 操り人形師: /tool/puppeteer/...

利用可能なエンドポイントの詳細については、各ツールの API ドキュメントを参照してください。

ツールドキュメント

GitHubツール

GitHub ツールは、リポジトリ、問題、検索用の GitHub API へのアクセスを提供します。

アクション:

  • listRepos : ユーザーまたは組織のリポジトリを一覧表示する

  • getRepo : 特定のリポジトリの詳細を取得する

  • searchRepos : リポジトリを検索する

  • getIssues : リポジトリの問題を取得する

  • createIssue : リポジトリに新しい問題を作成する

GitLabツール

GitLab ツールは、プロジェクト、問題、パイプラインの GitLab API へのアクセスを提供します。

アクション:

  • listProjects : 認証されたユーザーがアクセスできるすべてのプロジェクトを一覧表示します

  • getProject : 特定のプロジェクトの詳細を取得する

  • searchProjects : GitLab上のプロジェクトを検索

  • getIssues : プロジェクトの課題を取得する

  • createIssue : プロジェクトに新しい問題を作成する

  • getPipelines : プロジェクトのパイプラインを取得する

Googleマップツール

Google マップ ツールは、ジオコーディング、ルート案内、場所検索のための Google マップ API へのアクセスを提供します。

アクション:

  • geocode : 住所を地理座標に変換する

  • reverseGeocode : 地理座標を住所に変換する

  • getDirections : 2つの場所間の道順を取得する

  • searchPlaces : Google Places API を使用して場所を検索する

  • getPlaceDetails : 特定の場所の詳細を取得する

メモリツール

メモリ ツールは、データを保存および取得するための永続的なキー値ストアを提供します。

アクション:

  • get : キーでメモリ項目を取得する

  • set : メモリアイテムを作成または更新する

  • delete : キーでメモリ項目を削除する

  • list : オプションのフィルタリングを使用して、すべてのメモリ項目を一覧表示します。

  • search : 値でメモリ項目を検索する

操り人形ツール

Puppeteer ツールは、スクリーンショットの撮影、PDF の生成、Web サイトからのコンテンツの抽出を行う Web 自動化機能を提供します。

アクション:

  • screenshot : ウェブページのスクリーンショットを撮る

  • pdf : ウェブページのPDFを生成する

  • extract : ウェブページからコンテンツを抽出する

貢献

貢献を歓迎します!MCP サーバーを拡張する方法は次のとおりです。

新しいツールの追加

  1. toolsディレクトリに新しいファイルを作成します(例: tools/newtool_tool.py

  2. 既存のツールと同じパターンに従うアクションでツールを実装する

  3. app.pyのマニフェストにツールを追加します

  4. ツールのブループリントをtools/__init__.pyに登録します。

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。

謝辞

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AdamPippert/multi-service-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server