Pular para o conteúdo

Python MCP Server para DynamoDB

O gerador connection conecta um Python MCP Server a um projeto Python DynamoDB, configurando o desenvolvimento local para que ambos iniciem juntos automaticamente.

Antes de usar este gerador, certifique-se de ter:

  1. Um projeto py#mcp-server
  2. Um projeto py#dynamodb
  1. Instale o Nx Console VSCode Plugin se ainda não o fez
  2. Abra o console Nx no VSCode
  3. Clique em Generate (UI) na seção "Common Nx Commands"
  4. Procure por @aws/nx-plugin - connection
  5. Preencha os parâmetros obrigatórios
    • Clique em Generate

    Selecione seu projeto MCP server como origem e seu projeto DynamoDB como destino. Se o projeto contiver múltiplos componentes MCP server, especifique sourceComponent para desambiguar.

    Parâmetro Tipo Padrão Descrição
    sourceProject Obrigatório string - O projeto de origem
    targetProject Obrigatório string - O projeto de destino para conectar
    sourceComponent string - O componente de origem para conectar (nome do componente, caminho relativo à raiz do projeto de origem, ou id do gerador). Use '.' para selecionar explicitamente o projeto como origem.
    targetComponent string - O componente de destino para conectar (nome do componente, caminho relativo à raiz do projeto de destino, ou id do gerador). Use '.' para selecionar explicitamente o projeto como destino.
    preferInstallDependencies boolean true Se deve preferir instalar dependências após a execução do gerador. Defina como false para adiar a instalação ao executar múltiplos geradores em lote (uma instalação ainda é executada se necessário para que os geradores subsequentes possam calcular o grafo de projetos Nx); instale uma vez no final.

    O gerador atualiza o target <mcp-server-name>-dev do MCP server em project.json para depender do target dev do projeto DynamoDB, e adiciona o pacote DynamoDB como uma dependência do workspace. Nenhum arquivo de código-fonte é modificado.

    Importe classes de entidade do pacote DynamoDB e use-as dentro das ferramentas do seu MCP server:

    packages/my_project/my_project/my_mcp_server/server.py
    from my_scope.my_table.entities.example import ExampleModel
    @mcp.tool()
    def list_examples() -> str:
    """List all example items."""
    items = list(ExampleModel.scan())
    return str([item.attribute_values for item in items])

    Para permitir que a função Lambda do MCP server acesse a tabela DynamoDB, conceda as permissões necessárias em sua infraestrutura.

    packages/infra/src/stacks/application-stack.ts
    import { MyTable } from ':my-scope/common-constructs';
    const table = new MyTable(this, 'Table');
    const myMcpServer = new MyMcpServer(this, 'MyMcpServer');
    table.grantReadWriteData(myMcpServer);

    grantReadWriteData concede tanto as permissões do DynamoDB quanto do KMS para a função de execução do MCP server.

    O gerador connection configura o target dev do seu projeto para depender do target dev do projeto DynamoDB. O DynamoDB Local será iniciado automaticamente junto com seu projeto ao executar dev.

    A variável de ambiente LOCAL_DEV=true é definida automaticamente, então is_local() retorna True e suas entidades PynamoDB se conectam à instância local do DynamoDB em vez da AWS.