MCP Academy · Урок

Запуск сервера через stdio

Запустите сервер, чтобы клиент мог подключиться локально.

Урок 3 из 413 шагов

«Запуск сервера через stdio» — бесплатный урок MCP Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения MCP Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс MCP Academy содержит 4 уроков всего.

Пора его запустить

У вас уже есть объект сервера и инструмент. Теперь нужно действительно его запустить, чтобы клиент мог подключиться и использовать созданные вами возможности. 🏃

Что означает stdio

Простейший транспорт — стандартные ввод и вывод: stdio. Клиент запускает ваш скрипт и взаимодействует с ним через эти два потока.

Вызовите run()

Запуск сервера выполняется одним методом. Вызов mcp.run() передаёт управление FastMCP, который сразу начинает ожидать сообщения.

mcp.run()

Выберите транспорт

Передайте аргумент транспорта, чтобы явно указать его. Для локального использования нужен "stdio"; он также выбирается по умолчанию при вызове run.

mcp.run(transport="stdio")

Основная проверка

Оберните вызов в классическую проверку __main__. Тогда сервер запустится только при непосредственном запуске файла, а не при его импорте.

if __name__ == "__main__":
    mcp.run()

Весь файл

Вот полный сервер: импорт, экземпляр, инструмент и запуск. Всего несколько строк — и он поддерживает MCP.

from mcp.server.fastmcp import FastMCP
mcp = FastMCP("demo")

@mcp.tool()
def hello() -> str:
    return "Hi!"

if __name__ == "__main__":
    mcp.run()

stdout зарезервирован

Есть одно важное правило: никогда не используйте print для стандартного вывода. Этот поток содержит сообщения протокола, и посторонний текст повредит их.

Вместо этого записывайте в stderr

Нужно отладить программу? Записывайте данные в stderr, а не в stdout. Клиент игнорирует stderr, поэтому ваши заметки не попадут в поток протокола.

import sys
print("starting up", file=sys.stderr)

Клиент запускает сервер

При использовании stdio вам редко приходится запускать скрипт вручную. Приложение-хост само запускает ваш процесс с помощью настроенной команды.

Он ждёт, а не простаивает в цикле

После run() сервер блокируется, ожидая сообщения. Он не завис — он ожидает следующий запрос от клиента.

stdio работает только локально

Помните, что stdio работает только на одном компьютере, поскольку использует запущенный процесс. Для удалённых серверов применяется транспорт HTTP, с которым вы познакомитесь позже.

Быстрая проверка

Почему в сервере stdio нельзя использовать обычный print()?

Итоги

Вы запустили сервер с помощью mcp.run() через stdio, поместили его в проверку __main__ и не засоряли stdout. Сервер работает и ожидает сообщения. Давайте убедимся, что всё работает! ✅

Можно начать бесплатно

Изучай Python с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
30
Уроки
120

Часто задаваемые вопросы

Урок «Запуск сервера через stdio» бесплатный?

Да — полный текст урока «Запуск сервера через stdio» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс MCP Academy, подпишись на CoddyKit PRO. Курс MCP Academy содержит 4 уроков всего.

Чему я научусь в уроке «Запуск сервера через stdio»?

Запустите сервер, чтобы клиент мог подключиться локально. Ты практикуешь MCP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать MCP Academy?

Предыдущий опыт не требуется. MCP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Запуск сервера через stdio»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке MCP Academy?

Да. Каждый урок MCP Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Создание экземпляра FastMCP
  2. Добавление инструмента Hello
  3. Запуск сервера через stdio
  4. Проверка загрузки и списка инструментов
← Назад к MCP Academy