Integrations
Enables seamless communication with local Ollama LLM instances, providing capabilities for task decomposition, result evaluation, and direct model execution with configurable parameters.
Provides a Python interface for utilizing the MCP server's tools programmatically, allowing developers to implement task decomposition, result evaluation, and model execution in Python applications.
servidor ollama-MCP
Un servidor de Protocolo de Contexto de Modelo (MCP) que se comunica con Ollama
descripción general
Este servidor MCP permite una integración perfecta entre instancias locales de Ollama LLM y aplicaciones compatibles con MCP, proporcionando descomposición de tareas avanzada, evaluación y gestión del flujo de trabajo.
Características principales:
- Descomposición de tareas de problemas complejos
- Evaluación y validación de resultados
- Gestión y ejecución de modelos de Ollama
- Comunicación estandarizada a través del protocolo MCP
- Manejo avanzado de errores y mensajes de error detallados
- Optimización del rendimiento (agrupación de conexiones, caché LRU)
componente
recurso
El servidor implementa los siguientes recursos:
- task:// - el esquema URI para acceder a tareas individuales
- result:// - el esquema URI para acceder al resultado de la evaluación
- model:// - el esquema URI para acceder a los modelos Ollama disponibles.
Cada recurso tiene los metadatos adecuados y el tipo MIME configurados para una interacción LLM óptima.
Relaciones entre indicaciones y herramientas
En un servidor MCP, los mensajes y las herramientas están estrechamente relacionados pero tienen funciones diferentes.
- Indicaciones : Funciones similares a esquemas que proporcionan una forma específica de pensar y estructurar el LLM.
- Herramienta : actúa como un controlador que realmente ejecuta la acción.
Cada herramienta requiere un esquema correspondiente (indicador) para alinear efectivamente las habilidades de pensamiento del LLM con las funciones reales del sistema.
inmediato
El servidor proporciona algunas indicaciones especiales:
- decompose-task : descompone una tarea compleja en subtareas manejables
- Obtenga la descripción de la tarea y los parámetros opcionales a un nivel granular
- Devuelve un desglose estructurado de las dependencias y la complejidad estimada.
- evaluar-resultado : analiza los resultados de la tarea según criterios específicos
- Obtener resultados y parámetros de evaluación
- Devuelve una evaluación detallada con una puntuación y sugerencias de mejora.
herramienta
El servidor implementa varias herramientas potentes:
- agregar tarea
- Parámetros obligatorios:
name
(cadena),description
(cadena) - Parámetros opcionales:
priority
(número),deadline
(cadena),tags
(matriz) - Crea una nueva tarea en el sistema y devuelve su identificador.
- Esquema correspondiente: Esquema de validación de datos para la creación de tareas
- Parámetros obligatorios:
- tarea de descomposición
- Parámetros obligatorios:
task_id
(cadena),granularity
(cadena: "alta"|"media"|"baja") - Parámetro opcional:
max_subtasks
(número) - Utilice Ollama para dividir tareas complejas en subtareas manejables
- Esquema correspondiente: solicitud
decompose-task
anterior
- Parámetros obligatorios:
- evaluar-resultado
- Parámetros obligatorios:
result_id
(cadena),criteria
(objeto) - Parámetro opcional:
detailed
(booleano) - Evaluar los resultados según criterios específicos y proporcionar retroalimentación.
- Esquema correspondiente: solicitud
evaluate-result
anterior
- Parámetros obligatorios:
- modelo de ejecución
- Parámetros obligatorios:
model
(cadena),prompt
(cadena) - Parámetros opcionales:
temperature
(número),max_tokens
(número) - Ejecuta el modelo Ollama con los parámetros especificados.
- Esquema correspondiente: Esquema de validación de parámetros de ejecución del modelo Ollama
- Parámetros obligatorios:
Nuevas funciones y mejoras
Manejo de errores extendido
El servidor proporciona mensajes de error más detallados y estructurados. Esto permite que las aplicaciones cliente gestionen los errores de forma más eficiente. Ejemplo de una respuesta de error:
Optimización del rendimiento
- Agrupación de conexiones : el uso de un grupo de conexiones HTTP compartido mejora el rendimiento de las solicitudes y reduce la utilización de recursos.
- Caché LRU : almacenar en caché las respuestas a solicitudes idénticas o similares mejora el tiempo de respuesta y reduce la carga en los servidores Ollama.
Estas configuraciones se pueden ajustar en config.py
:
Función de especificación del modelo
descripción general
El servidor Ollama-MCP proporciona la flexibilidad de especificar modelos Ollama de múltiples maneras.
Precedencia de la especificación del modelo
Los modelos se especifican en el siguiente orden de prioridad:
- Parámetros al llamar a la herramienta (parámetros
model
) - Sección
env
del archivo de configuración de MCP - Variable de entorno (
OLLAMA_DEFAULT_MODEL
) - Valor predeterminado (
llama3
)
Especificación del modelo mediante archivos de configuración MCP
Para usar con clientes como Claude Desktop, puede especificar el modelo utilizando el archivo de configuración MCP:
Consultar modelos disponibles
Al iniciar el servidor, se comprueba la existencia del modelo configurado. Si no se puede encontrar el modelo, se registrará una advertencia. run-model
también devuelve una lista de modelos disponibles, lo que permite al usuario seleccionar un modelo válido.
Manejo de errores mejorado
Si el modelo especificado no existe o se produce un error de comunicación, se proporciona un mensaje de error detallado. Los mensajes de error incluyen una lista de modelos disponibles para que los usuarios puedan resolver los problemas rápidamente.
prueba
El proyecto incluye un conjunto completo de pruebas:
- Pruebas unitarias : prueba de la funcionalidad de componentes individuales
- Pruebas de integración : prueba del flujo de trabajo de extremo a extremo
Para ejecutar la prueba:
configuración
variables ambientales
Configuración de Ollama
Asegúrese de que Ollama esté instalado y ejecutándose en el modelo apropiado:
Inicio rápido
instalar
Configuración del escritorio de Claude
Sistema operativo Mac
Ruta: ~/Library/Application\ Support/Claude/claude_desktop_config.json
Ventanas
Ruta: %APPDATA%/Claude/claude_desktop_config.json
Ejemplo de uso
Descomposición de tareas
Para dividir una tarea compleja en subtareas manejables:
Evaluación de resultados
Para evaluar los resultados según criterios específicos:
Ejecución del modelo Ollama
Para consultar un modelo Ollama directamente:
desarrollo
Configuración del proyecto
- Clonar el repositorio:
- Crear y activar el entorno virtual:
- Instalar dependencias de desarrollo:
Desarrollo local
El proyecto incluye algunos scripts de desarrollo útiles:
Ejecución del servidor
opción:
--debug
: Ejecutar en modo de depuración (nivel de registro: DEBUG)--log=LEVEL
: Especifica el nivel de registro (DEBUG, INFO, WARNING, ERROR, CRITICAL)
Ejecución de las pruebas
opción:
--unit
: Ejecutar solo pruebas unitarias--integration
: Ejecutar solo pruebas de integración--all
: ejecutar todas las pruebas (predeterminado)--verbose
: Salida de prueba detallada
Construir y publicar
Para preparar un paquete para su distribución:
- Sincronizar dependencias y actualizar archivos de bloqueo:
- Construya la distribución del paquete:
Esto creará una fuente y una distribución de ruedas en dist/
.
- Publicar en PyPI:
Nota: Debe configurar sus credenciales de PyPI en una variable de entorno o un indicador de comando:
- Token:
--token
oUV_PUBLISH_TOKEN
- O nombre de usuario/contraseña:
--username
/UV_PUBLISH_USERNAME
y--password
/UV_PUBLISH_PASSWORD
depurar
Los servidores MCP se ejecutan a través de stdio, por lo que la depuración puede resultar difícil. Para obtener la mejor experiencia de depuración, recomendamos encarecidamente utilizar MCP Inspector .
Para iniciar MCP Inspector usando npm
, ejecute el siguiente comando:
Al iniciarse, el Inspector le mostrará una URL que puede visitar en su navegador para comenzar a depurar.
Arquitecto
contribución
¡Las contribuciones son bienvenidas! No dudes en enviar una solicitud de extracción.
- Bifurcar el repositorio
- Crear una rama de características (
git checkout -b feature/amazing-feature
) - Confirmar los cambios (
git commit -m 'Add some amazing feature'
) - Empujar a la rama (
git push origin feature/amazing-feature
) - Abrir una solicitud de extracción
licencia
Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.
Expresiones de gratitud
- Al equipo de Protocolo de Contexto Modelo por brindar un excelente diseño de protocolo
- El proyecto Ollama facilita el acceso a las carreras locales de LLM
- Todos los contribuyentes a este proyecto
This server cannot be installed
Un servidor que permite una integración perfecta entre instancias locales de Ollama LLM y aplicaciones compatibles con MCP, proporcionando capacidades avanzadas de descomposición de tareas, evaluación y gestión del flujo de trabajo.