이 MCP로 할 수 있는 일
Manages hierarchical goals and tasks with acceptance criteria, blockers, evidence attachments, review gates, progress tracking, and completion verification.
도구
입력 스키마
{'type': 'object', 'properties': {'reason': {'type': 'string', 'default': None, 'description': 'Зачем удаляешь (свободный текст, ≥10 символов)'}, 'acknowledge': {'type': 'string', 'default': None, 'description': 'Точная фраза подтверждения'}, 'objects_total': {'type': 'integer', 'default': None, 'description': 'projects + goals из инвентаря (для вызова 2)'}, 'reasoning_answer': {'type': 'string', 'default': None, 'description': 'Ответ на reasoning-риддл из вызова 1'}, 'confirm_passphrase': {'type': 'string', 'default': None, 'description': 'Фраза из вызова 1 (для вызова 2)'}}}
입력 스키마
{'type': 'object', 'required': ['goalId', 'text'], 'properties': {'text': {'type': 'string', 'description': 'Формулировка допущения'}, 'goalId': {'type': 'string', 'description': 'UUID цели (ребёнка — assumption живёт на ребре parent→child)'}, 'signpost': {'type': 'string', 'default': None, 'description': 'Наблюдаемый индикатор провала (опционально)'}}}
입력 스키마
{'type': 'object', 'required': ['goalId', 'text'], 'properties': {'text': {'type': 'string', 'description': 'Формулировка критерия'}, 'goalId': {'type': 'string', 'description': 'UUID цели'}, 'position': {'type': 'integer', 'default': None, 'description': 'Позиция (default = append в конец)'}, 'probeSpec': {'default': None, 'properties': {'url': {'type': 'string', 'description': 'Absolute http(s) URL the runner requests on the deployed instance'}, 'expect': {'type': 'object', 'properties': {'body': {'type': 'object', 'additionalProperties': True}, 'http_code': {'type': 'integer', 'maximum': 599, 'minimum': 100}}, 'description': 'What the response must contain: http_code (exact) and/or body (subset of fields with expected scalar values; nested objects = nested fields; "{{deployed_revision}}" = SHA of the revision that triggered the probe)'}, 'method': {'enum': ['GET', 'HEAD'], 'type': 'string', 'description': 'HTTP method of the probe request'}}, 'description': 'Исполнимая проба post-deploy критерия: {method: GET|HEAD|POST|PUT|PATCH|DELETE, url: абсолютный http(s), expect: {http_code: 200, body: {field: expectedValue, nested: {field: value}}}}. Ожидаемые значения фиксируются сейчас; единственная подстановка времени прогона — "{{deployed_revision}}" (SHA развёрнутой ревизии). Пример: {"method":"GET","url":"https://planner.monopoly-gold.com/api/healthz","expect":{"http_code":200,"body":{"status":"ok","revision":"{{deployed_revision}}"}}}'}, 'probeClass': {'enum': ['pre-merge', 'post-deploy', None], 'type': 'string', 'default': None, 'description': 'Класс критерия: pre-merge (default; доказывается в CI / приложенным evidence) или post-deploy (доказывается исполнимой пробой против прода; требует probeSpec)'}, 'visualEvidenceSuggested': {'type': 'boolean', 'default': False, 'description': "True only when this AC accepts Planner's visual-AC advisory"}}}
입력 스키마
{'type': 'object', 'required': ['criterionId', 'text'], 'properties': {'text': {'type': 'string', 'description': 'Text payload: URL to a permanent external source or a description of a manual scenario'}, 'createdBy': {'type': 'string', 'default': None, 'description': 'Identifier of the uploading agent'}, 'criterionId': {'type': 'string', 'description': 'UUID acceptance criterion'}}}
입력 스키마
{'type': 'object', 'required': ['goalId', 'text'], 'properties': {'text': {'type': 'string', 'description': 'Текст заметки (markdown)'}, 'goalId': {'type': 'string', 'description': 'UUID цели'}}}
입력 스키마
{'type': 'object', 'required': ['assumptionId', 'text'], 'properties': {'text': {'type': 'string', 'description': 'Текст evidence — наблюдение/данные, подтверждающие или опровергающие допущение'}, 'assumptionId': {'type': 'string', 'description': 'UUID допущения'}}}
입력 스키마
{'type': 'object', 'required': ['criterionId', 'filename', 'contentBase64'], 'properties': {'kind': {'type': 'string', 'default': None, 'description': 'Optional evidence kind override. The only accepted value is `session_history` —\nmarks this attachment as the goal-level «full Claude session transcript» artifact\nrequired by the close gate (I4-session-history). Such evidence does NOT cover any AC\nand is NOT sent to the evidence judge. Omit for normal per-AC proof (kind is derived\nfrom MIME). NOTE: transcripts are usually > 1 KB → use goal-request-upload\n(pass kind=session_history) or the multipart helper, not this base64 path.'}, 'caption': {'type': 'string', 'default': None, 'description': 'Optional human-readable description, stored in evidence.payload'}, 'filename': {'type': 'string', 'description': 'Original filename (used to derive MIME). Path components are stripped.'}, 'mimeType': {'type': 'string', 'default': None, 'description': 'MIME type — if omitted, derived from filename extension; must be in whitelist'}, 'createdBy': {'type': 'string', 'default': None, 'description': 'Identifier of the uploading agent'}, 'criterionId': {'type': 'string', 'description': 'UUID acceptance criterion the file will be evidence for'}, 'contentBase64': {'type': 'string', 'description': 'File payload, base64-encoded (RFC 4648 §4 standard alphabet, padding optional)'}, 'contentSha256': {'type': 'string', 'default': None, 'description': 'Hex-encoded SHA-256 of the raw bytes (before base64). When provided, the server\nrecomputes the hash on the decoded payload and rejects with error=file_hash_mismatch\nif they diverge — primary defence against MCP base64 truncation.'}}}
입력 스키마
{'type': 'object', 'required': ['goalId', 'filename', 'contentBase64'], 'properties': {'goalId': {'type': 'string', 'description': 'UUID of the goal the file illustrates'}, 'caption': {'type': 'string', 'default': None, 'description': 'Optional alt-text / caption used in the markdown fragment'}, 'filename': {'type': 'string', 'description': 'Original file name (basename only; used for download + markdown alt)'}, 'mimeType': {'type': 'string', 'default': None, 'description': 'Optional MIME hint; server sniffs bytes when omitted or not whitelisted'}, 'createdBy': {'type': 'string', 'default': None, 'description': 'Identifier of the uploading agent'}, 'contentBase64': {'type': 'string', 'description': 'File bytes, standard base64 (RFC 4648). Tiny files only — see description.'}, 'contentSha256': {'type': 'string', 'default': None, 'description': 'Optional hex sha256 of the raw bytes — server fails fast on transport corruption'}}}
입력 스키마
{'type': 'object', 'required': ['goalId', 'description'], 'properties': {'goalId': {'type': 'string', 'description': 'UUID блокируемой цели'}, 'description': {'type': 'string', 'description': 'Описание блокера — что мешает'}, 'linkedGoalId': {'type': 'string', 'default': None, 'description': 'UUID существующей цели-резолвера (взаимоисключающе с resolverTitle)'}, 'resolverTitle': {'type': 'string', 'default': None, 'description': 'Заголовок новой цели-резолвера (взаимоисключающе с linkedGoalId)'}, 'resolverParentId': {'type': 'string', 'default': None, 'description': 'UUID родителя резолвера (default = goalId, т.е. дочерняя)'}, 'resolverDescription': {'type': 'string', 'default': None, 'description': 'Описание цели-резолвера'}}}
입력 스키마
{'type': 'object', 'required': ['title'], 'properties': {'mode': {'type': 'string', 'default': None, 'description': 'Режим: grove (default) или standard. Grove enforce-ит I_start на ready_for_work и I₃ на done; standard несёт те же AC, но без evidence-гейта'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'default': None, 'description': 'Теги'}, 'type': {'type': 'string', 'default': None, 'description': 'goal / milestone / task / habit (default: task)'}, 'title': {'type': 'string', 'description': 'Название цели (макс. 500)'}, 'status': {'type': 'string', 'default': None, 'description': 'backlog (default) / ready_for_work (объявить контракт готовым; grove в проекте с обязательным red-team объявляется только через goal-update)'}, 'deadline': {'type': 'string', 'default': None, 'description': 'Дедлайн ISO 8601'}, 'estimate': {'type': 'string', 'default': None, 'description': 'Оценка'}, 'parentId': {'type': 'string', 'default': None, 'description': 'UUID родителя (null = root)'}, 'priority': {'type': 'integer', 'default': None, 'description': 'Приоритет 1–5 (default: 3)'}, 'projectId': {'type': 'string', 'default': None, 'description': 'UUID проекта'}, 'description': {'type': 'string', 'default': None, 'description': 'Описание'}, 'acceptanceCriteria': {'type': 'array', 'items': {}, 'default': None, 'description': 'Список AC: строка (pre-merge критерий) или объект {text, probeClass?: pre-merge|post-deploy, probeSpec?}. post-deploy критерий обязан нести исполнимую пробу probeSpec {method, url, expect:{http_code, body:{field: expectedValue}}} — иначе error=probe_required; probeSpec без probeClass = post-deploy. Grove: опциональны на create, обязательны до объявления ready_for_work, блокирующий quality-линтер. Standard: описательные, линтер advisory'}}}
입력 스키마
{'type': 'object', 'required': ['goalId'], 'properties': {'goalId': {'type': 'string', 'description': 'UUID цели'}}}
입력 스키마
{'type': 'object', 'required': ['goalId', 'reason'], 'properties': {'goalId': {'type': 'string', 'description': 'UUID цели'}, 'reason': {'type': 'string', 'description': 'Почему контрпример неприменим — от 80 символов, попадёт в историю цели'}}}
입력 스키마
{'type': 'object', 'required': ['goalId'], 'properties': {'goalId': {'type': 'string', 'description': 'UUID цели'}}}
입력 스키마
{'type': 'object', 'properties': {'type': {'type': 'string', 'default': None, 'description': 'Тип: goal, milestone, task, habit'}, 'limit': {'type': 'integer', 'default': None, 'description': 'Макс. кол-во результатов (default: 50)'}, 'status': {'type': 'string', 'default': None, 'description': 'Статус: backlog, checking_ac, checking_ac_failed, checking_ac_errored, ready_for_work, in_progress, blocked, done, cancelled'}, 'parentId': {'type': 'string', 'default': None, 'description': 'UUID родителя (только прямые дети)'}, 'projectId': {'type': 'string', 'default': None, 'description': 'UUID проекта (фильтр)'}}}
입력 스키마
{'type': 'object', 'required': ['goalId'], 'properties': {'goalId': {'type': 'string', 'description': 'UUID перемещаемой цели'}, 'projectId': {'type': 'string', 'default': None, 'description': 'UUID целевого проекта (используется при newParentId=null для cross-project move в корень)'}, 'newParentId': {'type': 'string', 'default': None, 'description': 'UUID нового родителя (null = сделать root)'}}}
입력 스키마
{'type': 'object', 'required': ['evidenceId'], 'properties': {'limit': {'type': 'integer', 'default': 100, 'description': 'Number of whole lines to return (1–500)'}, 'offset': {'type': 'integer', 'default': 0, 'description': 'Zero-based line offset'}, 'byteLimit': {'type': 'integer', 'default': None, 'description': 'Number of bytes to return for binary evidence; omit with byteOffset for the complete original'}, 'byteOffset': {'type': 'integer', 'default': None, 'description': 'Zero-based byte offset for binary evidence'}, 'evidenceId': {'type': 'string', 'description': 'UUID of file-backed evidence from goal-get'}, 'binaryDelivery': {'enum': ['link', 'base64'], 'type': 'string', 'default': 'link', 'description': 'Complete binary: link to the original (default), or base64 fallback for clients without external links'}}}
입력 스키마
{'type': 'object', 'required': ['project'], 'properties': {'limit': {'type': 'integer', 'default': None, 'description': 'Сколько записей вернуть, default 10'}, 'project': {'type': 'string', 'description': 'Slug проекта'}, 'statuses': {'type': 'array', 'items': {'type': 'string'}, 'default': None, 'description': 'Подмножество {backlog,checking_ac,checking_ac_failed,checking_ac_errored,ready_for_work,in_progress,blocked}, default ["backlog"]'}, 'withinDays': {'type': 'integer', 'default': None, 'description': 'Окно свежести (createdAt), default 14'}}}
입력 스키마
{'type': 'object', 'required': ['goalId', 'reworkClass', 'afterFingerprint', 'precondition', 'action', 'outcome', 'acVerdict', 'artifactRefs'], 'properties': {'action': {'type': 'string', 'description': 'Action that changed the result'}, 'goalId': {'type': 'string', 'description': 'Goal UUID'}, 'outcome': {'type': 'string', 'description': 'Observable completed result'}, 'acVerdict': {'type': 'string', 'description': 'matches, weak, mismatch, or errored'}, 'reworkClass': {'type': 'string', 'description': 'implementation, contract, proof_only, or unknown'}, 'artifactRefs': {'type': 'array', 'items': {}, 'description': 'Existing goal-owned evidence/goal_attachment refs'}, 'precondition': {'type': 'string', 'description': 'Observable state before the iteration'}, 'coverageDelta': {'type': 'array', 'items': {}, 'default': [], 'description': 'Structured coverage change'}, 'afterFingerprint': {'type': 'string', 'description': 'Lowercase SHA-256 of the completed result'}, 'beforeFingerprint': {'type': 'string', 'default': None, 'description': 'Optional lowercase SHA-256 of the prior result'}, 'addressesFindingIds': {'type': 'array', 'items': {'type': 'string'}, 'default': [], 'description': 'Registered finding UUIDs addressed by this iteration'}, 'repeatCheckEvidenceId': {'type': 'string', 'default': None, 'description': 'Separate judged evidence UUID; mandatory when findings are addressed'}}}
입력 스키마
{'type': 'object', 'required': ['goalId', 'kind', 'summary', 'subjectRefs'], 'properties': {'kind': {'type': 'string', 'description': 'evidence_mismatch, red_team_hole, assumption_invalidated, acceptance_gap, or manual_checkpoint'}, 'goalId': {'type': 'string', 'description': 'Goal UUID'}, 'summary': {'type': 'string', 'description': 'Concise observable weakness or gap'}, 'sourceRefs': {'type': 'array', 'items': {}, 'default': [], 'description': 'Optional immutable source refs (validated structurally; resolved by the certificate recorder)'}, 'subjectRefs': {'type': 'array', 'items': {}, 'description': 'Goal-scoped subject refs'}}}
입력 스키마
{'type': 'object', 'required': ['assumptionId'], 'properties': {'assumptionId': {'type': 'string', 'description': 'UUID допущения'}}}
입력 스키마
{'type': 'object', 'required': ['goalId', 'blockerId'], 'properties': {'goalId': {'type': 'string', 'description': 'UUID цели'}, 'blockerId': {'type': 'string', 'description': 'UUID блокера'}}}
입력 스키마
{'type': 'object', 'required': ['criterionId'], 'properties': {'criterionId': {'type': 'string', 'description': 'UUID acceptance criterion'}}}
입력 스키마
{'type': 'object', 'required': ['evidenceId'], 'properties': {'evidenceId': {'type': 'string', 'description': 'UUID evidence-записи'}}}
입력 스키마
{'type': 'object', 'required': ['goalId', 'noteId'], 'properties': {'goalId': {'type': 'string', 'description': 'UUID цели'}, 'noteId': {'type': 'string', 'description': 'UUID заметки'}}}
입력 스키마
{'type': 'object', 'required': ['ids'], 'properties': {'ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'UUID целей в новом порядке (все должны иметь одного родителя и одинаковый priority)'}}}
입력 스키마
{'type': 'object', 'required': ['criterionId', 'reason'], 'properties': {'reason': {'type': 'string', 'description': 'Structured justification. For unreachable: what is\nunreachable and what was attempted. For wrong_criterion:\nwhich wording/threshold the owner never approved, or what\nfinding showed the criterion measures something else'}, 'grounds': {'type': 'string', 'default': 'unreachable', 'description': "Subject of the request: 'unreachable' (default) or 'wrong_criterion'"}, 'criterionId': {'type': 'string', 'description': 'UUID of the acceptance criterion to escalate'}, 'quotedFragment': {'type': 'string', 'default': None, 'description': 'Verbatim slice of the criterion text claimed to be\nwrong — required when grounds=wrong_criterion,\nignored otherwise'}}}
입력 스키마
{'type': 'object', 'properties': {'kind': {'type': 'string', 'default': None, 'description': 'Optional evidence kind override. Only accepted value is\n`session_history` (goal-level transcript artifact; does NOT cover an AC).'}, 'goalId': {'type': 'string', 'default': None, 'description': 'UUID of a goal — issues a ticket for a DESCRIPTION ATTACHMENT (not evidence); mutually exclusive with criterionId'}, 'caption': {'type': 'string', 'default': None, 'description': 'Optional human-readable description, stored on the evidence'}, 'createdBy': {'type': 'string', 'default': None, 'description': 'Identifier of the uploading agent'}, 'criterionId': {'type': 'string', 'default': None, 'description': 'UUID acceptance criterion the file will be evidence for (omit when goalId is given)'}}}
입력 스키마
{'type': 'object', 'required': ['escalationId', 'resolution'], 'properties': {'note': {'type': 'string', 'default': None, 'description': 'Optional comment explaining the decision'}, 'newText': {'type': 'string', 'default': None, 'description': 'New AC text (required when resolution=edit)'}, 'resolution': {'type': 'string', 'description': 'One of: edit, split, drop, reject'}, 'escalationId': {'type': 'string', 'description': 'UUID of the escalation to resolve'}, 'linkedGoalId': {'type': 'string', 'default': None, 'description': 'Optional UUID of an existing goal to record as an\naudit reference (only meaningful when resolution=drop)'}, 'overrideResolvedBy': {'type': 'string', 'default': None}}}
입력 스키마
{'type': 'object', 'required': ['goalId'], 'properties': {'goalId': {'type': 'string'}}}
입력 스키마
{'type': 'object', 'required': ['goalId'], 'properties': {'goalId': {'type': 'string', 'description': 'UUID цели (ребёнка)'}}}
입력 스키마
{'type': 'object', 'properties': {'projectId': {'type': 'string', 'default': None, 'description': 'UUID проекта'}}}
입력 스키마
{'type': 'object', 'required': ['title'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}, 'default': None, 'description': 'Теги (автоматически добавляется "suggestion")'}, 'title': {'type': 'string', 'description': 'Название задачи'}, 'project': {'type': 'string', 'default': None, 'description': 'Slug проекта (если не указан — используется дефолтный)'}, 'priority': {'type': 'integer', 'default': None, 'description': 'Приоритет 1–5 (default: 4)'}, 'description': {'type': 'string', 'default': None, 'description': 'Описание'}}}
입력 스키마
{'type': 'object', 'properties': {'rootId': {'type': 'string', 'default': None, 'description': 'UUID корня поддерева'}, 'projectId': {'type': 'string', 'default': None, 'description': 'UUID проекта (по умолчанию: все проекты)'}}}
입력 스키마
{'type': 'object', 'required': ['goalId'], 'properties': {'mode': {'type': 'string', 'default': None, 'description': 'Режим цели: standard или grove. Иммутабелен после mode_locked_at'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'default': None, 'description': 'Новые теги'}, 'type': {'type': 'string', 'default': None, 'description': 'Новый тип: goal, milestone, task, habit'}, 'title': {'type': 'string', 'default': None, 'description': 'Новое название (макс. 500)'}, 'goalId': {'type': 'string', 'description': 'UUID цели'}, 'status': {'type': 'string', 'default': None, 'description': 'Новый статус: backlog, ready_for_work, in_progress, blocked, done, cancelled (checking_ac* выставляет система)'}, 'deadline': {'type': 'string', 'default': None, 'description': 'Новый дедлайн (ISO 8601)'}, 'estimate': {'type': 'string', 'default': None, 'description': 'Новая оценка'}, 'priority': {'type': 'integer', 'default': None, 'description': 'Новый приоритет (1–5)'}, 'description': {'type': 'string', 'default': None, 'description': 'Новое описание'}, 'attemptCommit': {'type': 'string', 'default': None, 'description': 'git SHA коммита попытки (7–64 hex). Когда развёрнутая ревизия содержит его (предок, не равенство), post-deploy пробы цели стартуют сами по событию деплоя; повторная установка = новая попытка (отметки доставки и пробы сбрасываются); "" снимает'}, 'dismissVisualAcSuggestion': {'type': 'boolean', 'default': None, 'description': 'Отклонить advisory visual-AC; для ready_for_work это явный выбор «продолжить без предложения»'}}}
입력 스키마
{'type': 'object', 'required': ['assumptionId'], 'properties': {'text': {'type': 'string', 'default': None, 'description': 'Новый текст допущения'}, 'signpost': {'type': 'string', 'default': None, 'description': 'Новый индикатор провала'}, 'assumptionId': {'type': 'string', 'description': 'UUID допущения'}}}
입력 스키마
{'type': 'object', 'required': ['criterionId'], 'properties': {'text': {'type': 'string', 'default': None, 'description': 'New criterion text (omit to keep)'}, 'probeSpec': {'default': None, 'properties': {'url': {'type': 'string', 'description': 'Absolute http(s) URL the runner requests on the deployed instance'}, 'expect': {'type': 'object', 'properties': {'body': {'type': 'object', 'additionalProperties': True}, 'http_code': {'type': 'integer', 'maximum': 599, 'minimum': 100}}, 'description': 'What the response must contain: http_code (exact) and/or body (subset of fields with expected scalar values; nested objects = nested fields; "{{deployed_revision}}" = SHA of the revision that triggered the probe)'}, 'method': {'enum': ['GET', 'HEAD'], 'type': 'string', 'description': 'HTTP method of the probe request'}}, 'description': 'Исполнимая проба post-deploy критерия: {method, url, expect: {http_code, body: {field: expectedValue}}}; "{{deployed_revision}}" в ожидаемых значениях = SHA развёрнутой ревизии. Пример: {"method":"GET","url":"https://planner.monopoly-gold.com/api/healthz","expect":{"http_code":200,"body":{"status":"ok","revision":"{{deployed_revision}}"}}}'}, 'probeClass': {'enum': ['pre-merge', 'post-deploy', None], 'type': 'string', 'default': None, 'description': 'Класс критерия: pre-merge (доказывается в CI / приложенным evidence; сбрасывает пробу) или post-deploy (доказывается исполнимой пробой против прода; требует probeSpec — свой или уже сохранённый)'}, 'criterionId': {'type': 'string', 'description': 'UUID acceptance criterion'}}}
입력 스키마
{'type': 'object', 'required': ['projectId', 'dependsOnProjectId'], 'properties': {'projectId': {'type': 'string', 'description': 'UUID или slug проекта-зависимого'}, 'dependsOnProjectId': {'type': 'string', 'description': 'UUID или slug проекта, от которого зависит'}}}
입력 스키마
{'type': 'object', 'required': ['title', 'slug'], 'properties': {'icon': {'type': 'string', 'default': None, 'description': 'Иконка (эмодзи, макс. 10 символов)'}, 'slug': {'type': 'string', 'description': 'Уникальный slug (только a-z, 0-9, дефис)'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'default': None, 'description': 'Теги'}, 'title': {'type': 'string', 'description': 'Название проекта'}, 'status': {'type': 'string', 'default': None, 'description': 'Статус: active / archived / paused (default: active)'}, 'isDefault': {'type': 'boolean', 'default': None, 'description': 'Сделать проектом по умолчанию'}, 'sourceRef': {'type': 'object', 'default': None, 'description': 'Источник кода для remote-research: {type:"git",url,ref}'}, 'description': {'type': 'string', 'default': None, 'description': 'Описание проекта'}, 'repositoryUrl': {'type': 'string', 'default': None, 'description': 'URL репозитория'}, 'repositoryPath': {'type': 'string', 'default': None, 'description': 'Путь к репозиторию на сервере'}}}
입력 스키마
{'type': 'object', 'required': ['projectId'], 'properties': {'force': {'type': 'boolean', 'default': None, 'description': 'Удалить вместе со всеми целями (default: false — откажет если есть цели)'}, 'projectId': {'type': 'string', 'description': 'UUID проекта'}}}
입력 스키마
{'type': 'object', 'required': ['projectId'], 'properties': {'projectId': {'type': 'string', 'description': 'UUID проекта'}}}
입력 스키마
{'type': 'object', 'properties': {'status': {'type': 'string', 'default': None, 'description': 'Статус: active / archived / paused'}}}
입력 스키마
{'type': 'object', 'properties': {'projectId': {'type': 'string', 'default': None, 'description': 'UUID или slug проекта-зависимого (если dependencyId не задан)'}, 'dependencyId': {'type': 'string', 'default': None, 'description': 'UUID самой связи'}, 'dependsOnProjectId': {'type': 'string', 'default': None, 'description': 'UUID или slug целевого проекта (если dependencyId не задан)'}}}
입력 스키마
{'type': 'object', 'required': ['projectId'], 'properties': {'icon': {'type': 'string', 'default': None, 'description': 'Иконка (эмодзи, макс. 10 символов)'}, 'slug': {'type': 'string', 'default': None, 'description': 'Новый slug (только a-z, 0-9, дефис; должен быть уникальным)'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'default': None, 'description': 'Новые теги'}, 'title': {'type': 'string', 'default': None, 'description': 'Новое название'}, 'status': {'type': 'string', 'default': None, 'description': 'Новый статус: active, archived, paused'}, 'isDefault': {'type': 'boolean', 'default': None, 'description': 'Сделать проектом по умолчанию'}, 'projectId': {'type': 'string', 'description': 'UUID проекта'}, 'sourceRef': {'type': 'object', 'default': None, 'description': 'Источник кода для remote-research: {type:"git",url,ref}'}, 'description': {'type': 'string', 'default': None, 'description': 'Новое описание'}, 'redTeamMode': {'type': 'string', 'default': None, 'description': 'Режим red-team: optional, advisory, required'}, 'repositoryUrl': {'type': 'string', 'default': None, 'description': 'URL репозитория'}, 'clearSourceRef': {'type': 'boolean', 'default': None, 'description': 'Установить sourceRef в null (отвязать репозиторий); несовместим с sourceRef'}, 'repositoryPath': {'type': 'string', 'default': None, 'description': 'Путь к репозиторию на сервере'}, 'allowedGoalMode': {'type': 'string', 'default': None, 'description': 'Разрешённые режимы целей: any, grove_only'}, 'evidenceJudgeMode': {'type': 'string', 'default': None, 'description': 'Режим судьи доказательств: off, optional, required'}, 'fmeaGenerationMode': {'type': 'string', 'default': None, 'description': 'FMEA-генерация: off, on'}, 'escalationAutoResolveBy': {'type': 'string', 'default': None, 'description': 'Авто-резолвер эскалации: none, planner-agent'}, 'escalationResolveTimeout': {'type': 'string', 'default': None, 'description': 'Таймаут эскалации: off, 1h, 4h, 24h'}, 'escalationAutoResolveStrategy': {'type': 'string', 'default': None, 'description': 'Стратегия авто-резолва: suggest-edit, reject-default'}}}
최근 도구 변경
유사한 MCP 서버
freedom-mcp
Supports company operations through commitments, teams, agents, customer evidence, leads, content workflows, spreadsheets, commer…
Stable Baseline
Manages company documents, knowledge graphs, whiteboards, projects, plans, tasks, teams, and improvement workflows.
mcp
Manages Nestr workspaces, roles, circles, tensions, governance proposals, comments, daily plans, graph relationships, agents, and…
TaScan
Manages field-service projects, workers, task lists, subtasks, dispatch, geofenced work zones, inspections, remediation workflows…
Tango
Manages shared work between humans and agents through tasks, leases, handoffs, approvals, artifacts, comments, integrations, prog…
AIOProductOS MCP
Combines customer records, support conversations, feedback, product analytics, roadmaps, tasks, experiments, releases, and retent…
agendaforge
Manages events, agendas, sessions, speakers, attendees, sponsors, forms, contacts, email templates, approvals, and organizer work…
Refine Job Search
Tracks job applications, interviews, offers, recruiter email, and company openings, with Gmail synchronization and workflow actio…