MCP Server with Ollama Integration

Un servidor MCP que se integra con Ollama para proporcionar herramientas para operaciones de archivos, cálculos y procesamiento de texto. Requiere una instancia de Ollama en ejecución.

Documentación

Servidor MCP con Integración de Ollama

Un servidor Model Context Protocol (MCP) simple que extiende las capacidades de IA con herramientas útiles para operaciones de archivos, cálculos, procesamiento de texto y más. Este proyecto demuestra cómo crear herramientas personalizadas que los modelos de IA pueden usar a través de Ollama.


🎯 ¿Qué es esto?

Este es un tutorial que crea un puente entre los modelos de IA (como los que se ejecutan en Ollama) y la funcionalidad de tu computadora usando Model Context Protocol, Langchain y Ollama. Piénsalo como darle manos a la IA para realizar cualquier tarea que antes parecía imposible para la IA.


🚀 Características

Esta es una implementación muy básica sobre la cual podemos construir más. (Aún no se conectan APIs externas)

Herramientas Disponibles

HerramientaDescripciónEjemplo de Uso
CalculadoraOperaciones matemáticas básicas"Calcula 15 + 25"
Verificador de ArchivosVerifica si los archivos existen"¿Existe 'document.txt'?"
Listado de DirectoriosLista el contenido de carpetas"¿Qué hay en mi carpeta de inicio?"
Transformación de TextoCambia mayúsculas/minúsculas, invierte, etc."Pon 'hola mundo' en mayúsculas"
Conversor de TemperaturaConvierte entre °C, °F, K"Convierte 25°C a Fahrenheit"
Generador de ContraseñasGenera contraseñas seguras"Crea una contraseña de 16 caracteres"
Números AleatoriosGenera números aleatorios"Dame un número entre 1-100"
Estadísticas de TextoAnaliza texto (conteo de palabras, etc.)"Analiza este párrafo"
SaludoSaludos personalizados"Saluda a Alice"

📋 Requisitos Previos

  • Python 3.10 o superior
  • Ollama instalado y ejecutándose
  • Familiaridad básica con la terminal/línea de comandos
  • Modelos de Langchain
  • Conceptos básicos de API

🛠️ Instalación

Paso 1: Clonar o Descargar

# Download files 
wget https://github.com/Mudit7715/MCP.git
cd MCP

# Create virtual environment
python -m venv mcp_env
# Activate it
source mcp_env/bin/activate  # Linux/Mac
# OR
mcp_env\Scripts\activate     # Windows

Paso 2: Instalar ollama y las librerías requeridas.

# Install required packages
pip install fastmcp
pip install langchain-mcp-adapters langgraph langchain-ollama langchain

# Check if Ollama is running
curl http://localhost:11434/api/tags

# If not installed, visit: https://ollama.com/library
# Pull a model (if you don't have one)
ollama pull llama3.1

Estructura del Proyecto

mcp-ollama-server/
├── server.py          # MCP server with all tools
├── client.py          # Client that connects server to Ollama
├── config.json        # Server configuration
└── README.md          # This file

Paso 3: Ejecutar el servidor y el cliente.

source mcp_env/bin/activate
python server.py

# Open another terminal and the run:
python client.py

Paso 4: Usar las herramientas

Enter your question: Calculate 50 * 3 + 10
Answer: I will calculate that for you. 50 * 3 + 10 = 160

Enter your question: Check if file 'test.txt' exists in current directory
Answer: The file 'test.txt' was not found in the current directory.

Enter your question: Generate a secure password
Answer: Here is a generated 12-character password: K9#mX2$vB8pQ

🔧 Configuración

🛠️ Modificar Herramientas del Servidor

Para agregar nuevas herramientas, edita server.py:

@mcp.tool()
def your_new_tool(parameter: str) -> str:
    """Description of what your tool does."""
    # Your tool logic here
    return f"Result: {parameter}"

🤖 Cambiar el Modelo de Ollama

Edita client.py y cambia el modelo:

agent = create_react_agent("ollama:llama3.2", tools)  # Change model here

🛠️ Configuración del Servidor

Edita config.json para cambiar los parámetros del servidor:

{
  "mcpServers": {
    "my-simple-assistant": {
      "command": "python",
      "args": ["/full/path/to/your/server.py"],
      "cwd": "/full/path/to/your/project"
    }
  }
}

🤝 Contribuciones

¿Quieres agregar más herramientas? Así es como:

@mcp.tool()
def my_awesome_tool(input_param: str) -> str:
    """What this tool does."""
    # Your logic here
    return f"Result: {input_param}"

Pruébalo pidiéndole a la IA que use tu herramienta

Actualiza la documentación con tu nueva herramienta