hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Servidor Chroma MCP
Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona funciones de búsqueda semántica y gestión de documentos mediante ChromaDB. Este servidor permite a los LLM realizar consultas en lenguaje natural sobre colecciones de documentos con métricas de similitud intuitivas, lo que lo hace ideal para aplicaciones RAG (Recuperación y Generación Aumentada).
Características
- Búsqueda semántica : encuentre documentos según su significado utilizando incrustaciones de última generación
- Métricas de similitud intuitivas : los resultados incluyen puntuaciones de similitud intuitivas (0-100 %)
- Gestión documental : Operaciones CRUD completas para documentos y colecciones
- Compatibilidad con metadatos enriquecidos : adjunte y busque por campos de metadatos personalizados
- Almacenamiento persistente : almacenamiento confiable de documentos con backend SQLite
- Seguridad : Controles de acceso configurables y validación de entrada
- Manejo de errores : mensajes de error completos y recuperación de errores elegante
Requisitos
- Python 3.12 o superior
- ChromaDB 0.4.22 o superior
- MCP Python SDK 1.1.2 o superior
- Gestor de paquetes uv (recomendado) o pip
Inicio rápido
Para la integración de Claude Desktop, consulte Instalación .
Arquitectura
El servidor está construido sobre:
- ChromaDB para almacenamiento y búsqueda de vectores
- SDK de Python de MCP para implementación de servidor
- SQLite para almacenamiento persistente
Flujo de datos
- Los documentos se incrustan utilizando el modelo de incrustación predeterminado de ChromaDB
- Las incrustaciones y los metadatos se almacenan en el backend SQLite de ChromaDB
- Las consultas se procesan a través del mismo modelo de incrustación.
- Los resultados se normalizan a una escala de similitud del 0 al 100 %.
Componentes
Colecciones y documentos
El servidor administra dos tipos principales de recursos:
- Colecciones : contenedores para documentos relacionados con configuraciones de incrustación compartidas
- Documentos : Contenido de texto con metadatos e incrustaciones generadas automáticamente
Herramientas
Gestión de cobros
list-collections
: Lista todas las colecciones disponiblescreate-collection
: Crea una nueva colección con configuraciones opcionalesdelete-collection
: Eliminar una colección y sus documentos
Operaciones de documentos
add-document
: Agrega un nuevo documento con contenido y metadatosget-document
: recupera un documento específico por IDupdate-document
: Modificar el contenido o los metadatos del documentodelete-document
: Eliminar un documento de una colecciónsearch-documents
: Búsqueda semántica con puntuaciones de similitud normalizadas
Instalación
Prerrequisitos
- Python 3.12+
- Gestor de paquetes uv (recomendado) o pip
Configuración
- Clonar el repositorio:
- Crear y activar entorno virtual:
- Instalar dependencias:
Integración de escritorio de Claude
Agregue el servidor a su configuración de Claude Desktop:
Ventanas ( %APPDATA%/Claude/claude_desktop_config.json
):
MacOS ( ~/Library/Application Support/Claude/claude_desktop_config.json
):
Ejemplos de uso
Gestión de colecciones
Crear una colección:
Lista de colecciones:
Trabajar con documentos
Agregar un documento:
Obtener un documento específico:
Actualizar un documento:
Buscar documentos:
Comprensión de las puntuaciones de similitud
Los resultados de la búsqueda incluyen puntuaciones de similitud normalizadas del 0 al 100 %:
- 90-100% : contenido casi idéntico o coincidencia semántica muy fuerte
- 70-89% : Altamente relevante con fuerte similitud semántica
- 50-69% : Moderadamente relacionado con superposición semántica parcial
- 30-49% : Algo relacionado con una conexión semántica mínima
- 0-29% : Probablemente no esté relacionado o tenga una conexión semántica muy débil
Solución de problemas
Problemas comunes
- Errores de conexión a la base de datos
- Asegúrese de que la ruta de la base de datos sea escribible
- Comprobar si otro proceso está utilizando la base de datos
- Intente eliminar el directorio
.chroma
y reiniciar
- Problemas de memoria
- Las colecciones grandes pueden requerir más RAM
- Considere utilizar tamaños de lotes más pequeños
- Supervisar el uso de memoria con
--log-level DEBUG
- Rendimiento de búsqueda lento
- Las colecciones grandes pueden necesitar optimización del índice
- Considere usar menos
n_results
- Comprobar el uso de los recursos del sistema
Modo de depuración
Ejecute el servidor en modo de depuración:
Obtener ayuda
- Consulte la documentación de ChromaDB
- Abrir un problema en GitHub
- Únase a las discusiones de la comunidad de MCP
Desarrollo
Ejecución de pruebas
Ejecute el conjunto de pruebas:
Correr con cobertura:
Depuración
Para la depuración, utilice el Inspector MCP:
El inspector proporciona:
- Monitoreo de solicitudes y respuestas en tiempo real
- Interfaz de prueba de herramientas
- Métricas de rendimiento
- Seguimiento de errores
Manejo de errores
El servidor proporciona mensajes de error detallados para escenarios comunes:
- Nombres o identificaciones de colección no válidos
- Documentos faltantes o malformados
- Problemas de conexión a la base de datos
- Parámetros de búsqueda no válidos
- Fallos de autenticación/autorización
Consideraciones de seguridad
- Validación de entrada en todos los parámetros
- Controles de acceso configurables
- Manejo seguro de rutas de archivos
- Protección contra ataques de inyección
- Soporte de limitación de velocidad
- Mensajes de error seguros
Configuración
Ubicación de la base de datos
Establecer una ruta de base de datos personalizada:
Predeterminado: .chroma
en el directorio del servidor
Variables de entorno
CHROMA_DB_PATH
: Anular la ubicación de la base de datosCHROMA_LOG_LEVEL
: Establece el nivel de detalle del registro (predeterminado: INFO)CHROMA_MAX_CONNECTIONS
: Tamaño del grupo de conexiones de base de datos (predeterminado: 10)
Contribuyendo
- Bifurcar el repositorio
- Crear una rama de características
- Realiza tus cambios
- Agregar pruebas para nuevas funcionalidades
- Enviar una solicitud de extracción
Lea nuestras Pautas de contribución para obtener más detalles.
Licencia
Licencia MIT
Derechos de autor (c) 2024 privetin
Por la presente se concede permiso, sin cargo, a cualquier persona que obtenga una copia de este software y los archivos de documentación asociados (el "Software"), para tratar el Software sin restricción, incluyendo, sin limitación, los derechos a usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar y/o vender copias del Software, y para permitir que las personas a quienes se les proporciona el Software lo hagan, sujeto a las siguientes condiciones:
El aviso de derechos de autor anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO, ENTRE OTRAS, LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN FIN DETERMINADO Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DE LOS DERECHOS DE AUTOR SERÁN RESPONSABLES DE NINGUNA RECLAMACIÓN, DAÑOS U OTRAS RESPONSABILIDADES, YA SEA EN ACCIÓN CONTRACTUAL, EXTRACONTRACTUAL O DE OTRO TIPO, QUE SURJA DE, SE DERIVE DE O EN RELACIÓN CON EL SOFTWARE O EL USO U OTRAS RELACIONES CON EL MISMO.
This server cannot be installed
Permite a los LLM realizar búsquedas semánticas y gestión de documentos utilizando ChromaDB, admitiendo consultas en lenguaje natural con métricas de similitud intuitivas para aplicaciones de generación aumentada de recuperación.
- Features
- Requirements
- Quick Start
- Architecture
- Components
- Installation
- Usage Examples
- Troubleshooting
- Development
- Configuration
- Contributing
- License