Configure o Node.js e npm — a alternativa para criar MCP Servers em TypeScript.
Node.js é um runtime que permite executar JavaScript fora do navegador — diretamente no seu computador ou servidor. Criado em 2009 por Ryan Dahl, ele revolucionou o desenvolvimento web ao permitir que a mesma linguagem fosse usada no frontend e no backend. No contexto do MCP, o Node.js é essencial para criar servidores em TypeScript, a segunda linguagem mais popular do ecossistema MCP.
Node.js é um runtime JavaScript baseado no motor V8 do Chrome. Ele permite executar código JavaScript e TypeScript no servidor, fora do navegador. O SDK oficial do MCP mantido pela Anthropic está disponível em TypeScript (@modelcontextprotocol/sdk), tornando o Node.js uma alternativa poderosa ao Python para criar MCP Servers — especialmente para equipes que já trabalham com tecnologias web.
Node.js é usado por mais de 6,3 milhões de websites ao redor do mundo. O npm registry possui mais de 2,1 milhões de pacotes, sendo o maior ecossistema de pacotes open-source do mundo. No ecossistema MCP, muitos dos servidores oficiais — como o filesystem server, GitHub server e Slack server — são escritos em TypeScript rodando no Node.js, demonstrando a maturidade da plataforma para MCP.
A maneira recomendada de instalar o Node.js é usando o nvm (Node Version Manager), que permite instalar e alternar entre múltiplas versões do Node com facilidade. Isso é especialmente útil quando diferentes projetos requerem versões diferentes. Para o MCP, recomendamos o Node.js 20 LTS (Long Term Support).
O nvm (Node Version Manager) é uma ferramenta que gerencia múltiplas instalações do Node.js no mesmo computador. Em vez de instalar o Node diretamente no sistema (o que pode causar conflitos de versão), o nvm instala cada versão em um diretório isolado e permite alternar entre elas com um simples nvm use 20. Isso é análogo ao que o uv faz para Python — ambientes isolados e controlados.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
Feche e reabra o terminal após a instalação.
nvm install 20
O nvm instala o Node.js 20 LTS e já configura como versão padrão.
Acesse nodejs.org e baixe o instalador LTS. Execute o instalador com as opções padrão. O npm é instalado automaticamente junto com o Node.js.
Evite instalar Node.js via apt no Ubuntu! Os repositórios padrão do Ubuntu frequentemente contêm versões muito antigas do Node.js (como a versão 12 ou 14). Sempre use o nvm ou o repositório oficial do NodeSource para garantir que você obtenha uma versão atual e compatível com o SDK do MCP.
O npm (Node Package Manager) é o gerenciador de pacotes que vem incluído com o Node.js. Assim como o uv gerencia pacotes Python, o npm gerencia pacotes JavaScript e TypeScript. Ele é responsável por instalar dependências, executar scripts e gerenciar o arquivo package.json — o equivalente ao pyproject.toml do Python.
O npm é três coisas ao mesmo tempo: um registry (repositório online com milhões de pacotes), uma CLI (ferramenta de linha de comando para instalar e gerenciar pacotes) e um gerenciador de dependências (que controla versões via package.json e package-lock.json). Quando você instala o Node.js, o npm já vem incluído — não é necessário instalá-lo separadamente.
Comandos essenciais do npm que você usará no curso:
npm init — Cria um novo projeto (package.json)npm install pacote — Instala uma dependêncianpm run script — Executa um script definido no package.jsonnpm list — Lista pacotes instalados no projetoO npx é uma ferramenta que vem junto com o npm e permite executar pacotes diretamente sem instalá-los globalmente. Isso é especialmente importante no ecossistema MCP, onde muitos servidores são executados via npx — como o filesystem server e o servidor de criação de templates.
O npx (Node Package Execute) baixa e executa um pacote temporariamente, sem instalá-lo permanentemente no sistema. Isso é essencial para o MCP porque permite rodar servidores como npx @modelcontextprotocol/server-filesystem sem poluir seu ambiente global. O npx sempre busca a versão mais recente do pacote, garantindo que você use a versão atualizada sem precisar gerenciar atualizações manualmente.
npm install -g @modelcontextprotocol/server-filesystemsudo npm install -gnpx @modelcontextprotocol/server-filesystemAssim como fizemos com Python e uv, é essencial verificar que Node.js, npm e npx estão instalados corretamente e acessíveis no terminal. Problemas nesta etapa podem causar erros confusos mais adiante, então vale a pena investir alguns minutos na verificação.
A verificação confirma três componentes: o Node.js (runtime JavaScript), o npm (gerenciador de pacotes) e o npx (executor de pacotes). Todos os três devem retornar suas versões quando consultados via terminal. Se qualquer um falhar, o problema geralmente está no PATH do sistema ou em uma instalação incompleta.
Execute node -v. Deve mostrar v20.x.x ou superior.
Execute npm -v. Deve mostrar a versão do npm (geralmente 10.x.x com Node 20).
Execute npx --version. Deve mostrar a mesma versão do npm.
nvm list se o Node foi instalado.node -v mostra v14 ou v16, execute nvm install 20 && nvm use 20.sudo com npm. Se está pedindo sudo, a instalação não foi feita corretamente — use nvm.Vamos fazer um teste prático usando o create-server oficial do MCP — um gerador de templates que cria a estrutura completa de um MCP Server em TypeScript. Se este comando funcionar, seu ambiente Node.js está 100% pronto para o curso.
O pacote @modelcontextprotocol/create-server é um gerador oficial que cria a estrutura completa de um MCP Server em TypeScript. Ele gera automaticamente o package.json, o tsconfig.json, o código-fonte inicial com exemplos de tools, resources e prompts, e scripts de build e execução. É o equivalente ao uv init + uv add fastmcp do mundo Python.
Execute o comando abaixo no terminal para criar seu primeiro MCP Server em TypeScript:
npx @modelcontextprotocol/create-server meu-server
O gerador vai perguntar o nome e a descrição do servidor. Após concluir, entre na pasta com cd meu-server e explore os arquivos gerados. Se tudo funcionou sem erros, seu ambiente Node.js está pronto para MCP!
Próximo Módulo: 2.3 — Conhecendo o Terminal