此 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…