PyMilvus Code Generate Helper

Recupera fragmentos de código y documentos relevantes para ayudar a generar código PyMilvus, requiriendo una instancia de Milvus en ejecución.

Documentación

milvus-sdk-code-helper

Un servidor de Model Context Protocol que recupera fragmentos de código o documentos relevantes para ayudar a generar código pymilvus.

Architecture

Example

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)

Inicio rápido con FastMCP

La forma recomendada de usar este servidor MCP es a través de FastMCP, que proporciona mejor rendimiento y una configuración más sencilla.

Primera configuración (con actualización de documentos)

Para la primera ejecución del servidor, usa el servidor FastMCP principal, que actualizará automáticamente la base de datos de documentos:

uv run src/mcp_pymilvus_code_generate_helper/fastmcp_server.py

Esto:

  • Se conectará a tu instancia de Milvus (predeterminado: http://localhost:19530)
  • Descargará y procesará la documentación más reciente de Milvus
  • Iniciará el servidor MCP con las tres herramientas disponibles

Configuración personalizada

# Connect to remote Milvus server
uv run src/mcp_pymilvus_code_generate_helper/fastmcp_server.py --milvus_uri http://your-server:19530 --milvus_token your_token

# Change server host and port
uv run src/mcp_pymilvus_code_generate_helper/fastmcp_server.py --host 0.0.0.0 --port 8080

# Use different transport (default is http)
uv run src/mcp_pymilvus_code_generate_helper/fastmcp_server.py --transport sse

Ejecuciones posteriores (modo ligero)

Después de la configuración inicial, puedes usar el servidor FastMCP ligero para un inicio más rápido:

uv run examples/fastmcp_server.py

Esta versión ligera:

  • Omite la sincronización de documentos
  • Se inicia inmediatamente sin tareas en segundo plano
  • Asume que los documentos ya están cargados en Milvus

Opciones del servidor ligero

# Custom configuration for lightweight server
uv run examples/fastmcp_server.py --milvus_uri http://your-server:19530 --host 0.0.0.0 --port 8080 --transport http

Características clave

  • Obtiene e indexa automáticamente la versión más reciente de la documentación de Milvus (可以获取最新文档版本)
  • Actualización automática semanal mediante un programador ligero en segundo plano

Uso con Cursor

  1. Ve a Cursor > Settings > MCP
  2. Haz clic en el botón + Add New Global MCP Server
  3. Configura según el modo elegido:

Para transporte HTTP (recomendado)

{
  "mcpServers": {
    "milvus-sdk-code-helper": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

Para transporte SSE

{
  "mcpServers": {
    "milvus-sdk-code-helper": {
      "url": "http://localhost:8000"
    }
  }
}

Para transporte STDIO

{
  "mcpServers": {
    "milvus-sdk-code-helper": {
      "command": "/PATH/TO/uv",
      "args": [
        "--directory",
        "/path/to/milvus-sdk-code-helper",
        "run",
        "examples/fastmcp_server.py",
        "--transport",
        "stdio",
        "--milvus_uri",
        "http://localhost:19530"
      ],
      "env": {
        "OPENAI_API_KEY": "YOUR_OPENAI_API_KEY"
      }
    }
  }
}

Uso con Claude Desktop

  1. Instala Claude Desktop desde https://claude.ai/download
  2. Abre la configuración de Claude Desktop:
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  3. Agrega la siguiente configuración:

Para transporte HTTP

{
  "mcpServers": {
    "milvus-sdk-code-helper": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

Para transporte STDIO

{
  "mcpServers": {
    "milvus-sdk-code-helper": {
      "command": "/PATH/TO/uv",
      "args": [
        "--directory",
        "/path/to/milvus-sdk-code-helper",
        "run",
        "examples/fastmcp_server.py",
        "--transport",
        "stdio",
        "--milvus_uri",
        "http://localhost:19530"
      ],
      "env": {
        "OPENAI_API_KEY": "YOUR_OPENAI_API_KEY"
      }
    }
  }
}
  1. Reinicia Claude Desktop

⚠️ Nota: Recuerda establecer la variable de entorno OPENAI_API_KEY cuando uses el transporte STDIO.

Uso con Claude Code (VS Code)

Usando CLI (recomendado)

# HTTP (recommended)
claude mcp add --transport http milvus-sdk-code-helper http://localhost:8000/mcp

# SSE
claude mcp add --transport sse milvus-sdk-code-helper http://localhost:8000

# STDIO
claude mcp add milvus-sdk-code-helper /ABS/PATH/TO/uv -- \
  --directory /ABS/PATH/TO/milvus-sdk-code-helper \
  run examples/fastmcp_server.py --transport stdio --milvus_uri http://localhost:19530

Configuración manual

  • Global (~/.claude.json) – transporte HTTP
{
  "mcpServers": {
    "milvus-sdk-code-helper": {
      "type": "http",
      "url": "http://localhost:8000/mcp"
    }
  }
}
  • Proyecto (.mcp.json en la raíz del proyecto) – transporte STDIO
{
  "mcpServers": {
    "milvus-sdk-code-helper": {
      "type": "stdio",
      "command": "/ABS/PATH/TO/uv",
      "args": [
        "--directory",
        "/ABS/PATH/TO/milvus-sdk-code-helper",
        "run",
        "examples/fastmcp_server.py",
        "--transport",
        "stdio",
        "--milvus_uri",
        "http://localhost:19530"
      ],
      "env": {
        "OPENAI_API_KEY": "YOUR_OPENAI_API_KEY"
      }
    }
  }
}

Uso con Gemini CLI (como servidor MCP)

Puedes agregar un servidor MCP de Gemini junto a este proyecto en el mismo cliente. Esto es opcional e independiente de este servidor.

Herramientas disponibles

El servidor proporciona tres herramientas potentes para la generación y traducción de código Milvus:

1. milvus_code_generator

Genera o proporciona código de muestra PyMilvus/Milvus basado en entrada de lenguaje natural.

  • Cuándo usarlo: Generación de código, solicitudes de código de muestra, consultas de "cómo escribir"
  • Parámetros:
    • query: Tu solicitud en lenguaje natural para la generación de código
  • Ejemplo: "Genera código pymilvus para búsqueda híbrida"

tool1

2. orm_client_code_convertor

Convierte entre formatos de código ORM y cliente PyMilvus.

  • Cuándo usarlo: Conversión entre estilos ORM y cliente, adaptación de formato
  • Parámetros:
    • query: Lista de nombres de API de Milvus para convertir (por ejemplo, ["create_collection", "insert"])
  • Ejemplo: "Convierte código ORM a cliente PyMilvus"

tool2

3. milvus_code_translator

Traduce código Milvus entre diferentes lenguajes de programación.

  • Cuándo usarlo: Traducción de código entre lenguajes
  • Parámetros:
    • query: Lista de nombres de API de Milvus en formato de comillas dobles escapadas (por ejemplo, [\"create_collection\", \"insert\", \"search\"])
    • source_language: Lenguaje de programación de origen (python, java, go, csharp, node, restful)
    • target_language: Lenguaje de programación de destino (python, java, go, csharp, node, restful)
  • Ejemplo: "Traduce código Python de Milvus a Java"

tool3

⚠️ Importante: No necesitas especificar nombres de herramientas o parámetros manualmente. Solo describe tus requisitos de forma natural, y el sistema MCP seleccionará automáticamente la herramienta adecuada y preparará los parámetros necesarios.

Modos de transporte heredados

Para compatibilidad con versiones anteriores, el servidor también admite modos de transporte SSE y STDIO:

Transporte SSE

# Start SSE server
uv run src/mcp_pymilvus_code_generate_helper/sse_server.py --milvus_uri http://localhost:19530

# Cursor configuration for SSE
{
  "mcpServers": {
    "milvus-sdk-code-helper": {
      "url": "http://localhost:23333/milvus-code-helper/sse"
    }
  }
}

Transporte STDIO

# Start STDIO server
uv run src/mcp_pymilvus_code_generate_helper/stdio_server.py --milvus_uri http://localhost:19530

# Cursor configuration for STDIO
{
  "mcpServers": {
    "milvus-sdk-code-helper": {
      "command": "/PATH/TO/uv",
      "args": [
        "--directory",
        "/path/to/milvus-sdk-code-helper",
        "run",
        "src/mcp_pymilvus_code_generate_helper/stdio_server.py",
        "--milvus_uri",
        "http://localhost:19530"
      ],
      "env": {
        "OPENAI_API_KEY": "YOUR_OPENAI_API_KEY"
      }
    }
  }
}

Soporte Docker

También puedes ejecutar el servidor usando Docker:

Construir la imagen Docker

docker build -t milvus-code-helper .

Ejecutar con FastMCP (recomendado)

# First time run with document update
docker run -p 8000:8000 \
  -e OPENAI_API_KEY=your_openai_key \
  -e MILVUS_URI=http://your-milvus-host:19530 \
  -e MILVUS_TOKEN=your_milvus_token \
  milvus-code-helper

# Lightweight mode for subsequent runs
docker run -p 8000:8000 \
  -e OPENAI_API_KEY=your_openai_key \
  -e MILVUS_URI=http://your-milvus-host:19530 \
  -e MILVUS_TOKEN=your_milvus_token \
  milvus-code-helper examples/fastmcp_server.py

Opciones de configuración

Parámetros del servidor

ParámetroDescripciónPredeterminado
--milvus_uriURI del servidor Milvushttp://localhost:19530
--milvus_tokenToken de autenticación de Milvus""
--db_nameNombre de la base de datos de Milvusdefault
--hostDirección del host del servidor0.0.0.0
--portPuerto del servidor8000
--pathRuta del endpoint HTTP/mcp
--transportProtocolo de transportehttp

Opciones de transporte

  • http: Transporte HTTP RESTful (recomendado)
  • sse: Transporte de eventos enviados por el servidor
  • stdio: Transporte de entrada/salida estándar

Variables de entorno

  • OPENAI_API_KEY: Requerida para el procesamiento de documentos y la generación de incrustaciones
  • MILVUS_URI: Forma alternativa de especificar el URI del servidor Milvus
  • MILVUS_TOKEN: Forma alternativa de especificar el token de autenticación de Milvus

Solución de problemas

Problemas comunes

  1. Conexión rechazada: Asegúrate de que Milvus esté en ejecución y sea accesible
  2. Autenticación fallida: Verifica tu token y credenciales de Milvus
  3. Conflictos de puerto: Cambia el puerto usando el parámetro --port
  4. Documentos faltantes: Ejecuta primero el servidor completo para poblar la base de datos

Modo de depuración

Habilita el registro de depuración:

PYTHONPATH=src python -m logging --level DEBUG src/mcp_pymilvus_code_generate_helper/fastmcp_server.py

Contribuciones

¡Las contribuciones son bienvenidas! Si tienes ideas para mejorar los resultados de recuperación o agregar nuevas funciones, envía una solicitud de extracción o abre un problema.

Licencia

Este proyecto está licenciado bajo la Licencia MIT.