Диспетчер задач MCP-сервера
Это сервер MCP, созданный для интеграции с редакторами кода AI, такими как Cursor. Основная цель здесь — максимизировать агентские возможности Cursor и превосходные архитектурные возможности Gemini 2.5, обходя при этом крайне ограниченное контекстное окно Cursor. Это было во многом вдохновлено режимом Boomerang из Roo Code, но я нашел его чрезвычайно дорогим, поскольку единственная модель, которая работает с его ботом-применителем, — это Claude 3.7 Sonnet. С этим сервером вы получаете лучшее из обоих миров: неограниченное контекстное окно и неограниченное использование по цене подписки Cursor в размере 20 долларов в месяц.
Кроме того, он включает в себя пользовательский интерфейс Svelte, который позволяет просматривать список задач и ход их выполнения, вручную корректировать план и просматривать изменения.
Изящный пользовательский интерфейс
Основные характеристики
- Планирование сложных функций: дайте ему описание функции, и он использует LLM с контекстом проекта через
repomix
для создания пошагового плана кодирования, которому будет следовать агент ИИ с рекурсивной разбивкой задач для задач с высокой трудоемкостью. - Интегрированный сервер пользовательского интерфейса: запускает сервер Express для обслуживания статических файлов интерфейса и предоставляет базовые конечные точки API для пользовательского интерфейса. Открывает пользовательский интерфейс в браузере по умолчанию после завершения планирования или когда требуются разъяснения и отображает список задач и прогресс.
- Неограниченное контекстное окно: использует контекстное окно Gemini 2.5 на 1 миллион токенов с усечением
repomix
при необходимости. - История разговоров: отслеживает историю разговоров по каждой функции в отдельном файле JSON в
.mcp/features/
для каждой функции, что позволяет Gemini 2.5 иметь контекст, когда пользователь запрашивает корректировки плана. - Рабочий процесс уточнения: обрабатывает случаи, когда LLM требуется дополнительная информация, приостанавливая планирование и взаимодействуя с подключенным пользовательским интерфейсом через WebSockets.
- Task CRUD: позволяет создавать, читать, обновлять и удалять задачи через пользовательский интерфейс.
- Обзор кода: анализирует вывод
git diff HEAD
с помощью LLM и при необходимости создает новые задачи. - Автоматический обзор (необязательно): если настроено (
AUTO_REVIEW_ON_COMPLETION=true
), автоматически запускает процесс обзора кода после завершения последней исходной задачи для функции. - Корректировка плана: позволяет корректировать план после его создания с помощью инструмента
adjust_plan
.
Настраивать
Предварительные условия:
- Node.js
- нпм
- Гит
Установка и сборка:
- Клон:
- Установка внутренних компонентов:
- Настройка: позже вы настроите ключи API непосредственно в настройках MCP Cursor (см. раздел «Использование»), но вам все равно может понадобиться локальный файл
.env
для ручного тестирования (см. раздел «Конфигурация»). - Сборка: эта команда создает внутренние и внешние серверы и копирует пользовательский интерфейс Svelte в каталог
dist/frontend-ui/
.
Запуск сервера (вручную):
Для локального тестирования без Cursor вы можете запустить сервер с помощью Node напрямую или скрипта npm. Этот метод будет использовать файл .env
для конфигурации.
Использование Node напрямую (используйте абсолютный путь):
Используя npm start:
Это запустит сервер MCP (stdio), сервер WebSocket и сервер HTTP для UI. UI должен быть доступен по адресу http://localhost:\ <UI_PORT> (по умолчанию 3000).
Конфигурация (файл .env для ручного запуска):
При запуске вручную (не через Cursor) создайте файл .env в корне проекта для ключей API и портов. Примечание: при запуске через Cursor их следует задать в конфигурации mcp.json Cursor (см. раздел Использование).
Избегание затрат
ВАЖНО: Настоятельно рекомендуется интегрировать собственный ключ API Google AI в OpenRouter, чтобы избежать ограничений скорости бесплатных моделей. См. ниже.
Использование бесплатных уровней OpenRouter: вы можете значительно минимизировать или устранить затраты, используя модели, помеченные как «Бесплатные» на OpenRouter (например, google/gemini-2.5-flash-preview на момент написания статьи), при подключении собственного ключа Google AI API. Ознакомьтесь с этой веткой reddit для получения дополнительной информации: https://www.reddit.com/r/ChatGPTCoding/comments/1jrp1tj/a\_simple\_guide\_to\_setting\_up\_gemini\_25\_pro\_free/
Стоимость отката: сервер автоматически повторяет попытку с моделью отката, если первичный достигает предела скорости. Модель отката по умолчанию (FALLBACK_OPENROUTER_MODEL) часто является более быстрой/дешевой моделью, например Gemini Flash, которая может по-прежнему иметь сопутствующие расходы в зависимости от текущих цен/уровней OpenRouter. Проверьте их сайт и при необходимости настройте модель отката в своей конфигурации.
Использование с курсором (режим диспетчера задач)
Это основной способ использования этого сервера. Я пока не тестировал его с другими редакторами кода AI. Если вы попробуете, пожалуйста, дайте мне знать, как все прошло, и я обновлю README.
1. Настройте MCP-сервер в Cursor:
После сборки сервера ( npm run build
) необходимо указать Cursor, как его запустить.
Найдите файл конфигурации MCP Курсора. Это может быть:
- Для конкретного проекта: создайте/отредактируйте файл
.cursor/mcp.json
в корневом каталоге вашего проекта. - Глобально: создайте/отредактируйте файл
~/.cursor/mcp.json
в домашнем каталоге пользователя (для использования во всех проектах).
Добавьте следующую запись в объект mcpServers в этом JSON-файле:
ВАЖНЫЙ:
- Замените
/full/path/to/your/task-manager-mcp/dist/server.js
на абсолютный путь к скомпилированному серверному скрипту на вашем компьютере. - Замените
sk-or-v1-xxxxxxxxxxxxxxxxxxxx
вашим фактическим ключом API OpenRouter (или установите GEMINI_API_KEY, если используете Google AI напрямую). - Эти переменные env, определенные здесь, будут переданы серверному процессу, когда Cursor запустит его, переопределив любой файл
.env
.
2. Создайте пользовательский режим курсора:
- Перейдите в Настройки курсора -> Функции -> Чат -> Включить пользовательские режимы.
- Вернитесь к просмотру чата, щелкните селектор режимов (внизу слева) и щелкните Добавить пользовательский режим.
- Дайте ему имя (например, «MCP Planner», «Task Dev»), выберите значок/ярлык.
- Включить инструменты: Убедитесь, что инструменты, предоставляемые этим сервером (
plan_feature
,mark_task_complete
,get_next_task
,review_changes
,adjust_plan
), доступны и включены для этого режима. Возможно, вы захотите включить другие инструменты, такие как Codebase, Terminal и т. д., в зависимости от вашего рабочего процесса. - Рекомендуемые инструкции для агента: Вставьте эти правила в текстовое поле «Пользовательские инструкции»:
- Сохраните пользовательский режим.
Ожидаемый рабочий процесс (при использовании пользовательского режима):
- Выберите новый пользовательский режим в курсоре.
- Отправьте курсору запрос на функцию (например, «добавить аутентификацию с использованием JWT»).
- Курсор, следуя инструкциям, вызовет инструмент
plan_feature
. - Сервер планирует, сохраняет данные и возвращает ответ JSON (внутри текстового содержимого) курсору.
- В случае успеха: Ответ включает
status: "completed"
и описание первой задачи в полеmessage
. Пользовательский интерфейс (если запущен) запускается/обновляется. - Если требуется уточнение: ответ включает
status: "awaiting_clarification"
,featureId
,uiUrl
и инструкции для агента подождать и вызватьget_next_task
позже. Пользовательский интерфейс запускается/обновляется с вопросом.
- В случае успеха: Ответ включает
- Курсор реализует только описанную задачу (если она предусмотрена).
- Если требовалось уточнение, пользователь отвечает в пользовательском интерфейсе, сервер возобновляет планирование и обновляет пользовательский интерфейс через WebSocket. Агент, следуя инструкциям, затем вызывает
get_next_task
сfeatureId
. - Если задача была завершена, Cursor вызывает
mark_task_complete
(сtaskId
иfeatureId
). - Сервер отмечает задачу выполненной и возвращает следующую ожидающую задачу в ответном сообщении.
- Курсор повторяет шаги 4-8.
- Если пользователь просит Cursor «просмотреть», он вызывает
review_changes
.
Конечные точки API (для пользовательского интерфейса)
Интегрированный сервер Express предоставляет следующие основные конечные точки для интерфейса:
GET /api/features
: возвращает список существующих идентификаторов функций.GET /api/tasks/:featureId
: возвращает список задач для определенной функции.GET /api/tasks
: Возвращает задачи для последней созданной/измененной функции.GET /api/features/:featureId/pending-question
: Проверяет, есть ли активный уточняющий вопрос для функции.POST /api/tasks
: Создает новую задачу для функции.PUT /api/tasks/:taskId
: Обновляет существующую задачу.DELETE /api/tasks/:taskId
: Удаляет задачу.- (Статические файлы) : обслуживает файлы из
dist/frontend-ui/
(например,index.html
).
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Сервер MCP, который интегрируется с редакторами ИИ, такими как Cursor, для максимального расширения возможностей агента и устранения ограничений контекстного окна, предоставляя пользовательский интерфейс Svelte для планирования задач и отслеживания выполнения.
Related MCP Servers
- -securityAlicense-qualityAn MCP server that converts Cursor agent plans into structured markdown task lists and organizes them in your repository, helping you track AI-generated plans and recommendations as actionable specifications.Last updated -3PythonMIT License
- -securityAlicense-qualityAn MCP server implementation that standardizes how AI applications access tools and context, providing a central hub that manages tool discovery, execution, and context management with a simplified configuration system.Last updated -9PythonMIT License
- -securityAlicense-qualityAn MCP server that enables AI assistants to control a web browser through natural language commands, allowing them to navigate websites and extract information via SSE transport.Last updated -505PythonMIT License
- -securityAlicense-qualityAn MCP server that bridges AI agents with GUI automation capabilities, allowing them to control mouse, keyboard, windows, and take screenshots to interact with desktop applications.Last updated -PythonMIT License