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
| Herramienta | Descripción | Ejemplo de Uso |
|---|---|---|
| Calculadora | Operaciones matemáticas básicas | "Calcula 15 + 25" |
| Verificador de Archivos | Verifica si los archivos existen | "¿Existe 'document.txt'?" |
| Listado de Directorios | Lista el contenido de carpetas | "¿Qué hay en mi carpeta de inicio?" |
| Transformación de Texto | Cambia mayúsculas/minúsculas, invierte, etc. | "Pon 'hola mundo' en mayúsculas" |
| Conversor de Temperatura | Convierte entre °C, °F, K | "Convierte 25°C a Fahrenheit" |
| Generador de Contraseñas | Genera contraseñas seguras | "Crea una contraseña de 16 caracteres" |
| Números Aleatorios | Genera números aleatorios | "Dame un número entre 1-100" |
| Estadísticas de Texto | Analiza texto (conteo de palabras, etc.) | "Analiza este párrafo" |
| Saludo | Saludos 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