Servidor Chroma MCP
Una implementación de servidor del Protocolo de Contexto de Modelo (MCP) que proporciona capacidades de base de datos vectorial a través de Chroma. Este servidor permite la búsqueda semántica de documentos, el filtrado de metadatos y la gestión de documentos con almacenamiento persistente.
Requisitos
Python 3.8+
Croma 0.4.0+
SDK de MCP 0.1.0+
Related MCP server: doc-lib-mcp
Componentes
Recursos
El servidor proporciona almacenamiento y recuperación de documentos a través de la base de datos vectorial de Chroma:
Almacena documentos con contenido y metadatos.
Conserva los datos en el directorio
src/chroma/dataAdmite búsqueda de similitud semántica
Herramientas
El servidor implementa operaciones CRUD y funcionalidad de búsqueda:
Gestión de documentos
create_document: Crea un nuevo documentoObligatorio:
document_id,contentOpcional:
metadata(pares clave-valor)Devoluciones: Confirmación de éxito
Error: Ya existe, entrada no válida
read_document: Recuperar un documento por IDObligatorio:
document_idDevuelve: Contenido del documento y metadatos
Error: No encontrado
update_document: Actualizar un documento existenteObligatorio:
document_id,contentOpcional:
metadataDevoluciones: Confirmación de éxito
Error: No encontrado, entrada no válida
delete_document: Eliminar un documentoObligatorio:
document_idDevoluciones: Confirmación de éxito
Error: No encontrado
list_documents: Lista todos los documentosOpcional:
limit,offsetDevuelve: Lista de documentos con contenido y metadatos
Operaciones de búsqueda
search_similar: Encuentra documentos semánticamente similaresRequerido:
queryOpcional:
num_results,metadata_filter,content_filterDevoluciones: Lista clasificada de documentos similares con puntuaciones de distancia
Error: Filtro no válido
Características
Búsqueda semántica : encuentre documentos según su significado utilizando las incrustaciones de Chroma
Filtrado de metadatos : Filtrar los resultados de búsqueda por campos de metadatos
Filtrado de contenido : filtrado adicional basado en el contenido del documento
Almacenamiento persistente : los datos persisten en el directorio local entre reinicios del servidor
Manejo de errores : Manejo de errores integral con mensajes claros
Lógica de reintento : reintentos automáticos para fallas transitorias
Instalación
Instalar dependencias:
uv venv
uv sync --dev --all-extrasConfiguración
Escritorio de Claude
Agregue la configuración del servidor a su configuración de Claude Desktop:
Windows: C:\Users\<username>\AppData\Roaming\Claude\claude_desktop_config.json
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"chroma": {
"command": "uv",
"args": [
"--directory",
"C:/MCP/server/community/chroma",
"run",
"chroma"
]
}
}
}Almacenamiento de datos
El servidor almacena datos en:
Ventanas:
src/chroma/dataMacOS/Linux:
src/chroma/data
Uso
Iniciar el servidor:
uv run chromaUtilice herramientas MCP para interactuar con el servidor:
# Create a document
create_document({
"document_id": "ml_paper1",
"content": "Convolutional neural networks improve image recognition accuracy.",
"metadata": {
"year": 2020,
"field": "computer vision",
"complexity": "advanced"
}
})
# Search similar documents
search_similar({
"query": "machine learning models",
"num_results": 2,
"metadata_filter": {
"year": 2020,
"field": "computer vision"
}
})Manejo de errores
El servidor proporciona mensajes de error claros para escenarios comunes:
Document already exists [id=X]Document not found [id=X]Invalid input: Missing document_id or contentInvalid filterOperation failed: [details]
Desarrollo
Pruebas
Ejecute el Inspector MCP para realizar pruebas interactivas:
npx @modelcontextprotocol/inspector uv --directory C:/MCP/server/community/chroma run chromaUtilice la interfaz web del inspector para:
Prueba de operaciones CRUD
Verificar la funcionalidad de búsqueda
Comprobar el manejo de errores
Supervisar los registros del servidor
Edificio
Actualizar dependencias:
uv compile pyproject.tomlPaquete de compilación:
uv buildContribuyendo
¡Agradecemos sus contribuciones! Lea nuestras Pautas de Contribución para obtener más información sobre:
Estilo de código
Requisitos de prueba
Proceso de solicitud de extracción
Licencia
Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.