{"id":"29dbb02e-0e28-4732-bced-1f880f2198c0","entityType":"agent","slug":"clawhub-luckycat133-traecnclaw-mcp","name":"TRAECNclaw MCP","canonicalUrl":"https://www.xpersona.co/agent/clawhub-luckycat133-traecnclaw-mcp","canonicalPath":"/agent/clawhub-luckycat133-traecnclaw-mcp","generatedAt":"2026-10-11T04:36:12.705Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T02:06:06.738Z","emptyReason":null},"description":"Operate TraeCN through TRAECNclaw's focused stdio MCP tools. Use when an MCP-capable agent must send or stop work, choose a workspace/model/mode/conversation, inspect or change Trae settings through its UI, manage conversations, or resolve an exceptional question or command approval. Queueing, waiting, recovery, notifications, routine non-command questions, and keep/revert gates are gateway-managed.","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.2K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s179fnaja3kqc64tnfyq6b5zb583p7d8:traecnclaw-mcp","sourceUrl":"https://clawhub.ai/luckycat133/traecnclaw-mcp","homepage":"https://clawhub.ai/luckycat133/skills/traecnclaw-mcp","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/luckycat133/traecnclaw-mcp","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/luckycat133/skills/traecnclaw-mcp","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":62,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"TRAECNclaw MCP technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T02:06:06.738Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T02:06:06.738Z","emptyReason":null},"stars":null,"forks":null,"downloads":1195,"packageName":null,"latestVersion":"0.6.0","tractionLabel":"1.2K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T02:06:06.673Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T02:06:06.738Z","lastCrawledAt":"2026-10-11T02:06:06.673Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T02:06:06.674Z","lastVerifiedAt":null,"highlights":[{"version":"0.6.0","createdAt":"2026-08-24T10:23:12.010Z","changelog":"Web Control Console v1, scoped npm and Homebrew distribution, verified public provenance, and the exact 20-tool MCP contract.","fileCount":10,"zipByteSize":15996},{"version":"0.5.9","createdAt":"2026-08-23T16:21:02.713Z","changelog":"Scoped npm/MCPB distribution readiness, public provenance, and a safer launcher that prefers @luckycat133/traecnclaw.","fileCount":10,"zipByteSize":16172},{"version":"0.5.6","createdAt":"2026-08-08T15:37:55.476Z","changelog":"See CHANGELOG.md for the verified release changes.","fileCount":10,"zipByteSize":14937},{"version":"0.5.5","createdAt":"2026-08-06T10:23:29.017Z","changelog":"See CHANGELOG.md for the verified release changes.","fileCount":9,"zipByteSize":12873},{"version":"0.5.4","createdAt":"2026-08-04T15:44:57.531Z","changelog":"Harden pruned and future completion-event cursors, extract durable task acceptance, centralize HTTP route metadata, and verify release artifact provenance.","fileCount":9,"zipByteSize":13002},{"version":"0.5.3","createdAt":"2026-08-03T13:20:15.031Z","changelog":"Harden completion-event durability and remove environment-selected MCP server execution; include cursor, lock, cancellation, and subscription lifecycle fixes.","fileCount":9,"zipByteSize":13060},{"version":"0.5.2","createdAt":"2026-08-01T16:31:28.961Z","changelog":"Add modern MCP 2026 task negotiation, durable atomic task acceptance, portable clean-room distribution, versioned Trae adapters, and official SDK conformance.","fileCount":9,"zipByteSize":13101},{"version":"0.5.1","createdAt":"2026-07-31T09:17:51.232Z","changelog":"Add final-result and trace task reads, improve Solo/IDE response capture, surface model access errors, harden dynamic settings navigation, and align modern MCP invalid-params handling.","fileCount":9,"zipByteSize":12132}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s179fnaja3kqc64tnfyq6b5zb583p7d8:traecnclaw-mcp","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s179fnaja3kqc64tnfyq6b5zb583p7d8:traecnclaw-mcp` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/luckycat133/traecnclaw-mcp before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-luckycat133-traecnclaw-mcp/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-luckycat133-traecnclaw-mcp/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-luckycat133-traecnclaw-mcp/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-luckycat133-traecnclaw-mcp/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-luckycat133-traecnclaw-mcp/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-luckycat133-traecnclaw-mcp/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T04:36:12.700Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-luckycat133-traecnclaw-mcp/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-luckycat133-traecnclaw-mcp/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-luckycat133-traecnclaw-mcp/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-luckycat133-traecnclaw-mcp/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T02:06:06.738Z","emptyReason":null},"readme":"Skill: TRAECNclaw MCP\n\nOwner: luckycat133\n\nSummary: Operate TraeCN through TRAECNclaw's focused stdio MCP tools. Use when an MCP-capable agent must send or stop work, choose a workspace/model/mode/conversation, inspect or change Trae settings through its UI, manage conversations, or resolve an exceptional question or command approval. Queueing, waiting, recovery, notifications, routine non-command questions, and keep/revert gates are gateway-managed.\n\nTags: agent-skills:0.6.0, codex:0.6.0, latest:0.6.0, mcp:0.6.0, openclaw:0.6.0, traecn:0.6.0\n\nVersion history:\n\nv0.6.0 | 2026-08-24T10:23:12.010Z | user\n\nWeb Control Console v1, scoped npm and Homebrew distribution, verified public provenance, and the exact 20-tool MCP contract.\n\nv0.5.9 | 2026-08-23T16:21:02.713Z | user\n\nScoped npm/MCPB distribution readiness, public provenance, and a safer launcher that prefers @luckycat133/traecnclaw.\n\nv0.5.6 | 2026-08-08T15:37:55.476Z | user\n\nSee CHANGELOG.md for the verified release changes.\n\nv0.5.5 | 2026-08-06T10:23:29.017Z | user\n\nSee CHANGELOG.md for the verified release changes.\n\nv0.5.4 | 2026-08-04T15:44:57.531Z | user\n\nHarden pruned and future completion-event cursors, extract durable task acceptance, centralize HTTP route metadata, and verify release artifact provenance.\n\nv0.5.3 | 2026-08-03T13:20:15.031Z | user\n\nHarden completion-event durability and remove environment-selected MCP server execution; include cursor, lock, cancellation, and subscription lifecycle fixes.\n\nv0.5.2 | 2026-08-01T16:31:28.961Z | user\n\nAdd modern MCP 2026 task negotiation, durable atomic task acceptance, portable clean-room distribution, versioned Trae adapters, and official SDK conformance.\n\nv0.5.1 | 2026-07-31T09:17:51.232Z | user\n\nAdd final-result and trace task reads, improve Solo/IDE response capture, surface model access errors, harden dynamic settings navigation, and align modern MCP invalid-params handling.\n\nv0.5.0 | 2026-07-31T03:32:51.263Z | user\n\nAdd stable MCP 2026-07-28 dual-era support, standard newline stdio, server/discover, strict version negotiation, structured tool results, cache metadata, compatibility documentation, and legacy 2025-11-25/2024-11-05 support.\n\nv0.4.7 | 2026-07-30T15:23:37.093Z | user\n\nClarify the permanent-deletion example: require an explicit current user request, repeat the no-recovery warning, re-read the exact listed conversation ID and title, and enforce these safeguards with a contract regression test—without adding a confirmation round trip.\n\nv0.4.6 | 2026-07-30T15:18:56.236Z | user\n\nHarden high-impact Trae controls: scope generation stops to the active Solo conversation, require exact inactive targets for irreversible deletion, revalidate exceptional command approvals with an audit reason, restrict automatic approval to a strict read-only allowlist, and persist security audit events.\n\nv0.4.5 | 2026-07-30T12:06:13.983Z | user\n\nSplit tracked-task cancellation from visible-generation stop; add focused, progressively discovered Trae UI settings tools with gateway-managed serialization, restoration, and confirmations; update MCP contracts and documentation.\n\nv0.4.2 | 2026-07-30T08:01:38.623Z | user\n\nHarden ClawHub distribution metadata, exclude maintainer-only test code, and scope dialog decisions to prior user authorization.\n\nv0.4.1 | 2026-07-30T07:55:35.234Z | user\n\nInitial ClawHub release: TraeCN MCP automation, queue-aware delegation, reviewed and unattended workflows, model/dialog/settings control, and code review.\n\nArchive index:\n\nArchive v0.6.0: 10 files, 15996 bytes\n\nFiles: assets/mcp-client-config.direct.json (338b), assets/mcp-client-config.json (326b), references/mcp-call-examples.json (2789b), references/mcp-surface.md (5569b), references/mcp-tool-contracts.json (16761b), scripts/setup-mcp.js (3740b), scripts/start-mcp.js (4906b), skill-card.md (2496b), SKILL.md (7345b), _meta.json (133b)\n\nFile v0.6.0:SKILL.md\n\n---\nname: traecnclaw-mcp\ndescription: Operate TraeCN through TRAECNclaw's focused stdio MCP tools. Use when an MCP-capable agent must send or stop work, choose a workspace/model/mode/conversation, inspect or change Trae settings through its UI, manage conversations, or resolve an exceptional question or command approval. Queueing, waiting, recovery, notifications, routine non-command questions, and keep/revert gates are gateway-managed.\nlicense: MIT-0\nmetadata:\n  author: TRAECNclaw\n  version: \"0.6.0\"\n  openclaw:\n    requires:\n      bins:\n        - node\n    primaryEnv: TRAECN_GATEWAY_TOKEN\n    envVars:\n      - name: TRAECN_GATEWAY_HOST\n        required: false\n        description: Optional gateway host override; keep loopback unless remote access is secured.\n      - name: TRAECN_GATEWAY_PORT\n        required: false\n        description: Optional gateway port override.\n      - name: TRAECN_GATEWAY_TOKEN\n        required: false\n        description: Optional gateway secret; never print, log, or persist it.\n      - name: TRAECN_MCP_CLIENT_ID\n        required: false\n        description: Stable client identifier for legacy MCP task notifications.\n---\n\n# TRAECNclaw MCP\n\nCompose focused tools around user intent. Do not call preflight, wait, poll,\nevent acknowledgement, recovery, cleanup, proof, process, or generic command\noperations from the agent loop; the gateway owns those mechanics.\n\n## Setup\n\n1. Install the matching TRAECNclaw server from its source checkout or release server archive. The launcher checks the repository, an installed `traecnclaw` package, then `traecnclaw-mcp` on `PATH`; it never executes a JavaScript path selected by an environment variable.\n2. Run `npm run doctor` in a source checkout. Then run `npm run --silent setup:mcp` from the checkout, or `node scripts/setup-mcp.js` from this Skill directory, to validate the server and print a resolved client entry. Use `--output FILE` to create a new mode-0600 file atomically; the command never overwrites an existing file. The JSON templates under [assets](assets) remain manual fallbacks.\n3. Start the gateway with `npm run start:gateway`, then reconnect the MCP client.\n4. Use mock mode only for development; never cite mock output as live TraeCN evidence.\n\n## Choose only necessary context\n\n- Call `traecn_open_workspace` only when the requested folder is not already open.\n- Call `traecn_list_models` when the available choices matter; then call `traecn_select_model` once.\n- Call `traecn_select_mode` only when the task requires a different Solo/IDE mode.\n- Call `traecn_list_conversations` to read the current mode and stable conversation IDs.\n- Use `traecn_create_conversation`, `traecn_select_conversation`, or `traecn_delete_conversation` for exactly one conversation operation.\n\nThese tools change TraeCN context. Never repeat workspace paths in the model\nmessage.\n\n## Send and track work\n\nCall `traecn_send_message` with the exact message and, when concurrency makes\nthe target ambiguous, an explicit `conversationId`. Clients without the Tasks\nextension receive the accepted `taskId` and status. When the host declares\n`io.modelcontextprotocol/tasks` on the request, the same call returns that\ndurable gateway identity as `resultType: \"task\"`.\n\nDo not wait or busy-poll after sending. Legacy initialization-based clients\nreceive compact task notifications that the stdio server acknowledges\ninternally. Modern hosts can open `subscriptions/listen` for the returned task\nID and receive a complete `notifications/tasks` snapshot; hosts without that\nextension call `traecn_get_task` only for an intentional later status/result\nread. If a modern task reports `input_required`, its elicitation and\n`tasks/update` response carry the same approval safeguards documented below.\nThe first legacy connection for a client ID baselines retained history before\nnotifications start. Reusing that stable ID later resumes only durably\nunacknowledged events; configure a distinct `TRAECN_MCP_CLIENT_ID` when the\nhost-derived name is not unique.\nUse `traecn_cancel_task` for one known gateway task. Use\n`traecn_stop_generation` only when the user wants the\ngeneration currently visible in TraeCN stopped. First list conversations and\npass the active `conversationId`; the gateway rejects a stale or different\nconversation. Because visible work may belong to the user or another agent,\nset `acknowledgeUntrackedWork:true` and include a short audit `reason`. Use\n`traecn_cancel_task` instead when the work has a gateway task ID.\n\nFor a completed task, omit `detailLevel` or pass `\"result\"` to retrieve only\nthe final answer. Pass `detailLevel: \"trace\"` only when the detailed visible\nexecution process is needed to diagnose or trace an unexpected outcome.\n\n## Inspect or change Trae settings\n\nTreat settings as a second-level capability. Call\n`traecn_list_setting_sections`, then `traecn_list_settings` for only the needed\nsection. For dropdowns, call `traecn_list_setting_options` instead of guessing.\nUse exactly one matching mutation tool:\n\n- `traecn_set_setting_toggle` for a boolean switch.\n- `traecn_select_setting_option` for a dropdown choice.\n- `traecn_set_setting_text` for a text or numeric input.\n\nThese commands make the change through Trae's visible settings UI. The gateway\nserializes UI access and returns to chat automatically; do not navigate back\nmanually or repeat reads after a successful write.\n\n## Resolve exceptional interactions\n\nThe gateway never approves shell commands automatically, including commands\nclassified as read-only. Command text alone cannot establish workspace scope,\nexclude sensitive-file reads, or account for Git configuration and external\nhooks. Every command is returned to the Agent with its risk classification.\n\nIf a task reports an unresolved interaction:\n\n- Use `traecn_answer_question` for a returned question and one of its offered answers.\n- Use `traecn_decide_approval` only after checking the returned command and risk. Approval requires the exact `expectedCommand`, `acknowledgeRisk:true`, and a short audit `reason`; the gateway re-reads the visible card and rejects stale or changed commands. Denial needs no risk acknowledgement.\n\nConversation deletion is permanent. Delete only an inactive conversation and\nonly when the current user request explicitly names or unambiguously identifies\nit for deletion. Re-read its listed ID and exact title, then pass the title with\n`acknowledgePermanentDeletion:true`; the gateway rejects title mismatches and\nthe active conversation, records the attempt, and cannot restore a successful\ndeletion. This uses the user's existing instruction and does not add a separate\nconfirmation round trip.\n\n## Safety\n\n- Keep the gateway on `127.0.0.1` unless remote access is secured.\n- Never expose `.env`, tokens, authorization headers, or TraeCN profile data.\n- Keep the default security audit log enabled; high-impact approvals, stops,\n  and deletions are written to date-based JSONL files with sensitive fields\n  redacted and a default 30-day retention.\n- Treat mock results and non-terminal task states as incomplete.\n- Do not recreate removed low-level tools through shell, generic commands, or GUI control.\n\nRead [references/mcp-surface.md](references/mcp-surface.md) only for exact\nschemas, protocol compatibility, notification behavior, and gateway ownership\nboundaries.\n\nFile v0.6.0:_meta.json\n\n{\n  \"ownerId\": \"kn73ym4c6fp5b2vaa22t84v5fn83pt1p\",\n  \"slug\": \"traecnclaw-mcp\",\n  \"version\": \"0.6.0\",\n  \"publishedAt\": 1787566992010\n}\n\nFile v0.6.0:references/mcp-call-examples.json\n\n{\n  \"calls\": [\n    {\n      \"name\": \"open_workspace\",\n      \"tool\": \"traecn_open_workspace\",\n      \"arguments\": { \"path\": \"/absolute/path/to/repository\" }\n    },\n    {\n      \"name\": \"discover_models\",\n      \"tool\": \"traecn_list_models\",\n      \"arguments\": {}\n    },\n    {\n      \"name\": \"select_model\",\n      \"tool\": \"traecn_select_model\",\n      \"arguments\": { \"model\": \"GLM-5.2\" }\n    },\n    {\n      \"name\": \"send_repository_review\",\n      \"tool\": \"traecn_send_message\",\n      \"arguments\": {\n        \"message\": \"Review the current repository. Report findings first, ordered by severity.\"\n      }\n    },\n    {\n      \"name\": \"explicit_task_check\",\n      \"tool\": \"traecn_get_task\",\n      \"arguments\": { \"taskId\": \"TASK_ID\" }\n    },\n    {\n      \"name\": \"diagnostic_task_trace\",\n      \"tool\": \"traecn_get_task\",\n      \"arguments\": { \"taskId\": \"TASK_ID\", \"detailLevel\": \"trace\" }\n    },\n    {\n      \"name\": \"list_general_settings\",\n      \"tool\": \"traecn_list_settings\",\n      \"arguments\": { \"section\": \"通用\" }\n    },\n    {\n      \"name\": \"toggle_auto_save\",\n      \"tool\": \"traecn_set_setting_toggle\",\n      \"arguments\": { \"section\": \"通用\", \"label\": \"Auto Save\", \"enabled\": true }\n    },\n    {\n      \"name\": \"select_conversation\",\n      \"tool\": \"traecn_select_conversation\",\n      \"arguments\": { \"conversationId\": \"solo:UmV2aWV3IEFQSQ\" }\n    },\n    {\n      \"name\": \"stop_visible_untracked_generation\",\n      \"tool\": \"traecn_stop_generation\",\n      \"arguments\": {\n        \"conversationId\": \"solo:UmV2aWV3IEFQSQ\",\n        \"acknowledgeUntrackedWork\": true,\n        \"reason\": \"The user asked to stop the generation visible in this conversation\"\n      }\n    },\n    {\n      \"name\": \"delete_inactive_conversation\",\n      \"tool\": \"traecn_delete_conversation\",\n      \"precondition\": \"Use only when the current user request explicitly names or unambiguously identifies this conversation for deletion; do not infer deletion from cleanup or maintenance intent.\",\n      \"warning\": \"Deletion is permanent, and the gateway cannot restore the conversation. Re-read the listed conversation ID and exact title before sending this call.\",\n      \"arguments\": {\n        \"conversationId\": \"solo:T2xkIHJldmlldw\",\n        \"expectedTitle\": \"Old review\",\n        \"acknowledgePermanentDeletion\": true\n      }\n    },\n    {\n      \"name\": \"answer_exceptional_question\",\n      \"tool\": \"traecn_answer_question\",\n      \"arguments\": { \"answer\": \"Review the current workspace changes\" }\n    },\n    {\n      \"name\": \"approve_exact_exceptional_command\",\n      \"tool\": \"traecn_decide_approval\",\n      \"arguments\": {\n        \"decision\": \"approve\",\n        \"expectedCommand\": \"git push origin main\",\n        \"acknowledgeRisk\": true,\n        \"reason\": \"The user explicitly requested publishing the current branch\"\n      }\n    }\n  ]\n}\n\nFile v0.6.0:references/mcp-surface.md\n\n# MCP surface\n\nTRAECNclaw exposes one focused Agent surface. There are no tool profiles.\n\n## Protocol and transport\n\n- MCP `2026-07-28`: stateless per-request `_meta`, `server/discover`, typed\n  results, structured tool content, server identity metadata, and cache hints.\n- MCP `2025-11-25` and `2024-11-05`: legacy `initialize` compatibility.\n- stdio: one compact JSON-RPC object per line. `Content-Length` framing is\n  accepted only as a migration compatibility path.\n\nMCP contract version 5 below identifies this Skill's frozen 20-tool surface;\nit is not an MCP protocol revision. Legacy clients receive compact\n`notifications/message` task events. For MCP `2026-07-28`, the server advertises\nthe separately negotiated `io.modelcontextprotocol/tasks` extension. An\nopted-in `traecn_send_message` returns the durable gateway ID as a Task;\n`tasks/get`, `tasks/update`, and `tasks/cancel` operate that same identity, and\n`subscriptions/listen` can stream exact-ID `notifications/tasks` snapshots.\nFor a legacy client ID's first connection, already-retained events are\nbaselined without delivery; a returning ID resumes only events newer than its\ndurable acknowledgement. Unrelated request metadata such as `progressToken`\ndoes not change the negotiated legacy protocol era.\nModern retries derive a stable idempotency key from the request identity and\narguments. The gateway retains the corresponding terminal fingerprint and\nresponse across restart for a configurable 24-hour default TTL, so the same\nrequest reuses the original task while different work cannot collide.\nClients that do not opt in retain the ordinary complete result and use\n`traecn_get_task` only for an intentional read. The extension is upstream-draft\nand does not change the 20-tool contract.\n\n| Tool | Required input | Gateway route |\n| --- | --- | --- |\n| `traecn_send_message` | `message` | `POST /api/tasks/submit` |\n| `traecn_get_task` | `taskId`; optional `detailLevel` (`result` or `trace`) | `GET /api/task/{taskId}` |\n| `traecn_cancel_task` | `taskId` | `POST /api/task/{taskId}/cancel` |\n| `traecn_stop_generation` | `conversationId`, `acknowledgeUntrackedWork`, `reason` | `POST /api/trae/stop-generation` |\n| `traecn_open_workspace` | `path` | `POST /api/open-project` |\n| `traecn_list_models` | none | `GET /api/models` |\n| `traecn_select_model` | `model` | `POST /api/switch-model` |\n| `traecn_select_mode` | `mode` | `POST /api/switch-mode` |\n| `traecn_list_setting_sections` | none | `GET /api/settings/sections` |\n| `traecn_list_settings` | `section` | `GET /api/settings/read` |\n| `traecn_list_setting_options` | `section`, `label` | `GET /api/settings/options` |\n| `traecn_set_setting_toggle` | `section`, `label`, `enabled` | `POST /api/settings/set` |\n| `traecn_select_setting_option` | `section`, `label`, `value` | `POST /api/settings/set` |\n| `traecn_set_setting_text` | `section`, `label`, `text` | `POST /api/settings/set` |\n| `traecn_list_conversations` | none | `GET /api/conversations` |\n| `traecn_create_conversation` | none | `POST /api/conversations/manage` |\n| `traecn_select_conversation` | `conversationId` | `POST /api/conversations/manage` |\n| `traecn_delete_conversation` | `conversationId`, `expectedTitle`, `acknowledgePermanentDeletion` | `POST /api/conversations/manage` |\n| `traecn_answer_question` | `answer` | `POST /api/interactions/resolve` |\n| `traecn_decide_approval` | `decision`; approve also needs `expectedCommand`, `acknowledgeRisk`, `reason` | `POST /api/interactions/resolve` |\n\n`traecn_send_message` accepts only `message` and optional `conversationId`.\nSet workspace, model, mode, and conversation through their focused tools. New\nconversations are explicit and messages otherwise stay in the selected chat.\n\nAfter message acceptance the gateway owns persistence, external and local\nqueues, recovery, completion checks, notifications, routine non-command\nquestions, and keep/revert gates. Agents do not wait, poll, acknowledge\nevents, run preflight, or recover work. A supporting host owns the Tasks\nsubscription; `traecn_get_task` is an optional explicit fallback read, not a\npolling instruction. Its default `detailLevel: \"result\"`\nreturns only the final answer; use `detailLevel: \"trace\"` when a failure or\nunexpected result requires the visible execution process for diagnosis.\n\nSettings tools form a second level: list visible sections, then list only one\nsection's items and their `controlType`. List dropdown options before selecting\none. Each write tool maps to one exact UI control operation, while the gateway\nopens settings and restores chat automatically.\n\nNo shell command is approved automatically, including commands classified as\nread-only. Command text alone cannot establish workspace scope, exclude\nsensitive-file reads, or account for Git configuration and external hooks.\nEvery command goes to Agent review. Approval requires the exact visible\ncommand, `acknowledgeRisk:true`, and a short audit reason; the gateway rejects\nstale command cards. Every high-impact Agent decision is written to the local\nappend-only security audit log.\n\nThe direct stop action works only in Solo mode and only when its supplied ID\nstill matches the active conversation. It requires an acknowledgement that the\nvisible generation may be untracked plus an audit reason. Conversation delete\nrequires an inactive target, exact listed title, and permanent-deletion\nacknowledgement; it has no recovery path. Unsafe-command approval revalidates\nthe exact currently visible command and records the risk acknowledgement and\nreason before clicking.\n\nFile v0.6.0:references/mcp-tool-contracts.json\n\n{\n  \"source\": \"mcp-server.js\",\n  \"contractVersion\": 5,\n  \"toolCount\": 20,\n  \"tools\": [\n    {\n      \"name\": \"traecn_send_message\",\n      \"description\": \"Submit one user instruction to TraeCN as durable background work and return its stable taskId immediately; the gateway owns queueing, retries, recovery, and result persistence. Use this for every delegated coding request, optionally targeting an existing conversation via conversationId. Do not send follow-up messages to probe progress — track the returned task instead.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"message\": {\n            \"type\": \"string\",\n            \"description\": \"The exact instruction to execute.\"\n          },\n          \"conversationId\": {\n            \"type\": \"string\",\n            \"description\": \"Stable identifier returned by traecn_list_conversations.\"\n          }\n        },\n        \"required\": [\n          \"message\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"task\",\n        \"risk\": \"delegate\"\n      }\n    },\n    {\n      \"name\": \"traecn_get_task\",\n      \"description\": \"Read one known gateway task by ID: status plus final result, or the full execution trace with detailLevel 'trace' for diagnosis. Call once when notified of completion or once later when resuming after a disconnect. Not a progress primitive — do not poll in a tight loop.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"taskId\": {\n            \"type\": \"string\",\n            \"description\": \"Stable task identifier returned by traecn_send_message.\"\n          },\n          \"detailLevel\": {\n            \"type\": \"string\",\n            \"enum\": [\n              \"result\",\n              \"trace\"\n            ],\n            \"description\": \"result returns only the final answer (default); trace includes the full visible Trae execution process.\"\n          }\n        },\n        \"required\": [\n          \"taskId\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"task\",\n        \"risk\": \"read\"\n      }\n    },\n    {\n      \"name\": \"traecn_cancel_task\",\n      \"description\": \"Cancel one gateway-tracked task by ID. The gateway stops shepherding the work at its next control point and records the cancellation; results already produced remain in task history. Returns the task identity and post-cancellation status.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"taskId\": {\n            \"type\": \"string\",\n            \"description\": \"Stable task identifier returned by traecn_send_message.\"\n          }\n        },\n        \"required\": [\n          \"taskId\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"task\",\n        \"risk\": \"delegate\",\n        \"destructive\": true\n      }\n    },\n    {\n      \"name\": \"traecn_stop_generation\",\n      \"description\": \"Stop only the generation currently visible in the named active TraeCN conversation. Visible output may belong to the user or another agent, so this requires acknowledgeUntrackedWork=true plus an audit reason. Prefer cancel_task whenever a gateway task ID exists.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"conversationId\": {\n            \"type\": \"string\",\n            \"description\": \"Stable identifier returned by traecn_list_conversations.\"\n          },\n          \"acknowledgeUntrackedWork\": {\n            \"type\": \"boolean\",\n            \"description\": \"Must be true to acknowledge that visible work may belong to the user or another agent.\"\n          },\n          \"reason\": {\n            \"type\": \"string\",\n            \"minLength\": 1,\n            \"maxLength\": 500,\n            \"description\": \"Concise reason recorded in the local security audit log.\"\n          }\n        },\n        \"required\": [\n          \"conversationId\",\n          \"acknowledgeUntrackedWork\",\n          \"reason\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"task\",\n        \"risk\": \"delegate\",\n        \"destructive\": true\n      }\n    },\n    {\n      \"name\": \"traecn_open_workspace\",\n      \"description\": \"Open one absolute local folder path as the active TraeCN workspace and verify it became active before returning. Call before submitting work that depends on a specific project; afterwards do not repeat the path inside the task message.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"path\": {\n            \"type\": \"string\",\n            \"description\": \"Absolute local folder path.\"\n          }\n        },\n        \"required\": [\n          \"path\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"context\",\n        \"risk\": \"delegate\"\n      }\n    },\n    {\n      \"name\": \"traecn_list_models\",\n      \"description\": \"List the model names currently offered in the TraeCN UI together with the currently selected model. Read-only discovery; call before select_model whenever the model choice matters.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {},\n        \"required\": [],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"context\",\n        \"risk\": \"read\"\n      }\n    },\n    {\n      \"name\": \"traecn_select_model\",\n      \"description\": \"Select one model by exact name from traecn_list_models and confirm the picker state before returning. Selecting the already-active model succeeds as a no-op. Does not wait for model availability or capacity.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"model\": {\n            \"type\": \"string\",\n            \"description\": \"Exact model name as returned by traecn_list_models.\"\n          }\n        },\n        \"required\": [\n          \"model\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"context\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_select_mode\",\n      \"description\": \"Switch TraeCN between Solo and IDE mode and confirm the resulting active mode. Switching to the current mode succeeds as a no-op. Call only when the requested mode differs.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"mode\": {\n            \"type\": \"string\",\n            \"enum\": [\n              \"solo\",\n              \"ide\"\n            ],\n            \"description\": \"Target UI mode.\"\n          }\n        },\n        \"required\": [\n          \"mode\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"context\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_list_setting_sections\",\n      \"description\": \"List the settings sections currently visible in TraeCN's settings UI. Required first step for any settings operation; never guess a section name.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {},\n        \"required\": [],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"settings\",\n        \"risk\": \"read\"\n      }\n    },\n    {\n      \"name\": \"traecn_list_settings\",\n      \"description\": \"List the individual settings and their control types within one section returned by traecn_list_setting_sections. Read-only discovery preceding any setting mutation; never guess a label.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"section\": {\n            \"type\": \"string\",\n            \"description\": \"Section name exactly as returned by traecn_list_setting_sections.\"\n          }\n        },\n        \"required\": [\n          \"section\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"settings\",\n        \"risk\": \"read\"\n      }\n    },\n    {\n      \"name\": \"traecn_list_setting_options\",\n      \"description\": \"List the visible choices of one dropdown-style setting identified by section and label. Required before select_setting_option; never invent an option value.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"section\": {\n            \"type\": \"string\",\n            \"description\": \"Section name exactly as returned by traecn_list_setting_sections.\"\n          },\n          \"label\": {\n            \"type\": \"string\",\n            \"description\": \"Setting label exactly as returned by traecn_list_settings.\"\n          }\n        },\n        \"required\": [\n          \"section\",\n          \"label\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"settings\",\n        \"risk\": \"read\"\n      }\n    },\n    {\n      \"name\": \"traecn_set_setting_toggle\",\n      \"description\": \"Enable or disable one toggle setting identified by section and label, then read back the applied state. Applying the already-current state succeeds as a no-op.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"section\": {\n            \"type\": \"string\",\n            \"description\": \"Section name exactly as returned by traecn_list_setting_sections.\"\n          },\n          \"label\": {\n            \"type\": \"string\",\n            \"description\": \"Setting label exactly as returned by traecn_list_settings.\"\n          },\n          \"enabled\": {\n            \"type\": \"boolean\",\n            \"description\": \"Desired toggle state.\"\n          }\n        },\n        \"required\": [\n          \"section\",\n          \"label\",\n          \"enabled\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"settings\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_select_setting_option\",\n      \"description\": \"Select one previously listed option for a dropdown setting identified by section and label, and confirm the applied selection. Only values returned by traecn_list_setting_options are valid.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"section\": {\n            \"type\": \"string\",\n            \"description\": \"Section name exactly as returned by traecn_list_setting_sections.\"\n          },\n          \"label\": {\n            \"type\": \"string\",\n            \"description\": \"Setting label exactly as returned by traecn_list_settings.\"\n          },\n          \"value\": {\n            \"type\": \"string\",\n            \"description\": \"Option value exactly as returned by traecn_list_setting_options.\"\n          }\n        },\n        \"required\": [\n          \"section\",\n          \"label\",\n          \"value\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"settings\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_set_setting_text\",\n      \"description\": \"Enter one text value into the setting field identified by section and label, and confirm what the field contains afterwards.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"section\": {\n            \"type\": \"string\",\n            \"description\": \"Section name exactly as returned by traecn_list_setting_sections.\"\n          },\n          \"label\": {\n            \"type\": \"string\",\n            \"description\": \"Setting label exactly as returned by traecn_list_settings.\"\n          },\n          \"text\": {\n            \"type\": \"string\",\n            \"description\": \"Text content to enter into the field.\"\n          }\n        },\n        \"required\": [\n          \"section\",\n          \"label\",\n          \"text\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"settings\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_list_conversations\",\n      \"description\": \"List the conversations available in the current TraeCN mode with stable identifiers accepted by conversation-scoped tools. Read-only; call when choosing or verifying conversation context.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {},\n        \"required\": [],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"conversation\",\n        \"risk\": \"read\"\n      }\n    },\n    {\n      \"name\": \"traecn_create_conversation\",\n      \"description\": \"Create a new TraeCN conversation and make it the active target. Every call creates an additional conversation, so call at most once per genuinely new context. Returns the created conversation identity.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {},\n        \"required\": [],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"conversation\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_select_conversation\",\n      \"description\": \"Make one existing conversation the active target for subsequent visible interaction. Returns the confirmed active conversation identity.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"conversationId\": {\n            \"type\": \"string\",\n            \"description\": \"Stable identifier returned by traecn_list_conversations.\"\n          }\n        },\n        \"required\": [\n          \"conversationId\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"conversation\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_delete_conversation\",\n      \"description\": \"Permanently delete one inactive TraeCN conversation by stable identifier. Requires the exact expectedTitle returned by traecn_list_conversations plus an explicit irreversible-deletion acknowledgement; there is no gateway recovery path.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"conversationId\": {\n            \"type\": \"string\",\n            \"description\": \"Stable identifier returned by traecn_list_conversations.\"\n          },\n          \"expectedTitle\": {\n            \"type\": \"string\",\n            \"minLength\": 1,\n            \"description\": \"Exact title returned by traecn_list_conversations.\"\n          },\n          \"acknowledgePermanentDeletion\": {\n            \"type\": \"boolean\",\n            \"description\": \"Must be true to acknowledge that the gateway cannot restore the deleted conversation.\"\n          }\n        },\n        \"required\": [\n          \"conversationId\",\n          \"expectedTitle\",\n          \"acknowledgePermanentDeletion\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"conversation\",\n        \"risk\": \"delegate\",\n        \"destructive\": true\n      }\n    },\n    {\n      \"name\": \"traecn_answer_question\",\n      \"description\": \"Resolve an exceptional question from TraeCN that the gateway could not handle mechanically by supplying the user's decision. The gateway routes the answer to the pending visible prompt and reports the outcome. Only call when a pending interaction exists.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"answer\": {\n            \"type\": \"string\",\n            \"description\": \"The user's answer to the pending question.\"\n          }\n        },\n        \"required\": [\n          \"answer\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"interaction\",\n        \"risk\": \"delegate\"\n      }\n    },\n    {\n      \"name\": \"traecn_decide_approval\",\n      \"description\": \"Approve or deny the unsafe or ambiguous command card currently visible in TraeCN. Approval revalidates the exact expectedCommand against the card and requires acknowledgeRisk plus an audit reason recorded locally; denial needs only the decision. Never approve beyond the scope the user authorized.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"decision\": {\n            \"type\": \"string\",\n            \"enum\": [\n              \"approve\",\n              \"deny\"\n            ],\n            \"description\": \"The approval decision.\"\n          },\n          \"expectedCommand\": {\n            \"type\": \"string\",\n            \"description\": \"For approve, the exact command returned with the pending interaction.\"\n          },\n          \"acknowledgeRisk\": {\n            \"type\": \"boolean\",\n            \"description\": \"For approve, must be true after checking the command against the user-authorized scope.\"\n          },\n          \"reason\": {\n            \"type\": \"string\",\n            \"minLength\": 1,\n            \"maxLength\": 500,\n            \"description\": \"For approve, a concise authorization reason recorded in the local security audit log.\"\n          }\n        },\n        \"required\": [\n          \"decision\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"interaction\",\n        \"risk\": \"delegate\",\n        \"destructive\": true\n      }\n    }\n  ]\n}\n\nFile v0.6.0:skill-card.md\n\n## Description:\n\nOperates TraeCN through TRAECNclaw's focused stdio MCP tools for sending or stopping work, selecting workspace/model/mode/conversation context, managing settings and conversations, and resolving exceptional questions or command approvals.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[luckycat133](https://clawhub.ai/user/luckycat133)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and MCP-capable agents use this skill to operate TraeCN through TRAECNclaw, delegate coding work, manage TraeCN context and settings, and handle exceptional approvals or questions through a focused tool surface.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The launcher can load server code from environment-influenced locations.\n\nMitigation: Use a fixed, verified absolute server path or a trusted package installation, and control the MCP client's working directory, NODE_PATH, and PATH before installation.\n\nRisk: Gateway access could expose TraeCN control if bound beyond loopback or if its token is mishandled.\n\nMitigation: Keep TRAECN_GATEWAY_HOST on 127.0.0.1 unless remote access is secured, and never print, log, or persist TRAECN_GATEWAY_TOKEN.\n\nRisk: Command approvals, settings changes, stop-generation requests, and conversation deletion can have high impact.\n\nMitigation: Require explicit user intent, re-read exact commands or conversation identifiers, acknowledge documented risks, and preserve audit reasons for high-impact decisions.\n\n## Reference(s):\n\n- [TRAECNclaw MCP Skill Page](https://clawhub.ai/luckycat133/skills/traecnclaw-mcp)\n- [MCP surface](references/mcp-surface.md)\n- [MCP tool contracts](references/mcp-tool-contracts.json)\n- [MCP call examples](references/mcp-call-examples.json)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with JSON configuration and shell command examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires Node and a matching TRAECNclaw server; exposes a focused 20-tool stdio MCP surface.]\n\n## Skill Version(s):\n\n0.6.0 (source: SKILL.md frontmatter, server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v0.6.0:assets/mcp-client-config.direct.json\n\n{\n  \"$schema\": \"https://json.schemastore.org/mcp-servers.json\",\n  \"mcpServers\": {\n    \"traecn\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/TRAECNclaw/mcp-server.js\"],\n      \"env\": {\n        \"TRAECN_GATEWAY_HOST\": \"127.0.0.1\",\n        \"TRAECN_GATEWAY_PORT\": \"8788\",\n        \"TRAECN_GATEWAY_TOKEN\": \"\"\n      }\n    }\n  }\n}\n\nFile v0.6.0:assets/mcp-client-config.json\n\n{\n  \"$schema\": \"https://json.schemastore.org/mcp-servers.json\",\n  \"mcpServers\": {\n    \"traecn\": {\n      \"command\": \"node\",\n      \"args\": [\"SKILL_DIR/scripts/start-mcp.js\"],\n      \"env\": {\n        \"TRAECN_GATEWAY_HOST\": \"127.0.0.1\",\n        \"TRAECN_GATEWAY_PORT\": \"8788\",\n        \"TRAECN_GATEWAY_TOKEN\": \"\"\n      }\n    }\n  }\n}\n\nArchive v0.5.9: 10 files, 16172 bytes\n\nFiles: assets/mcp-client-config.direct.json (338b), assets/mcp-client-config.json (326b), references/mcp-call-examples.json (2789b), references/mcp-surface.md (5569b), references/mcp-tool-contracts.json (16761b), scripts/setup-mcp.js (3740b), scripts/start-mcp.js (4906b), skill-card.md (3037b), SKILL.md (7345b), _meta.json (133b)\n\nFile v0.5.9:SKILL.md\n\n---\nname: traecnclaw-mcp\ndescription: Operate TraeCN through TRAECNclaw's focused stdio MCP tools. Use when an MCP-capable agent must send or stop work, choose a workspace/model/mode/conversation, inspect or change Trae settings through its UI, manage conversations, or resolve an exceptional question or command approval. Queueing, waiting, recovery, notifications, routine non-command questions, and keep/revert gates are gateway-managed.\nlicense: MIT-0\nmetadata:\n  author: TRAECNclaw\n  version: \"0.5.9\"\n  openclaw:\n    requires:\n      bins:\n        - node\n    primaryEnv: TRAECN_GATEWAY_TOKEN\n    envVars:\n      - name: TRAECN_GATEWAY_HOST\n        required: false\n        description: Optional gateway host override; keep loopback unless remote access is secured.\n      - name: TRAECN_GATEWAY_PORT\n        required: false\n        description: Optional gateway port override.\n      - name: TRAECN_GATEWAY_TOKEN\n        required: false\n        description: Optional gateway secret; never print, log, or persist it.\n      - name: TRAECN_MCP_CLIENT_ID\n        required: false\n        description: Stable client identifier for legacy MCP task notifications.\n---\n\n# TRAECNclaw MCP\n\nCompose focused tools around user intent. Do not call preflight, wait, poll,\nevent acknowledgement, recovery, cleanup, proof, process, or generic command\noperations from the agent loop; the gateway owns those mechanics.\n\n## Setup\n\n1. Install the matching TRAECNclaw server from its source checkout or release server archive. The launcher checks the repository, an installed `traecnclaw` package, then `traecnclaw-mcp` on `PATH`; it never executes a JavaScript path selected by an environment variable.\n2. Run `npm run doctor` in a source checkout. Then run `npm run --silent setup:mcp` from the checkout, or `node scripts/setup-mcp.js` from this Skill directory, to validate the server and print a resolved client entry. Use `--output FILE` to create a new mode-0600 file atomically; the command never overwrites an existing file. The JSON templates under [assets](assets) remain manual fallbacks.\n3. Start the gateway with `npm run start:gateway`, then reconnect the MCP client.\n4. Use mock mode only for development; never cite mock output as live TraeCN evidence.\n\n## Choose only necessary context\n\n- Call `traecn_open_workspace` only when the requested folder is not already open.\n- Call `traecn_list_models` when the available choices matter; then call `traecn_select_model` once.\n- Call `traecn_select_mode` only when the task requires a different Solo/IDE mode.\n- Call `traecn_list_conversations` to read the current mode and stable conversation IDs.\n- Use `traecn_create_conversation`, `traecn_select_conversation`, or `traecn_delete_conversation` for exactly one conversation operation.\n\nThese tools change TraeCN context. Never repeat workspace paths in the model\nmessage.\n\n## Send and track work\n\nCall `traecn_send_message` with the exact message and, when concurrency makes\nthe target ambiguous, an explicit `conversationId`. Clients without the Tasks\nextension receive the accepted `taskId` and status. When the host declares\n`io.modelcontextprotocol/tasks` on the request, the same call returns that\ndurable gateway identity as `resultType: \"task\"`.\n\nDo not wait or busy-poll after sending. Legacy initialization-based clients\nreceive compact task notifications that the stdio server acknowledges\ninternally. Modern hosts can open `subscriptions/listen` for the returned task\nID and receive a complete `notifications/tasks` snapshot; hosts without that\nextension call `traecn_get_task` only for an intentional later status/result\nread. If a modern task reports `input_required`, its elicitation and\n`tasks/update` response carry the same approval safeguards documented below.\nThe first legacy connection for a client ID baselines retained history before\nnotifications start. Reusing that stable ID later resumes only durably\nunacknowledged events; configure a distinct `TRAECN_MCP_CLIENT_ID` when the\nhost-derived name is not unique.\nUse `traecn_cancel_task` for one known gateway task. Use\n`traecn_stop_generation` only when the user wants the\ngeneration currently visible in TraeCN stopped. First list conversations and\npass the active `conversationId`; the gateway rejects a stale or different\nconversation. Because visible work may belong to the user or another agent,\nset `acknowledgeUntrackedWork:true` and include a short audit `reason`. Use\n`traecn_cancel_task` instead when the work has a gateway task ID.\n\nFor a completed task, omit `detailLevel` or pass `\"result\"` to retrieve only\nthe final answer. Pass `detailLevel: \"trace\"` only when the detailed visible\nexecution process is needed to diagnose or trace an unexpected outcome.\n\n## Inspect or change Trae settings\n\nTreat settings as a second-level capability. Call\n`traecn_list_setting_sections`, then `traecn_list_settings` for only the needed\nsection. For dropdowns, call `traecn_list_setting_options` instead of guessing.\nUse exactly one matching mutation tool:\n\n- `traecn_set_setting_toggle` for a boolean switch.\n- `traecn_select_setting_option` for a dropdown choice.\n- `traecn_set_setting_text` for a text or numeric input.\n\nThese commands make the change through Trae's visible settings UI. The gateway\nserializes UI access and returns to chat automatically; do not navigate back\nmanually or repeat reads after a successful write.\n\n## Resolve exceptional interactions\n\nThe gateway never approves shell commands automatically, including commands\nclassified as read-only. Command text alone cannot establish workspace scope,\nexclude sensitive-file reads, or account for Git configuration and external\nhooks. Every command is returned to the Agent with its risk classification.\n\nIf a task reports an unresolved interaction:\n\n- Use `traecn_answer_question` for a returned question and one of its offered answers.\n- Use `traecn_decide_approval` only after checking the returned command and risk. Approval requires the exact `expectedCommand`, `acknowledgeRisk:true`, and a short audit `reason`; the gateway re-reads the visible card and rejects stale or changed commands. Denial needs no risk acknowledgement.\n\nConversation deletion is permanent. Delete only an inactive conversation and\nonly when the current user request explicitly names or unambiguously identifies\nit for deletion. Re-read its listed ID and exact title, then pass the title with\n`acknowledgePermanentDeletion:true`; the gateway rejects title mismatches and\nthe active conversation, records the attempt, and cannot restore a successful\ndeletion. This uses the user's existing instruction and does not add a separate\nconfirmation round trip.\n\n## Safety\n\n- Keep the gateway on `127.0.0.1` unless remote access is secured.\n- Never expose `.env`, tokens, authorization headers, or TraeCN profile data.\n- Keep the default security audit log enabled; high-impact approvals, stops,\n  and deletions are written to date-based JSONL files with sensitive fields\n  redacted and a default 30-day retention.\n- Treat mock results and non-terminal task states as incomplete.\n- Do not recreate removed low-level tools through shell, generic commands, or GUI control.\n\nRead [references/mcp-surface.md](references/mcp-surface.md) only for exact\nschemas, protocol compatibility, notification behavior, and gateway ownership\nboundaries.\n\nFile v0.5.9:_meta.json\n\n{\n  \"ownerId\": \"kn73ym4c6fp5b2vaa22t84v5fn83pt1p\",\n  \"slug\": \"traecnclaw-mcp\",\n  \"version\": \"0.5.9\",\n  \"publishedAt\": 1787502062713\n}\n\nFile v0.5.9:references/mcp-call-examples.json\n\n{\n  \"calls\": [\n    {\n      \"name\": \"open_workspace\",\n      \"tool\": \"traecn_open_workspace\",\n      \"arguments\": { \"path\": \"/absolute/path/to/repository\" }\n    },\n    {\n      \"name\": \"discover_models\",\n      \"tool\": \"traecn_list_models\",\n      \"arguments\": {}\n    },\n    {\n      \"name\": \"select_model\",\n      \"tool\": \"traecn_select_model\",\n      \"arguments\": { \"model\": \"GLM-5.2\" }\n    },\n    {\n      \"name\": \"send_repository_review\",\n      \"tool\": \"traecn_send_message\",\n      \"arguments\": {\n        \"message\": \"Review the current repository. Report findings first, ordered by severity.\"\n      }\n    },\n    {\n      \"name\": \"explicit_task_check\",\n      \"tool\": \"traecn_get_task\",\n      \"arguments\": { \"taskId\": \"TASK_ID\" }\n    },\n    {\n      \"name\": \"diagnostic_task_trace\",\n      \"tool\": \"traecn_get_task\",\n      \"arguments\": { \"taskId\": \"TASK_ID\", \"detailLevel\": \"trace\" }\n    },\n    {\n      \"name\": \"list_general_settings\",\n      \"tool\": \"traecn_list_settings\",\n      \"arguments\": { \"section\": \"通用\" }\n    },\n    {\n      \"name\": \"toggle_auto_save\",\n      \"tool\": \"traecn_set_setting_toggle\",\n      \"arguments\": { \"section\": \"通用\", \"label\": \"Auto Save\", \"enabled\": true }\n    },\n    {\n      \"name\": \"select_conversation\",\n      \"tool\": \"traecn_select_conversation\",\n      \"arguments\": { \"conversationId\": \"solo:UmV2aWV3IEFQSQ\" }\n    },\n    {\n      \"name\": \"stop_visible_untracked_generation\",\n      \"tool\": \"traecn_stop_generation\",\n      \"arguments\": {\n        \"conversationId\": \"solo:UmV2aWV3IEFQSQ\",\n        \"acknowledgeUntrackedWork\": true,\n        \"reason\": \"The user asked to stop the generation visible in this conversation\"\n      }\n    },\n    {\n      \"name\": \"delete_inactive_conversation\",\n      \"tool\": \"traecn_delete_conversation\",\n      \"precondition\": \"Use only when the current user request explicitly names or unambiguously identifies this conversation for deletion; do not infer deletion from cleanup or maintenance intent.\",\n      \"warning\": \"Deletion is permanent, and the gateway cannot restore the conversation. Re-read the listed conversation ID and exact title before sending this call.\",\n      \"arguments\": {\n        \"conversationId\": \"solo:T2xkIHJldmlldw\",\n        \"expectedTitle\": \"Old review\",\n        \"acknowledgePermanentDeletion\": true\n      }\n    },\n    {\n      \"name\": \"answer_exceptional_question\",\n      \"tool\": \"traecn_answer_question\",\n      \"arguments\": { \"answer\": \"Review the current workspace changes\" }\n    },\n    {\n      \"name\": \"approve_exact_exceptional_command\",\n      \"tool\": \"traecn_decide_approval\",\n      \"arguments\": {\n        \"decision\": \"approve\",\n        \"expectedCommand\": \"git push origin main\",\n        \"acknowledgeRisk\": true,\n        \"reason\": \"The user explicitly requested publishing the current branch\"\n      }\n    }\n  ]\n}\n\nFile v0.5.9:references/mcp-surface.md\n\n# MCP surface\n\nTRAECNclaw exposes one focused Agent surface. There are no tool profiles.\n\n## Protocol and transport\n\n- MCP `2026-07-28`: stateless per-request `_meta`, `server/discover`, typed\n  results, structured tool content, server identity metadata, and cache hints.\n- MCP `2025-11-25` and `2024-11-05`: legacy `initialize` compatibility.\n- stdio: one compact JSON-RPC object per line. `Content-Length` framing is\n  accepted only as a migration compatibility path.\n\nMCP contract version 5 below identifies this Skill's frozen 20-tool surface;\nit is not an MCP protocol revision. Legacy clients receive compact\n`notifications/message` task events. For MCP `2026-07-28`, the server advertises\nthe separately negotiated `io.modelcontextprotocol/tasks` extension. An\nopted-in `traecn_send_message` returns the durable gateway ID as a Task;\n`tasks/get`, `tasks/update`, and `tasks/cancel` operate that same identity, and\n`subscriptions/listen` can stream exact-ID `notifications/tasks` snapshots.\nFor a legacy client ID's first connection, already-retained events are\nbaselined without delivery; a returning ID resumes only events newer than its\ndurable acknowledgement. Unrelated request metadata such as `progressToken`\ndoes not change the negotiated legacy protocol era.\nModern retries derive a stable idempotency key from the request identity and\narguments. The gateway retains the corresponding terminal fingerprint and\nresponse across restart for a configurable 24-hour default TTL, so the same\nrequest reuses the original task while different work cannot collide.\nClients that do not opt in retain the ordinary complete result and use\n`traecn_get_task` only for an intentional read. The extension is upstream-draft\nand does not change the 20-tool contract.\n\n| Tool | Required input | Gateway route |\n| --- | --- | --- |\n| `traecn_send_message` | `message` | `POST /api/tasks/submit` |\n| `traecn_get_task` | `taskId`; optional `detailLevel` (`result` or `trace`) | `GET /api/task/{taskId}` |\n| `traecn_cancel_task` | `taskId` | `POST /api/task/{taskId}/cancel` |\n| `traecn_stop_generation` | `conversationId`, `acknowledgeUntrackedWork`, `reason` | `POST /api/trae/stop-generation` |\n| `traecn_open_workspace` | `path` | `POST /api/open-project` |\n| `traecn_list_models` | none | `GET /api/models` |\n| `traecn_select_model` | `model` | `POST /api/switch-model` |\n| `traecn_select_mode` | `mode` | `POST /api/switch-mode` |\n| `traecn_list_setting_sections` | none | `GET /api/settings/sections` |\n| `traecn_list_settings` | `section` | `GET /api/settings/read` |\n| `traecn_list_setting_options` | `section`, `label` | `GET /api/settings/options` |\n| `traecn_set_setting_toggle` | `section`, `label`, `enabled` | `POST /api/settings/set` |\n| `traecn_select_setting_option` | `section`, `label`, `value` | `POST /api/settings/set` |\n| `traecn_set_setting_text` | `section`, `label`, `text` | `POST /api/settings/set` |\n| `traecn_list_conversations` | none | `GET /api/conversations` |\n| `traecn_create_conversation` | none | `POST /api/conversations/manage` |\n| `traecn_select_conversation` | `conversationId` | `POST /api/conversations/manage` |\n| `traecn_delete_conversation` | `conversationId`, `expectedTitle`, `acknowledgePermanentDeletion` | `POST /api/conversations/manage` |\n| `traecn_answer_question` | `answer` | `POST /api/interactions/resolve` |\n| `traecn_decide_approval` | `decision`; approve also needs `expectedCommand`, `acknowledgeRisk`, `reason` | `POST /api/interactions/resolve` |\n\n`traecn_send_message` accepts only `message` and optional `conversationId`.\nSet workspace, model, mode, and conversation through their focused tools. New\nconversations are explicit and messages otherwise stay in the selected chat.\n\nAfter message acceptance the gateway owns persistence, external and local\nqueues, recovery, completion checks, notifications, routine non-command\nquestions, and keep/revert gates. Agents do not wait, poll, acknowledge\nevents, run preflight, or recover work. A supporting host owns the Tasks\nsubscription; `traecn_get_task` is an optional explicit fallback read, not a\npolling instruction. Its default `detailLevel: \"result\"`\nreturns only the final answer; use `detailLevel: \"trace\"` when a failure or\nunexpected result requires the visible execution process for diagnosis.\n\nSettings tools form a second level: list visible sections, then list only one\nsection's items and their `controlType`. List dropdown options before selecting\none. Each write tool maps to one exact UI control operation, while the gateway\nopens settings and restores chat automatically.\n\nNo shell command is approved automatically, including commands classified as\nread-only. Command text alone cannot establish workspace scope, exclude\nsensitive-file reads, or account for Git configuration and external hooks.\nEvery command goes to Agent review. Approval requires the exact visible\ncommand, `acknowledgeRisk:true`, and a short audit reason; the gateway rejects\nstale command cards. Every high-impact Agent decision is written to the local\nappend-only security audit log.\n\nThe direct stop action works only in Solo mode and only when its supplied ID\nstill matches the active conversation. It requires an acknowledgement that the\nvisible generation may be untracked plus an audit reason. Conversation delete\nrequires an inactive target, exact listed title, and permanent-deletion\nacknowledgement; it has no recovery path. Unsafe-command approval revalidates\nthe exact currently visible command and records the risk acknowledgement and\nreason before clicking.\n\nFile v0.5.9:references/mcp-tool-contracts.json\n\n{\n  \"source\": \"mcp-server.js\",\n  \"contractVersion\": 5,\n  \"toolCount\": 20,\n  \"tools\": [\n    {\n      \"name\": \"traecn_send_message\",\n      \"description\": \"Submit one user instruction to TraeCN as durable background work and return its stable taskId immediately; the gateway owns queueing, retries, recovery, and result persistence. Use this for every delegated coding request, optionally targeting an existing conversation via conversationId. Do not send follow-up messages to probe progress — track the returned task instead.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"message\": {\n            \"type\": \"string\",\n            \"description\": \"The exact instruction to execute.\"\n          },\n          \"conversationId\": {\n            \"type\": \"string\",\n            \"description\": \"Stable identifier returned by traecn_list_conversations.\"\n          }\n        },\n        \"required\": [\n          \"message\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"task\",\n        \"risk\": \"delegate\"\n      }\n    },\n    {\n      \"name\": \"traecn_get_task\",\n      \"description\": \"Read one known gateway task by ID: status plus final result, or the full execution trace with detailLevel 'trace' for diagnosis. Call once when notified of completion or once later when resuming after a disconnect. Not a progress primitive — do not poll in a tight loop.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"taskId\": {\n            \"type\": \"string\",\n            \"description\": \"Stable task identifier returned by traecn_send_message.\"\n          },\n          \"detailLevel\": {\n            \"type\": \"string\",\n            \"enum\": [\n              \"result\",\n              \"trace\"\n            ],\n            \"description\": \"result returns only the final answer (default); trace includes the full visible Trae execution process.\"\n          }\n        },\n        \"required\": [\n          \"taskId\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"task\",\n        \"risk\": \"read\"\n      }\n    },\n    {\n      \"name\": \"traecn_cancel_task\",\n      \"description\": \"Cancel one gateway-tracked task by ID. The gateway stops shepherding the work at its next control point and records the cancellation; results already produced remain in task history. Returns the task identity and post-cancellation status.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"taskId\": {\n            \"type\": \"string\",\n            \"description\": \"Stable task identifier returned by traecn_send_message.\"\n          }\n        },\n        \"required\": [\n          \"taskId\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"task\",\n        \"risk\": \"delegate\",\n        \"destructive\": true\n      }\n    },\n    {\n      \"name\": \"traecn_stop_generation\",\n      \"description\": \"Stop only the generation currently visible in the named active TraeCN conversation. Visible output may belong to the user or another agent, so this requires acknowledgeUntrackedWork=true plus an audit reason. Prefer cancel_task whenever a gateway task ID exists.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"conversationId\": {\n            \"type\": \"string\",\n            \"description\": \"Stable identifier returned by traecn_list_conversations.\"\n          },\n          \"acknowledgeUntrackedWork\": {\n            \"type\": \"boolean\",\n            \"description\": \"Must be true to acknowledge that visible work may belong to the user or another agent.\"\n          },\n          \"reason\": {\n            \"type\": \"string\",\n            \"minLength\": 1,\n            \"maxLength\": 500,\n            \"description\": \"Concise reason recorded in the local security audit log.\"\n          }\n        },\n        \"required\": [\n          \"conversationId\",\n          \"acknowledgeUntrackedWork\",\n          \"reason\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"task\",\n        \"risk\": \"delegate\",\n        \"destructive\": true\n      }\n    },\n    {\n      \"name\": \"traecn_open_workspace\",\n      \"description\": \"Open one absolute local folder path as the active TraeCN workspace and verify it became active before returning. Call before submitting work that depends on a specific project; afterwards do not repeat the path inside the task message.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"path\": {\n            \"type\": \"string\",\n            \"description\": \"Absolute local folder path.\"\n          }\n        },\n        \"required\": [\n          \"path\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"context\",\n        \"risk\": \"delegate\"\n      }\n    },\n    {\n      \"name\": \"traecn_list_models\",\n      \"description\": \"List the model names currently offered in the TraeCN UI together with the currently selected model. Read-only discovery; call before select_model whenever the model choice matters.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {},\n        \"required\": [],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"context\",\n        \"risk\": \"read\"\n      }\n    },\n    {\n      \"name\": \"traecn_select_model\",\n      \"description\": \"Select one model by exact name from traecn_list_models and confirm the picker state before returning. Selecting the already-active model succeeds as a no-op. Does not wait for model availability or capacity.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"model\": {\n            \"type\": \"string\",\n            \"description\": \"Exact model name as returned by traecn_list_models.\"\n          }\n        },\n        \"required\": [\n          \"model\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"context\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_select_mode\",\n      \"description\": \"Switch TraeCN between Solo and IDE mode and confirm the resulting active mode. Switching to the current mode succeeds as a no-op. Call only when the requested mode differs.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"mode\": {\n            \"type\": \"string\",\n            \"enum\": [\n              \"solo\",\n              \"ide\"\n            ],\n            \"description\": \"Target UI mode.\"\n          }\n        },\n        \"required\": [\n          \"mode\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"context\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_list_setting_sections\",\n      \"description\": \"List the settings sections currently visible in TraeCN's settings UI. Required first step for any settings operation; never guess a section name.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {},\n        \"required\": [],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"settings\",\n        \"risk\": \"read\"\n      }\n    },\n    {\n      \"name\": \"traecn_list_settings\",\n      \"description\": \"List the individual settings and their control types within one section returned by traecn_list_setting_sections. Read-only discovery preceding any setting mutation; never guess a label.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"section\": {\n            \"type\": \"string\",\n            \"description\": \"Section name exactly as returned by traecn_list_setting_sections.\"\n          }\n        },\n        \"required\": [\n          \"section\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"settings\",\n        \"risk\": \"read\"\n      }\n    },\n    {\n      \"name\": \"traecn_list_setting_options\",\n      \"description\": \"List the visible choices of one dropdown-style setting identified by section and label. Required before select_setting_option; never invent an option value.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"section\": {\n            \"type\": \"string\",\n            \"description\": \"Section name exactly as returned by traecn_list_setting_sections.\"\n          },\n          \"label\": {\n            \"type\": \"string\",\n            \"description\": \"Setting label exactly as returned by traecn_list_settings.\"\n          }\n        },\n        \"required\": [\n          \"section\",\n          \"label\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"settings\",\n        \"risk\": \"read\"\n      }\n    },\n    {\n      \"name\": \"traecn_set_setting_toggle\",\n      \"description\": \"Enable or disable one toggle setting identified by section and label, then read back the applied state. Applying the already-current state succeeds as a no-op.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"section\": {\n            \"type\": \"string\",\n            \"description\": \"Section name exactly as returned by traecn_list_setting_sections.\"\n          },\n          \"label\": {\n            \"type\": \"string\",\n            \"description\": \"Setting label exactly as returned by traecn_list_settings.\"\n          },\n          \"enabled\": {\n            \"type\": \"boolean\",\n            \"description\": \"Desired toggle state.\"\n          }\n        },\n        \"required\": [\n          \"section\",\n          \"label\",\n          \"enabled\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"settings\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_select_setting_option\",\n      \"description\": \"Select one previously listed option for a dropdown setting identified by section and label, and confirm the applied selection. Only values returned by traecn_list_setting_options are valid.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"section\": {\n            \"type\": \"string\",\n            \"description\": \"Section name exactly as returned by traecn_list_setting_sections.\"\n          },\n          \"label\": {\n            \"type\": \"string\",\n            \"description\": \"Setting label exactly as returned by traecn_list_settings.\"\n          },\n          \"value\": {\n            \"type\": \"string\",\n            \"description\": \"Option value exactly as returned by traecn_list_setting_options.\"\n          }\n        },\n        \"required\": [\n          \"section\",\n          \"label\",\n          \"value\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"settings\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_set_setting_text\",\n      \"description\": \"Enter one text value into the setting field identified by section and label, and confirm what the field contains afterwards.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"section\": {\n            \"type\": \"string\",\n            \"description\": \"Section name exactly as returned by traecn_list_setting_sections.\"\n          },\n          \"label\": {\n            \"type\": \"string\",\n            \"description\": \"Setting label exactly as returned by traecn_list_settings.\"\n          },\n          \"text\": {\n            \"type\": \"string\",\n            \"description\": \"Text content to enter into the field.\"\n          }\n        },\n        \"required\": [\n          \"section\",\n          \"label\",\n          \"text\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"settings\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_list_conversations\",\n      \"description\": \"List the conversations available in the current TraeCN mode with stable identifiers accepted by conversation-scoped tools. Read-only; call when choosing or verifying conversation context.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {},\n        \"required\": [],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"conversation\",\n        \"risk\": \"read\"\n      }\n    },\n    {\n      \"name\": \"traecn_create_conversation\",\n      \"description\": \"Create a new TraeCN conversation and make it the active target. Every call creates an additional conversation, so call at most once per genuinely new context. Returns the created conversation identity.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {},\n        \"required\": [],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"conversation\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_select_conversation\",\n      \"description\": \"Make one existing conversation the active target for subsequent visible interaction. Returns the confirmed active conversation identity.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"conversationId\": {\n            \"type\": \"string\",\n            \"description\": \"Stable identifier returned by traecn_list_conversations.\"\n          }\n        },\n        \"required\": [\n          \"conversationId\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"conversation\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_delete_conversation\",\n      \"description\": \"Permanently delete one inactive TraeCN conversation by stable identifier. Requires the exact expectedTitle returned by traecn_list_conversations plus an explicit irreversible-deletion acknowledgement; there is no gateway recovery path.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"conversationId\": {\n            \"type\": \"string\",\n            \"description\": \"Stable identifier returned by traecn_list_conversations.\"\n          },\n          \"expectedTitle\": {\n            \"type\": \"string\",\n            \"minLength\": 1,\n            \"description\": \"Exact title returned by traecn_list_conversations.\"\n          },\n          \"acknowledgePermanentDeletion\": {\n            \"type\": \"boolean\",\n            \"description\": \"Must be true to acknowledge that the gateway cannot restore the deleted conversation.\"\n          }\n        },\n        \"required\": [\n          \"conversationId\",\n          \"expectedTitle\",\n          \"acknowledgePermanentDeletion\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"conversation\",\n        \"risk\": \"delegate\",\n        \"destructive\": true\n      }\n    },\n    {\n      \"name\": \"traecn_answer_question\",\n      \"description\": \"Resolve an exceptional question from TraeCN that the gateway could not handle mechanically by supplying the user's decision. The gateway routes the answer to the pending visible prompt and reports the outcome. Only call when a pending interaction exists.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"answer\": {\n            \"type\": \"string\",\n            \"description\": \"The user's answer to the pending question.\"\n          }\n        },\n        \"required\": [\n          \"answer\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"interaction\",\n        \"risk\": \"delegate\"\n      }\n    },\n    {\n      \"name\": \"traecn_decide_approval\",\n      \"description\": \"Approve or deny the unsafe or ambiguous command card currently visible in TraeCN. Approval revalidates the exact expectedCommand against the card and requires acknowledgeRisk plus an audit reason recorded locally; denial needs only the decision. Never approve beyond the scope the user authorized.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"decision\": {\n            \"type\": \"string\",\n            \"enum\": [\n              \"approve\",\n              \"deny\"\n            ],\n            \"description\": \"The approval decision.\"\n          },\n          \"expectedCommand\": {\n            \"type\": \"string\",\n            \"description\": \"For approve, the exact command returned with the pending interaction.\"\n          },\n          \"acknowledgeRisk\": {\n            \"type\": \"boolean\",\n            \"description\": \"For approve, must be true after checking the command against the user-authorized scope.\"\n          },\n          \"reason\": {\n            \"type\": \"string\",\n            \"minLength\": 1,\n            \"maxLength\": 500,\n            \"description\": \"For approve, a concise authorization reason recorded in the local security audit log.\"\n          }\n        },\n        \"required\": [\n          \"decision\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"interaction\",\n        \"risk\": \"delegate\",\n        \"destructive\": true\n      }\n    }\n  ]\n}\n\nFile v0.5.9:skill-card.md\n\n## Description:\n\nTRAECNclaw MCP lets an MCP-capable agent operate TraeCN through focused stdio tools for task delegation, workspace, model, mode, conversation, settings, and exceptional interaction handling.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[luckycat133](https://clawhub.ai/user/luckycat133)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and external MCP-capable agents use this skill to delegate coding work to a local TraeCN gateway, manage TraeCN context, inspect or change visible settings, and handle command approvals or questions with explicit acknowledgements.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: An MCP-capable agent can operate a local TraeCN gateway and trigger high-impact actions such as stopping visible work, deleting conversations, or approving commands.\n\nMitigation: Keep the gateway bound to 127.0.0.1 unless secured, use a trusted matching TRAECNclaw server, and require exact identifiers, explicit acknowledgements, and audit reasons for high-impact operations.\n\nRisk: Command approvals may expose workspace, credential, or Git hook risks that cannot be judged from command text alone.\n\nMitigation: Review every returned command and its risk classification before approval; approvals require the exact expected command, acknowledgeRisk:true, and a concise audit reason.\n\nRisk: Conversation deletion is permanent and cannot be restored by the gateway.\n\nMitigation: Delete only an inactive conversation explicitly identified by the user after re-reading the listed conversation ID and exact title, and pass acknowledgePermanentDeletion:true.\n\nRisk: Gateway tokens, authorization headers, .env contents, or TraeCN profile data could be exposed if handled carelessly.\n\nMitigation: Do not print, log, or persist secrets; keep the primary gateway token confidential and rely on redacted local security audit logging for high-impact actions.\n\n## Reference(s):\n\n- [TRAECNclaw MCP Skill Page](https://clawhub.ai/luckycat133/skills/traecnclaw-mcp)\n- [MCP Surface](references/mcp-surface.md)\n- [MCP Tool Contracts](references/mcp-tool-contracts.json)\n- [MCP Call Examples](references/mcp-call-examples.json)\n- [MCP Client Configuration Template](assets/mcp-client-config.json)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with JSON configuration examples and MCP tool-call arguments]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires Node and a trusted matching TRAECNclaw server; gateway actions are scoped through explicit MCP tool contracts.]\n\n## Skill Version(s):\n\n0.5.9 (source: server release metadata and SKILL.md frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v0.5.9:assets/mcp-client-config.direct.json\n\n{\n  \"$schema\": \"https://json.schemastore.org/mcp-servers.json\",\n  \"mcpServers\": {\n    \"traecn\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/TRAECNclaw/mcp-server.js\"],\n      \"env\": {\n        \"TRAECN_GATEWAY_HOST\": \"127.0.0.1\",\n        \"TRAECN_GATEWAY_PORT\": \"8788\",\n        \"TRAECN_GATEWAY_TOKEN\": \"\"\n      }\n    }\n  }\n}\n\nFile v0.5.9:assets/mcp-client-config.json\n\n{\n  \"$schema\": \"https://json.schemastore.org/mcp-servers.json\",\n  \"mcpServers\": {\n    \"traecn\": {\n      \"command\": \"node\",\n      \"args\": [\"SKILL_DIR/scripts/start-mcp.js\"],\n      \"env\": {\n        \"TRAECN_GATEWAY_HOST\": \"127.0.0.1\",\n        \"TRAECN_GATEWAY_PORT\": \"8788\",\n        \"TRAECN_GATEWAY_TOKEN\": \"\"\n      }\n    }\n  }\n}\n\nArchive v0.5.6: 10 files, 14937 bytes\n\nFiles: assets/mcp-client-config.direct.json (338b), assets/mcp-client-config.json (326b), references/mcp-call-examples.json (2789b), references/mcp-surface.md (5569b), references/mcp-tool-contracts.json (12829b), scripts/setup-mcp.js (3740b), scripts/start-mcp.js (4721b), skill-card.md (2708b), SKILL.md (7345b), _meta.json (133b)\n\nFile v0.5.6:SKILL.md\n\n---\nname: traecnclaw-mcp\ndescription: Operate TraeCN through TRAECNclaw's focused stdio MCP tools. Use when an MCP-capable agent must send or stop work, choose a workspace/model/mode/conversation, inspect or change Trae settings through its UI, manage conversations, or resolve an exceptional question or command approval. Queueing, waiting, recovery, notifications, routine non-command questions, and keep/revert gates are gateway-managed.\nlicense: MIT-0\nmetadata:\n  author: TRAECNclaw\n  version: \"0.5.6\"\n  openclaw:\n    requires:\n      bins:\n        - node\n    primaryEnv: TRAECN_GATEWAY_TOKEN\n    envVars:\n      - name: TRAECN_GATEWAY_HOST\n        required: false\n        description: Optional gateway host override; keep loopback unless remote access is secured.\n      - name: TRAECN_GATEWAY_PORT\n        required: false\n        description: Optional gateway port override.\n      - name: TRAECN_GATEWAY_TOKEN\n        required: false\n        description: Optional gateway secret; never print, log, or persist it.\n      - name: TRAECN_MCP_CLIENT_ID\n        required: false\n        description: Stable client identifier for legacy MCP task notifications.\n---\n\n# TRAECNclaw MCP\n\nCompose focused tools around user intent. Do not call preflight, wait, poll,\nevent acknowledgement, recovery, cleanup, proof, process, or generic command\noperations from the agent loop; the gateway owns those mechanics.\n\n## Setup\n\n1. Install the matching TRAECNclaw server from its source checkout or release server archive. The launcher checks the repository, an installed `traecnclaw` package, then `traecnclaw-mcp` on `PATH`; it never executes a JavaScript path selected by an environment variable.\n2. Run `npm run doctor` in a source checkout. Then run `npm run --silent setup:mcp` from the checkout, or `node scripts/setup-mcp.js` from this Skill directory, to validate the server and print a resolved client entry. Use `--output FILE` to create a new mode-0600 file atomically; the command never overwrites an existing file. The JSON templates under [assets](assets) remain manual fallbacks.\n3. Start the gateway with `npm run start:gateway`, then reconnect the MCP client.\n4. Use mock mode only for development; never cite mock output as live TraeCN evidence.\n\n## Choose only necessary context\n\n- Call `traecn_open_workspace` only when the requested folder is not already open.\n- Call `traecn_list_models` when the available choices matter; then call `traecn_select_model` once.\n- Call `traecn_select_mode` only when the task requires a different Solo/IDE mode.\n- Call `traecn_list_conversations` to read the current mode and stable conversation IDs.\n- Use `traecn_create_conversation`, `traecn_select_conversation`, or `traecn_delete_conversation` for exactly one conversation operation.\n\nThese tools change TraeCN context. Never repeat workspace paths in the model\nmessage.\n\n## Send and track work\n\nCall `traecn_send_message` with the exact message and, when concurrency makes\nthe target ambiguous, an explicit `conversationId`. Clients without the Tasks\nextension receive the accepted `taskId` and status. When the host declares\n`io.modelcontextprotocol/tasks` on the request, the same call returns that\ndurable gateway identity as `resultType: \"task\"`.\n\nDo not wait or busy-poll after sending. Legacy initialization-based clients\nreceive compact task notifications that the stdio server acknowledges\ninternally. Modern hosts can open `subscriptions/listen` for the returned task\nID and receive a complete `notifications/tasks` snapshot; hosts without that\nextension call `traecn_get_task` only for an intentional later status/result\nread. If a modern task reports `input_required`, its elicitation and\n`tasks/update` response carry the same approval safeguards documented below.\nThe first legacy connection for a client ID baselines retained history before\nnotifications start. Reusing that stable ID later resumes only durably\nunacknowledged events; configure a distinct `TRAECN_MCP_CLIENT_ID` when the\nhost-derived name is not unique.\nUse `traecn_cancel_task` for one known gateway task. Use\n`traecn_stop_generation` only when the user wants the\ngeneration currently visible in TraeCN stopped. First list conversations and\npass the active `conversationId`; the gateway rejects a stale or different\nconversation. Because visible work may belong to the user or another agent,\nset `acknowledgeUntrackedWork:true` and include a short audit `reason`. Use\n`traecn_cancel_task` instead when the work has a gateway task ID.\n\nFor a completed task, omit `detailLevel` or pass `\"result\"` to retrieve only\nthe final answer. Pass `detailLevel: \"trace\"` only when the detailed visible\nexecution process is needed to diagnose or trace an unexpected outcome.\n\n## Inspect or change Trae settings\n\nTreat settings as a second-level capability. Call\n`traecn_list_setting_sections`, then `traecn_list_settings` for only the needed\nsection. For dropdowns, call `traecn_list_setting_options` instead of guessing.\nUse exactly one matching mutation tool:\n\n- `traecn_set_setting_toggle` for a boolean switch.\n- `traecn_select_setting_option` for a dropdown choice.\n- `traecn_set_setting_text` for a text or numeric input.\n\nThese commands make the change through Trae's visible settings UI. The gateway\nserializes UI access and returns to chat automatically; do not navigate back\nmanually or repeat reads after a successful write.\n\n## Resolve exceptional interactions\n\nThe gateway never approves shell commands automatically, including commands\nclassified as read-only. Command text alone cannot establish workspace scope,\nexclude sensitive-file reads, or account for Git configuration and external\nhooks. Every command is returned to the Agent with its risk classification.\n\nIf a task reports an unresolved interaction:\n\n- Use `traecn_answer_question` for a returned question and one of its offered answers.\n- Use `traecn_decide_approval` only after checking the returned command and risk. Approval requires the exact `expectedCommand`, `acknowledgeRisk:true`, and a short audit `reason`; the gateway re-reads the visible card and rejects stale or changed commands. Denial needs no risk acknowledgement.\n\nConversation deletion is permanent. Delete only an inactive conversation and\nonly when the current user request explicitly names or unambiguously identifies\nit for deletion. Re-read its listed ID and exact title, then pass the title with\n`acknowledgePermanentDeletion:true`; the gateway rejects title mismatches and\nthe active conversation, records the attempt, and cannot restore a successful\ndeletion. This uses the user's existing instruction and does not add a separate\nconfirmation round trip.\n\n## Safety\n\n- Keep the gateway on `127.0.0.1` unless remote access is secured.\n- Never expose `.env`, tokens, authorization headers, or TraeCN profile data.\n- Keep the default security audit log enabled; high-impact approvals, stops,\n  and deletions are written to date-based JSONL files with sensitive fields\n  redacted and a default 30-day retention.\n- Treat mock results and non-terminal task states as incomplete.\n- Do not recreate removed low-level tools through shell, generic commands, or GUI control.\n\nRead [references/mcp-surface.md](references/mcp-surface.md) only for exact\nschemas, protocol compatibility, notification behavior, and gateway ownership\nboundaries.\n\nFile v0.5.6:_meta.json\n\n{\n  \"ownerId\": \"kn73ym4c6fp5b2vaa22t84v5fn83pt1p\",\n  \"slug\": \"traecnclaw-mcp\",\n  \"version\": \"0.5.6\",\n  \"publishedAt\": 1786203475476\n}\n\nFile v0.5.6:references/mcp-call-examples.json\n\n{\n  \"calls\": [\n    {\n      \"name\": \"open_workspace\",\n      \"tool\": \"traecn_open_workspace\",\n      \"arguments\": { \"path\": \"/absolute/path/to/repository\" }\n    },\n    {\n      \"name\": \"discover_models\",\n      \"tool\": \"traecn_list_models\",\n      \"arguments\": {}\n    },\n    {\n      \"name\": \"select_model\",\n      \"tool\": \"traecn_select_model\",\n      \"arguments\": { \"model\": \"GLM-5.2\" }\n    },\n    {\n      \"name\": \"send_repository_review\",\n      \"tool\": \"traecn_send_message\",\n      \"arguments\": {\n        \"message\": \"Review the current repository. Report findings first, ordered by severity.\"\n      }\n    },\n    {\n      \"name\": \"explicit_task_check\",\n      \"tool\": \"traecn_get_task\",\n      \"arguments\": { \"taskId\": \"TASK_ID\" }\n    },\n    {\n      \"name\": \"diagnostic_task_trace\",\n      \"tool\": \"traecn_get_task\",\n      \"arguments\": { \"taskId\": \"TASK_ID\", \"detailLevel\": \"trace\" }\n    },\n    {\n      \"name\": \"list_general_settings\",\n      \"tool\": \"traecn_list_settings\",\n      \"arguments\": { \"section\": \"通用\" }\n    },\n    {\n      \"name\": \"toggle_auto_save\",\n      \"tool\": \"traecn_set_setting_toggle\",\n      \"arguments\": { \"section\": \"通用\", \"label\": \"Auto Save\", \"enabled\": true }\n    },\n    {\n      \"name\": \"select_conversation\",\n      \"tool\": \"traecn_select_conversation\",\n      \"arguments\": { \"conversationId\": \"solo:UmV2aWV3IEFQSQ\" }\n    },\n    {\n      \"name\": \"stop_visible_untracked_generation\",\n      \"tool\": \"traecn_stop_generation\",\n      \"arguments\": {\n        \"conversationId\": \"solo:UmV2aWV3IEFQSQ\",\n        \"acknowledgeUntrackedWork\": true,\n        \"reason\": \"The user asked to stop the generation visible in this conversation\"\n      }\n    },\n    {\n      \"name\": \"delete_inactive_conversation\",\n      \"tool\": \"traecn_delete_conversation\",\n      \"precondition\": \"Use only when the current user request explicitly names or unambiguously identifies this conversation for deletion; do not infer deletion from cleanup or maintenance intent.\",\n      \"warning\": \"Deletion is permanent, and the gateway cannot restore the conversation. Re-read the listed conversation ID and exact title before sending this call.\",\n      \"arguments\": {\n        \"conversationId\": \"solo:T2xkIHJldmlldw\",\n        \"expectedTitle\": \"Old review\",\n        \"acknowledgePermanentDeletion\": true\n      }\n    },\n    {\n      \"name\": \"answer_exceptional_question\",\n      \"tool\": \"traecn_answer_question\",\n      \"arguments\": { \"answer\": \"Review the current workspace changes\" }\n    },\n    {\n      \"name\": \"approve_exact_exceptional_command\",\n      \"tool\": \"traecn_decide_approval\",\n      \"arguments\": {\n        \"decision\": \"approve\",\n        \"expectedCommand\": \"git push origin main\",\n        \"acknowledgeRisk\": true,\n        \"reason\": \"The user explicitly requested publishing the current branch\"\n      }\n    }\n  ]\n}\n\nFile v0.5.6:references/mcp-surface.md\n\n# MCP surface\n\nTRAECNclaw exposes one focused Agent surface. There are no tool profiles.\n\n## Protocol and transport\n\n- MCP `2026-07-28`: stateless per-request `_meta`, `server/discover`, typed\n  results, structured tool content, server identity metadata, and cache hints.\n- MCP `2025-11-25` and `2024-11-05`: legacy `initialize` compatibility.\n- stdio: one compact JSON-RPC object per line. `Content-Length` framing is\n  accepted only as a migration compatibility path.\n\nMCP contract version 5 below identifies this Skill's frozen 20-tool surface;\nit is not an MCP protocol revision. Legacy clients receive compact\n`notifications/message` task events. For MCP `2026-07-28`, the server advertises\nthe separately negotiated `io.modelcontextprotocol/tasks` extension. An\nopted-in `traecn_send_message` returns the durable gateway ID as a Task;\n`tasks/get`, `tasks/update`, and `tasks/cancel` operate that same identity, and\n`subscriptions/listen` can stream exact-ID `notifications/tasks` snapshots.\nFor a legacy client ID's first connection, already-retained events are\nbaselined without delivery; a returning ID resumes only events newer than its\ndurable acknowledgement. Unrelated request metadata such as `progressToken`\ndoes not change the negotiated legacy protocol era.\nModern retries derive a stable idempotency key from the request identity and\narguments. The gateway retains the corresponding terminal fingerprint and\nresponse across restart for a configurable 24-hour default TTL, so the same\nrequest reuses the original task while different work cannot collide.\nClients that do not opt in retain the ordinary complete result and use\n`traecn_get_task` only for an intentional read. The extension is upstream-draft\nand does not change the 20-tool contract.\n\n| Tool | Required input | Gateway route |\n| --- | --- | --- |\n| `traecn_send_message` | `message` | `POST /api/tasks/submit` |\n| `traecn_get_task` | `taskId`; optional `detailLevel` (`result` or `trace`) | `GET /api/task/{taskId}` |\n| `traecn_cancel_task` | `taskId` | `POST /api/task/{taskId}/cancel` |\n| `traecn_stop_generation` | `conversationId`, `acknowledgeUntrackedWork`, `reason` | `POST /api/trae/stop-generation` |\n| `traecn_open_workspace` | `path` | `POST /api/open-project` |\n| `traecn_list_models` | none | `GET /api/models` |\n| `traecn_select_model` | `model` | `POST /api/switch-model` |\n| `traecn_select_mode` | `mode` | `POST /api/switch-mode` |\n| `traecn_list_setting_sections` | none | `GET /api/settings/sections` |\n| `traecn_list_settings` | `section` | `GET /api/settings/read` |\n| `traecn_list_setting_options` | `section`, `label` | `GET /api/settings/options` |\n| `traecn_set_setting_toggle` | `section`, `label`, `enabled` | `POST /api/settings/set` |\n| `traecn_select_setting_option` | `section`, `label`, `value` | `POST /api/settings/set` |\n| `traecn_set_setting_text` | `section`, `label`, `text` | `POST /api/settings/set` |\n| `traecn_list_conversations` | none | `GET /api/conversations` |\n| `traecn_create_conversation` | none | `POST /api/conversations/manage` |\n| `traecn_select_conversation` | `conversationId` | `POST /api/conversations/manage` |\n| `traecn_delete_conversation` | `conversationId`, `expectedTitle`, `acknowledgePermanentDeletion` | `POST /api/conversations/manage` |\n| `traecn_answer_question` | `answer` | `POST /api/interactions/resolve` |\n| `traecn_decide_approval` | `decision`; approve also needs `expectedCommand`, `acknowledgeRisk`, `reason` | `POST /api/interactions/resolve` |\n\n`traecn_send_message` accepts only `message` and optional `conversationId`.\nSet workspace, model, mode, and conversation through their focused tools. New\nconversations are explicit and messages otherwise stay in the selected chat.\n\nAfter message acceptance the gateway owns persistence, external and local\nqueues, recovery, completion checks, notifications, routine non-command\nquestions, and keep/revert gates. Agents do not wait, poll, acknowledge\nevents, run preflight, or recover work. A supporting host owns the Tasks\nsubscription; `traecn_get_task` is an optional explicit fallback read, not a\npolling instruction. Its default `detailLevel: \"result\"`\nreturns only the final answer; use `detailLevel: \"trace\"` when a failure or\nunexpected result requires the visible execution process for diagnosis.\n\nSettings tools form a second level: list visible sections, then list only one\nsection's items and their `controlType`. List dropdown options before selecting\none. Each write tool maps to one exact UI control operation, while the gateway\nopens settings and restores chat automatically.\n\nNo shell command is approved automatically, including commands classified as\nread-only. Command text alone cannot establish workspace scope, exclude\nsensitive-file reads, or account for Git configuration and external hooks.\nEvery command goes to Agent review. Approval requires the exact visible\ncommand, `acknowledgeRisk:true`, and a short audit reason; the gateway rejects\nstale command cards. Every high-impact Agent decision is written to the local\nappend-only security audit log.\n\nThe direct stop action works only in Solo mode and only when its supplied ID\nstill matches the active conversation. It requires an acknowledgement that the\nvisible generation may be untracked plus an audit reason. Conversation delete\nrequires an inactive target, exact listed title, and permanent-deletion\nacknowledgement; it has no recovery path. Unsafe-command approval revalidates\nthe exact currently visible command and records the risk acknowledgement and\nreason before clicking.\n\nFile v0.5.6:references/mcp-tool-contracts.json\n\n{\n  \"source\": \"mcp-server.js\",\n  \"contractVersion\": 5,\n  \"toolCount\": 20,\n  \"tools\": [\n    {\n      \"name\": \"traecn_send_message\",\n      \"description\": \"Send one message to TraeCN as a persistent background task. Optionally target an existing conversation.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"message\": {\n            \"type\": \"string\",\n            \"description\": \"The exact message to send.\"\n          },\n          \"conversationId\": {\n            \"type\": \"string\",\n            \"description\": \"Stable identifier returned by traecn_list_conversations.\"\n          }\n        },\n        \"required\": [\n          \"message\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"task\",\n        \"risk\": \"delegate\"\n      }\n    },\n    {\n      \"name\": \"traecn_get_task\",\n      \"description\": \"Read one known task. Defaults to the final result; request trace only when detailed execution history is needed for diagnosis.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"taskId\": {\n            \"type\": \"string\"\n          },\n          \"detailLevel\": {\n            \"type\": \"string\",\n            \"enum\": [\n              \"result\",\n              \"trace\"\n            ],\n            \"description\": \"result returns only the final answer (default); trace includes the full visible Trae execution process.\"\n          }\n        },\n        \"required\": [\n          \"taskId\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"task\",\n        \"risk\": \"read\"\n      }\n    },\n    {\n      \"name\": \"traecn_cancel_task\",\n      \"description\": \"Cancel one gateway-tracked task by task ID.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"taskId\": {\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"taskId\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"task\",\n        \"risk\": \"delegate\",\n        \"destructive\": true\n      }\n    },\n    {\n      \"name\": \"traecn_stop_generation\",\n      \"description\": \"Stop only the generation visible in the named active TraeCN conversation. This may interrupt work not submitted through the gateway, so the caller must acknowledge that scope and provide an audit reason.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"conversationId\": {\n            \"type\": \"string\",\n            \"description\": \"Stable identifier returned by traecn_list_conversations.\"\n          },\n          \"acknowledgeUntrackedWork\": {\n            \"type\": \"boolean\",\n            \"description\": \"Must be true to acknowledge that visible work may belong to the user or another agent.\"\n          },\n          \"reason\": {\n            \"type\": \"string\",\n            \"minLength\": 1,\n            \"maxLength\": 500,\n            \"description\": \"Concise reason recorded in the local security audit log.\"\n          }\n        },\n        \"required\": [\n          \"conversationId\",\n          \"acknowledgeUntrackedWork\",\n          \"reason\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"task\",\n        \"risk\": \"delegate\",\n        \"destructive\": true\n      }\n    },\n    {\n      \"name\": \"traecn_open_workspace\",\n      \"description\": \"Open one local folder in the active TraeCN window and verify it became the workspace.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"path\": {\n            \"type\": \"string\",\n            \"description\": \"Absolute local folder path.\"\n          }\n        },\n        \"required\": [\n          \"path\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"context\",\n        \"risk\": \"delegate\"\n      }\n    },\n    {\n      \"name\": \"traecn_list_models\",\n      \"description\": \"List the models currently offered by TraeCN and identify the selected model.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {},\n        \"required\": [],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"context\",\n        \"risk\": \"read\"\n      }\n    },\n    {\n      \"name\": \"traecn_select_model\",\n      \"description\": \"Select one TraeCN model without waiting or polling for model availability.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"model\": {\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"model\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"context\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_select_mode\",\n      \"description\": \"Select TraeCN Solo or IDE mode.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"mode\": {\n            \"type\": \"string\",\n            \"enum\": [\n              \"solo\",\n              \"ide\"\n            ]\n          }\n        },\n        \"required\": [\n          \"mode\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"context\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_list_setting_sections\",\n      \"description\": \"List the settings sections currently visible in the TraeCN UI.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {},\n        \"required\": [],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"settings\",\n        \"risk\": \"read\"\n      }\n    },\n    {\n      \"name\": \"traecn_list_settings\",\n      \"description\": \"List the individual settings and control types visible in one TraeCN settings section.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"section\": {\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"section\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"settings\",\n        \"risk\": \"read\"\n      }\n    },\n    {\n      \"name\": \"traecn_list_setting_options\",\n      \"description\": \"List the visible choices for one dropdown setting in the TraeCN UI.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"section\": {\n            \"type\": \"string\"\n          },\n          \"label\": {\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"section\",\n          \"label\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"settings\",\n        \"risk\": \"read\"\n      }\n    },\n    {\n      \"name\": \"traecn_set_setting_toggle\",\n      \"description\": \"Enable or disable one toggle setting in the TraeCN UI.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"section\": {\n            \"type\": \"string\"\n          },\n          \"label\": {\n            \"type\": \"string\"\n          },\n          \"enabled\": {\n            \"type\": \"boolean\"\n          }\n        },\n        \"required\": [\n          \"section\",\n          \"label\",\n          \"enabled\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"settings\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_select_setting_option\",\n      \"description\": \"Select one dropdown option for a setting in the TraeCN UI.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"section\": {\n            \"type\": \"string\"\n          },\n          \"label\": {\n            \"type\": \"string\"\n          },\n          \"value\": {\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"section\",\n          \"label\",\n          \"value\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"settings\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_set_setting_text\",\n      \"description\": \"Enter one text value for a setting in the TraeCN UI.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"section\": {\n            \"type\": \"string\"\n          },\n          \"label\": {\n            \"type\": \"string\"\n          },\n          \"text\": {\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"section\",\n          \"label\",\n          \"text\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"settings\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_list_conversations\",\n      \"description\": \"List conversations in the current TraeCN mode with stable identifiers.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {},\n        \"required\": [],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"conversation\",\n        \"risk\": \"read\"\n      }\n    },\n    {\n      \"name\": \"traecn_create_conversation\",\n      \"description\": \"Create and select a new TraeCN conversation.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {},\n        \"required\": [],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"conversation\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_select_conversation\",\n      \"description\": \"Select one existing TraeCN conversation.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"conversationId\": {\n            \"type\": \"string\",\n            \"description\": \"Stable identifier returned by traecn_list_conversations.\"\n          }\n        },\n        \"required\": [\n          \"conversationId\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"conversation\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_delete_conversation\",\n      \"description\": \"Permanently delete one inactive TraeCN conversation. The operation has no gateway recovery path and requires the listed title plus an explicit irreversible-deletion acknowledgement.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"conversationId\": {\n            \"type\": \"string\",\n            \"description\": \"Stable identifier returned by traecn_list_conversations.\"\n          },\n          \"expectedTitle\": {\n            \"type\": \"string\",\n            \"minLength\": 1,\n            \"description\": \"Exact title returned by traecn_list_conversations.\"\n          },\n          \"acknowledgePermanentDeletion\": {\n            \"type\": \"boolean\",\n            \"description\": \"Must be true to acknowledge that the gateway cannot restore the deleted conversation.\"\n          }\n        },\n        \"required\": [\n          \"conversationId\",\n          \"expectedTitle\",\n          \"acknowledgePermanentDeletion\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"conversation\",\n        \"risk\": \"delegate\",\n        \"destructive\": true\n      }\n    },\n    {\n      \"name\": \"traecn_answer_question\",\n      \"description\": \"Answer an exceptional TraeCN question that the gateway could not resolve mechanically.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"answer\": {\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"answer\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"interaction\",\n        \"risk\": \"delegate\"\n      }\n    },\n    {\n      \"name\": \"traecn_decide_approval\",\n      \"description\": \"Approve or deny the exceptional unsafe or ambiguous TraeCN command card currently visible. Approval revalidates the exact command and requires a risk acknowledgement plus an audit reason; denial needs only the decision.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"decision\": {\n            \"type\": \"string\",\n            \"enum\": [\n              \"approve\",\n              \"deny\"\n            ]\n          },\n          \"expectedCommand\": {\n            \"type\": \"string\",\n            \"description\": \"For approve, the exact command returned with the pending interaction.\"\n          },\n          \"acknowledgeRisk\": {\n            \"type\": \"boolean\",\n            \"description\": \"For approve, must be true after checking the command against the user-authorized scope.\"\n          },\n          \"reason\": {\n            \"type\": \"string\",\n            \"minLength\": 1,\n            \"maxLength\": 500,\n            \"description\": \"For approve, a concise authorization reason recorded in the local security audit log.\"\n          }\n        },\n        \"required\": [\n          \"decision\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"interaction\",\n        \"risk\": \"delegate\",\n        \"destructive\": true\n      }\n    }\n  ]\n}\n\nFile v0.5.6:skill-card.md\n\n## Description:\n\nOperate TraeCN through TRAECNclaw's focused stdio MCP tools for sending or stopping work, selecting workspace/model/mode/conversation context, inspecting or changing Trae settings, managing conversations, and resolving exceptional questions or command approvals.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[luckycat133](https://clawhub.ai/user/luckycat133)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and MCP-capable agents use this skill to operate TraeCN through a focused tool surface while leaving queueing, notifications, recovery, and routine interaction mechanics to the gateway.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Gateway access can affect real TraeCN work, including command approvals, stopping visible generation, settings changes, and permanent conversation deletion.\n\nMitigation: Install only with the matching TRAECNclaw server from a trusted source, review command approvals and deletion requests carefully, and use the skill's required acknowledgements and audit reasons for high-impact actions.\n\nRisk: Remote or exposed gateway access could disclose or modify TraeCN state.\n\nMitigation: Keep the gateway bound to 127.0.0.1 unless remote access is explicitly secured, and do not expose tokens, authorization headers, .env files, or TraeCN profile data.\n\nRisk: Mock mode and non-terminal task states can be mistaken for live or final TraeCN results.\n\nMitigation: Use mock mode only for development and treat non-terminal task states as incomplete until a final result is returned.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/luckycat133/skills/traecnclaw-mcp)\n- [MCP surface](references/mcp-surface.md)\n- [MCP tool contracts](references/mcp-tool-contracts.json)\n- [MCP call examples](references/mcp-call-examples.json)\n- [MCP server configuration schema](https://json.schemastore.org/mcp-servers.json)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with inline shell commands and JSON MCP configuration]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires Node and a matching TRAECNclaw server; optional environment variables configure the local gateway host, port, token, and client ID.]\n\n## Skill Version(s):\n\n0.5.6 (source: server release metadata and SKILL.md frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v0.5.6:assets/mcp-client-config.direct.json\n\n{\n  \"$schema\": \"https://json.schemastore.org/mcp-servers.json\",\n  \"mcpServers\": {\n    \"traecn\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/TRAECNclaw/mcp-server.js\"],\n      \"env\": {\n        \"TRAECN_GATEWAY_HOST\": \"127.0.0.1\",\n        \"TRAECN_GATEWAY_PORT\": \"8788\",\n        \"TRAECN_GATEWAY_TOKEN\": \"\"\n      }\n    }\n  }\n}\n\nFile v0.5.6:assets/mcp-client-config.json\n\n{\n  \"$schema\": \"https://json.schemastore.org/mcp-servers.json\",\n  \"mcpServers\": {\n    \"traecn\": {\n      \"command\": \"node\",\n      \"args\": [\"SKILL_DIR/scripts/start-mcp.js\"],\n      \"env\": {\n        \"TRAECN_GATEWAY_HOST\": \"127.0.0.1\",\n        \"TRAECN_GATEWAY_PORT\": \"8788\",\n        \"TRAECN_GATEWAY_TOKEN\": \"\"\n      }\n    }\n  }\n}\n\nArchive v0.5.5: 9 files, 12873 bytes\n\nFiles: assets/mcp-client-config.direct.json (338b), assets/mcp-client-config.json (326b), references/mcp-call-examples.json (2789b), references/mcp-surface.md (4995b), references/mcp-tool-contracts.json (12829b), scripts/start-mcp.js (4721b), skill-card.md (2489b), SKILL.md (7018b), _meta.json (133b)\n\nFile v0.5.5:SKILL.md\n\n---\nname: traecnclaw-mcp\ndescription: Operate TraeCN through TRAECNclaw's focused stdio MCP tools. Use when an MCP-capable agent must send or stop work, choose a workspace/model/mode/conversation, inspect or change Trae settings through its UI, manage conversations, or resolve an exceptional question or command approval. Queueing, waiting, recovery, notifications, routine non-command questions, and keep/revert gates are gateway-managed.\nlicense: MIT-0\nmetadata:\n  author: TRAECNclaw\n  version: \"0.5.5\"\n  openclaw:\n    requires:\n      bins:\n        - node\n    primaryEnv: TRAECN_GATEWAY_TOKEN\n    envVars:\n      - name: TRAECN_GATEWAY_HOST\n        required: false\n        description: Optional gateway host override; keep loopback unless remote access is secured.\n      - name: TRAECN_GATEWAY_PORT\n        required: false\n        description: Optional gateway port override.\n      - name: TRAECN_GATEWAY_TOKEN\n        required: false\n        description: Optional gateway secret; never print, log, or persist it.\n      - name: TRAECN_MCP_CLIENT_ID\n        required: false\n        description: Stable client identifier for legacy MCP task notifications.\n---\n\n# TRAECNclaw MCP\n\nCompose focused tools around user intent. Do not call preflight, wait, poll,\nevent acknowledgement, recovery, cleanup, proof, process, or generic command\noperations from the agent loop; the gateway owns those mechanics.\n\n## Setup\n\n1. Install the matching TRAECNclaw server from its source checkout or release server archive. The launcher checks the repository, an installed `traecnclaw` package, then `traecnclaw-mcp` on `PATH`; it never executes a JavaScript path selected by an environment variable.\n2. Run `npm run doctor` in a source checkout, then configure the client from [assets/mcp-client-config.json](assets/mcp-client-config.json), replacing `SKILL_DIR` with this folder's absolute path. Use [assets/mcp-client-config.direct.json](assets/mcp-client-config.direct.json) when directly referencing the repository server.\n3. Start the gateway with `npm run start:gateway`, then reconnect the MCP client.\n4. Use mock mode only for development; never cite mock output as live TraeCN evidence.\n\n## Choose only necessary context\n\n- Call `traecn_open_workspace` only when the requested folder is not already open.\n- Call `traecn_list_models` when the available choices matter; then call `traecn_select_model` once.\n- Call `traecn_select_mode` only when the task requires a different Solo/IDE mode.\n- Call `traecn_list_conversations` to read the current mode and stable conversation IDs.\n- Use `traecn_create_conversation`, `traecn_select_conversation`, or `traecn_delete_conversation` for exactly one conversation operation.\n\nThese tools change TraeCN context. Never repeat workspace paths in the model\nmessage.\n\n## Send and track work\n\nCall `traecn_send_message` with the exact message and, when concurrency makes\nthe target ambiguous, an explicit `conversationId`. Clients without the Tasks\nextension receive the accepted `taskId` and status. When the host declares\n`io.modelcontextprotocol/tasks` on the request, the same call returns that\ndurable gateway identity as `resultType: \"task\"`.\n\nDo not wait or busy-poll after sending. Legacy initialization-based clients\nreceive compact task notifications that the stdio server acknowledges\ninternally. Modern hosts can open `subscriptions/listen` for the returned task\nID and receive a complete `notifications/tasks` snapshot; hosts without that\nextension call `traecn_get_task` only for an intentional later status/result\nread. If a modern task reports `input_required`, its elicitation and\n`tasks/update` response carry the same approval safeguards documented below.\nUse `traecn_cancel_task` for one known gateway task. Use\n`traecn_stop_generation` only when the user wants the\ngeneration currently visible in TraeCN stopped. First list conversations and\npass the active `conversationId`; the gateway rejects a stale or different\nconversation. Because visible work may belong to the user or another agent,\nset `acknowledgeUntrackedWork:true` and include a short audit `reason`. Use\n`traecn_cancel_task` instead when the work has a gateway task ID.\n\nFor a completed task, omit `detailLevel` or pass `\"result\"` to retrieve only\nthe final answer. Pass `detailLevel: \"trace\"` only when the detailed visible\nexecution process is needed to diagnose or trace an unexpected outcome.\n\n## Inspect or change Trae settings\n\nTreat settings as a second-level capability. Call\n`traecn_list_setting_sections`, then `traecn_list_settings` for only the needed\nsection. For dropdowns, call `traecn_list_setting_options` instead of guessing.\nUse exactly one matching mutation tool:\n\n- `traecn_set_setting_toggle` for a boolean switch.\n- `traecn_select_setting_option` for a dropdown choice.\n- `traecn_set_setting_text` for a text or numeric input.\n\nThese commands make the change through Trae's visible settings UI. The gateway\nserializes UI access and returns to chat automatically; do not navigate back\nmanually or repeat reads after a successful write.\n\n## Resolve exceptional interactions\n\nThe gateway never approves shell commands automatically, including commands\nclassified as read-only. Command text alone cannot establish workspace scope,\nexclude sensitive-file reads, or account for Git configuration and external\nhooks. Every command is returned to the Agent with its risk classification.\n\nIf a task reports an unresolved interaction:\n\n- Use `traecn_answer_question` for a returned question and one of its offered answers.\n- Use `traecn_decide_approval` only after checking the returned command and risk. Approval requires the exact `expectedCommand`, `acknowledgeRisk:true`, and a short audit `reason`; the gateway re-reads the visible card and rejects stale or changed commands. Denial needs no risk acknowledgement.\n\nConversation deletion is permanent. Delete only an inactive conversation and\nonly when the current user request explicitly names or unambiguously identifies\nit for deletion. Re-read its listed ID and exact title, then pass the title with\n`acknowledgePermanentDeletion:true`; the gateway rejects title mismatches and\nthe active conversation, records the attempt, and cannot restore a successful\ndeletion. This uses the user's existing instruction and does not add a separate\nconfirmation round trip.\n\n## Safety\n\n- Keep the gateway on `127.0.0.1` unless remote access is secured.\n- Never expose `.env`, tokens, authorization headers, or TraeCN profile data.\n- Keep the default security audit log enabled; high-impact approvals, stops,\n  and deletions are written to date-based JSONL files with sensitive fields\n  redacted and a default 30-day retention.\n- Treat mock results and non-terminal task states as incomplete.\n- Do not recreate removed low-level tools through shell, generic commands, or GUI control.\n\nRead [references/mcp-surface.md](references/mcp-surface.md) only for exact\nschemas, protocol compatibility, notification behavior, and gateway ownership\nboundaries.\n\nFile v0.5.5:_meta.json\n\n{\n  \"ownerId\": \"kn73ym4c6fp5b2vaa22t84v5fn83pt1p\",\n  \"slug\": \"traecnclaw-mcp\",\n  \"version\": \"0.5.5\",\n  \"publishedAt\": 1786011809017\n}\n\nFile v0.5.5:references/mcp-call-examples.json\n\n{\n  \"calls\": [\n    {\n      \"name\": \"open_workspace\",\n      \"tool\": \"traecn_open_workspace\",\n      \"arguments\": { \"path\": \"/absolute/path/to/repository\" }\n    },\n    {\n      \"name\": \"discover_models\",\n      \"tool\": \"traecn_list_models\",\n      \"arguments\": {}\n    },\n    {\n      \"name\": \"select_model\",\n      \"tool\": \"traecn_select_model\",\n      \"arguments\": { \"model\": \"GLM-5.2\" }\n    },\n    {\n      \"name\": \"send_repository_review\",\n      \"tool\": \"traecn_send_message\",\n      \"arguments\": {\n        \"message\": \"Review the current repository. Report findings first, ordered by severity.\"\n      }\n    },\n    {\n      \"name\": \"explicit_task_check\",\n      \"tool\": \"traecn_get_task\",\n      \"arguments\": { \"taskId\": \"TASK_ID\" }\n    },\n    {\n      \"name\": \"diagnostic_task_trace\",\n      \"tool\": \"traecn_get_task\",\n      \"arguments\": { \"taskId\": \"TASK_ID\", \"detailLevel\": \"trace\" }\n    },\n    {\n      \"name\": \"list_general_settings\",\n      \"tool\": \"traecn_list_settings\",\n      \"arguments\": { \"section\": \"通用\" }\n    },\n    {\n      \"name\": \"toggle_auto_save\",\n      \"tool\": \"traecn_set_setting_toggle\",\n      \"arguments\": { \"section\": \"通用\", \"label\": \"Auto Save\", \"enabled\": true }\n    },\n    {\n      \"name\": \"select_conversation\",\n      \"tool\": \"traecn_select_conversation\",\n      \"arguments\": { \"conversationId\": \"solo:UmV2aWV3IEFQSQ\" }\n    },\n    {\n      \"name\": \"stop_visible_untracked_generation\",\n      \"tool\": \"traecn_stop_generation\",\n      \"arguments\": {\n        \"conversationId\": \"solo:UmV2aWV3IEFQSQ\",\n        \"acknowledgeUntrackedWork\": true,\n        \"reason\": \"The user asked to stop the generation visible in this conversation\"\n      }\n    },\n    {\n      \"name\": \"delete_inactive_conversation\",\n      \"tool\": \"traecn_delete_conversation\",\n      \"precondition\": \"Use only when the current user request explicitly names or unambiguously identifies this conversation for deletion; do not infer deletion from cleanup or maintenance intent.\",\n      \"warning\": \"Deletion is permanent, and the gateway cannot restore the conversation. Re-read the listed conversation ID and exact title before sending this call.\",\n      \"arguments\": {\n        \"conversationId\": \"solo:T2xkIHJldmlldw\",\n        \"expectedTitle\": \"Old review\",\n        \"acknowledgePermanentDeletion\": true\n      }\n    },\n    {\n      \"name\": \"answer_exceptional_question\",\n      \"tool\": \"traecn_answer_question\",\n      \"arguments\": { \"answer\": \"Review the current workspace changes\" }\n    },\n    {\n      \"name\": \"approve_exact_exceptional_command\",\n      \"tool\": \"traecn_decide_approval\",\n      \"arguments\": {\n        \"decision\": \"approve\",\n        \"expectedCommand\": \"git push origin main\",\n        \"acknowledgeRisk\": true,\n        \"reason\": \"The user explicitly requested publishing the current branch\"\n      }\n    }\n  ]\n}\n\nFile v0.5.5:references/mcp-surface.md\n\n# MCP surface\n\nTRAECNclaw exposes one focused Agent surface. There are no tool profiles.\n\n## Protocol and transport\n\n- MCP `2026-07-28`: stateless per-request `_meta`, `server/discover`, typed\n  results, structured tool content, server identity metadata, and cache hints.\n- MCP `2025-11-25` and `2024-11-05`: legacy `initialize` compatibility.\n- stdio: one compact JSON-RPC object per line. `Content-Length` framing is\n  accepted only as a migration compatibility path.\n\nMCP contract version 5 below identifies this Skill's frozen 20-tool surface;\nit is not an MCP protocol revision. Legacy clients receive compact\n`notifications/message` task events. For MCP `2026-07-28`, the server advertises\nthe separately negotiated `io.modelcontextprotocol/tasks` extension. An\nopted-in `traecn_send_message` returns the durable gateway ID as a Task;\n`tasks/get`, `tasks/update`, and `tasks/cancel` operate that same identity, and\n`subscriptions/listen` can stream exact-ID `notifications/tasks` snapshots.\nClients that do not opt in retain the ordinary complete result and use\n`traecn_get_task` only for an intentional read. The extension is upstream-draft\nand does not change the 20-tool contract.\n\n| Tool | Required input | Gateway route |\n| --- | --- | --- |\n| `traecn_send_message` | `message` | `POST /api/tasks/submit` |\n| `traecn_get_task` | `taskId`; optional `detailLevel` (`result` or `trace`) | `GET /api/task/{taskId}` |\n| `traecn_cancel_task` | `taskId` | `POST /api/task/{taskId}/cancel` |\n| `traecn_stop_generation` | `conversationId`, `acknowledgeUntrackedWork`, `reason` | `POST /api/trae/stop-generation` |\n| `traecn_open_workspace` | `path` | `POST /api/open-project` |\n| `traecn_list_models` | none | `GET /api/models` |\n| `traecn_select_model` | `model` | `POST /api/switch-model` |\n| `traecn_select_mode` | `mode` | `POST /api/switch-mode` |\n| `traecn_list_setting_sections` | none | `GET /api/settings/sections` |\n| `traecn_list_settings` | `section` | `GET /api/settings/read` |\n| `traecn_list_setting_options` | `section`, `label` | `GET /api/settings/options` |\n| `traecn_set_setting_toggle` | `section`, `label`, `enabled` | `POST /api/settings/set` |\n| `traecn_select_setting_option` | `section`, `label`, `value` | `POST /api/settings/set` |\n| `traecn_set_setting_text` | `section`, `label`, `text` | `POST /api/settings/set` |\n| `traecn_list_conversations` | none | `GET /api/conversations` |\n| `traecn_create_conversation` | none | `POST /api/conversations/manage` |\n| `traecn_select_conversation` | `conversationId` | `POST /api/conversations/manage` |\n| `traecn_delete_conversation` | `conversationId`, `expectedTitle`, `acknowledgePermanentDeletion` | `POST /api/conversations/manage` |\n| `traecn_answer_question` | `answer` | `POST /api/interactions/resolve` |\n| `traecn_decide_approval` | `decision`; approve also needs `expectedCommand`, `acknowledgeRisk`, `reason` | `POST /api/interactions/resolve` |\n\n`traecn_send_message` accepts only `message` and optional `conversationId`.\nSet workspace, model, mode, and conversation through their focused tools. New\nconversations are explicit and messages otherwise stay in the selected chat.\n\nAfter message acceptance the gateway owns persistence, external and local\nqueues, recovery, completion checks, notifications, routine non-command\nquestions, and keep/revert gates. Agents do not wait, poll, acknowledge\nevents, run preflight, or recover work. A supporting host owns the Tasks\nsubscription; `traecn_get_task` is an optional explicit fallback read, not a\npolling instruction. Its default `detailLevel: \"result\"`\nreturns only the final answer; use `detailLevel: \"trace\"` when a failure or\nunexpected result requires the visible execution process for diagnosis.\n\nSettings tools form a second level: list visible sections, then list only one\nsection's items and their `controlType`. List dropdown options before selecting\none. Each write tool maps to one exact UI control operation, while the gateway\nopens settings and restores chat automatically.\n\nNo shell command is approved automatically, including commands classified as\nread-only. Command text alone cannot establish workspace scope, exclude\nsensitive-file reads, or account for Git configuration and external hooks.\nEvery command goes to Agent review. Approval requires the exact visible\ncommand, `acknowledgeRisk:true`, and a short audit reason; the gateway rejects\nstale command cards. Every high-impact Agent decision is written to the local\nappend-only security audit log.\n\nThe direct stop action works only in Solo mode and only when its supplied ID\nstill matches the active conversation. It requires an acknowledgement that the\nvisible generation may be untracked plus an audit reason. Conversation delete\nrequires an inactive target, exact listed title, and permanent-deletion\nacknowledgement; it has no recovery path. Unsafe-command approval revalidates\nthe exact currently visible command and records the risk acknowledgement and\nreason before clicking.\n\nFile v0.5.5:references/mcp-tool-contracts.json\n\n{\n  \"source\": \"mcp-server.js\",\n  \"contractVersion\": 5,\n  \"toolCount\": 20,\n  \"tools\": [\n    {\n      \"name\": \"traecn_send_message\",\n      \"description\": \"Send one message to TraeCN as a persistent background task. Optionally target an existing conversation.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"message\": {\n            \"type\": \"string\",\n            \"description\": \"The exact message to send.\"\n          },\n          \"conversationId\": {\n            \"type\": \"string\",\n            \"description\": \"Stable identifier returned by traecn_list_conversations.\"\n          }\n        },\n        \"required\": [\n          \"message\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"task\",\n        \"risk\": \"delegate\"\n      }\n    },\n    {\n      \"name\": \"traecn_get_task\",\n      \"description\": \"Read one known task. Defaults to the final result; request trace only when detailed execution history is needed for diagnosis.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"taskId\": {\n            \"type\": \"string\"\n          },\n          \"detailLevel\": {\n            \"type\": \"string\",\n            \"enum\": [\n              \"result\",\n              \"trace\"\n            ],\n            \"description\": \"result returns only the final answer (default); trace includes the full visible Trae execution process.\"\n          }\n        },\n        \"required\": [\n          \"taskId\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"task\",\n        \"risk\": \"read\"\n      }\n    },\n    {\n      \"name\": \"traecn_cancel_task\",\n      \"description\": \"Cancel one gateway-tracked task by task ID.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"taskId\": {\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"taskId\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"task\",\n        \"risk\": \"delegate\",\n        \"destructive\": true\n      }\n    },\n    {\n      \"name\": \"traecn_stop_generation\",\n      \"description\": \"Stop only the generation visible in the named active TraeCN conversation. This may interrupt work not submitted through the gateway, so the caller must acknowledge that scope and provide an audit reason.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"conversationId\": {\n            \"type\": \"string\",\n            \"description\": \"Stable identifier returned by traecn_list_conversations.\"\n          },\n          \"acknowledgeUntrackedWork\": {\n            \"type\": \"boolean\",\n            \"description\": \"Must be true to acknowledge that visible work may belong to the user or another agent.\"\n          },\n          \"reason\": {\n            \"type\": \"string\",\n            \"minLength\": 1,\n            \"maxLength\": 500,\n            \"description\": \"Concise reason recorded in the local security audit log.\"\n          }\n        },\n        \"required\": [\n          \"conversationId\",\n          \"acknowledgeUntrackedWork\",\n          \"reason\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"task\",\n        \"risk\": \"delegate\",\n        \"destructive\": true\n      }\n    },\n    {\n      \"name\": \"traecn_open_workspace\",\n      \"description\": \"Open one local folder in the active TraeCN window and verify it became the workspace.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"path\": {\n            \"type\": \"string\",\n            \"description\": \"Absolute local folder path.\"\n          }\n        },\n        \"required\": [\n          \"path\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"context\",\n        \"risk\": \"delegate\"\n      }\n    },\n    {\n      \"name\": \"traecn_list_models\",\n      \"description\": \"List the models currently offered by TraeCN and identify the selected model.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {},\n        \"required\": [],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"context\",\n        \"risk\": \"read\"\n      }\n    },\n    {\n      \"name\": \"traecn_select_model\",\n      \"description\": \"Select one TraeCN model without waiting or polling for model availability.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"model\": {\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"model\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"context\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_select_mode\",\n      \"description\": \"Select TraeCN Solo or IDE mode.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"mode\": {\n            \"type\": \"string\",\n            \"enum\": [\n              \"solo\",\n              \"ide\"\n            ]\n          }\n        },\n        \"required\": [\n          \"mode\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"context\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_list_setting_sections\",\n      \"description\": \"List the settings sections currently visible in the TraeCN UI.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {},\n        \"required\": [],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"settings\",\n        \"risk\": \"read\"\n      }\n    },\n    {\n      \"name\": \"traecn_list_settings\",\n      \"description\": \"List the individual settings and control types visible in one TraeCN settings section.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"section\": {\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"section\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"settings\",\n        \"risk\": \"read\"\n      }\n    },\n    {\n      \"name\": \"traecn_list_setting_options\",\n      \"description\": \"List the visible choices for one dropdown setting in the TraeCN UI.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"section\": {\n            \"type\": \"string\"\n          },\n          \"label\": {\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"section\",\n          \"label\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"settings\",\n        \"risk\": \"read\"\n      }\n    },\n    {\n      \"name\": \"traecn_set_setting_toggle\",\n      \"description\": \"Enable or disable one toggle setting in the TraeCN UI.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"section\": {\n            \"type\": \"string\"\n          },\n          \"label\": {\n            \"type\": \"string\"\n          },\n          \"enabled\": {\n            \"type\": \"boolean\"\n          }\n        },\n        \"required\": [\n          \"section\",\n          \"label\",\n          \"enabled\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"settings\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_select_setting_option\",\n      \"description\": \"Select one dropdown option for a setting in the TraeCN UI.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"section\": {\n            \"type\": \"string\"\n          },\n          \"label\": {\n            \"type\": \"string\"\n          },\n          \"value\": {\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"section\",\n          \"label\",\n          \"value\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"settings\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_set_setting_text\",\n      \"description\": \"Enter one text value for a setting in the TraeCN UI.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"section\": {\n            \"type\": \"string\"\n          },\n          \"label\": {\n            \"type\": \"string\"\n          },\n          \"text\": {\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"section\",\n          \"label\",\n          \"text\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"settings\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_list_conversations\",\n      \"description\": \"List conversations in the current TraeCN mode with stable identifiers.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {},\n        \"required\": [],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"conversation\",\n        \"risk\": \"read\"\n      }\n    },\n    {\n      \"name\": \"traecn_create_conversation\",\n      \"description\": \"Create and select a new TraeCN conversation.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {},\n        \"required\": [],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"conversation\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_select_conversation\",\n      \"description\": \"Select one existing TraeCN conversation.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"conversationId\": {\n            \"type\": \"string\",\n            \"description\": \"Stable identifier returned by traecn_list_conversations.\"\n          }\n        },\n        \"required\": [\n          \"conversationId\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"conversation\",\n        \"risk\": \"write\"\n      }\n    },\n    {\n      \"name\": \"traecn_delete_conversation\",\n      \"description\": \"Permanently delete one inactive TraeCN conversation. The operation has no gateway recovery path and requires the listed title plus an explicit irreversible-deletion acknowledgement.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"conversationId\": {\n            \"type\": \"string\",\n            \"description\": \"Stable identifier returned by traecn_list_conversations.\"\n          },\n          \"expectedTitle\": {\n            \"type\": \"string\",\n            \"minLength\": 1,\n            \"description\": \"Exact title returned by traecn_list_conversations.\"\n          },\n          \"acknowledgePermanentDeletion\": {\n            \"type\": \"boolean\",\n            \"description\": \"Must be true to acknowledge that the gateway cannot restore the deleted conversation.\"\n          }\n        },\n        \"required\": [\n          \"conversationId\",\n          \"expectedTitle\",\n          \"acknowledgePermanentDeletion\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"conversation\",\n        \"risk\": \"delegate\",\n        \"destructive\": true\n      }\n    },\n    {\n      \"name\": \"traecn_answer_question\",\n      \"description\": \"Answer an exceptional TraeCN question that the gateway could not resolve mechanically.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"answer\": {\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"answer\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"interaction\",\n        \"risk\": \"delegate\"\n      }\n    },\n    {\n      \"name\": \"traecn_decide_approval\",\n      \"description\": \"Approve or deny the exceptional unsafe or ambiguous TraeCN command card currently visible. Approval revalidates the exact command and requires a risk acknowledgement plus an audit reason; denial needs only the decision.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"decision\": {\n            \"type\": \"string\",\n            \"enum\": [\n              \"approve\",\n              \"deny\"\n            ]\n          },\n          \"expectedCommand\": {\n            \"type\": \"string\",\n            \"description\": \"For approve, the exact command returned with the pending interaction.\"\n          },\n          \"acknowledgeRisk\": {\n            \"type\": \"boolean\",\n            \"description\": \"For approve, must be true after checking the command against the user-authorized scope.\"\n          },\n          \"reason\": {\n            \"type\": \"string\",\n            \"minLength\": 1,\n            \"maxLength\": 500,\n            \"description\": \"For approve, a concise authorization reason recorded in the local security audit log.\"\n          }\n        },\n        \"required\": [\n          \"decision\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"interaction\",\n        \"risk\": \"delegate\",\n        \"destructive\": true\n      }\n    }\n  ]\n}\n\nFile v0.5.5:skill-card.md\n\n## Description:\n\nTRAECNclaw MCP lets an MCP-capable agent operate TraeCN through focused stdio tools for sending work, selecting workspace, model, mode, and conversation context, managing settings and conversations, and resolving exceptional approvals or questions.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[luckycat133](https://clawhub.ai/user/luckycat133)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and MCP-capable agents use this skill to control a local TraeCN session through scoped tools while the gateway manages queueing, notifications, recovery, and interaction safeguards.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: A gateway exposed beyond loopback could allow unintended access to TraeCN controls.\n\nMitigation: Keep TRAECN_GATEWAY_HOST bound to 127.0.0.1 unless remote access is explicitly secured.\n\nRisk: Command approvals and permanent conversation deletion can have high-impact or irreversible effects.\n\nMitigation: Review the exact command or conversation title and require the documented acknowledgement fields before allowing the tool call.\n\nRisk: Secrets or profile data could be exposed through careless setup or output handling.\n\nMitigation: Do not print, log, or persist TRAECN_GATEWAY_TOKEN, .env contents, authorization headers, or TraeCN profile data.\n\n## Reference(s):\n\n- [MCP surface](artifact/references/mcp-surface.md)\n- [MCP tool contracts](artifact/references/mcp-tool-contracts.json)\n- [MCP call examples](artifact/references/mcp-call-examples.json)\n- [MCP client configuration](artifact/assets/mcp-client-config.json)\n- [Direct MCP client configuration](artifact/assets/mcp-client-config.direct.json)\n\n## Skill Output:\n\n**Output Type(s):** [Text, JSON, Shell commands, Configuration, Guidance]\n\n**Output Format:** [MCP tool calls and structured JSON results, with setup guidance and client configuration JSON]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires Node.js and a TRAECNclaw gateway; high-impact approvals, stops, and conversation deletion require scoped acknowledgements.]\n\n## Skill Version(s):\n\n0.5.5 (source: evidence release metadata and skill frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v0.5.5:assets/mcp-client-config.direct.json\n\n{\n  \"$schema\": \"https://json.schemastore.org/mcp-servers.json\",\n  \"mcpServers\": {\n    \"traecn\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/TRAECNclaw/mcp-server.js\"],\n      \"env\": {\n        \"TRAECN_GATEWAY_HOST\": \"127.0.0.1\",\n        \"TRAECN_GATEWAY_PORT\": \"8788\",\n        \"TRAECN_GATEWAY_TOKEN\": \"\"\n      }\n    }\n  }\n}\n\nFile v0.5.5:assets/mcp-client-config.json\n\n{\n  \"$schema\": \"https://json.schemastore.org/mcp-servers.json\",\n  \"mcpServers\": {\n    \"traecn\": {\n      \"command\": \"node\",\n      \"args\": [\"SKILL_DIR/scripts/start-mcp.js\"],\n      \"env\": {\n        \"TRAECN_GATEWAY_HOST\": \"127.0.0.1\",\n        \"TRAECN_GATEWAY_PORT\": \"8788\",\n        \"TRAECN_GATEWAY_TOKEN\": \"\"\n      }\n    }\n  }\n}\n\nArchive v0.5.4: 9 files, 13002 bytes\n\nFiles: assets/mcp-client-config.direct.json (338b), assets/mcp-client-config.json (326b), references/mcp-call-examples.json (2789b), references/mcp-surface.md (4995b), references/mcp-tool-contracts.json (12829b), scripts/start-mcp.js (4721b), skill-card.md (2859b), SKILL.md (7018b), _meta.json (133b)\n\nFile v0.5.4:SKILL.md\n\n---\nname: traecnclaw-mcp\ndescription: Operate TraeCN through TRAECNclaw's focused stdio MCP tools. Use when an MCP-capable agent must send or stop work, choose a workspace/model/mode/conversation, inspect or change Trae settings through its UI, manage conversations, or resolve an exceptional question or command approval. Queueing, waiting, recovery, notifications, routine non-command questions, and keep/revert gates are gateway-managed.\nlicense: MIT-0\nmetadata:\n  author: TRAECNclaw\n  version: \"0.5.4\"\n  openclaw:\n    requires:\n      bins:\n        - node\n    primaryEnv: TRAECN_GATEWAY_TOKEN\n    envVars:\n      - name: TRAECN_GATEWAY_HOST\n        required: false\n        description: Optional gateway host override; keep loopback unless remote access is secured.\n      - name: TRAECN_GATEWAY_PORT\n        required: false\n        description: Optional gateway port override.\n      - name: TRAECN_GATEWAY_TOKEN\n        required: false\n        description: Optional gateway secret; never print, log, or persist it.\n      - name: TRAECN_MCP_CLIENT_ID\n        required: false\n        description: Stable client identifier for legacy MCP task notifications.\n---\n\n# TRAECNclaw MCP\n\nCompose focused tools around user intent. Do not call preflight, wait, poll,\nevent acknowledgement, recovery, cleanup, proof, process, or generic command\noperations from the agent loop; the gateway owns those mechanics.\n\n## Setup\n\n1. Install the matching TRAECNclaw server from its source checkout or release server archive. The launcher checks the repository, an installed `traecnclaw` package, then `traecnclaw-mcp` on `PATH`; it never executes a JavaScript path selected by an environment variable.\n2. Run `npm run doctor` in a source checkout, then configure the client from [assets/mcp-client-config.json](assets/mcp-client-config.json), replacing `SKILL_DIR` with this folder's absolute path. Use [assets/mcp-client-config.direct.json](assets/mcp-client-config.direct.json) when directly referencing the repository server.\n3. Start the gateway with `npm run start:gateway`, then reconnect the MCP client.\n4. Use mock mode only for development; never cite mock output as live TraeCN evidence.\n\n## Choose only necessary context\n\n- Call `traecn_open_workspace` only when the requested folder is not already open.\n- Call `traecn_list_models` when the available choices matter; then call `traecn_select_model` once.\n- Call `traecn_select_mode` only when the task requires a different Solo/IDE mode.\n- Call `traecn_list_conversations` to read the current mode and stable conversation IDs.\n- Use `traecn_create_conversation`, `traecn_select_conversation`, or `traecn_delete_conversation` for exactly one conversation operation.\n\nThese tools change TraeCN context. Never repeat workspace paths in the model\nmessage.\n\n## Send and track work\n\nCall `traecn_send_message` with the exact message and, when concurrency makes\nthe target ambiguous, an explicit `conversationId`. Clients without the Tasks\nextension receive the accepted `taskId` and status. When the host declares\n`io.modelcontextprotocol/tasks` on the request, the same call returns that\ndurable gateway identity as `resultType: \"task\"`.\n\nDo not wait or busy-poll after sending. Legacy initialization-based clients\nreceive compact task notifications that the stdio server acknowledges\ninternally. Modern hosts can open `subscriptions/listen` for the returned task\nID and receive a complete `notifications/tasks` snapshot; hosts without that\nextension call `traecn_get_task` only for an intentional later status/result\nread. If a modern task reports `input_required`, its elicitation and\n`tasks/update` response carry the same approval safeguards documented below.\nUse `traecn_cancel_task` for one known gateway task. Use\n`traecn_stop_generation` only when the user wants the\ngeneration currently visible in TraeCN stopped. First list conversations and\npass the active `conversationId`; the gateway rejects a stale or different\nconversation. Because visible work may belong to the user or another agent,\nset `acknowledgeUntrackedWork:true` and include a short audit `reason`. Use\n`traecn_cancel_task` instead when the work has a gateway task ID.\n\nFor a completed task, omit `detailLevel` or pass `\"result\"` to retrieve only\nthe final answer. Pass `detailLevel: \"trace\"` only when the detailed visible\nexecution process is needed to diagnose or trace an unexpected outcome.\n\n## Inspect or change Trae settings\n\nTreat settings as a second-level capability. Call\n`traecn_list_setting_sections`, then `traecn_list_settings` for only the needed\nsection. For dropdowns, call `traecn_list_setting_options` instead of guessing.\nUse exactly one matching mutation tool:\n\n- `traecn_set_setting_toggle` for a boolean switch.\n- `traecn_select_setting_option` for a dropdown choice.\n- `traecn_set_setting_text` for a text or numeric input.\n\nThese commands make the change through Trae's visible settings UI. The gateway\nserializes UI access and returns to chat automatically; do not navigate back\nmanually or repeat reads after a successf\n\nArchive v0.5.3: 9 files, 13060 bytes\n\nFiles: assets/mcp-client-config.direct.json (338b), assets/mcp-client-config.json (326b), references/mcp-call-examples.json (2789b), references/mcp-surface.md (4995b), references/mcp-tool-contracts.json (12829b), scripts/start-mcp.js (4721b), skill-card.md (3049b), SKILL.md (7018b), _meta.json (133b)\n\nArchive v0.5.2: 9 files, 13101 bytes\n\nFiles: assets/mcp-client-config.direct.json (338b), assets/mcp-client-config.json (326b), references/mcp-call-examples.json (2789b), references/mcp-surface.md (4995b), references/mcp-tool-contracts.json (12829b), scripts/start-mcp.js (4838b), skill-card.md (3095b), SKILL.md (7086b), _meta.json (133b)\n\nArchive v0.5.1: 9 files, 12132 bytes\n\nFiles: assets/mcp-client-config.direct.json (338b), assets/mcp-client-config.json (326b), references/mcp-call-examples.json (2789b), references/mcp-surface.md (4743b), references/mcp-tool-contracts.json (12829b), scripts/start-mcp.js (3540b), skill-card.md (2765b), SKILL.md (6525b), _meta.json (133b)\n\nArchive v0.5.0: 9 files, 11934 bytes\n\nFiles: assets/mcp-client-config.direct.json (338b), assets/mcp-client-config.json (326b), references/mcp-call-examples.json (2637b), references/mcp-surface.md (4513b), references/mcp-tool-contracts.json (12487b), scripts/start-mcp.js (3540b), skill-card.md (3000b), SKILL.md (6298b), _meta.json (133b)\n\nArchive v0.4.7: 9 files, 11437 bytes\n\nFiles: assets/mcp-client-config.direct.json (322b), assets/mcp-client-config.json (310b), references/mcp-call-examples.json (2637b), references/mcp-surface.md (3717b), references/mcp-tool-contracts.json (12576b), scripts/start-mcp.js (3540b), skill-card.md (2690b), SKILL.md (6198b), _meta.json (133b)","readmeExcerpt":"Skill: TRAECNclaw MCP Owner: luckycat133 Summary: Operate TraeCN through TRAECNclaw's focused stdio MCP tools. Use when an MCP-capable agent must send or stop work, choose a workspace/model/mode/conversation, inspect or change Trae settings through its UI, manage conversations, or resolve an exceptional question or command approval. Queueing, waiting, recovery, notifications, routine non-command questions, and keep/r","codeSnippets":[],"executableExamples":[],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: traecnclaw-mcp\ndescription: Operate TraeCN through TRAECNclaw's focused stdio MCP tools. Use when an MCP-capable agent must send or stop work, choose a workspace/model/mode/conversation, inspect or change Trae settings through its UI, manage conversations, or resolve an exceptional question or command approval. Queueing, waiting, recovery, notifications, routine non-command questions, and keep/revert gates are gateway-managed.\nlicense: MIT-0\nmetadata:\n  author: TRAECNclaw\n  version: \"0.6.0\"\n  openclaw:\n    requires:\n      bins:\n        - node\n    primaryEnv: TRAECN_GATEWAY_TOKEN\n    envVars:\n      - name: TRAECN_GATEWAY_HOST\n        required: false\n        description: Optional gateway host override; keep loopback unless remote access is secured.\n      - name: TRAECN_GATEWAY_PORT\n        required: false\n        description: Optional gateway port override.\n      - name: TRAECN_GATEWAY_TOKEN\n        required: false\n        description: Optional gateway secret; never print, log, or persist it.\n      - name: TRAECN_MCP_CLIENT_ID\n        required: false\n        description: Stable client identifier for legacy MCP task notifications.\n---\n\n# TRAECNclaw MCP\n\nCompose focused tools around user intent. Do not call preflight, wait, poll,\nevent acknowledgement, recovery, cleanup, proof, process, or generic command\noperations from the agent loop; the gateway owns those mechanics.\n\n## Setup\n\n1. Install the matching TRAECNclaw server from its source checkout or release server archive. The launcher checks the repository, an installed `traecnclaw` package, then `traecnclaw-mcp` on `PATH`; it never executes a JavaScript path selected by an environment variable.\n2. Run `npm run doctor` in a source checkout. Then run `npm run --silent setup:mcp` from the checkout, or `node scripts/setup-mcp.js` from this Skill directory, to validate the server and print a resolved client entry. Use `--output FILE` to create a new mode-0600 file atomically; the command never overwrites an existing file. The JSON templates under [assets](assets) remain manual fallbacks.\n3. Start the gateway with `npm run start:gateway`, then reconnect the MCP client.\n4. Use mock mode only for development; never cite mock output as live TraeCN evidence.\n\n## Choose only necessary context\n\n- Call `traecn_open_workspace` only when the requested folder is not already open.\n- Call `traecn_list_models` when the available choices matter; then call `traecn_select_model` once.\n- Call `traecn_select_mode` only when the task requires a different Solo/IDE mode.\n- Call `traecn_list_conversations` to read the current mode and stable conversation IDs.\n- Use `traecn_create_conversation`, `traecn_select_conversation`, or `traecn_delete_conversation` for exactly one conversation operation.\n\nThese tools change TraeCN context. Never repeat workspace paths in the model\nmessage.\n\n## Send and track work\n\nCall `traecn_send_message` with the exact message and, when concurrency makes\nthe target ambiguous, an explicit `"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn73ym4c6fp5b2vaa22t84v5fn83pt1p\",\n  \"slug\": \"traecnclaw-mcp\",\n  \"version\": \"0.6.0\",\n  \"publishedAt\": 1787566992010\n}"},{"path":"references/mcp-call-examples.json","content":"{\n  \"calls\": [\n    {\n      \"name\": \"open_workspace\",\n      \"tool\": \"traecn_open_workspace\",\n      \"arguments\": { \"path\": \"/absolute/path/to/repository\" }\n    },\n    {\n      \"name\": \"discover_models\",\n      \"tool\": \"traecn_list_models\",\n      \"arguments\": {}\n    },\n    {\n      \"name\": \"select_model\",\n      \"tool\": \"traecn_select_model\",\n      \"arguments\": { \"model\": \"GLM-5.2\" }\n    },\n    {\n      \"name\": \"send_repository_review\",\n      \"tool\": \"traecn_send_message\",\n      \"arguments\": {\n        \"message\": \"Review the current repository. Report findings first, ordered by severity.\"\n      }\n    },\n    {\n      \"name\": \"explicit_task_check\",\n      \"tool\": \"traecn_get_task\",\n      \"arguments\": { \"taskId\": \"TASK_ID\" }\n    },\n    {\n      \"name\": \"diagnostic_task_trace\",\n      \"tool\": \"traecn_get_task\",\n      \"arguments\": { \"taskId\": \"TASK_ID\", \"detailLevel\": \"trace\" }\n    },\n    {\n      \"name\": \"list_general_settings\",\n      \"tool\": \"traecn_list_settings\",\n      \"arguments\": { \"section\": \"通用\" }\n    },\n    {\n      \"name\": \"toggle_auto_save\",\n      \"tool\": \"traecn_set_setting_toggle\",\n      \"arguments\": { \"section\": \"通用\", \"label\": \"Auto Save\", \"enabled\": true }\n    },\n    {\n      \"name\": \"select_conversation\",\n      \"tool\": \"traecn_select_conversation\",\n      \"arguments\": { \"conversationId\": \"solo:UmV2aWV3IEFQSQ\" }\n    },\n    {\n      \"name\": \"stop_visible_untracked_generation\",\n      \"tool\": \"traecn_stop_generation\",\n      \"arguments\": {\n        \"conversationId\": \"solo:UmV2aWV3IEFQSQ\",\n        \"acknowledgeUntrackedWork\": true,\n        \"reason\": \"The user asked to stop the generation visible in this conversation\"\n      }\n    },\n    {\n      \"name\": \"delete_inactive_conversation\",\n      \"tool\": \"traecn_delete_conversation\",\n      \"precondition\": \"Use only when the current user request explicitly names or unambiguously identifies this conversation for deletion; do not infer deletion from cleanup or maintenance intent.\",\n      \"warning\": \"Deletion is permanent, and the gateway cannot restore the conversation. Re-read the listed conversation ID and exact title before sending this call.\",\n      \"arguments\": {\n        \"conversationId\": \"solo:T2xkIHJldmlldw\",\n        \"expectedTitle\": \"Old review\",\n        \"acknowledgePermanentDeletion\": true\n      }\n    },\n    {\n      \"name\": \"answer_exceptional_question\",\n      \"tool\": \"traecn_answer_question\",\n      \"arguments\": { \"answer\": \"Review the current workspace changes\" }\n    },\n    {\n      \"name\": \"approve_exact_exceptional_command\",\n      \"tool\": \"traecn_decide_approval\",\n      \"arguments\": {\n        \"decision\": \"approve\",\n        \"expectedCommand\": \"git push origin main\",\n        \"acknowledgeRisk\": true,\n        \"reason\": \"The user explicitly requested publishing the current branch\"\n      }\n    }\n  ]\n}"},{"path":"references/mcp-surface.md","content":"# MCP surface\n\nTRAECNclaw exposes one focused Agent surface. There are no tool profiles.\n\n## Protocol and transport\n\n- MCP `2026-07-28`: stateless per-request `_meta`, `server/discover`, typed\n  results, structured tool content, server identity metadata, and cache hints.\n- MCP `2025-11-25` and `2024-11-05`: legacy `initialize` compatibility.\n- stdio: one compact JSON-RPC object per line. `Content-Length` framing is\n  accepted only as a migration compatibility path.\n\nMCP contract version 5 below identifies this Skill's frozen 20-tool surface;\nit is not an MCP protocol revision. Legacy clients receive compact\n`notifications/message` task events. For MCP `2026-07-28`, the server advertises\nthe separately negotiated `io.modelcontextprotocol/tasks` extension. An\nopted-in `traecn_send_message` returns the durable gateway ID as a Task;\n`tasks/get`, `tasks/update`, and `tasks/cancel` operate that same identity, and\n`subscriptions/listen` can stream exact-ID `notifications/tasks` snapshots.\nFor a legacy client ID's first connection, already-retained events are\nbaselined without delivery; a returning ID resumes only events newer than its\ndurable acknowledgement. Unrelated request metadata such as `progressToken`\ndoes not change the negotiated legacy protocol era.\nModern retries derive a stable idempotency key from the request identity and\narguments. The gateway retains the corresponding terminal fingerprint and\nresponse across restart for a configurable 24-hour default TTL, so the same\nrequest reuses the original task while different work cannot collide.\nClients that do not opt in retain the ordinary complete result and use\n`traecn_get_task` only for an intentional read. The extension is upstream-draft\nand does not change the 20-tool contract.\n\n| Tool | Required input | Gateway route |\n| --- | --- | --- |\n| `traecn_send_message` | `message` | `POST /api/tasks/submit` |\n| `traecn_get_task` | `taskId`; optional `detailLevel` (`result` or `trace`) | `GET /api/task/{taskId}` |\n| `traecn_cancel_task` | `taskId` | `POST /api/task/{taskId}/cancel` |\n| `traecn_stop_generation` | `conversationId`, `acknowledgeUntrackedWork`, `reason` | `POST /api/trae/stop-generation` |\n| `traecn_open_workspace` | `path` | `POST /api/open-project` |\n| `traecn_list_models` | none | `GET /api/models` |\n| `traecn_select_model` | `model` | `POST /api/switch-model` |\n| `traecn_select_mode` | `mode` | `POST /api/switch-mode` |\n| `traecn_list_setting_sections` | none | `GET /api/settings/sections` |\n| `traecn_list_settings` | `section` | `GET /api/settings/read` |\n| `traecn_list_setting_options` | `section`, `label` | `GET /api/settings/options` |\n| `traecn_set_setting_toggle` | `section`, `label`, `enabled` | `POST /api/settings/set` |\n| `traecn_select_setting_option` | `section`, `label`, `value` | `POST /api/settings/set` |\n| `traecn_set_setting_text` | `section`, `label`, `text` | `POST /api/settings/set` |\n| `traecn_list_conversations` | none | `GET /api/conversations` |\n| `traecn_cr"},{"path":"references/mcp-tool-contracts.json","content":"{\n  \"source\": \"mcp-server.js\",\n  \"contractVersion\": 5,\n  \"toolCount\": 20,\n  \"tools\": [\n    {\n      \"name\": \"traecn_send_message\",\n      \"description\": \"Submit one user instruction to TraeCN as durable background work and return its stable taskId immediately; the gateway owns queueing, retries, recovery, and result persistence. Use this for every delegated coding request, optionally targeting an existing conversation via conversationId. Do not send follow-up messages to probe progress — track the returned task instead.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"message\": {\n            \"type\": \"string\",\n            \"description\": \"The exact instruction to execute.\"\n          },\n          \"conversationId\": {\n            \"type\": \"string\",\n            \"description\": \"Stable identifier returned by traecn_list_conversations.\"\n          }\n        },\n        \"required\": [\n          \"message\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"task\",\n        \"risk\": \"delegate\"\n      }\n    },\n    {\n      \"name\": \"traecn_get_task\",\n      \"description\": \"Read one known gateway task by ID: status plus final result, or the full execution trace with detailLevel 'trace' for diagnosis. Call once when notified of completion or once later when resuming after a disconnect. Not a progress primitive — do not poll in a tight loop.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"taskId\": {\n            \"type\": \"string\",\n            \"description\": \"Stable task identifier returned by traecn_send_message.\"\n          },\n          \"detailLevel\": {\n            \"type\": \"string\",\n            \"enum\": [\n              \"result\",\n              \"trace\"\n            ],\n            \"description\": \"result returns only the final answer (default); trace includes the full visible Trae execution process.\"\n          }\n        },\n        \"required\": [\n          \"taskId\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"task\",\n        \"risk\": \"read\"\n      }\n    },\n    {\n      \"name\": \"traecn_cancel_task\",\n      \"description\": \"Cancel one gateway-tracked task by ID. The gateway stops shepherding the work at its next control point and records the cancellation; results already produced remain in task history. Returns the task identity and post-cancellation status.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"taskId\": {\n            \"type\": \"string\",\n            \"description\": \"Stable task identifier returned by traecn_send_message.\"\n          }\n        },\n        \"required\": [\n          \"taskId\"\n        ],\n        \"additionalProperties\": false\n      },\n      \"metadata\": {\n        \"layer\": \"task\",\n        \"risk\": \"delegate\",\n        \"destructive\": true\n      }\n    },\n    {\n      \"name\": \"traecn_stop_generation\",\n      \"description\": \"Stop only the generation currently visible in the named acti"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1905,"uniquenessScore":41,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T02:06:06.738Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T02:06:06.738Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T04:36:12.705Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}