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

Aplicación cliente-servidor basada en MCP para Command Executor y Brave Search

Descripción general

Este proyecto implementa una arquitectura cliente-servidor que utiliza MCP (Protocolo de Contexto de Modelo) para gestionar las solicitudes del usuario, determinar su intención mediante un Modelo de Lenguaje Grande (LLM) y dirigirlas al servicio correspondiente para su ejecución. El sistema consta de dos componentes principales:

  • Cliente: procesa la entrada del usuario, la envía al LLM y reenvía la solicitud al servidor apropiado según la decisión del LLM.
  • Servidor: Gestiona las solicitudes según la herramienta especificada en la respuesta JSON del LLM. Ejecuta comandos del sistema o recupera datos web mediante la API de búsqueda de Brave.

El LLM determina si la solicitud del usuario requiere la ejecución de un comando o una búsqueda web . Si la solicitud no es clara, el LLM realiza preguntas adicionales antes de generar una respuesta JSON estructurada que especifica el nombre de la herramienta ( command_execution o fetch_web_data ) y sus argumentos requeridos.

Diagrama de flujo

Laboral

  1. Entrada del usuario: el usuario ingresa un mensaje en la CLI.
  2. Procesamiento del cliente: el cliente reenvía la solicitud al LLM.
  3. Decisión de LLM:
    • Si la intención no está clara, el LLM hace preguntas de seguimiento.
    • Genera una respuesta JSON que especifica el nombre de la herramienta y los argumentos requeridos.
  4. Enrutamiento de clientes:
    • Si la herramienta es command_execution :
      • La solicitud se envía al servidor de comandos .
      • El servidor de comandos ejecuta el comando utilizando el módulo subprocess de Python.
      • Se devuelve una respuesta de éxito o fracaso.
    • Si la herramienta es fetch_web_data :
      • La solicitud se envía al servidor de obtención de datos web .
      • El servidor consulta la API de búsqueda de Brave para obtener resultados relevantes.
      • Los resultados de la búsqueda se devuelven al cliente.
  5. Respuesta del cliente: el cliente envía la respuesta final al usuario a través de la CLI.

Prerrequisitos

Instalación

1. Clonar el repositorio

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

2. Crea un entorno virtual y actívalo

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

3. Instalar dependencias

pip install -r requirements.txt python -m ensurepip

4. Configurar el modelo LLM

Usando el modelo Ollama

  1. Instale la herramienta Ollama CLI siguiendo las instrucciones de la Guía de instalación de Ollama .
  2. A continuación, revisa el Ollama:
    ollama list
  3. Especifique el modelo en el comando del cliente (llama3 o llama2):
    uv run client/client.py server/command_server.py server/web_server.py ollama llama3

Usando el modelo Groq

  1. Cree un archivo .env para almacenar la clave API de Groq:
    touch .env
  2. Añade la clave API de tu Groq al archivo .env :
    GROQ_API_KEY=<your_groq_api_key_here>

5. Configurar la API de búsqueda de Brave

Añade la clave API de tu Brave al archivo .env :

BRAVE_SEARCH_API_KEY=<your_brave_search_api_key_here>

Correr

  • Para utilizar el modelo Ollama
uv run client/client.py server/command_server.py server/web_server.py ollama llama3
  • Para utilizar el modelo Groq
uv run client/client.py server/command_server.py server/web_server.py groq

Prueba

Proporcionar una consulta al cliente (por ejemplo, touch test.txt , create text file with test , rm test.txt file , etc.)

# 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

Guía de configuración del proyecto Docker

📌 Pasos para ejecutar el código

1️⃣ Clonar el repositorio Git

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

2️⃣ Editar configuración para la selección del modelo

Modifique el archivo config.ini para especificar el tipo y el nombre del modelo:

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

3️⃣ Construir los contenedores Docker

docker-compose build

4️⃣ Ejecutar el cliente modelo

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

Facilita la ejecución de comandos del sistema y la recuperación de datos web mediante la API de búsqueda Brave interpretando las intenciones del usuario a través de un modelo de lenguaje grande (LLM).

  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