typescript-mcp-server-generator
Faz seu agente gerar um projeto de servidor completo em TypeScript. Ele configura as ferramentas e recursos necessários para o servidor.
O que ela faz
Este gerador cria um projeto de servidor completo em TypeScript para comunicação via Model Context Protocol (MCP). Ele configura as ferramentas e a estrutura necessárias para que o servidor funcione corretamente usando a versão mais recente do SDK.
Quando usar
- ✓Ao iniciar um novo projeto de servidor MCP em TypeScript.
- ✓Quando você precisa de um servidor MCP configurado com as melhores práticas e dependências atualizadas.
- ✓Para criar ferramentas que interagem com o servidor MCP, com validação de dados.
Exemplo do que pedir para a IA
“Gere um servidor MCP em TypeScript usando o transporte HTTP com Express e inclua uma ferramenta para saudar o usuário.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Ele configura um projeto Node.js com TypeScript, instala as bibliotecas corretas do MCP v2 e define a estrutura básica do servidor. Você pode escolher entre um servidor HTTP ou um servidor que se comunica via entrada/saída padrão (stdio).
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add github/awesome-copilot --skill typescript-mcp-server-generatorOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/typescript-mcp-server-generator/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Gerar Servidor MCP TypeScript
Crie um servidor completo de Model Context Protocol (MCP) em TypeScript usando o MCP TypeScript SDK v2 com as seguintes especificações:
Requisitos
- Estrutura do Projeto: Crie um novo projeto TypeScript/Node.js com estrutura de diretórios adequada.
- Pacotes NPM: O pacote monolítico v1
@modelcontextprotocol/sdkestá aposentado. Use os pacotes focados v2:@modelcontextprotocol/server— implementação do servidor (transporte stdio via subcaminho@modelcontextprotocol/server/stdio)@modelcontextprotocol/node— transporte HTTP Node (NodeStreamableHTTPServerTransport), ou um adaptador de framework:@modelcontextprotocol/express,@modelcontextprotocol/hono,@modelcontextprotocol/fastify— cada adaptador requer a instalação do seu framework correspondente junto com ele (por exemplo,@modelcontextprotocol/express+express)@modelcontextprotocol/core— esquemas de protocolo compartilhados (importe as constantes*Schemadaqui, não desdk/types.js)zod@^4.2— v2 requer Zod 4.2+; não use zod@3
- Runtime: Node.js 20+ (mínimo v2); ESM-first com
"type": "module"(uma build CommonJS também é fornecida, entãorequire()funciona se necessário) - Tipo de Servidor: Escolha entre servidor baseado em HTTP (transporte HTTP Streamable) ou stdio. Transportes SSE e WebSocket foram removidos na v2 — não os gere.
- Ferramentas: Crie pelo menos uma ferramenta útil com validação de esquema adequada.
- Tratamento de Erros: Inclua tratamento de erros e validação abrangentes.
Detalhes de Implementação
Configuração do Projeto
- Inicialize com
npm inite crie package.json. - Instale as dependências:
@modelcontextprotocol/server,zod@^4.2e o pacote de transporte —@modelcontextprotocol/nodepara HTTP Node puro, ou um adaptador de framework junto com seu framework correspondente (por exemplo,npm install @modelcontextprotocol/express express). - Configure TypeScript com módulos ES:
"type": "module"em package.json. - Adicione dependências de desenvolvimento:
tsxouts-nodepara desenvolvimento. - Crie um arquivo .gitignore adequado.
Configuração do Servidor
- Use a classe
McpServerde@modelcontextprotocol/serverpara implementação de alto nível. - Defina o nome e a versão do servidor.
- Escolha o transporte apropriado:
- HTTP (Node):
NodeStreamableHTTPServerTransportde@modelcontextprotocol/node. - HTTP (Runtimes Web Standard):
WebStandardStreamableHTTPServerTransportde@modelcontextprotocol/server. - stdio:
StdioServerTransportde@modelcontextprotocol/server/stdio.
- HTTP (Node):
- Para HTTP: prefira um adaptador de framework (
@modelcontextprotocol/express, etc.) com middleware e tratamento de erros adequados. - Observe que a v2 usa os tipos Web Standard
Headers/Request; leia cabeçalhos comctx.http?.req?.headers.get('x-custom').
Implementação de Ferramentas
- Use
registerTool()com um objeto de configuração — as assinaturas variádicas.tool()da v1 foram removidas:server.registerTool('greet', { description: 'Greet user', inputSchema: z.object({ name: z.string() }) }, async ({ name }, ctx) => { return { content: [{ type: 'text', text: `Hello, ${name}!` }] }; }); - Os esquemas devem ser objetos Zod completos (
z.object({...})) — objetos de forma bruta ({ name: z.string() }) estão obsoletos. - Forneça campos claros de
titleedescription. - Retorne tanto
contentquantostructuredContentnos resultados. - O segundo parâmetro do handler é um objeto
ctxestruturado (substituiextrada v1):ctx.mcpReq.signal,ctx.mcpReq.id,ctx.mcpReq.send(...),ctx.mcpReq.notify(...). - Implemente tratamento de erros adequado com blocos try-catch; use a hierarquia de erros v2 (
ProtocolError,SdkError,SdkHttpErrorcom.status) em vez deMcpError/StreamableHTTPErrorda v1. - Suporte operações assíncronas onde apropriado.
Configuração de Recurso/Prompt (Opcional)
- Adicione recursos usando
registerResource()com ResourceTemplate para URIs dinâmicos. - Adicione prompts usando
registerPrompt()com esquemas de argumento (mesmo estilo de objeto de configuração comoregisterTool()). - Considere adicionar suporte de completude para melhor UX; observe a ordem do wrapper
completable()da v2:completable(z.string(), callback).optional()(aplicado opcionalmente externamente).
Qualidade do Código
- Use TypeScript para segurança de tipos.
- Siga padrões async/await consistentemente.
- Implemente limpeza adequada em eventos de fechamento do transporte.
- Use variáveis de ambiente para configuração.
- Adicione comentários inline para lógica complexa.
- Estruture o código com clara separação de responsabilidades.
Tipos de Ferramentas de Exemplo a Considerar
- Processamento e transformação de dados
…
Perguntas frequentes
O que é MCP?
MCP (Model Context Protocol) é um protocolo para comunicação entre diferentes partes de um sistema, permitindo que elas troquem informações e realizem tarefas.
Qual a diferença entre transporte HTTP e stdio?
Transporte HTTP usa requisições web padrão para comunicação, enquanto stdio usa a entrada e saída padrão do sistema operacional. HTTP é mais comum para aplicações web, stdio para ferramentas de linha de comando.
O que são 'ferramentas' neste contexto?
Ferramentas são funções específicas que seu servidor MCP pode executar, como buscar dados ou realizar cálculos. Elas têm descrições claras e validação para garantir que recebam os dados corretos.
Detalhes
Descrição original do autor
Generate a complete MCP server project in TypeScript using the MCP TypeScript SDK v2 (@modelcontextprotocol/server) with tools, resources, and proper configuration
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5399
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC