# typescript-mcp-server

Правило подсказывает Copilot, как писать MCP-серверы на TypeScript SDK: классы, схемы на zod, транспорты и типовые ошибки.

- правило · `type=rule` · GitHub Copilot · ★ 40451
- Автор: github · официальный репозиторий GitHub
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/github/awesome-copilot/tree/HEAD/instructions/typescript-mcp-server.instructions.md
- Обновлён: 2026-10-23
- HTML: https://affpapa.org/nevibecode/rules/typescript-mcp-server

## Что делает

Файл-инструкция подключается к рабочему пространству и срабатывает на `**/*.ts`, `**/*.js` и `**/package.json`. Внутри — набор указаний по `@modelcontextprotocol/sdk`: брать класс `McpServer` для высокоуровневой реализации с автоматической обработкой протокола или `Server`, если нужны ручные обработчики запросов. Схемы входа и выхода описываются через zod, а регистрация идёт методами `registerTool()`, `registerResource()` и `registerPrompt()`.

Отдельный блок про транспорты. Для HTTP-серверов правило советует `StreamableHTTPServerTransport` вместе с Express, для локальных интеграций — `StdioServerTransport`. В stateless-режиме транспорт создаётся заново на каждый запрос, иначе идентификаторы запросов столкнутся; для серверов с состоянием нужен `sessionIdGenerator`. Локальным серверам предписана защита от DNS rebinding через `enableDnsRebindingProtection: true`.

Есть раздел с примерами: базовый сервер на HTTP и на stdio, простой инструмент с калькулятором, динамический ресурс через `ResourceTemplate`, инструмент с sampling через `server.server.createMessage()`, промпт с автодополнением. Проверять серверы предлагается через `npx @modelcontextprotocol/inspector`. Правило требует ставить пакеты явно — `npm install @modelcontextprotocol/sdk` и `npm install zod@3` — так что без них код из примеров не соберётся.

## Установка

### GitHub Copilot (родная платформа)

**Вручную: положить файлы**
- Файл: `.github/instructions/typescript-mcp-server.instructions.md` — Поле applyTo задаёт, к каким файлам применять

### Claude Code

**Вручную: положить файлы**
- Файл: `.claude/rules/typescript-mcp-server.md` — Поле paths во frontmatter ограничивает файлы: applyTo из источника → paths

### Codex

**AGENTS.md**
- Codex читает AGENTS.md: вставьте текст правила туда

### Cursor

**Вручную: положить файлы**
- Файл: `.cursor/rules/typescript-mcp-server.mdc` — Во frontmatter: description, globs, alwaysApply. applyTo из источника → globs, иначе правило само не подключится

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/rules/typescript-mcp-server.md`

### Cline

**Вручную: положить файлы**
- Файл: `.clinerules/typescript-mcp-server.md`

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/github/awesome-copilot/tree/HEAD/instructions/typescript-mcp-server.instructions.md

## Когда брать
- поднять MCP-сервер на TypeScript с нуля
- описать схемы инструментов через zod вместо ручной валидации
- выбрать между stdio и HTTP-транспортом для конкретной задачи
- настроить сессии и защиту от DNS rebinding у локального сервера
- запросить у клиента дополнительный ввод прямо во время выполнения инструмента

## Примеры запросов агенту
- Напиши MCP-сервер на TypeScript с инструментом поиска по документации
- Переделай этот сервер на `StreamableHTTPServerTransport` с Express
- Добавь динамический ресурс `users://{userId}` через `ResourceTemplate`

Из того же набора: [github/awesome-copilot](https://affpapa.org/nevibecode/by/github/awesome-copilot.md) — 928 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
