Примеры использования MCP-агентов в Cursor
Вы уже проделали отличную работу, освоив основы MCP, настроив рабочее окружение и научившись запускать сервера. Теперь настало время увидеть, как всё это работает в реальном инструменте разработки — Cursor. Это не просто редактор кода, а полноценная среда, где ИИ-агенты становятся частью повседневного рабочего процесса.
Cursor и MCP: почему это важно
Cursor — это современный редактор кода, построенный вокруг ИИ. Он позволяет интегрировать MCP-серверы напрямую, расширяя возможности встроенных агентов. Это значит, что вместо того чтобы полагаться только на стандартные функции LLM, вы можете подключить собственные инструменты, доступ к базам данных, API вашей системы или даже логику вашего стартапа.
💡 Зачем это вам?
Как фронтенд-разработчику, создающему стартапы на генеративном ИИ, вы можете использовать Cursor + MCP, чтобы:
- Быстро прототипировать идеи
- Автоматизировать повторяющиеся задачи в разработке
- Подключать ИИ к внутренней логике вашего генератора курсов
- Тестировать агентов в реальной среде без развёртывания отдельного фронтенда
Как MCP работает внутри Cursor
Когда вы подключаете MCP-сервер к Cursor, происходит следующее:
- Вы пишете запрос в чат (например, "создай компонент формы регистрации")
- Cursor отправляет запрос на ваш MCP-сервер
- Сервер решает, какой инструмент (tool) использовать — например, генерация кода, чтение файлов, вызов API
- LLM получает доступ к этим инструментам через сервер
- Результат возвращается в Cursor и отображается вам
Это позволяет агенту действовать, а не просто отвечать.
Пример 1: Генерация компонента с доступом к структуре проекта
Представим, что вы работаете над фронтендом своего генератора курсов. Вам нужно создать компонент CoursePreview, но вы хотите, чтобы ИИ знал:
- Какие уже есть компоненты
- Какой используется стек (React, TypeScript, Tailwind)
- Где лежат стили и типы
С MCP вы можете создать инструмент, который читает файловую систему вашего проекта. Вот как это может выглядеть в коде MCP-сервера на Python:
from mcp.types import Tool
import os
def read_directory(path: str) -> str:
"""Читает список файлов в указанной директории"""
try:
files = os.listdir(path)
return f"Файлы в {path}: {', '.join(files)}"
except Exception as e:
return f"Ошибка: {str(e)}"
# Регистрация инструмента
tools = [
Tool(
name="read_directory",
description="Читает содержимое директории. Полезно для понимания структуры проекта.",
input_schema={
"type": "object",
"properties": {
"path": {"type": "string", "description": "Путь к директории"}
},
"required": ["path"]
},
function=read_directory
)
]
Теперь, когда вы попросите Cursor "создай компонент, похожий на CourseCard, но для превью", он сможет:
- Узнать, что
CourseCard.tsxсуществует - Прочитать его структуру (если добавить инструмент
read_file) - Сгенерировать новый компонент в том же стиле
⚠️ Без MCP ИИ в Cursor работает "вслепую" — он не видит вашей файловой системы, не знает контекста проекта, не может выполнять действия. С MCP он становится действующим агентом, а не просто чатом.
Пример 2: Автоматизация документации по компонентам
Вы разрабатываете UI-библиотеку для своего стартапа. Каждый новый компонент требует документации. Вместо ручного описания вы можете создать MCP-инструмент, который:
- Читает TypeScript-файл компонента
- Извлекает пропсы и JSDoc
- Генерирует Markdown-документацию
def generate_component_docs(component_name: str) -> str:
file_path = f"src/components/{component_name}.tsx"
if not os.path.exists(file_path):
return "Компонент не найден"
with open(file_path, "r", encoding="utf-8") as f:
code = f.read()
# Здесь можно добавить парсинг пропсов, но для примера упростим
return f"Документация для {component_name}:\n\nОсновано на коде:\n```ts\n{code[:200]}...\n```"
Теперь в Cursor вы просто пишете:
"Создай документацию для компонента CourseGeneratorForm" — и получаете готовый текст.
Пример 3: Подключение к внутреннему API стартапа
Представим, что ваш генератор курсов хранит шаблоны в базе. Вы хотите, чтобы ИИ мог предлагать реальные шаблоны при разработке.
Создайте инструмент:
import requests
def search_course_templates(query: str) -> str:
"""Ищет шаблоны курсов по запросу"""
try:
response = requests.get(f"http://localhost:8000/api/templates?search={query}")
templates = response.json()
return "\n".join([f"- {t['title']} (ID: {t['id']})" for t in templates])
except:
return "Не удалось получить шаблоны"
Теперь запрос "предложи шаблоны для курса по Python для детей" вернёт актуальные данные из вашей системы.
Что даёт такая интеграция?
| Без MCP | С MCP |
|---|---|
| ИИ отвечает на основе общих знаний | ИИ работает с вашим кодом, API, данными |
| Ограничен в действиях | Может читать, писать, запрашивать, генерировать |
| Требует ручной проверки | Автоматизирует рутину и снижает ошибки |
| "Чат-бот" | ИИ-агент с доступом к среде |
Практическое задание
- Убедитесь, что ваш MCP-сервер (на Python или TypeScript) запущен локально
- В Cursor перейдите в настройки:
Settings → AI → Model Context Protocol - Добавьте URL вашего сервера (например,
http://localhost:3333) - Создайте простой инструмент
get_timeилиlist_files - Протестируйте в чате: "Какое сейчас время?" или "Покажи файлы в корне проекта"
Если всё работает — вы только что создали своего первого действующего ИИ-агента в реальной среде разработки.
🎯 Совет: Начните с малого. Даже один полезный инструмент — например, чтение конфигурации проекта — может сэкономить часы времени.
Что дальше?
Вы увидели, как MCP превращает ИИ из пассивного помощника в активного участника разработки. Но Cursor — это только начало. В следующей теме вы узнаете, как использовать MCP не только в редакторе кода, но и в системах автоматизации.
Представьте, что ваш агент не просто генерирует код, а сам создаёт тикет в Jira, пушит ветку в Git и запускает сборку. Для этого мы подключим MCP к n8n — мощной платформе визуальной автоматизации. Это откроет путь к созданию полностью автономных рабочих процессов, которые будут работать за вас.
Готовы превратить своих агентов из помощников в исполнителей? Следующий шаг — автоматизация рутины с n8n и MCP.