spranab/saga-mcp

spranab/saga-mcp

от spranab
MCP-сервер saga-mcp - Jira-подобный трекер для AI-агентов с иерархией, зависимостями и заметками с журналом изменений. Всё локально в SQLite. Для разработчиков с ИИ-ассистентами.

saga-mcp

IdeaCred

A Jira-like project tracker MCP server for AI agents. SQLite-backed, per-project scoped, with full hierarchy and activity logging — so LLMs never lose track.

No more scattered markdown files. saga-mcp gives your AI assistant a structured database to track projects, epics, tasks, subtasks, notes, and decisions across sessions.

Features

  • Full hierarchy: Projects > Epics > Tasks > Subtasks
  • Task dependencies: Express sequencing with auto-block/unblock when deps are met
  • Comments: Threaded discussions on tasks — leave breadcrumbs across sessions
  • Templates: Reusable task sets with {variable} substitution
  • Dashboard: One tool call gives full overview with natural language summary
  • SQLite: Self-contained .tracker.db file per project — zero setup, no external database
  • Activity log: Every mutation is automatically tracked with old/new values
  • Notes system: Decisions, context, meeting notes, blockers — all searchable
  • Batch operations: Create multiple subtasks or update multiple tasks in one call
  • 31 focused tools: With MCP safety annotations on every tool
  • Import/export: Full project backup and migration as JSON (with dependencies and comments)
  • Source references: Link tasks to specific code locations
  • Auto time tracking: Hours computed automatically from activity log
  • Cross-platform: Works on macOS, Windows, and Linux
activity_logтолько чтениеидемпотентный

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

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

Параметры

  • entity_typeenum

    Filter by entity type

    projectepictasksubtasknote
  • entity_idinteger

    Filter by specific entity

  • actionenum

    Filter by action type

    createdupdateddeletedstatus_changed
  • sincestring

    ISO 8601 datetime - show only activity after this time

  • limitinteger
comment_add

Добавляет комментарий к задаче. Комментарии создают хронологическую ветку обсуждения - полезно для оставления подсказок между сессиями.

Добавляет комментарий к задаче. Комментарии создают хронологическую ветку обсуждения - полезно для оставления подсказок между сессиями.

Параметры

  • task_idintegerобязательный

    Task ID to comment on

  • contentstringобязательный

    Comment text

  • authorstring

    Author name (optional)

comment_listтолько чтениеидемпотентный

Выводит все комментарии к задаче в хронологическом порядке.

Выводит все комментарии к задаче в хронологическом порядке.

Параметры

  • task_idintegerобязательный

    Task ID

epic_create

Создаёт эпик в проекте. Эпики группируют связанные задачи в одну функциональность или поток работы. Передайте ветку git, чтобы привязать эпик к ней (используйте "current" для автоопределения).

Создаёт эпик в проекте. Эпики группируют связанные задачи в одну функциональность или поток работы. Передайте ветку git, чтобы привязать эпик к ней (используйте "current" для автоопределения).

Параметры

  • project_idintegerобязательный

    Parent project ID

  • namestringобязательный

    Epic name

  • descriptionstring

    Epic description

  • statusenum
    plannedin_progresscompletedcancelled
  • priorityenum
    lowmediumhighcritical
  • branchstring

    Git branch this epic is scoped to. Pass "current" to auto-detect from the repo. Omit or pass empty string for a branch-agnostic (global) epic.

  • tagsstring[]
epic_listтолько чтениеидемпотентный

Перечисляет эпики проекта с количеством задач и статистикой выполнения. Опционально фильтрует по статусу, приоритету или ветке. Передайте branch="current" для автоматического определения активной ветки git; передайте пустую строку, чтобы перечислить только эпики, не привязанные к ветке.

Перечисляет эпики проекта с количеством задач и статистикой выполнения. Опционально фильтрует по статусу, приоритету или ветке. Передайте branch="current" для автоматического определения активной ветки git; передайте пустую строку, чтобы перечислить только эпики, не привязанные к ветке.

Параметры

  • project_idintegerобязательный

    Project ID

  • statusenum
    plannedin_progresscompletedcancelled
  • priorityenum
    lowmediumhighcritical
  • branchstring

    Filter by git branch. Pass "current" to auto-detect; pass empty string to list only branch-agnostic epics. Omit to list all.

epic_updateидемпотентный

Обновите эпик. Передавайте только те поля, которые хотите изменить. Установите статус "cancelled" для мягкого удаления. Передайте branch="current", чтобы привязаться к активной ветке, или пустую строку, чтобы сбросить.

Обновите эпик. Передавайте только те поля, которые хотите изменить. Установите статус "cancelled" для мягкого удаления. Передайте branch="current", чтобы привязаться к активной ветке, или пустую строку, чтобы сбросить.

Параметры

  • idintegerобязательный

    Epic ID

  • namestring
  • descriptionstring
  • statusenum
    plannedin_progresscompletedcancelled
  • priorityenum
    lowmediumhighcritical
  • sort_orderinteger
  • branchstring

    Git branch this epic is scoped to. Pass "current" to auto-detect; pass empty string to clear (branch-agnostic).

  • tagsstring[]
note_deleteидемпотентный

Удаляет заметку по ID.

Удаляет заметку по ID.

Параметры

  • idintegerобязательный

    Note ID

note_listтолько чтениеидемпотентный

Перечисляет заметки с необязательными фильтрами. Возвращает заметки, отсортированные сначала самые новые.

Перечисляет заметки с необязательными фильтрами. Возвращает заметки, отсортированные сначала самые новые.

Параметры

  • note_typeenum
    generaldecisioncontextmeetingtechnicalblockerprogressrelease
  • related_entity_typeenum
    projectepictask
  • related_entity_idinteger
  • tagstring

    Filter by a single tag

  • limitinteger
note_save

Создаёт или обновляет заметку. Заметки фиксируют решения, контекст, прогресс, заметки встреч, блокеры, технические детали или информацию о релизе. Если указан «id», обновляет существующую заметку; в противном случае создаёт новую.

Создаёт или обновляет заметку. Заметки фиксируют решения, контекст, прогресс, заметки встреч, блокеры, технические детали или информацию о релизе. Если указан «id», обновляет существующую заметку; в противном случае создаёт новую.

Параметры

  • idinteger

    Note ID (omit to create new)

  • titlestringобязательный

    Note title

  • contentstringобязательный

    Full note content (markdown supported)

  • note_typeenum
    generaldecisioncontextmeetingtechnicalblockerprogressrelease
  • related_entity_typeenum

    Link note to an entity

    projectepictask
  • related_entity_idinteger

    ID of the related entity

  • tagsstring[]
note_searchтолько чтениеидемпотентный

Ищет по ключевому слову в заголовках и содержимом заметок.

Ищет по ключевому слову в заголовках и содержимом заметок.

Параметры

  • querystringобязательный

    Search keywords

  • note_typeenum
    generaldecisioncontextmeetingtechnicalblockerprogressrelease
  • limitinteger
project_create

Создаёт новый проект. Проекты - контейнер верхнего уровня для всей работы.

Создаёт новый проект. Проекты - контейнер верхнего уровня для всей работы.

Параметры

  • namestringобязательный

    Project name

  • descriptionstring

    Project description

  • statusenum

    Project status

    activeon_holdcompletedarchived
  • tagsstring[]

    Tags for categorization

project_listтолько чтениеидемпотентный

Перечисляет все проекты с количеством эпиков/задач и процентами завершения. Опционально фильтрует по статусу.

Перечисляет все проекты с количеством эпиков/задач и процентами завершения. Опционально фильтрует по статусу.

Параметры

  • statusenum

    Filter by status

    activeon_holdcompletedarchived
project_updateидемпотентный

Обновляет проект. Передавайте только те поля, которые хотите изменить. Установите статус "archived" для мягкого удаления.

Обновляет проект. Передавайте только те поля, которые хотите изменить. Установите статус "archived" для мягкого удаления.

Параметры

  • idintegerобязательный

    Project ID

  • namestring
  • descriptionstring
  • statusenum
    activeon_holdcompletedarchived
  • tagsstring[]
subtask_create

Создаёт одну или несколько подзадач (пунктов контрольного списка) для задачи. Принимает одну строку заголовка или массив строк заголовков для пакетного создания.

Создаёт одну или несколько подзадач (пунктов контрольного списка) для задачи. Принимает одну строку заголовка или массив строк заголовков для пакетного создания.

Параметры

  • task_idintegerобязательный

    Parent task ID

  • titlesanyобязательный
subtask_deleteидемпотентный

Удаляет одну или несколько подзадач. Принимает один ID или массив ID.

Удаляет одну или несколько подзадач. Принимает один ID или массив ID.

Параметры

  • idsanyобязательный
subtask_updateидемпотентный

Обновляет заголовок, статус или порядок сортировки подзадачи.

Обновляет заголовок, статус или порядок сортировки подзадачи.

Параметры

  • idintegerобязательный

    Subtask ID

  • titlestring
  • statusenum
    todoin_progressdone
  • sort_orderinteger
task_batch_updateидемпотентный

Обновляет несколько задач одновременно. Полезно для изменения статуса нескольких задач (например, отметить 3 задачи как выполненные) или переназначения задач.

Обновляет несколько задач одновременно. Полезно для изменения статуса нескольких задач (например, отметить 3 задачи как выполненные) или переназначения задач.

Параметры

  • idsinteger[]обязательный

    Task IDs to update

  • statusenum
    todoin_progressreviewdoneblocked
  • priorityenum
    lowmediumhighcritical
  • assigned_tostring
task_create

Создаёт задачу в рамках эпика. Задачи — основная единица работы.

Создаёт задачу в рамках эпика. Задачи — основная единица работы.

Параметры

  • epic_idintegerобязательный

    Parent epic ID

  • titlestringобязательный

    Task title

  • descriptionstring

    Task description

  • statusenum
    todoin_progressreviewdoneblocked
  • priorityenum
    lowmediumhighcritical
  • assigned_tostring

    Assignee name

  • estimated_hoursnumber

    Estimated hours

  • due_datestring

    Due date (YYYY-MM-DD)

  • source_refobject

    Link to source code location

  • depends_oninteger[]

    Task IDs this task depends on

  • tagsstring[]
task_getтолько чтениеидемпотентный

Получает одну задачу с полными сведениями, включая все подзадачи, связанные заметки, комментарии и зависимости.

Получает одну задачу с полными сведениями, включая все подзадачи, связанные заметки, комментарии и зависимости.

Параметры

  • idintegerобязательный

    Task ID

task_listтолько чтениеидемпотентный

Выводит список задач с необязательными фильтрами. Если не указан epic_id, перечисляет задачи ПО ВСЕМ эпикам. Включает количество подзадач и информацию о зависимостях. Передайте branch="current", чтобы ограничить только задачами, чей эпик привязан к активной ветке git.

Выводит список задач с необязательными фильтрами. Если не указан epic_id, перечисляет задачи ПО ВСЕМ эпикам. Включает количество подзадач и информацию о зависимостях. Передайте branch="current", чтобы ограничить только задачами, чей эпик привязан к активной ветке git.

Параметры

  • epic_idinteger

    Filter by epic (omit for all tasks)

  • statusenum
    todoin_progressreviewdoneblocked
  • priorityenum
    lowmediumhighcritical
  • assigned_tostring

    Filter by assignee

  • tagstring

    Filter by tag

  • branchstring

    Filter by the git branch of the task's epic. Pass "current" to auto-detect; pass empty string to restrict to branch-agnostic epics. Omit to list all.

  • sort_byenum

    Sort order: priority (critical first), created (newest first), due_date (earliest first), status (actionable first)

    prioritycreateddue_datestatus
  • limitinteger

    Max results

task_updateидемпотентный

Обновляет задачу. Передаёт только поля, которые требуется изменить. Переходы статусов автоматически регистрируются в журнале активности.

Обновляет задачу. Передаёт только поля, которые требуется изменить. Переходы статусов автоматически регистрируются в журнале активности.

Параметры

  • idintegerобязательный

    Task ID

  • titlestring
  • descriptionstring
  • statusenum
    todoin_progressreviewdoneblocked
  • priorityenum
    lowmediumhighcritical
  • assigned_tostring
  • estimated_hoursnumber
  • actual_hoursnumber
  • due_datestring
  • source_refobject

    Link to source code location

  • depends_oninteger[]

    Task IDs this task depends on (replaces existing)

  • sort_orderinteger
  • tagsstring[]
template_apply

Применяет шаблон для создания задач в эпике. Заменяет заполнители {variable} предоставленными значениями.

Применяет шаблон для создания задач в эпике. Заменяет заполнители {variable} предоставленными значениями.

Параметры

  • template_idintegerобязательный

    Template ID to apply

  • epic_idintegerобязательный

    Epic to create tasks in

  • variablesobject

    Key-value pairs for {variable} substitution (e.g., {"feature": "auth"})

template_create

Создайте повторно используемый шаблон задач. Шаблоны определяют набор задач, которые могут быть инстанцированы в любой эпик. Используйте заполнители {variable} для динамических значений.

Создайте повторно используемый шаблон задач. Шаблоны определяют набор задач, которые могут быть инстанцированы в любой эпик. Используйте заполнители {variable} для динамических значений.

Параметры

  • namestringобязательный

    Template name (must be unique)

  • descriptionstring

    Template description

  • tasksobject[]обязательный

    Task definitions. Use {variable} for placeholders.

template_deleteидемпотентный

Удаляет шаблон задачи.

Удаляет шаблон задачи.

Параметры

  • idintegerобязательный

    Template ID

template_listтолько чтениеидемпотентный

Перечислите все доступные шаблоны задач.

Перечислите все доступные шаблоны задач.

Параметры

Без параметров.

tracker_dashboardтолько чтениеидемпотентный

Получает полный обзор проекта за один вызов. Возвращает: информацию о проекте, все эпики с количеством задач, общую статистику (всего/выполнено/заблокировано/в работе), недавнюю активность и недавние заметки. Это лучший первый инструмент для вызова при начале работы над проектом. Передайте branch="current", чтобы ограничить панель текущей веткой git.

Получает полный обзор проекта за один вызов. Возвращает: информацию о проекте, все эпики с количеством задач, общую статистику (всего/выполнено/заблокировано/в работе), недавнюю активность и недавние заметки. Это лучший первый инструмент для вызова при начале работы над проектом. Передайте branch="current", чтобы ограничить панель текущей веткой git.

Параметры

  • project_idinteger

    Project ID (omit if only one project exists)

  • branchstring

    Scope to a git branch. Pass "current" to auto-detect; pass empty string to restrict to branch-agnostic epics. Omit to include everything.

tracker_exportтолько чтениеидемпотентный

Экспортирует полный проект как вложенный JSON. Включает все эпики, задачи, подзадачи, комментарии, зависимости и связанные заметки. Полезно для резервного копирования, миграции или обмена.

Экспортирует полный проект как вложенный JSON. Включает все эпики, задачи, подзадачи, комментарии, зависимости и связанные заметки. Полезно для резервного копирования, миграции или обмена.

Параметры

  • project_idinteger

    Project ID to export (omit if only one project exists)

tracker_import

Импортирует проект из JSON (соответствующего формату tracker_export). Создаёт все сущности с новыми идентификаторами и переназначает ссылки. Использует транзакцию для атомарности.

Импортирует проект из JSON (соответствующего формату tracker_export). Создаёт все сущности с новыми идентификаторами и переназначает ссылки. Использует транзакцию для атомарности.

Параметры

  • dataobjectобязательный

    Full export JSON object from tracker_export

tracker_initидемпотентный

Инициализирует трекер для проекта. Если база данных пуста, создаёт проект с указанным именем. Если проект уже существует, возвращает его информацию.

Инициализирует трекер для проекта. Если база данных пуста, создаёт проект с указанным именем. Если проект уже существует, возвращает его информацию.

Параметры

  • project_namestring

    Name for a new project (only used if DB is empty)

  • project_descriptionstring

    Description for the new project

tracker_searchтолько чтениеидемпотентный

Ищет по ВСЕМ сущностям (projects, epics, tasks, notes) по ключевому слову. Возвращает результаты, сгруппированные по категориям. Передайте branch="current", чтобы ограничить совпадения по epic и task активной git-веткой (проекты и заметки не ограничены ветками).

Ищет по ВСЕМ сущностям (projects, epics, tasks, notes) по ключевому слову. Возвращает результаты, сгруппированные по категориям. Передайте branch="current", чтобы ограничить совпадения по epic и task активной git-веткой (проекты и заметки не ограничены ветками).

Параметры

  • querystringобязательный

    Search keywords

  • entity_typesstring[]

    Limit search to specific entity types (omit for all)

  • branchstring

    Filter epic/task results by git branch. Pass "current" to auto-detect; pass empty string to restrict to branch-agnostic epics. Omit to include all.

  • limitinteger

    Max results per entity type

tracker_session_diffтолько чтениеидемпотентный

Показывает, что изменилось с заданной временной метки. Возвращает сводку с количеством изменений по типу действия и типу сущности, а также основные изменения. Вызывайте это в начале сессии, чтобы понять, что произошло с прошлой.

Показывает, что изменилось с заданной временной метки. Возвращает сводку с количеством изменений по типу действия и типу сущности, а также основные изменения. Вызывайте это в начале сессии, чтобы понять, что произошло с прошлой.

Параметры

  • sincestringобязательный

    ISO 8601 datetime — show changes after this time (e.g. "2026-02-21T15:00:00")

Другие проверенные MCP-сервера

Label Studio MCP

Label Studio MCP

официальный

MCP сервер для интеграции с Label Studio: управляйте проектами разметки, задачами и предсказаниями через простые запросы. Создавайте проекты, импортируйте задачи, получайте аннотации и многое другое.

Python33
XGenerationLab/xiyan_mcp_server

XGenerationLab/xiyan_mcp_server

официальный

MCP-сервер для запросов к базам данных на естественном языке. Основан на XiYan-SQL - SOTA модели text-to-SQL. Поддерживает MySQL, PostgreSQL, общие LLM и локальный режим. Упрощает извлечение данных...

Python240
webdriverio/mcp

webdriverio/mcp

официальный

Управляйте браузерами и мобильными приложениями через WebDriverIO с MCP-сервером. Автоматизируйте Chrome, Firefox, Edge, Safari, iOS и Android: навигация, клики, скриншоты. Оптимален для тестирования.

TypeScript33
docker/hub-mcp

docker/hub-mcp

официальный

MCP-сервер для Docker Hub: позволяет LLM искать, рекомендовать и управлять контейнерными образами через естественный язык. Упрощает работу с репозиториями, экономя время разработчиков.

TypeScript157
qiniu/qiniu-mcp-server

qiniu/qiniu-mcp-server

официальный

MCP сервер для доступа к облачным сервисам Qiniu: управление хранилищем (bucket, файлы, загрузка), CDN (обновление/предварительная загрузка ссылок), живыми трансляциями (создание пространств и пото...

Python38
Aas-ee/open-webSearch

Aas-ee/open-webSearch

open-websearch — это MCP-сервер и CLI для веб-поиска и извлечения контента без API-ключей. Поддерживает множество поисковиков (Bing, Baidu, DuckDuckGo и др.), загружает статьи и README с GitHub. Ра...

TypeScript1615
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин