Grok Plugin Codex
Grok Plugin Codex
grok-plugin-codex는 번들로 제공되는 Node/TypeScript MCP 서버를 통해 로컬에 설치된 Grok CLI를 Codex에 노출합니다. Codex는 범위, 작업 공간 상태, 검증, git 및 최종 판단에 대한 책임을 유지하며, Grok은 제한된 보조 표면입니다.
현재 릴리스는 버전 0.3.0입니다. Grok 중단 이유 어휘(end_turn과 EndTurn은 동일한 사실)를 정규화하고, 시간 초과 및 할당량 소진을 올바르게 분류하며, 디스패치 도구를 종류별 시간 예산과 함께 기본적으로 백그라운드로 설정하고, 모든 비완료 결과에 복구 핸들을 반환하며, 단일 도구 호출 없이 도달한 판정을 완료된 검토로 보고하지 않으며, 이미 존재하는 답변을 복구하는 단일 턴, 도구 없는 방법인 grok_finalize를 추가합니다. 전체 계약 변경 사항은 CHANGELOG.md를 참조하세요. 버전 0.2는 비공개 중앙 워커 아키텍처와 타입이 지정된 MCP 봉투를 도입했습니다.
저장소: https://github.com/handong66/grok-plugin-codex 설명: https://han-dong.link/en/work/grok-plugin-codex
요구 사항
Node.js
>=22npm
macOS 또는 Linux
Codex 로컬 플러그인 마켓플레이스 지원
Grok CLI 설치 및 인증 완료
세 가지 런타임 계층을 별도로 확인하세요:
grok --version # CLI can be discovered
grok --help # installed flags/capabilities
grok models # authentication and model listing나열된 모델이 실제 호출을 완료했다고 보장할 수는 없습니다. grok_check는 그 구분을 유지합니다.
Related MCP server: Grok Build Bridge
설치
npm install
npm run check
codex plugin marketplace add .
codex plugin add grok-plugin-codex --marketplace grok-plugin-codex설치 또는 업그레이드 후 새 Codex 작업을 시작하세요. 기존 작업은 시작할 때의 MCP 서버 및 스킬 스냅샷을 유지합니다. 새 Codex Desktop 작업이 업데이트된 스킬은 보지만 업데이트된 MCP 도구는 보지 못하는 경우, Codex Desktop을 다시 시작하고 다른 작업을 만드세요. Desktop 프로세스는 재설치 후에도 MCP 레지스트리를 유지할 수 있습니다.
설치된 번들에는 다음이 모두 포함됩니다:
plugins/grok-plugin-codex/dist/server.js
plugins/grok-plugin-codex/dist/job-worker.js기능 표면
grok_check,grok_models: CLI/기능, 인증, 권한 및 모델 진단.authenticated및entitled는true,false또는"unknown"이며null이 아닙니다.grok_run,grok_continue: 명시적 프롬프트 실행 및 알려진 세션 계속.grok_finalize: 단일 턴, 도구 없음, 완전한 답변 — 시간 초과, 턴 제한, 취소 또는 권한 차단된 실행을 위한 복구.grok_rescue,grok_review,grok_adversarial_review: 강제 읽기 전용, 하위 에이전트 없는 두 번째 패스. 각각target(또는problem)이 필요하며, 형제 플러그인의 이름prompt도 허용됩니다.grok_adversarial_review는 선택적threatModel을 받으며, 그 외의 발견 사항은 권고 사항이며 차단되지 않을 수 있습니다.grok_sessions,grok_export: 명시적 작업 공간 세션 검사 및 Markdown 내보내기.grok_status,grok_result,grok_cancel: 비공개 중앙 백그라운드 작업 수명 주기,jobId로만 접근.grok_status는 저렴한 진행 상황(textChars,eventCounts,lastEventAt,toolCallCount,deniedToolCalls)을 반환하고 선택적waitMs(≤ 30초) 서버 측 대기를 받습니다.grok_result는finalTextOffset/finalTextMaxChars로finalText를 페이지네이션합니다.
현재 MCP listTools 스키마가 정확한 인수에 대해 권위를 가집니다. 저장소 스모크 테스트는 게시된 표면을 고정하고 드리프트를 거부합니다.
결과 계약
성공적인 작업은 다음을 반환합니다:
{ "ok": true, "data": {}, "error": null, "warnings": [] }비즈니스 실패는 MCP isError: true를 설정하고 다음을 반환합니다:
{
"ok": false,
"data": null,
"error": { "code": "typed_code", "message": "actionable message", "retryable": false },
"warnings": []
}입력 스키마 위반은 SDK 생성 도구 오류(isError: true)이며 플러그인 비즈니스 봉투가 없습니다. 클라이언트는 약속 거부에만 의존하지 않고 해결된 도구 결과를 검사해야 합니다. 모든 도구는 출력 스키마를 게시하며, 플러그인 처리된 JSON 텍스트는 structuredContent를 미러링합니다.
작업 공간 및 프롬프트 경계
작업 공간 작업에는 cwd가 필요합니다. 서버는 심볼릭 링크를 정규화하고 해결된 디렉토리가 활성 MCP 작업 공간 루트 내에 있어야 합니다. ~/.codex와 같은 비공개 Codex 경로는 사용자가 명시적으로 해당 위험을 승인하지 않는 한 차단됩니다.
프롬프트는 분리된 워커가 MCP 서버 종료 후에도 생존할 수 있도록 비공개 0600 파일에 잠시 저장됩니다. 워커는 Grok 실행 전에 스테이징 파일을 읽고 삭제한 다음, 임의의 0700 디렉토리 내 0600 FIFO를 통해 프롬프트를 제공합니다. Grok은 네이티브 --prompt-file을 통해 해당 비공개 경로명만 받습니다. 런처는 Grok이 파일을 열자마자, 프롬프트 바이트를 쓰기 전에 파일 링크를 해제합니다. 프롬프트 텍스트는 자식 프로세스 인수 목록이나 작업 레코드에 배치되지 않습니다. GROK_BIN은 지원되는 유일한 사용자 정의 실행 파일 구성이며 신뢰할 수 있는 MCP 환경에서 와야 합니다.
백그라운드 작업
백그라운드 작업은 분리된 워커에서 실행되며 MCP 서버 재시작 후에도 유지됩니다. 상태는 다음 위치에 저장됩니다:
$GROK_PLUGIN_STATE_DIR(명시적으로 구성된 경우)$XDG_STATE_HOME/grok-plugin-codex~/.local/state/grok-plugin-codex
명시적 상태 디렉토리는 모든 활성 작업 공간 루트와 분리되어야 합니다. 즉, 루트 내부도 아니고 루트의 상위 디렉토리도 아니어야 합니다. 비어 있거나, 플러그인의 소유권 마커를 가지고 있거나, 엄격한 비공개 사전 마커 작업 레이아웃과 일치해야 합니다. 플러그인은 기존 공유 디렉토리를 소유하거나 chmod하지 않습니다. 이러한 검사는 저장소 로컬 상태를 생성하거나 변경하기 전에 실패 시 닫힙니다.
디렉토리는 0700을 사용하고, 레코드, 로그, 프롬프트 스테이징 파일, 취소 마커, 하트비트 및 소유자 토큰 교차 프로세스 잠금은 0600을 사용합니다. 레코드 쓰기는 원자적이며 터미널 상태는 단조롭습니다. 취소는 소유 워커가 소비하는 마커에 의해 선형화됩니다. 각 프로세스 그룹은 작업 ID와 임의 작업 토큰을 명령 ID에 포함하는 비공개 런처가 이끌며, 오래된 워커 조정은 세 가지가 모두 일치할 때만 지속된 그룹을 종료하고, 런처는 종료 전에 잔여 하위 프로세스를 제거합니다.
디스패치 도구(grok_run, grok_review, grok_adversarial_review, grok_rescue)는 기본적으로 background: true입니다. grok_continue는 기본적으로 포그라운드입니다. data.job.id를 저장한 후 jobId로 작업 도구를 호출하세요. 포그라운드 호출(background: false)은 최대 timeoutMs에 10초 유예를 더한 시간 동안 차단된 후 foreground_wait_timeout과 해당 작업 ID를 반환합니다. timeoutMs가 생략되면 종류별 기본값이 사용됩니다. run/continue는 180000, review/rescue는 240000, adversarial_review는 300000이며, 명시적 값은 어느 방향으로도 클램프되지 않습니다. 두 유효 값은 effectiveTimeoutMs / effectiveMaxTurns로 반환됩니다. 백그라운드 작업에 권장되는 리듬은 폴링 루프 대신 하나의 waitMs가 있는 grok_status 후 하나의 grok_result입니다. 이 조합만이 최종적입니다:
data.resultComplete === true내부적으로 완전성은 비어 있지 않은 최종 텍스트와 정상 종료 이벤트도 필요로 하며, grok_review 및 grok_adversarial_review의 경우 최소 하나의 도구 호출이 필요합니다. 아무것도 열지 않은 검토자의 판정은 의견(no_evidence_review)이기 때문입니다. 읽기 전용 종류는 계획 모드에서 실행되며, 셸 실행이 자동으로 거부됩니다. 검토에 필요한 diff 또는 명령 출력을 대상에 인라인으로 포함시키고, 셸 명령 승인이 필요하여 취소된 실행은 대상이 너무 넓었다는 대신 permission_denied_headless로 보고됩니다. 중단 이유는 대소문자 및 구분자에 대해 비구분적으로 정규화되며(end_turn과 EndTurn은 동일한 사실), 원시 값은 outputSummary.stopReason에 보존되며, 호출자는 직접 문자열 일치를 해서는 안 됩니다. 취소된 종료는 cancelled_output으로 반환됩니다. 실제 텍스트 이후 인식되지 않은 중단 이유는 폐기 대신 stopReasonRecognised: false와 경고와 함께 허용됩니다.
모든 비완료 결과는 복구 핸들을 전달합니다. 실패한 포그라운드 호출의 경우 error.details.recovery, grok_result의 경우 data.recovery이며, 형태는 { jobId, grokSessionId, partialTextChars, suggested: { tool: "grok_finalize", args }, fallback: { tool: "grok_continue", args } }입니다. 핸들은 주어진 대로 실행 가능합니다. suggested는 단일 호출 복구이고, fallback은 grok_continue만 사용하는 호출자를 위해 동일한 내용을 풀어서 설명한 것입니다(maxTurns: 1과 grok_finalize 프롬프트 포함). 둘 다 단축된 답변을 요구하지 않습니다. max_turns_reached 및 취소되거나 시간 초과된 실행에 대한 해결책은 해당 작업 ID로 grok_finalize를 호출하거나, 동일한 세션을 maxTurns: 1로 계속하고 Grok에게 도구 사용을 중단하고 지금 최종 답변을 내보내라고 지시하는 프롬프트를 수동으로 호출하는 것입니다. 대상을 좁히거나, maxTurns를 높이거나, 작업을 다시 실행하지 마십시오. 부분 답변은 절대 파괴되지 않으며, error.details.finalTextRef는 작업 ID이고, grok_result는 resultComplete 값과 관계없이 캡처된 전체 텍스트를 반환합니다.
resultComplete는 자체적으로 잘림을 설명합니다. outputTruncated는 공유 캡처 창이 넘쳤음을 의미하며(일반적으로 도구 호출 에코), textTruncated는 답변 텍스트가 삭제되었음을 의미하며 완전성을 무효화하는 플래그입니다. 과도한 크기의 도구 페이로드는 캡처 시 생략되며 available_commands 페이로드는 삭제됩니다. 플러그인 개발을 위해 공급업체 스트림을 그대로 유지하려면 GROK_PLUGIN_RAW_CAPTURE=1을 설정하세요.
data.finalText를 사용하세요. 부분 상태는 진단 전용이며, 원시 토큰별 로그 테일은 grok_result가 includeRawTail: true로 호출된 경우에만 반환됩니다. 워커는 답변을 추가 전용 <id>.final.txt 원장에, 스트림 사실을 <id>.summary.json에 보관하므로 grok_result는 원시 스트림을 다시 구문 분석하는 대신 해당 원장에서 답변을 제공하고, grok_status는 동일한 파일에서 진행 상황을 읽습니다. 터미널 작업 아티팩트는 7일 동안 보관되며 기회적으로 정리됩니다.
0.1에서 업그레이드
업그레이드 전에 0.1 백그라운드 작업을 완료하거나 취소하세요.
0.2는 이전
<workspace>/.grok-plugin-codex/jobs레코드를 스캔하거나 신뢰하지 않습니다.이전 작업 공간 디렉토리는 사용자의 작업 공간에 속하므로 자동으로 제거되지 않습니다.
호출별 실행 파일 선택, 호출자가 선택한 내보내기 파일, 암시적 검토 대상 및 작업 제어
cwd가 제거되었습니다.
개인정보 보호 경계
플러그인은 숨겨진 Codex 컨텍스트, 시스템/개발자 메시지, 추론, 임의 도구 출력, 비밀 또는 자격 증명을 프롬프트에 복사하지 않습니다. 호출자가 명시적으로 제공한 민감한 텍스트를 수정할 수는 없습니다. docs/privacy.md를 참조하세요.
개발
npm install
npm run check
git diff --check선택적 인증 호출:
npm run smoke:live-grok런타임 스키마와 테스트가 권위를 가집니다. 번들된 README/스킬 파일은 설치된 사용자 계약입니다. test/contract-drift.test.ts 및 MCP 스모크는 제거된 인수나 일치하지 않는 버전이 다시 나타나는 것을 방지합니다.
docs/development.md 및 docs/verification.md를 참조하세요.
프로젝트 정책
Available Tools
12 toolsgrok_adversarial_reviewGrok Adversarial ReviewB
Ask Grok for a bounded failure-mode review with at most 5 findings.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory for Grok. Defaults to the MCP server cwd. | |
| model | No | Grok model ID to pass with -m/--model. | |
| target | No | Review target. Defaults to current working tree. | |
| grokBin | No | Explicit Grok binary path. Defaults to GROK_BIN, ~/.grok/bin/grok, ~/.local/bin/grok, Homebrew paths, then PATH. | |
| maxTurns | No | Pass --max-turns. | |
| timeoutMs | No | ||
| background | No | Run as a background job using --output-format streaming-json. | |
| noSubagents | No | Pass --no-subagents. | |
| alwaysApprove | No | Pass --always-approve only when explicitly true. | |
| reasoningEffort | No | Pass --reasoning-effort only for non-default models where the plugin does not know it is unsupported. | |
| disableWebSearch | No | Pass --disable-web-search. | |
| allowCodexPrivatePaths | No | Allow prompts that mention Codex private runtime paths such as ~/.codex. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden of disclosing behavioral traits. It only mentions a limit of 5 findings, leaving unclear whether the tool is read-only, what side effects occur, or how background execution (parameter 'background') affects behavior. Essential safety details are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 12 words, front-loading the action and key constraint ('at most 5 findings'). Every word carries weight; it is maximally concise without sacrificing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, 12 parameters, and the complexity of invoking an external binary, the description is too sparse. It does not explain what constitutes a 'failure-mode review,' how findings are presented, error handling, or how parameters like 'background' or 'model' affect behavior. Much needed context is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (92%), so the baseline is 3. The description adds no additional parameter context beyond the overall purpose, but the schema already documents most parameters well. The description does not compensate for the uncovered ~8% or enrich parameter meanings.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool asks Grok for a 'bounded failure-mode review with at most 5 findings,' specifying a distinct verb ('Ask') and resource type. It distinguishes itself from the sibling tool 'grok_review' by emphasizing boundedness and failure-mode focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for adversarial or security-related failure analysis, and the 'bounded' qualifier hints at scenarios needing limited findings. However, it lacks explicit guidance on when to use this versus sibling tools like 'grok_review' or 'grok_run', and does not mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grok_cancelCancel Grok JobC
Cancel a running background Grok job.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | ||
| jobId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose behavioral traits. It only states the action but omits side effects (e.g., whether the job is terminated or can be resumed), permission requirements, or impact on other jobs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at one sentence, but it lacks structure and fails to include critical details. It earns a middle score for brevity without completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters, no output schema, and no annotations, the description is insufficient. It does not cover prerequisites, return behavior, or error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description adds no meaning to the parameters. It does not explain 'cwd' or how to obtain 'jobId,' leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Cancel' and the resource 'a running background Grok job,' which is distinct from sibling tools like grok_run or grok_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, nor when not to use it. For example, it doesn't mention whether cancel requires the job to be running or if it works on queued jobs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grok_checkCheck GrokC
Discover Grok CLI, run grok --version, and detect login/model availability with grok models.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory for Grok. Defaults to the MCP server cwd. | |
| model | No | Grok model ID to pass with -m/--model. | |
| grokBin | No | Explicit Grok binary path. Defaults to GROK_BIN, ~/.grok/bin/grok, ~/.local/bin/grok, Homebrew paths, then PATH. | |
| maxTurns | No | Pass --max-turns. | |
| timeoutMs | No | ||
| background | No | Run as a background job using --output-format streaming-json. | |
| noSubagents | No | Pass --no-subagents. | |
| alwaysApprove | No | Pass --always-approve only when explicitly true. | |
| includeModels | No | ||
| reasoningEffort | No | Pass --reasoning-effort only for non-default models where the plugin does not know it is unsupported. | |
| disableWebSearch | No | Pass --disable-web-search. | |
| allowCodexPrivatePaths | No | Allow prompts that mention Codex private runtime paths such as ~/.codex. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose behavioral traits such as read-only nature, side effects, or authentication needs. The actions described (run, detect) imply reading but are not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but lacks structure. It fails to prioritize key information or provide a clear summary upfront.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 12 parameters, no output schema, and 12 sibling tools, the description is insufficient. It does not explain how parameters affect behavior, what the output is, or how this tool fits into the broader toolset.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 83% schema description coverage, the schema already describes most parameters. The tool description adds no additional parameter context, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description lists specific actions (Discover CLI, run version, detect model availability), but it is vague about the overall purpose and does not distinguish this tool from siblings like grok_models, which also deals with model detection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as grok_models or grok_run. The description lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grok_continueContinue Grok SessionB
Continue a Grok session with --resume or, only when explicitly requested, --continue.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory for Grok. Defaults to the MCP server cwd. | |
| model | No | Grok model ID to pass with -m/--model. | |
| prompt | Yes | Prompt to send while continuing the Grok session. | |
| grokBin | No | Explicit Grok binary path. Defaults to GROK_BIN, ~/.grok/bin/grok, ~/.local/bin/grok, Homebrew paths, then PATH. | |
| maxTurns | No | Pass --max-turns. | |
| sessionId | No | ||
| timeoutMs | No | ||
| background | No | Run as a background job using --output-format streaming-json. | |
| noSubagents | No | Pass --no-subagents. | |
| alwaysApprove | No | Pass --always-approve only when explicitly true. | |
| continueLatest | No | ||
| reasoningEffort | No | Pass --reasoning-effort only for non-default models where the plugin does not know it is unsupported. | |
| disableWebSearch | No | Pass --disable-web-search. | |
| allowCodexPrivatePaths | No | Allow prompts that mention Codex private runtime paths such as ~/.codex. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only mentions command-line flags without explaining side effects, return values, permissions, or whether the operation is destructive. This is insufficient for a tool with 14 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise but lacks structure. Given the tool's complexity (14 parameters), it could include more organized information such as usage patterns or prerequisites without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 14 parameters, no output schema, and no annotations. The description does not cover return behavior, error conditions, or whether the session runs synchronously. This incompleteness leaves the agent with insufficient context to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high (79%), so the baseline is 3. The description adds modest value by clarifying that '--continue' should be used only when explicitly requested, likely referring to the 'continueLatest' parameter. However, many parameters remain unaddressed, and the description does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's purpose: continuing a Grok session, using '--resume <sessionId>' or '--continue'. It distinguishes from likely sibling 'grok_run' (which starts a new session) through the verb 'continue', though it does not explicitly name the alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies using '--resume <sessionId>' or '--continue' only when explicitly requested, giving some usage guidance. However, it lacks explicit when-not-to-use advice or references to alternative tools like 'grok_run' for new sessions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grok_exportExport Grok SessionB
Wrap grok export and return Markdown from stdout by default.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory for Grok. Defaults to the MCP server cwd. | |
| grokBin | No | Explicit Grok binary path. Defaults to GROK_BIN, ~/.grok/bin/grok, ~/.local/bin/grok, Homebrew paths, then PATH. | |
| sessionId | Yes | ||
| timeoutMs | No | ||
| outputFile | No | Optional filesystem output path. Omit to return Markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals that the tool wraps a shell command and returns stdout as Markdown, and mentions an optional output file. However, it does not disclose side effects, required permissions, or what happens in error cases. Given no annotations, this is moderately transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the core function. No unnecessary words, though it could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 5 parameters and no output schema, the description provides minimal completeness. It explains the default return behavior but omits details like error handling or default values for optional parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers 60% of parameters with descriptions. The tool description does not add any new semantic information beyond what is in the schema, so the baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool exports a Grok session and returns Markdown. The verb 'export' and resource 'Grok session' are specific, but it does not distinguish from siblings like 'grok_run' or 'grok_result'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. The description does not provide context for when exporting is appropriate or mention any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grok_modelsList Grok ModelsD
Return raw and parsed grok models output.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory for Grok. Defaults to the MCP server cwd. | |
| model | No | Grok model ID to pass with -m/--model. | |
| grokBin | No | Explicit Grok binary path. Defaults to GROK_BIN, ~/.grok/bin/grok, ~/.local/bin/grok, Homebrew paths, then PATH. | |
| maxTurns | No | Pass --max-turns. | |
| timeoutMs | No | ||
| background | No | Run as a background job using --output-format streaming-json. | |
| noSubagents | No | Pass --no-subagents. | |
| alwaysApprove | No | Pass --always-approve only when explicitly true. | |
| reasoningEffort | No | Pass --reasoning-effort only for non-default models where the plugin does not know it is unsupported. | |
| disableWebSearch | No | Pass --disable-web-search. | |
| allowCodexPrivatePaths | No | Allow prompts that mention Codex private runtime paths such as ~/.codex. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only says 'Return', which weakly implies a read operation, but fails to explain side effects, authorization needs, rate limits, or other important behaviors for a tool with many parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but under-specifies the tool. It lacks necessary detail, making it more inadequate than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is insufficient for a tool with 11 parameters and no output schema. It does not explain return values, parameter interactions, or how the raw/parsed outputs differ.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 91%, so the schema already describes parameters well. The description adds no additional meaning beyond the schema, meeting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Return raw and parsed grok models output' is vague. While the title suggests listing models, the description does not clearly state that it lists available models, nor does it distinguish from sibling tools like grok_run or grok_check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives. There is no mention of context, prerequisites, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grok_rescueGrok RescueA
Ask Grok for an independent read-only diagnosis and minimal path forward.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory for Grok. Defaults to the MCP server cwd. | |
| model | No | Grok model ID to pass with -m/--model. | |
| grokBin | No | Explicit Grok binary path. Defaults to GROK_BIN, ~/.grok/bin/grok, ~/.local/bin/grok, Homebrew paths, then PATH. | |
| problem | Yes | Problem statement and visible context to diagnose. | |
| maxTurns | No | Pass --max-turns. | |
| timeoutMs | No | ||
| background | No | Run as a background job using --output-format streaming-json. | |
| noSubagents | No | Pass --no-subagents. | |
| alwaysApprove | No | Pass --always-approve only when explicitly true. | |
| reasoningEffort | No | Pass --reasoning-effort only for non-default models where the plugin does not know it is unsupported. | |
| disableWebSearch | No | Pass --disable-web-search. | |
| allowCodexPrivatePaths | No | Allow prompts that mention Codex private runtime paths such as ~/.codex. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full transparency burden. It clearly communicates that the tool is read-only and provides a 'minimal path forward,' indicating no destructive actions. It does not elaborate on behaviors like background execution or timeouts (covered in parameters), but the core behavioral trait is well-disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that immediately conveys the core purpose. It is front-loaded and contains no redundant or extraneous words. Every part of the sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 12 parameters, 1 required, and no output schema, the description is minimal. It does not explain what the output looks like (e.g., text diagnosis) or how 'minimal path forward' is structured. For a crisis-oriented tool ('rescue'), more context on expected output or success criteria would be beneficial. Adequate but with gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 92%, so the schema already documents 11 of 12 parameters well. The description adds no parameter-specific information beyond the schema. Baseline 3 is appropriate since the description does not compensate for the 8% undocumented parameter (timeoutMs lacks a description in schema) nor adds extra meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Ask Grok for an independent read-only diagnosis and minimal path forward.' It uses a specific verb ('Ask'), a specific resource ('Grok'), and qualifies the interaction as read-only and minimal. This distinguishes it from sibling tools like grok_run (full execution) or grok_review (comprehensive review).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for quick, safe diagnosis without modifications ('read-only'). However, it does not explicitly state when to use this tool over alternatives or provide exclusion criteria. Given the context of siblings, the guidance is clear enough but lacks explicit when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grok_resultGrok Job ResultC
Read stdout/stderr tails and parsed outputSummary for a background Grok job.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | ||
| jobId | Yes | ||
| maxChars | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read operation but lacks details on side effects, permissions, error states (e.g., job not found), or limits. Without annotations, the description carries the full burden and fails to disclose important behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundancy. However, it is overly brief and omits critical information, making it less effective despite being short.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 3 parameters, no output schema, and no annotations, the description is insufficient. It does not explain the output format, what 'parsed outputSummary' entails, or how maxChars affects results, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not explain any of the three parameters (cwd, jobId, maxChars). It provides no semantic meaning beyond what the schema's property names imply.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Read' and resources 'stdout/stderr tails' and 'parsed outputSummary' for a background Grok job. It effectively distinguishes from sibling tools like grok_run or grok_status by specifying it retrieves results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as grok_status or grok_check. The description does not mention prerequisites like job completion or that this should be used after grok_run.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grok_reviewGrok ReviewC
Ask Grok for a bounded findings-first review of a target such as the current diff.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory for Grok. Defaults to the MCP server cwd. | |
| model | No | Grok model ID to pass with -m/--model. | |
| target | No | Review target. Defaults to current working tree. | |
| grokBin | No | Explicit Grok binary path. Defaults to GROK_BIN, ~/.grok/bin/grok, ~/.local/bin/grok, Homebrew paths, then PATH. | |
| maxTurns | No | Pass --max-turns. | |
| timeoutMs | No | ||
| background | No | Run as a background job using --output-format streaming-json. | |
| noSubagents | No | Pass --no-subagents. | |
| alwaysApprove | No | Pass --always-approve only when explicitly true. | |
| reasoningEffort | No | Pass --reasoning-effort only for non-default models where the plugin does not know it is unsupported. | |
| disableWebSearch | No | Pass --disable-web-search. | |
| allowCodexPrivatePaths | No | Allow prompts that mention Codex private runtime paths such as ~/.codex. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It only mentions 'bounded findings-first review' without explaining side effects, authorization needs, output format, or whether the tool runs synchronously or in background.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant words. It is concise, but could benefit from additional context without losing efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 12 parameters, no output schema, and no behavioral transparency. The description fails to explain return values, execution behavior, or how to use the results, which is insufficient for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (92%), so by baseline, the description need not detail parameters. However, the description adds no context about parameter significance or defaults, leaving the agent to rely solely on the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Ask Grok for a bounded findings-first review' and provides an example target ('the current diff'). It distinguishes the tool as a review tool among siblings, but the term 'bounded findings-first' may not be universally clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use grok_review versus sibling tools like grok_check, grok_run, or grok_adversarial_review. The description does not specify prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grok_runRun GrokA
Run a Grok prompt in foreground JSON mode or background streaming-json mode.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory for Grok. Defaults to the MCP server cwd. | |
| model | No | Grok model ID to pass with -m/--model. | |
| prompt | Yes | Prompt to send to Grok. Put task text here; do not ask Grok to read Codex private runtime paths such as ~/.codex unless explicitly authorized. | |
| grokBin | No | Explicit Grok binary path. Defaults to GROK_BIN, ~/.grok/bin/grok, ~/.local/bin/grok, Homebrew paths, then PATH. | |
| maxTurns | No | Pass --max-turns. | |
| timeoutMs | No | ||
| background | No | Run as a background job using --output-format streaming-json. | |
| noSubagents | No | Pass --no-subagents. | |
| alwaysApprove | No | Pass --always-approve only when explicitly true. | |
| reasoningEffort | No | Pass --reasoning-effort only for non-default models where the plugin does not know it is unsupported. | |
| disableWebSearch | No | Pass --disable-web-search. | |
| allowCodexPrivatePaths | No | Allow prompts that mention Codex private runtime paths such as ~/.codex. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It mentions foreground and background modes but does not disclose side effects, authentication needs, rate limits, or what happens during execution. Minimal behavioral context beyond schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, zero wasted words, front-loaded with action and resource. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 12 parameters (though well-documented in schema), no output schema, and no mention of how to retrieve results or handle background jobs, the description is incomplete. It lacks guidance on output format, result retrieval via sibling tools, and error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 92%, so the schema already documents most parameters. The description adds no new meaning beyond what schema provides; the background mode is implied but not elaborated. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (run) and resource (Grok prompt), and distinguishes between foreground JSON mode and background streaming-json mode, which differentiates it from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies two modes but provides no explicit guidance on when to use each mode or when to prefer this tool over siblings like grok_continue or grok_check. No when-not-to-use or alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grok_sessionsGrok SessionsC
Wrap grok sessions list/search and return raw output.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory for Grok. Defaults to the MCP server cwd. | |
| limit | No | ||
| query | No | ||
| grokBin | No | Explicit Grok binary path. Defaults to GROK_BIN, ~/.grok/bin/grok, ~/.local/bin/grok, Homebrew paths, then PATH. | |
| timeoutMs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only mentions returning raw output, but does not disclose side effects, authentication requirements, or rate limits. Lack of behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise, but lacks structure. It could be improved with sections or bullet points. Adequate but not exceptional.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters, no output schema, and no annotations, the description is too brief. It does not explain what a session is, what raw output contains, or how parameters affect behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40% (2 of 5 parameters have descriptions). The tool description does not add any parameter meaning beyond what the schema provides, failing to compensate for low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states it wraps grok sessions list/search and returns raw output, but it's ambiguous whether it lists, searches, or both. It does not distinguish from sibling tools like grok_status or grok_check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description does not mention prerequisites or use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grok_statusGrok Job StatusC
Read a background Grok job record.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | ||
| jobId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It says 'Read', implying idempotent and non-destructive behavior, but does not disclose any side effects, authentication requirements, or rate limits. It lacks details about what happens if the job does not exist or how recent the data is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise. However, it is too brief and lacks structure. It could be expanded to include key details without becoming verbose. The sentence earns its place but misses opportunities to add value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and annotations, the description should explain what the tool returns (e.g., job status, progress). It does not, leaving the agent to guess the response format. For a simple read tool, completeness is lacking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any parameters. There are two parameters (cwd and jobId) with no meaning added beyond the schema's type and required flag. The description should clarify, for example, the format of jobId or the role of cwd.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Read a background Grok job record', which uses a specific verb and resource. However, 'background Grok job record' is somewhat generic; a job status is implied. It distinguishes from sibling tools like grok_run or grok_cancel, but could be more explicit about what a 'job record' entails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. Given sibling tools like grok_check or grok_result, there is no context about the typical workflow or conditions under which grok_status should be called first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
12 tool updates
v0.1.0- First observed
grok_adversarial_review - First observed
grok_cancel - First observed
grok_check - First observed
grok_continue - First observed
grok_export - First observed
grok_models - First observed
grok_rescue - First observed
grok_result - First observed
grok_review - First observed
grok_run - First observed
grok_sessions - First observed
grok_status
TDQS
Scored across 12 tools
Each tool has a clearly distinct purpose, from running prompts to managing jobs and sessions. Overlaps like review/adversarial_review are differentiated by descriptions.
All tools follow the consistent 'grok_verb' or 'grok_noun' snake_case pattern, making it easy to predict tool names.
12 tools is well-scoped for a CLI wrapper, covering setup, execution, session management, and review without being excessive.
The tool surface covers the full lifecycle: check, run, manage sessions, review, and retrieve results. No obvious missing operations for the domain.
Maintenance
Related MCP Connectors
Repository knowledge graph MCP server for codebase understanding and debugging.
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Remote MCP server exposing your Node Command fleet (files, shell, processes, browser) to AI hosts.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server that wraps the Grok CLI to enable code review, adversarial testing, and chat with xAI's Grok model, integrating into any MCP host as a peer reviewer, adversary, and consultant.482 npm11MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that wraps the local Grok Build CLI, enabling Codex to delegate code reviews, bounded coding tasks, and setup diagnostics to Grok for a second opinion or parallel processing.5Apache 2.0
- FlicenseAqualityBmaintenanceMCP server that exposes grok-ask and grok-workflow tools, enabling Claude Code to delegate to Grok for consult/worker tasks and run adversarial multi-agent workflow panels.3-
- AlicenseNot gradedqualityCmaintenanceEnables Grok Build to orchestrate the local Codex CLI for code reviews, adversarial reviews, task rescue, session transfer, and background job management through MCP tools.1Apache 2.0