Pular para o conteúdo
Skillpedia
Código em geral40 mil · #5399

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

https://github.com/github/awesome-copilot/blob/main/skills/typescript-mcp-server-generator/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/github/awesome-copilot/blob/main/skills/typescript-mcp-server-generator/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-generator

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/typescript-mcp-server-generator/SKILL.md -o SKILL.md
Conteú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

  1. Estrutura do Projeto: Crie um novo projeto TypeScript/Node.js com estrutura de diretórios adequada.
  2. Pacotes NPM: O pacote monolítico v1 @modelcontextprotocol/sdk está 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 *Schema daqui, não de sdk/types.js)
    • zod@^4.2 — v2 requer Zod 4.2+; não use zod@3
  3. Runtime: Node.js 20+ (mínimo v2); ESM-first com "type": "module" (uma build CommonJS também é fornecida, então require() funciona se necessário)
  4. 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.
  5. Ferramentas: Crie pelo menos uma ferramenta útil com validação de esquema adequada.
  6. Tratamento de Erros: Inclua tratamento de erros e validação abrangentes.

Detalhes de Implementação

Configuração do Projeto

  • Inicialize com npm init e crie package.json.
  • Instale as dependências: @modelcontextprotocol/server, zod@^4.2 e o pacote de transporte — @modelcontextprotocol/node para 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: tsx ou ts-node para desenvolvimento.
  • Crie um arquivo .gitignore adequado.

Configuração do Servidor

  • Use a classe McpServer de @modelcontextprotocol/server para implementação de alto nível.
  • Defina o nome e a versão do servidor.
  • Escolha o transporte apropriado:
    • HTTP (Node): NodeStreamableHTTPServerTransport de @modelcontextprotocol/node.
    • HTTP (Runtimes Web Standard): WebStandardStreamableHTTPServerTransport de @modelcontextprotocol/server.
    • stdio: StdioServerTransport de @modelcontextprotocol/server/stdio.
  • 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 com ctx.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 title e description.
  • Retorne tanto content quanto structuredContent nos resultados.
  • O segundo parâmetro do handler é um objeto ctx estruturado (substitui extra da 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, SdkHttpError com .status) em vez de McpError/StreamableHTTPError da 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 como registerTool()).
  • 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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas