PyMilvus Code Generate Helper

Recupera trechos de código e documentos relevantes para auxiliar na geração de código PyMilvus, exigindo uma instância do Milvus em execução.

Documentação

milvus-sdk-code-helper

Um servidor Model Context Protocol que recupera trechos de código ou documentos relevantes para ajudar na geração de código pymilvus.

Architecture

Example

Pré-requisitos

Antes de usar este servidor MCP, certifique-se de ter:

  • Python 3.10 ou superior
  • Uma instância Milvus em execução (local ou remota)
  • uv instalado (recomendado para executar o servidor)

Início Rápido com FastMCP

A maneira recomendada de usar este servidor MCP é através do FastMCP, que oferece melhor desempenho e configuração mais fácil.

Configuração Inicial (com Atualização de Documentos)

Na primeira execução do servidor, use o servidor FastMCP principal, que atualizará automaticamente o banco de dados de documentos:

uv run src/mcp_pymilvus_code_generate_helper/fastmcp_server.py

Isso irá:

  • Conectar-se à sua instância Milvus (padrão: http://localhost:19530)
  • Baixar e processar a documentação mais recente do Milvus
  • Iniciar o servidor MCP com todas as três ferramentas disponíveis

Configuração 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

Execuções Posteriores (Modo Leve)

Após a configuração inicial, você pode usar o servidor FastMCP leve para inicialização mais rápida:

uv run examples/fastmcp_server.py

Esta versão leve:

  • Ignora a sincronização de documentos
  • Inicia imediatamente sem tarefas em segundo plano
  • Assume que os documentos já estão carregados no Milvus

Opções do Servidor Leve

# 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

Principais Recursos

  • Busca e indexa automaticamente a versão mais recente da documentação do Milvus (可以获取最新文档版本)
  • Atualização automática semanal via agendador leve em segundo plano

Uso com Cursor

  1. Vá para Cursor > Settings > MCP
  2. Clique no botão + Add New Global MCP Server
  3. Configure com base no modo escolhido:

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 com Claude Desktop

  1. Instale o Claude Desktop a partir de https://claude.ai/download
  2. Abra sua configuração do Claude Desktop:
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  3. Adicione a seguinte configuração:

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. Reinicie o Claude Desktop

⚠️ Nota: Lembre-se de definir a variável de ambiente OPENAI_API_KEY ao usar transporte STDIO.

Uso com 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

Configuração Manual

  • Global (~/.claude.json) – transporte HTTP
{
  "mcpServers": {
    "milvus-sdk-code-helper": {
      "type": "http",
      "url": "http://localhost:8000/mcp"
    }
  }
}
  • Projeto (.mcp.json na raiz do projeto) – 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 com Gemini CLI (como servidor MCP)

Você pode adicionar um servidor MCP Gemini junto com este projeto no mesmo cliente. Isso é opcional e independente deste servidor.

Ferramentas Disponíveis

O servidor fornece três ferramentas poderosas para geração e tradução de código Milvus:

1. milvus_code_generator

Gere ou forneça exemplos de código PyMilvus/Milvus com base em entrada em linguagem natural.

  • Quando usar: Geração de código, solicitações de exemplos de código, consultas "como escrever"
  • Parâmetros:
    • query: Sua solicitação em linguagem natural para geração de código
  • Exemplo: "Gerar código pymilvus para busca híbrida"

tool1

2. orm_client_code_convertor

Converta entre formatos de código ORM e cliente PyMilvus.

  • Quando usar: Conversão entre estilos ORM e cliente, adaptação de formato
  • Parâmetros:
    • query: Lista de nomes de APIs Milvus para converter (ex.: ["create_collection", "insert"])
  • Exemplo: "Converter código ORM para cliente PyMilvus"

tool2

3. milvus_code_translator

Traduza código Milvus entre diferentes linguagens de programação.

  • Quando usar: Tradução de código entre linguagens
  • Parâmetros:
    • query: Lista de nomes de APIs Milvus no formato de aspas duplas escapadas (ex.: [\"create_collection\", \"insert\", \"search\"])
    • source_language: Linguagem de programação de origem (python, java, go, csharp, node, restful)
    • target_language: Linguagem de programação de destino (python, java, go, csharp, node, restful)
  • Exemplo: "Traduzir código Python Milvus para Java"

tool3

⚠️ Importante: Você não precisa especificar nomes de ferramentas ou parâmetros manualmente. Basta descrever seus requisitos naturalmente, e o sistema MCP selecionará automaticamente a ferramenta apropriada e preparará os parâmetros necessários.

Modos de Transporte Legados

Para compatibilidade reversa, o servidor também suporta modos de transporte SSE e 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"
      }
    }
  }
}

Suporte a Docker

Você também pode executar o servidor usando Docker:

Construir a Imagem Docker

docker build -t milvus-code-helper .

Executar com 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

Opções de Configuração

Parâmetros do Servidor

ParâmetroDescriçãoPadrão
--milvus_uriURI do servidor Milvushttp://localhost:19530
--milvus_tokenToken de autenticação Milvus""
--db_nameNome do banco de dados Milvusdefault
--hostEndereço do host do servidor0.0.0.0
--portPorta do servidor8000
--pathCaminho do endpoint HTTP/mcp
--transportProtocolo de transportehttp

Opções de Transporte

  • http: Transporte HTTP RESTful (recomendado)
  • sse: Transporte Server-Sent Events
  • stdio: Transporte padrão de entrada/saída

Variáveis de Ambiente

  • OPENAI_API_KEY: Necessário para processamento de documentos e geração de embeddings
  • MILVUS_URI: Maneira alternativa de especificar o URI do servidor Milvus
  • MILVUS_TOKEN: Maneira alternativa de especificar o token de autenticação Milvus

Solução de Problemas

Problemas Comuns

  1. Recusa de conexão: Certifique-se de que o Milvus esteja em execução e acessível
  2. Falha de autenticação: Verifique seu token e credenciais Milvus
  3. Conflitos de porta: Altere a porta usando o parâmetro --port
  4. Documentos ausentes: Execute o servidor completo primeiro para popular o banco de dados

Modo de Depuração

Ative o registro de depuração:

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

Contribuindo

Contribuições são bem-vindas! Se você tiver ideias para melhorar os resultados de recuperação ou adicionar novos recursos, envie um pull request ou abra uma issue.

Licença

Este projeto é licenciado sob a Licença MIT.