Pular para o conteúdo

MCP Server para DynamoDB

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

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

  1. Um projeto ts#mcp-server
  2. Um projeto ts#dynamodb

Execute este gerador@aws/nx-plugin:connection

pnpm nx g @aws/nx-plugin:connection
Monte seu comando5

Obrigatório

Obrigatório

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.

Opções do gerador5 opções
sourceProjectObrigatóriostring

O projeto de origem

targetProjectObrigatóriostring

O projeto de destino para conectar

sourceComponentstring

O componente de origem a partir do qual conectar (nome do componente, caminho relativo à raiz do projeto de origem, ou id do gerador). Use '.' para selecionar explicitamente o projeto como origem.

targetComponentstring

O componente de destino ao qual conectar (nome do componente, caminho relativo à raiz do projeto de destino, ou id do gerador). Use '.' para selecionar explicitamente o projeto como destino.

preferInstallDependenciesbooleanPadrão: 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. Nenhum arquivo de código-fonte é modificado.

Importe factories de entidades do pacote DynamoDB e use-as dentro de createServer:

packages/my-service/src/my-mcp/server.ts
import { createExampleEntity } from '@my-scope/my-table';
export const createServer = async () => {
const server = new McpServer({ name: 'my-service', version: '1.0.0' });
server.registerTool(
'list_examples',
{ description: 'List all example items', inputSchema: {} },
async () => {
const entity = await createExampleEntity();
const result = await entity.scan.go();
return {
content: [{ type: 'text' as const, text: JSON.stringify(result.data) }],
};
},
);
return server;
};

Para permitir que o 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 DynamoDB quanto 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 getDynamoDBClient() e resolveTableName() se conectam à instância local do DynamoDB Local em vez da AWS.