mcpField
M
Model Context Protocol (MCP) Server

Model Context Protocol (MCP) Server

ローカル
github.com/AdamPippertその他323 週間前に更新

Model Context Protocol (MCP) Server について

GitHub、GitLab、Google Maps、永続メモリ、Puppeteerのツール要求を振り分ける、現在はメンテナンスされていないモジュール型MCPサーバーです。複数の機能を単一ゲートウェイにまとめ、自分向けに変更したい人を対象としています。

主な機能

  1. 01統合MCPゲートウェイ
  2. 02GitHubとGitLabの操作
  3. 03Google Mapsでの検索と経路案内
  4. 04永続的なキー・バリューメモリ
  5. 05Puppeteerによるウェブ自動化

活用シーン

  1. 01リポジトリ検索とIssue管理
  2. 02場所やルートの検索
  3. 03データの永続保存と取得
  4. 04ウェブページの取得や内容抽出

MCP 対応

統合MCPゲートウェイを通じて各ツールを公開し、利用可能な機能を示すマニフェストも提供します。各ツールには直接アクセスするAPIエンドポイントもあります。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

** 注:小規模モデルではモデルのメモリに関する問題があるため、MCP サーバーについては、モノリシックなルーティングプロバイダーではなく、個別のコンテナ化されたサーバープロバイダーを使う方法を推奨しています。そのため、このプロジェクトは現在メンテナンスされていません。ほかの方がこの方法を試せるよう、コードは残してあります。

Model Context Protocol(MCP)サーバー

Model Context Protocol 標準を実装するモジュール式サーバーです。GitHub、GitLab、Google Maps、メモリストレージ、Puppeteer によるウェブ自動化のツールを提供します。

アーキテクチャ

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

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

機能

  • MCP ゲートウェイ:MCP 標準に準拠する、すべてのツールリクエスト用の統一エンドポイント
  • MCP マニフェスト:利用可能なすべてのツールとその機能を説明するエンドポイント
  • ツールへの直接アクセス:各ツールには、それぞれの API エンドポイントから直接アクセスできます
  • モジュール式設計:必要に応じてツールを簡単に追加または削除できます
含まれるツール
  1. GitHub ツール:GitHub のリポジトリ、イシュー、検索を操作します
  2. GitLab ツール:GitLab のプロジェクト、イシュー、パイプラインを操作します
  3. Google Maps ツール:ジオコーディング、経路案内、場所の検索を行います
  4. メモリツール:データを永続的に保存、取得します
  5. Puppeteer ツール:スクリーンショットの撮影、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
    

    注:SELinux が有効なシステムでは、:Z サフィックスが重要です。

  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 Maps:/tool/gmaps/...
  • メモリ:/tool/memory/...
  • Puppeteer:/tool/puppeteer/...

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

ツールドキュメント

GitHub ツール

GitHub ツールは、リポジトリ、イシュー、検索に関する GitHub API へのアクセスを提供します。

アクション:

  • listRepos:ユーザーまたは組織のリポジトリ一覧を取得します
  • getRepo:特定のリポジトリの詳細を取得します
  • searchRepos:リポジトリを検索します
  • getIssues:リポジトリのイシューを取得します
  • createIssue:リポジトリに新しいイシューを作成します
GitLab ツール

GitLab ツールでは、プロジェクト、イシュー、パイプラインの GitLab API にアクセスできます。

アクション:

  • listProjects:認証済みユーザーがアクセスできるすべてのプロジェクトを一覧表示します
  • getProject:特定のプロジェクトの詳細を取得します
  • searchProjects:GitLab 上のプロジェクトを検索します
  • getIssues:プロジェクトのイシューを取得します
  • createIssue:プロジェクトに新しいイシューを作成します
  • getPipelines:プロジェクトのパイプラインを取得します
Google Maps ツール

Google Maps ツールでは、ジオコーディング、道順の取得、場所の検索に Google Maps API を利用できます。

アクション:

  • geocode:住所を地理座標に変換します
  • reverseGeocode:地理座標を住所に変換します
  • getDirections:2つの場所間の道順を取得します
  • searchPlaces:Google Places API を使って場所を検索します
  • getPlaceDetails:特定の場所の詳細を取得します
Memory ツール

Memory ツールは、データを保存・取得するための永続的なキーと値のストアを提供します。

アクション:

  • get:キーでメモリー項目を取得します
  • set:メモリー項目を作成または更新します
  • delete:キーでメモリー項目を削除します
  • list:任意のフィルタリングを指定して、すべてのメモリー項目を一覧表示します
  • search:値でメモリー項目を検索します
Puppeteer ツール

Puppeteer ツールでは、スクリーンショットの撮影、PDF の生成、Web サイトからのコンテンツ抽出などの Web 自動化機能を利用できます。

アクション:

  • screenshot:Web ページのスクリーンショットを撮影します
  • pdf:Web ページの PDF を生成します
  • extract:Web ページからコンテンツを抽出します

貢献

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

新しいツールの追加
  1. tools ディレクトリに新しいファイルを作成します。例:tools/newtool_tool.py
  2. 既存のツールと同じパターンに従って、アクションを含むツールを実装します
  3. app.py のマニフェストにツールを追加します
  4. tools/__init__.py にツールのブループリントを登録します

ライセンス

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

謝辞

コメント

MCP は初めてですか?

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

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