В этом руководстве мы создадим продвинутый практический пример работы с Google colab-mcp — сервером с открытым исходным кодом, который позволяет любому AI-агенту программно управлять блокнотами и средами выполнения Google Colab.
Основные этапы
Мы начнём с создания минимального реестра инструментов MCP с нуля. Затем мы разберём основные механизмы протокола, регистрацию инструментов, генерацию схемы и асинхронную отправку. После этого мы перейдём к реальному фреймворку FastMCP, на котором построен colab-mcp.
Далее мы смоделируем оба режима работы сервера: режим прокси-сервера сеансов, где мы запускаем аутентифицированный мост WebSocket между фронтендом браузера и клиентом MCP, и режим выполнения, где мы подключаем прямой механизм выполнения ядра с постоянным состоянием, ленивой инициализацией и обработкой выходных данных в стиле Jupyter.
Затем мы соберём полный цикл работы AI-агента, который рассуждает о задачах, выбирает инструменты, выполняет код, проверяет результаты и повторяет действия.
Установка зависимостей
Для начала установим все зависимости, необходимые для работы:
«`python
import subprocess, sys
def install(pkg):
subprocess.check_call([sys.executable, «-m», «pip», «install», «-q», pkg])
install(«fastmcp>=2.2.0,<3.0.0")
install(«websockets>=15.0.1»)
install(«pydantic>=2.0.0,<3.0.0")
install(«requests>=2.32.0»)
install(«mcp>=1.0.0»)
install(«httpx»)
install(«google-auth»)
install(«google-auth-oauthlib»)
install(«openai»)
print(«All dependencies installed.»)
«`
Архитектура
Мы создадим собственный класс MCPToolRegistry с нуля, пройдя через точную механику, на которой основан протокол: регистрация инструментов с помощью декораторов, автоматическая генерация JSON Schema из подсказок типов Python и асинхронная отправка инструментов.
Инструменты
Мы зарегистрируем четыре инструмента, которые отражают реальную поверхность colab-mcp: executecode, addcodecell, addtextcell и getcells.
Запуск инструментов
Мы запустим инструменты, чтобы подтвердить, что полный цикл запроса и ответа работает корректно:
«`python
async def demotoolcalls():
result = await server.calltool(«executecode», {
«code»: «print(‘Hello from the MCP runtime!’)\nprint(2 + 2)»
})
print(f»\nexecute_code result:\n{result}»)
result = await server.calltool(«addcode_cell», {
«code»: «import matplotlib.pyplot as plt\nplt.plot([1,2,3],[1,4,9])\nplt.show()»,
«cell_index»: 0,
})
print(f»\naddcodecell result:\n{result}»)
result = await server.calltool(«getcells», {
«cellindexstart»: 0,
«include_outputs»: False,
})
print(f»\nget_cells result:\n{result}»)
«`
Заключение
Мы создали работающего AI-агента, готового к производству, который может автоматизировать рабочие процессы в Google Colab. Мы увидели протокол MCP с обеих сторон: как авторы серверов регистрируют инструменты и как клиентский код отправляет вызовы.
Мы понимаем, почему существует архитектура с двумя режимами: режим прокси-сервера для интерактивного управления блокнотами в браузере и режим выполнения для безголового прямого выполнения ядра.
Мы построили те же абстракции, что и в реальной кодовой базе (серверы FastMCP, мосты WebSocket с токеновой безопасностью, цепочки инициализации с ленивой загрузкой), и запустили их сами, а не просто прочитали о них.
У нас есть чёткий путь от этого руководства до реального развёртывания: мы берём JSON-конфигурацию MCP, указываем на неё Claude Code или Gemini CLI, открываем блокнот Colab и начинаем выдавать команды на естественном языке, которые агент автоматически переводит в вызовы addcodecell, executecell и getcells.
Основные моменты, которые мы изучили
* Основы протокола MCP (инструменты/список, инструменты/вызов)
* Фреймворк FastMCP (как построен colab-mcp)
* Режим прокси-сервера сеансов (мост WebSocket для браузера)
* Режим выполнения (прямое выполнение ядра)
* Полный цикл работы AI-агента с диспетчеризацией инструментов
* Интеграция с производством с помощью Claude/GPT-4/Gemini
* Обработка ошибок, повторные попытки и шаблоны оркестровки
Быстрый старт (на вашем локальном компьютере):
1. pip install uv
2. Добавьте в свою конфигурацию MCP:
«`json
{
«mcpServers»: {
«colab-proxy-mcp»: {
«command»: «uvx»,
«args»: [«git+https://github.com/googlecolab/colab-mcp»],
«timeout»: 30000
}
}
}
«`
3. Откройте блокнот Colab в своём браузере
4. Скажите своему агенту: «Создайте для меня блокнот для анализа данных».
Вопросы по тексту статьи и ответы на них:
1. Какие основные этапы включает в себя создание AI-агента для автоматизации рабочих процессов в Google Colab с помощью Colab-MCP?
Основные этапы включают: создание минимального реестра инструментов MCP с нуля, разбор основных механизмов протокола, регистрацию инструментов, генерацию схемы и асинхронную отправку, переход к фреймворку FastMCP, моделирование режимов работы сервера и сбор полного цикла работы AI-агента.
2. Какие инструменты были зарегистрированы для работы с Colab-MCP в рамках данного руководства?
В рамках данного руководства были зарегистрированы четыре инструмента: `executecode`, `addcodecell`, `addtextcell` и `getcells`.
3. Какие зависимости необходимо установить для работы с Colab-MCP?
Для работы с Colab-MCP необходимо установить следующие зависимости: `fastmcp`, `websockets`, `pydantic`, `requests`, `mcp`, `httpx`, `google-auth`, `google-auth-oauthlib` и `openai`.
4. Какие режимы работы сервера были смоделированы в рамках данного руководства?
В рамках данного руководства были смоделированы два режима работы сервера: режим прокси-сервера сеансов и режим выполнения. Режим прокси-сервера используется для интерактивного управления блокнотами в браузере, а режим выполнения — для безголового прямого выполнения ядра.
5. Какие основные моменты были изучены в рамках данного руководства?
В рамках данного руководства были изучены следующие основные моменты: основы протокола MCP, фреймворк FastMCP, режим прокси-сервера сеансов, режим выполнения, полный цикл работы AI-агента с диспетчеризацией инструментов, интеграция с производством с помощью Claude/GPT-4/Gemini и обработка ошибок, повторные попытки и шаблоны оркестровки.