MCP Command and Search Server

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Integrates with Brave Search API to fetch web data based on user queries determined by the LLM

  • Uses Ollama as a Large Language Model provider to determine user intent and route requests

Command Executor と Brave Search 向けの MCP ベースのクライアント サーバー アプリ

概要

このプロジェクトは、MCP(モデル・コンテキスト・プロトコル)を用いたクライアントサーバーアーキテクチャを実装し、ユーザープロンプトを処理し、**大規模言語モデル(LLM)**を用いてその意図を判定し、適切なサービスにルーティングして実行します。システムは2つの主要コンポーネントで構成されています。

  • **クライアント:**ユーザー入力を処理して LLM に送信し、LLM の決定に基づいて適切なサーバーに要求を転送します。
  • サーバー: LLMのJSONレスポンスで指定されたツールに基づいてリクエストを処理します。システムコマンドを実行するか、Brave Search APIを使用してWebデータを取得します。

LLMは、ユーザーリクエストがコマンド実行またはWeb検索のどちらを必要とするかを判断します。プロンプトが不明瞭な場合、LLMはツール名( command_executionまたはfetch_web_data )と必要な引数を指定する構造化されたJSONレスポンスを生成する前に、追加の質問をします。

フロー図

働く

  1. **ユーザー入力:**ユーザーは CLI にプロンプトを入力します。
  2. **クライアント処理:**クライアントはプロンプトを LLM に転送します。
  3. LLM決定:
    • 意図が不明瞭な場合、LLM は追加の質問をします。
    • ツール名と必要な引数を指定した JSON 応答を生成します。
  4. クライアントルーティング:
    • ツールがcommand_executionの場合:
      • 要求はコマンド サーバーに送信されます。
      • コマンド サーバーは、 Python のsubprocessモジュールを使用してコマンドを実行します。
      • 成功または失敗の応答が返されます。
    • ツールがfetch_web_data場合:
      • リクエストはFetch Web Data Serverに送信されます。
      • サーバーは関連する結果をBrave Search API に照会します。
      • 検索結果がクライアントに返されます。
  5. **クライアント応答:**クライアントは CLI 経由で最終応答をユーザーに返します。

前提条件

インストール

1. リポジトリをクローンする

git clone -https://github.com/mjunaid46/mcp cd mcp

2. 仮想環境を作成してアクティブ化する

# Create a virtual environment uv venv # Activate virtual environment # On Unix or MacOS: source .venv/bin/activate # On Windows: .venv\Scripts\activate

3. 依存関係をインストールする

pip install -r requirements.txt python -m ensurepip

4. LLMモデルを構成する

Ollamaモデルの使用

  1. Ollama インストール ガイドの指示に従って、Ollama CLI ツールをインストールします。
  2. 次に、Ollama を確認します。
    ollama list
  3. クライアント コマンドでモデルを指定します (llama3 または llama2)。
    uv run client/client.py server/command_server.py server/web_server.py ollama llama3

Groqモデルの使用

  1. Groq の API キーを保存するための.envファイルを作成します。
    touch .env
  2. Groq の API キーを.envファイルに追加します。
    GROQ_API_KEY=<your_groq_api_key_here>

5. Brave Search APIを設定する

Brave の API キーを.envファイルに追加します。

BRAVE_SEARCH_API_KEY=<your_brave_search_api_key_here>

走る

  • Ollamaモデルを使用するには
uv run client/client.py server/command_server.py server/web_server.py ollama llama3
  • Groqモデルを使用するには
uv run client/client.py server/command_server.py server/web_server.py groq

テスト

クライアントにクエリを渡します (例: touch test.txtcreate text file with testrm test.txt fileなど)

# Try the below prompts one by one to test. What is the capital of Pakistan. What is MCP? Create a file in my present working directory

🚀 Docker プロジェクトのセットアップガイド

📌 コード実行手順

1️⃣ Gitリポジトリをクローンする

git clone https://github.com/mjunaid46/mcp/ cd mcp

2️⃣ モデル選択の設定を編集する

config.ini ファイルを変更して、モデルのタイプと名前を指定します。

[settings] model_type = ollama # Change to "groq" if using Groq model_name = llama3 # Update model name if needed

3️⃣ Dockerコンテナを構築する

docker-compose build

4️⃣ モデルクライアントを実行する

docker-compose run pull-model-client
-
security - not tested
F
license - not found
-
quality - not tested

大規模言語モデル (LLM) を介してユーザーの意図を解釈することにより、Brave Search API を使用してシステム コマンドの実行と Web データの取得を容易にします。

  1. Overview
    1. Flow Diagram
      1. Working
        1. Prerequisites
          1. Installation
            1. 1. Clone the repository
            2. 2. Create a virtual environment and activate it
            3. 3. Install dependencies
            4. 4. Configure the LLM Model
            5. 5. Configure the Brave Search API
          2. Run
            1. Test
              1. 🚀 Docker Project Setup Guide
                1. 📌 Steps to Run the Code
              ID: beox7u7a9u