ts#mcp-server
Gerador de Servidor MCP em TypeScript
Seção intitulada “Gerador de Servidor MCP em TypeScript”Gere um servidor Model Context Protocol (MCP) em TypeScript para fornecer contexto a Large Language Models (LLMs).
O que é o MCP?
Seção intitulada “O que é o MCP?”O Model Context Protocol (MCP) é um padrão aberto que permite a assistentes de IA interagirem com ferramentas e recursos externos. Ele fornece uma maneira consistente para LLMs:
- Executar ferramentas (funções) que realizam ações ou recuperam informações
- Acessar recursos que fornecem contexto ou dados
Gerar um Servidor MCP
Seção intitulada “Gerar um Servidor MCP”Você pode gerar um servidor MCP em TypeScript de duas formas:
- Instale o Nx Console VSCode Plugin se ainda não o fez
- Abra o console Nx no VSCode
- Clique em
Generate (UI)
na seção "Common Nx Commands" - Procure por
@aws/nx-plugin - ts#mcp-server
- Preencha os parâmetros obrigatórios
- Clique em
Generate
pnpm nx g @aws/nx-plugin:ts#mcp-server
yarn nx g @aws/nx-plugin:ts#mcp-server
npx nx g @aws/nx-plugin:ts#mcp-server
bunx nx g @aws/nx-plugin:ts#mcp-server
Você também pode realizar uma execução simulada para ver quais arquivos seriam alterados
pnpm nx g @aws/nx-plugin:ts#mcp-server --dry-run
yarn nx g @aws/nx-plugin:ts#mcp-server --dry-run
npx nx g @aws/nx-plugin:ts#mcp-server --dry-run
bunx nx g @aws/nx-plugin:ts#mcp-server --dry-run
Parâmetro | Tipo | Padrão | Descrição |
---|---|---|---|
name Obrigatório | string | - | MCP server project name. |
directory | string | packages | Parent directory where the MCP server is placed. |
subDirectory | string | - | The sub directory the MCP server is placed in. By default this is the MCP server project name. |
Saída do Gerador
Seção intitulada “Saída do Gerador”O gerador criará os seguintes arquivos do projeto:
Directorypackages/<nome>/
- README.md Documentação do servidor MCP com instruções de uso
- project.json Configuração do projeto Nx com targets de build, bundle e dev
Directorysrc/
- index.ts Ponto de entrada do servidor MCP
- server.ts Definição principal do servidor, definindo ferramentas e recursos
- global.d.ts Declarações de tipos TypeScript para importar arquivos markdown
Directoryresources/
- example-context.md Arquivo markdown de exemplo usado como recurso pelo servidor MCP
Trabalhando com Seu Servidor MCP
Seção intitulada “Trabalhando com Seu Servidor MCP”Adicionando Ferramentas
Seção intitulada “Adicionando Ferramentas”Ferramentas são funções que o assistente de IA pode chamar para executar ações. Você pode adicionar novas ferramentas no arquivo server.ts
:
server.tool("toolName", "tool description", { param1: z.string(), param2: z.number() }, // Esquema de entrada usando Zod async ({ param1, param2 }) => { // Implementação da ferramenta return { content: [{ type: "text", text: "Result" }] }; });
Adicionando Recursos
Seção intitulada “Adicionando Recursos”Recursos fornecem contexto ao assistente de IA. Você pode adicionar recursos estáticos de arquivos ou recursos dinâmicos:
// Recurso estático de um arquivoimport exampleContext from './resources/example-context.md';
server.resource('resource-name', 'example://resource', async (uri) => ({ contents: [{ uri: uri.href, text: exampleContext }],}));
// Recurso dinâmicoserver.resource('dynamic-resource', 'dynamic://resource', async (uri) => { const data = await fetchSomeData(); return { contents: [{ uri: uri.href, text: data }], };});
Configurando com Assistentes de IA
Seção intitulada “Configurando com Assistentes de IA”Para usar seu servidor MCP com assistentes de IA, você precisa compilá-lo primeiro:
pnpm nx run your-mcp-server:bundle
yarn nx run your-mcp-server:bundle
npx nx run your-mcp-server:bundle
bunx nx run your-mcp-server:bundle
Isso cria uma versão compilada em dist/packages/your-mcp-server/bundle/index.js
(o caminho pode variar conforme suas configurações de diretório).
Arquivos de Configuração
Seção intitulada “Arquivos de Configuração”A maioria dos assistentes de IA que suportam MCP usa uma abordagem de configuração similar. Você precisará criar ou atualizar um arquivo de configuração com os detalhes do seu servidor MCP:
{ "mcpServers": { "your-mcp-server": { "command": "node", "args": [ "/path/to/workspace/dist/packages/your-mcp-server/bundle/index.js" ], "transportType": "stdio" } }}
Substitua /path/to/workspace/dist/packages/your-mcp-server/bundle/index.js
pelo caminho real para seu servidor MCP compilado.
Configuração Específica por Assistente
Seção intitulada “Configuração Específica por Assistente”Consulte a documentação abaixo para configurar o MCP com assistentes específicos:
Nota de implementação:
Como solicitado, todos os nomes de produtos, URLs e elementos técnicos foram mantidos em seu formato original. A estrutura MDX e a formatação permanecem idênticas ao conteúdo original em inglês.
Fluxo de Desenvolvimento
Seção intitulada “Fluxo de Desenvolvimento”Targets de Build
Seção intitulada “Targets de Build”O gerador é baseado no gerador de projetos TypeScript e herda seus targets, além de adicionar os seguintes targets adicionais:
O target bundle
usa esbuild para criar um único arquivo JavaScript que pode ser usado com assistentes de IA:
pnpm nx run your-mcp-server:bundle
yarn nx run your-mcp-server:bundle
npx nx run your-mcp-server:bundle
bunx nx run your-mcp-server:bundle
Isso cria uma versão compilada em dist/packages/your-mcp-server/bundle/index.js
(o caminho pode variar conforme suas configurações de diretório).
O target dev
monitora mudanças em seu projeto e recompila automaticamente o bundle:
pnpm nx run your-mcp-server:dev
yarn nx run your-mcp-server:dev
npx nx run your-mcp-server:dev
bunx nx run your-mcp-server:dev
Isso é particularmente útil durante o desenvolvimento, garantindo que seu assistente de IA utilize a versão mais recente do servidor MCP.