Milvus
oficialBusca, consulta e interactúa con datos en tu base de datos vectorial Milvus.
¿Qué puedes hacer con Milvus MCP?
- Listar todas las colecciones — Pídele al asistente que liste todas las colecciones en tu base de datos Milvus usando
milvus_list_collections. - Crear una colección con un esquema personalizado — Define nombres de campos, tipos y dimensiones de vectores al crear una nueva colección mediante
milvus_create_collection. - Ejecutar búsquedas de similitud vectorial — Busca en una colección los vectores más cercanos a un vector de consulta dado con
milvus_vector_search. - Realizar búsquedas de texto completo — Encuentra documentos que contengan texto específico en una colección usando
milvus_text_search. - Insertar datos en una colección — Agrega registros proporcionando asignaciones de campo-valor a través de
milvus_insert_data. - Inspeccionar el esquema y los metadatos de una colección — Recupera información detallada sobre los campos, propiedades e ID de una colección con
milvus_get_collection_info.
Documentación
Servidor MCP para Milvus
El Protocolo de Contexto de Modelo (MCP) es un protocolo abierto que permite una integración perfecta entre aplicaciones LLM y fuentes de datos y herramientas externas. Ya sea que estés construyendo un IDE potenciado por IA, mejorando una interfaz de chat o creando flujos de trabajo de IA personalizados, MCP proporciona una forma estandarizada de conectar los LLMs con el contexto que necesitan.
Este repositorio contiene un servidor MCP que proporciona acceso a la funcionalidad de la base de datos vectorial Milvus.

Requisitos previos
Antes de usar este servidor MCP, asegúrate de tener:
- Python 3.10 o superior
- Una instancia de Milvus en ejecución (local o remota)
- uv instalado (recomendado para ejecutar el servidor)
Uso
La forma recomendada de usar este servidor MCP es ejecutarlo directamente con uv sin instalación. Así es como tanto Claude Desktop como Cursor están configurados para usarlo en los ejemplos a continuación.
Si deseas clonar el repositorio:
git clone https://github.com/zilliztech/mcp-server-milvus.git
cd mcp-server-milvus
Luego puedes ejecutar el servidor directamente:
uv run src/mcp_server_milvus/server.py --milvus-uri http://localhost:19530
Alternativamente, puedes cambiar el archivo .env en el directorio src/mcp_server_milvus/ para establecer las variables de entorno y ejecutar el servidor con el siguiente comando:
uv run src/mcp_server_milvus/server.py
Importante: el archivo .env tendrá mayor prioridad que los argumentos de línea de comandos.
Modos de ejecución
El servidor soporta dos modos de ejecución: stdio (predeterminado) y SSE (Server-Sent Events).
Modo Stdio (Predeterminado)
-
Descripción: Se comunica con el cliente a través de entrada/salida estándar. Este es el modo predeterminado si no se especifica ningún modo.
-
Uso:
uv run src/mcp_server_milvus/server.py --milvus-uri http://localhost:19530
Modo SSE
-
Descripción: Utiliza HTTP Server-Sent Events para la comunicación. Este modo permite que múltiples clientes se conecten a través de HTTP y es adecuado para aplicaciones basadas en web.
-
Uso:
uv run src/mcp_server_milvus/server.py --sse --milvus-uri http://localhost:19530 --port 8000--sse: Habilita el modo SSE.--port: Especifica el puerto para el servidor SSE (predeterminado: 8000).
-
Depuración en modo SSE:
Si deseas depurar en modo SSE, después de iniciar el servicio SSE, ingresa el siguiente comando:
mcp dev src/mcp_server_milvus/server.pyLa salida será similar a:
% mcp dev src/mcp_server_milvus/merged_server.py Starting MCP inspector... ⚙️ Proxy server listening on port 6277 🔍 MCP Inspector is up and running at http://127.0.0.1:6274 🚀Luego puedes acceder al Inspector MCP en
http://127.0.0.1:6274para realizar pruebas.
Modo HTTP Transmisible
-
Descripción: Utiliza HTTP con soporte de transmisión para la comunicación. Este es el transporte recomendado para despliegues en producción y soporta operación con y sin estado.
-
Uso:
uv run src/mcp_server_milvus/server.py --streamable-http --milvus-uri http://localhost:19530 --port 8000--streamable-http: Habilita el modo HTTP Transmisible.--port: Especifica el puerto para el servidor (predeterminado: 8000).--stateless: Bandera opcional para el modo sin estado (sin persistencia de sesión).
-
Modo sin estado:
uv run src/mcp_server_milvus/server.py --streamable-http --stateless --milvus-uri http://localhost:19530 --port 8000
Aplicaciones soportadas
Este servidor MCP se puede usar con varias aplicaciones LLM que soportan el Protocolo de Contexto de Modelo:
- Claude Desktop: La aplicación de escritorio de Anthropic para Claude
- Cursor: Editor de código potenciado por IA con soporte MCP
- Clientes MCP personalizados: Cualquier aplicación que implemente la especificación del cliente MCP
Uso con Claude Desktop
Configuración para diferentes modos
Configuración del modo SSE
Sigue estos pasos para configurar Claude Desktop para el modo SSE:
- Instala Claude Desktop desde https://claude.ai/download.
- Abre tu archivo de configuración de Claude Desktop:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- macOS:
- Agrega la siguiente configuración para el modo SSE:
{
"mcpServers": {
"milvus-sse": {
"url": "http://your_sse_host:port/sse",
"disabled": false,
"autoApprove": []
}
}
}
Configuración del modo HTTP Transmisible
{
"mcpServers": {
"milvus-streamable-http": {
"url": "http://your_host:port/mcp",
"disabled": false,
"autoApprove": []
}
}
}
- Reinicia Claude Desktop para aplicar los cambios.
Configuración del modo Stdio
Para el modo stdio, sigue estos pasos:
- Instala Claude Desktop desde https://claude.ai/download.
- Abre tu archivo de configuración de Claude Desktop:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- macOS:
- Agrega la siguiente configuración para el modo stdio:
{
"mcpServers": {
"milvus": {
"command": "/PATH/TO/uv",
"args": [
"--directory",
"/path/to/mcp-server-milvus/src/mcp_server_milvus",
"run",
"server.py",
"--milvus-uri",
"http://localhost:19530"
]
}
}
}
- Reinicia Claude Desktop para aplicar los cambios.
Uso con Cursor
Cursor también soporta herramientas MCP. Puedes integrar tu servidor MCP de Milvus con Cursor siguiendo estos pasos:
Pasos de integración
- Abre
Cursor Settings>MCP - Haz clic en
Add new global MCP server - Después de hacer clic, te redirigirá automáticamente al archivo
mcp.json, que se creará si no existe
Configurando el archivo mcp.json
Para el modo Stdio:
Sobrescribe el archivo mcp.json con el siguiente contenido:
{
"mcpServers": {
"milvus": {
"command": "/PATH/TO/uv",
"args": [
"--directory",
"/path/to/mcp-server-milvus/src/mcp_server_milvus",
"run",
"server.py",
"--milvus-uri",
"http://127.0.0.1:19530"
]
}
}
}
Para el modo SSE:
-
Inicia el servicio ejecutando el siguiente comando:
uv run src/mcp_server_milvus/server.py --sse --milvus-uri http://your_sse_host --port portNota: Reemplaza
http://your_sse_hostcon tu dirección de host SSE real yportcon el número de puerto específico que estés usando. -
Una vez que el servicio esté en funcionamiento, sobrescribe el archivo
mcp.jsoncon el siguiente contenido:{ "mcpServers": { "milvus-sse": { "url": "http://your_sse_host:port/sse", "disabled": false, "autoApprove": [] } } }
Para el modo HTTP Transmisible:
-
Inicia el servicio:
uv run src/mcp_server_milvus/server.py --streamable-http --milvus-uri http://your_host --port port -
Actualiza
mcp.json:{ "mcpServers": { "milvus-streamable-http": { "url": "http://your_host:port/mcp", "disabled": false, "autoApprove": [] } } }
Completando la integración
Después de completar los pasos anteriores, reinicia Cursor o recarga la ventana para asegurar que la configuración surta efecto.
Verificando la integración
Para verificar que Cursor se ha integrado exitosamente con tu servidor MCP de Milvus:
- Abre
Cursor Settings>MCP - Verifica si "milvus", "milvus-sse" o "milvus-streamable-http" aparecen en la lista (dependiendo del modo que hayas elegido)
- Confirma que las herramientas relevantes estén listadas (ej., milvus_list_collections, milvus_vector_search, etc.)
- Si el servidor está habilitado pero muestra un error, consulta la sección de Solución de problemas a continuación
Herramientas disponibles
El servidor proporciona las siguientes herramientas:
Operaciones de búsqueda y consulta
-
milvus_text_search: Buscar documentos usando búsqueda de texto completo- Parámetros:
collection_name: Nombre de la colección a buscarquery_text: Texto a buscarlimit: El número máximo de resultados a devolver (predeterminado: 5)output_fields: Campos a incluir en los resultadosdrop_ratio: Proporción de términos de baja frecuencia a ignorar (0.0-1.0) (predeterminado: 0.2)
- Parámetros:
-
milvus_vector_search: Realizar búsqueda de similitud vectorial en una colección- Parámetros:
collection_name: Nombre de la colección a buscarvector: Vector de consultavector_field: Nombre del campo para la búsqueda vectorial (predeterminado: "vector")limit: El número máximo de resultados a devolver (predeterminado: 5)output_fields: Campos a incluir en los resultadosfilter_expr: Expresión de filtrometric_type: Métrica de distancia (COSINE, L2, IP) (predeterminado: "COSINE")radius: Límite inferior opcional para búsqueda por rango (predeterminado: None)range_filter: Límite superior opcional para búsqueda por rango (predeterminado: None)
- Parámetros:
-
milvus_hybrid_search: Realizar búsqueda híbrida en una colección- Parámetros:
collection_name: Nombre de la colección a buscarquery_text: Consulta de texto para la búsquedatext_field: Nombre del campo para la búsqueda de textovector: Vector de la consulta de textovector_field: Nombre del campo para la búsqueda vectoriallimit: El número máximo de resultados a devolver (predeterminado: 5)output_fields: Campos a incluir en los resultadosfilter_expr: Expresión de filtrosparse_radius: Límite inferior opcional para búsqueda por rango disperso (predeterminado: None)sparse_range_filter: Límite superior opcional para búsqueda por rango disperso (predeterminado: None)dense_radius: Límite inferior opcional para búsqueda por rango denso (predeterminado: None)dense_range_filter: Límite superior opcional para búsqueda por rango denso (predeterminado: None)
- Parámetros:
-
milvus_text_similarity_search: Realizar búsqueda de similitud de texto en una colecciónNota: Esta herramienta solo está soportada en Milvus 2.6.0 y superior. Y necesitas configurar la función de embedding en el servidor Milvus. Consulta Función de Embedding para más detalles.
- Parámetros:
collection_name: Nombre de la colección a buscarquery_text: Consulta de texto para la búsqueda de similitudanns_field: Nombre del campo para la búsqueda de textolimit: El número máximo de resultados a devolver (predeterminado: 5)output_fields: Campos a incluir en los resultadosmetric_type: Métrica de distancia (COSINE, L2, IP) (predeterminado: "COSINE")filter_expr: Expresión de filtro opcionalradius: Límite inferior opcional para búsqueda por rango (predeterminado: None)range_filter: Límite superior opcional para búsqueda por rango (predeterminado: None)
- Parámetros:
-
milvus_query: Consultar colección usando expresiones de filtro- Parámetros:
collection_name: Nombre de la colección a consultarfilter_expr: Expresión de filtro (ej. 'age > 20')output_fields: Campos a incluir en los resultadoslimit: El número máximo de resultados a devolver (predeterminado: 10)
- Parámetros:
Gestión de colecciones
-
milvus_list_collections: Listar todas las colecciones en la base de datos -
milvus_create_collection: Crear una nueva colección con configuración rápida o esquema personalizado- Parámetros:
collection_name: Nombre para la nueva colecciónauto_id: si se debe auto generar id, predeterminado a Truedimension: dimensión del vector, predeterminado a 768; para configuración rápida y se ignorará si se proporcionafield_schemaprimary_field_name: nombre del campo primario, predeterminado a "id"; para configuración rápida y se ignorará si se proporcionafield_schemavector_field_name: nombre del campo vectorial, predeterminado a "vector"; para configuración rápida y se ignorará si se proporcionafield_schemametric_type: tipo de métrica, predeterminado a "COSINE"; para configuración rápida y se ignorará si se proporcionafield_schemafield_schema: Lista de esquema de campo, cada elemento es un diccionario con las siguientes claves:name: nombre del campotype: tipo del campo
index_params: Lista opcional de parámetros de índice, cada elemento es un diccionario con las siguientes claves:field_name: nombre del campo a indexarindex_type: tipo de índice**kwargs: otros parámetros de índice opcionales
other_kwargs: Argumentos de palabra clave adicionales para la creación de la colección
- Parámetros:
-
milvus_load_collection: Cargar una colección en memoria para búsqueda y consulta- Parámetros:
collection_name: Nombre de la colección a cargarreplica_number: Número de réplicas (predeterminado: 1)
- Parámetros:
-
milvus_release_collection: Liberar una colección de la memoria- Parámetros:
collection_name: Nombre de la colección a liberar
- Parámetros:
-
milvus_get_collection_info: Lista información detallada como esquema, propiedades, ID de colección y otros metadatos de una colección específica.- Parámetros:
collection_name: Nombre de la colección de la cual obtener información detallada
- Parámetros:
Operaciones de datos
-
milvus_insert_data: Insertar datos en una colección- Parámetros:
collection_name: Nombre de la coleccióndata: Diccionario que mapea nombres de campo a listas de valores
- Parámetros:
-
milvus_delete_entities: Eliminar entidades de una colección basado en una expresión de filtro- Parámetros:
collection_name: Nombre de la colecciónfilter_expr: Expresión de filtro para seleccionar entidades a eliminar
- Parámetros:
Variables de entorno
MILVUS_URI: URI del servidor Milvus (se puede establecer en lugar de --milvus-uri)MILVUS_TOKEN: Token de autenticación opcionalMILVUS_DB: Nombre de la base de datos (predeterminado a "default")
Desarrollo
Para ejecutar el servidor directamente:
uv run server.py --milvus-uri http://localhost:19530
Ejemplos
Usando Claude Desktop
Ejemplo 1: Listando colecciones
What are the collections I have in my Milvus DB?
Claude luego usará MCP para verificar esta información en tu base de datos Milvus.
I'll check what collections are available in your Milvus database.
Here are the collections in your Milvus database:
1. rag_demo
2. test
3. chat_messages
4. text_collection
5. image_collection
6. customized_setup
7. streaming_rag_demo
Ejemplo 2: Buscando documentos
Find documents in my text_collection that mention "machine learning"
Claude usará las capacidades de búsqueda de texto completo de Milvus para encontrar documentos relevantes:
I'll search for documents about machine learning in your text_collection.
> View result from milvus-text-search from milvus (local)
Here are the documents I found that mention machine learning:
[Results will appear here based on your actual data]
Usando Cursor
Ejemplo: Creando una colección
En Cursor, puedes preguntar:
Create a new collection called 'articles' in Milvus with fields for title (string), content (string), and a vector field (128 dimensions)
Cursor usará el servidor MCP para ejecutar esta operación:
I'll create a new collection called 'articles' with the specified fields.
Collection 'articles' has been created successfully with the following schema:
- title: string
- content: string
- vector: float vector[128]
Solución de problemas
Problemas comunes
Errores de conexión
Si ves errores como "Failed to connect to Milvus server":
- Verifique que su instancia de Milvus esté en ejecución:
docker ps(si usa Docker) - Compruebe que la URI sea correcta en su configuración
- Asegúrese de que no haya reglas de firewall bloqueando la conexión
- Intente usar
127.0.0.1en lugar delocalhosten la URI
Problemas de autenticación
Si ve errores de autenticación:
- Verifique que su
MILVUS_TOKENsea correcto - Compruebe si su instancia de Milvus requiere autenticación
- Asegúrese de tener los permisos correctos para las operaciones que intenta realizar
Herramienta no encontrada
Si las herramientas MCP no aparecen en Claude Desktop o Cursor:
- Reinicie la aplicación
- Revise los registros del servidor en busca de errores
- Verifique que el servidor MCP esté funcionando correctamente
- Presione el botón de actualizar en la configuración de MCP (para Cursor)
Obtener ayuda
Si continúa experimentando problemas:
- Consulte los GitHub Issues para problemas similares
- Únase al Discord de la comunidad Milvus para obtener soporte
- Registre un nuevo issue con información detallada sobre su problema