AWS Knowledge Base Retrieval

Recupere informações de uma AWS Knowledge Base usando o Bedrock Agent Runtime.

Documentação

Servidor MCP de Recuperação da AWS Knowledge Base

Um servidor MCP para recuperar informações da AWS Knowledge Base usando o Bedrock Agent Runtime.

Recursos

  • RAG (Geração Aumentada por Recuperação): Recupera contexto da AWS Knowledge Base com base em uma consulta e um ID da Knowledge Base.
  • Suporte à recuperação de múltiplos resultados: Opção para recuperar um número personalizável de resultados.

Ferramentas

  • retrieve_from_aws_kb
    • Executa operações de recuperação usando a AWS Knowledge Base.
    • Entradas:
      • query (string): A consulta de busca para recuperação.
      • knowledgeBaseId (string): O ID da AWS Knowledge Base.
      • n (número, opcional): Número de resultados a recuperar (padrão: 3).
    • Formato da resposta:
      • A resposta agora retorna dois itens de conteúdo separados:
        • Um item de texto contendo o contexto bruto da knowledge base.
        • Um item JSON contendo as fontes RAG estruturadas com metadados (id, fileName, snippet e score).
      • Essa separação permite um processamento mais flexível dos resultados.

Configuração

Configurando credenciais da AWS

Você tem duas opções para configurar as credenciais da AWS:

Opção 1: Chaves de acesso IAM

  1. Obtenha o ID da chave de acesso, a chave de acesso secreta e a região da AWS no Console de Gerenciamento da AWS.
  2. Garanta que essas credenciais tenham permissões apropriadas para operações do Bedrock Agent Runtime.
  3. Defina as variáveis de ambiente conforme mostrado nos exemplos de configuração abaixo.
  4. Para credenciais temporárias, você também pode fornecer um token de sessão usando a variável de ambiente AWS_SESSION_TOKEN.

Opção 2: AWS SSO (Single Sign-On)

O servidor agora suporta credenciais AWS SSO:

  1. Configure a CLI da AWS com seu perfil SSO: aws configure sso
  2. Defina apenas a variável de ambiente AWS_REGION na configuração do servidor MCP.
  3. O servidor usará a cadeia padrão de provedores de credenciais, que inclui credenciais SSO.

Opcional: Configurar IDs padrão da Knowledge Base

Você pode opcionalmente especificar um ou mais IDs da knowledge base para usar por padrão:

  1. Crie uma matriz de IDs da knowledge base em formato JSON.
  2. Defina isso como a variável de ambiente AWS_KB_IDS na sua configuração.
  3. Quando isso estiver configurado, o parâmetro knowledgeBaseId se torna opcional na ferramenta.

Uso com Claude Desktop

Adicione isso ao seu claude_desktop_config.json:

Docker com chaves de acesso IAM

{
  "mcpServers": {
    "aws-kb-retrieval": {
      "command": "docker",
      "args": [ "run", "-i", "--rm", "-e", "AWS_ACCESS_KEY_ID", "-e", "AWS_SECRET_ACCESS_KEY", "-e", "AWS_REGION", "-e", "AWS_KB_IDS", "mcp/aws-kb-retrieval-server" ],
      "env": {
        "AWS_ACCESS_KEY_ID": "YOUR_ACCESS_KEY_HERE",
        "AWS_SECRET_ACCESS_KEY": "YOUR_SECRET_ACCESS_KEY_HERE",
        "AWS_SESSION_TOKEN": "YOUR_OPTIONAL_SESSION_ID_FOR_SSO_TEMPORARY_CREDENTIALS_HERE",
        "AWS_REGION": "YOUR_AWS_REGION_HERE",
        "AWS_KB_IDS": "[\"kb-12345\", \"kb-67890\"]"
      }
    }
  }
}

Docker com AWS SSO

{
  "mcpServers": {
    "aws-kb-retrieval": {
      "command": "docker",
      "args": [ "run", "-i", "--rm", "-e", "AWS_REGION", "-e", "AWS_KB_IDS", "-v", "${HOME}/.aws:/root/.aws", "mcp/aws-kb-retrieval-server" ],
      "env": {
        "AWS_ACCESS_KEY_ID": "YOUR_ACCESS_KEY_HERE",
        "AWS_SECRET_ACCESS_KEY": "YOUR_SECRET_ACCESS_KEY_HERE",
        "AWS_SESSION_TOKEN": "YOUR_OPTIONAL_SESSION_ID_FOR_SSO_TEMPORARY_CREDENTIALS_HERE",
        "AWS_REGION": "YOUR_AWS_REGION_HERE",
        "AWS_KB_IDS": "[\"kb-12345\", \"kb-67890\"]"
      }
    }
  }
}

NPX com chaves de acesso IAM

{
  "mcpServers": {
    "aws-kb-retrieval": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-aws-kb-retrieval"
      ],
      "env": {
        "AWS_ACCESS_KEY_ID": "YOUR_ACCESS_KEY_HERE",
        "AWS_SECRET_ACCESS_KEY": "YOUR_SECRET_ACCESS_KEY_HERE",
        "AWS_SESSION_TOKEN": "YOUR_OPTIONAL_SESSION_ID_FOR_SSO_TEMPORARY_CREDENTIALS_HERE",
        "AWS_REGION": "YOUR_AWS_REGION_HERE",
        "AWS_KB_IDS": "[\"kb-12345\", \"kb-67890\"]"
      }
    }
  }
}

NPX com AWS SSO

{
  "mcpServers": {
    "aws-kb-retrieval": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-aws-kb-retrieval"
      ],
      "env": {
        "AWS_ACCESS_KEY_ID": "YOUR_ACCESS_KEY_HERE",
        "AWS_SECRET_ACCESS_KEY": "YOUR_SECRET_ACCESS_KEY_HERE",
        "AWS_SESSION_TOKEN": "YOUR_OPTIONAL_SESSION_ID_FOR_SSO_TEMPORARY_CREDENTIALS_HERE",
        "AWS_REGION": "YOUR_AWS_REGION_HERE",
        "AWS_KB_IDS": "[\"kb-12345\", \"kb-67890\"]"
      }
    }
  }
}

Repositório local (a partir do repositório clonado/compilado)

{
  "mcpServers": {
    "aws-kb": {
      "command": "node",
      "args": [
        "/path/to/mcp-aws-kb/dist/index.js"
      ],
      "env": {
        "AWS_ACCESS_KEY_ID": "YOUR_ACCESS_KEY_HERE",
        "AWS_SECRET_ACCESS_KEY": "YOUR_SECRET_ACCESS_KEY_HERE",
        "AWS_SESSION_TOKEN": "YOUR_OPTIONAL_SESSION_ID_FOR_SSO_TEMPORARY_CREDENTIALS_HERE",
        "AWS_REGION": "YOUR_AWS_REGION_HERE",
        "AWS_KB_IDS": "[\"kb-12345\", \"kb-67890\"]"
      },
      "disabled": false,
      "autoApprove": [
        "retrieve_from_aws_kb"
      ],
      "timeout": 120
    }
  }
}

Compilação

Docker:

docker build -t mcp/aws-kb-retrieval -f src/aws-kb-retrieval-server/Dockerfile .

Licença

Este servidor MCP é licenciado sob a Licença MIT. Isso significa que você é livre para usar, modificar e distribuir o software, sujeito aos termos e condições da Licença MIT. Para mais detalhes, consulte o arquivo LICENSE no repositório do projeto.

Este README assume que o pacote do seu servidor é nomeado @modelcontextprotocol/server-aws-kb-retrieval. Ajuste o nome do pacote e os detalhes de instalação se forem diferentes na sua configuração. Além disso, garanta que o script do seu servidor esteja corretamente compilado e que todas as dependências estejam devidamente gerenciadas no seu package.json.