Scaffold MCP-сервера: структура проекта и зависимости
Уроки курсаScaffold MCP-сервера: структура проекта и зависимости
Scaffold сервера: пошаговые процедуры для Node.js и Python
Когда концептуальная карта проекта ясна, можно перейти к терминалу и создать рабочий scaffold. Ниже — последовательность команд для каждого языка. Node.js / TypeScript
# 1. Создаём директорию проекта и переходим в неё
mkdir my-mcp-server && cd my-mcp-server
# 2. Инициализируем npm-пакет
npm init -y
# 3. Устанавливаем MCP SDK
npm install @modelcontextprotocol/sdk
# 4. Устанавливаем инструменты TypeScript (только для разработки)
npm install -D typescript ts-node @types/node
# 5. Генерируем tsconfig.json
npx tsc --init
После генерации tsconfig.json откройте его и убедитесь, что выставлены два параметра:
{
"compilerOptions": {
"target": "ES2020",
"module": "commonjs"
}
}
target: ES2020 нужен, чтобы TypeScript понимал async/await без дополнительных полифиллов. module: commonjs — стандартный выбор для Node.js без явного "type": "module" в package.json. Несоответствие этих двух настроек — один из самых частых источников ошибок при первом запуске (об этом подробнее в следующей секции). Далее создайте директорию src и файл точки входа:
mkdir src && touch src/index.ts
Наконец, добавьте в package.json скрипт для запуска:
{
"scripts": {
"start": "ts-node src/index.ts"
}
}
После того как в src/index.ts появится код инициализации (об этом — в следующей секции), запускать сервер можно командой npm run start. ---
Python
# 1. Создаём директорию и переходим в неё
mkdir my-mcp-server && cd my-mcp-server
# 2. Создаём и активируем виртуальное окружение
python -m venv .venv
source .venv/bin/activate # macOS/Linux
# .venv\Scripts\activate # Windows
# 3. Устанавливаем MCP SDK
pip install mcp
Создайте файл точки входа:
touch main.py
Если проект предполагается переносить между машинами или публиковать, стоит сразу зафиксировать зависимость в pyproject.toml:
[project]
name = "my-mcp-server"
version = "0.1.0"
dependencies = [
"mcp",
]
Это позволит воспроизвести окружение через pip install -e . без необходимости помнить, какие пакеты были установлены вручную. Когда main.py будет заполнен кодом инициализации, сервер запускается просто:
python main.py
На этом этапе обе файловые структуры готовы к тому, чтобы в них появился работающий код сервера.
