Skip to main content
Glama
Lovelymili

codex-mcp-thirdparty

by Lovelymili

codex-mcp-thirdparty

Bring Codex into Claude Code. Keep the MCP connection independent of Codex updates.

Python Dependencies Transport License: MIT

English · 简体中文

Quick start · Tools · Update resilience · Configuration · Troubleshooting

An independent MCP server that lets Claude Code start Codex tasks, continue conversations, and inspect runtime health through four tools. It uses your existing Codex CLI installation, login, and model configuration.

OpenAI has removed codex mcp-server. This project implements its own MCP interface over codex exec and codex exec resume, so the client-facing connection does not depend on that removed command.

Community-maintained software; not affiliated with OpenAI or Anthropic.

Why use it?

  • Keep familiar tools. Start with codex, continue with codex-reply, and recover conversation IDs with codex-sessions.

  • Continue across restarts. Preserve the conversation, project directory, sandbox, and selected model options when Claude or the MCP process restarts.

  • Handle CLI updates. Detect executable changes, check required capabilities, and fall back to an independently pinned standalone runtime when the primary runtime fails those checks.

  • Run long tasks. Configurable timeouts, progress notifications, concurrent conversations, and process-group cleanup on cancellation.

  • Use the account you already have. No additional API key or separate model subscription is required by the bridge. Normal Codex usage limits still apply.

  • Install without a dependency stack. Python's standard library is the only runtime dependency. The source installer needs neither pip nor npm.

Related MCP server: Codex MCP Server

Quick start

Prerequisites

  • Linux or WSL2 and Python 3.10+. Native Windows is not supported; macOS has not been verified.

  • A working Codex CLI installation with codex exec / codex exec resume support and an authenticated account.

  • Claude Code, or another client that supports MCP over stdio.

Check your Codex installation first:

codex --version
codex login status

Install and connect

git clone https://github.com/Lovelymili/codex-mcp-thirdparty.git
cd codex-mcp-thirdparty
python3 install.py

~/.local/bin/codex-mcp-thirdparty doctor
claude mcp get codex

Restart Claude Code. The codex server should appear as Connected in /mcp.

The installer copies the server into ~/.local/share/codex-mcp-thirdparty, creates a launcher in ~/.local/bin, and registers it as codex in ~/.claude.json. Existing configuration is backed up before replacing that server entry. Other server entries and settings are preserved. The installed copy works independently of the cloned repository.

If ~/.local/bin is on your PATH, you can use codex-mcp-thirdparty without the full path. Claude uses an absolute launcher path, so it does not depend on your shell's PATH.

Try it in Claude

Use Codex to review the project at /absolute/path/to/project. Start in read-only mode and explain the most important findings. Keep the thread ID for follow-up work.

For authorized edits:

Continue that Codex conversation. Use workspace-write, fix the issue we agreed on, and run the relevant checks.

Enable runtime fallback

After a successful Codex task, save your working standalone installation:

~/.local/bin/codex-mcp-thirdparty pin

This is an explicit, local operation. It copies the full standalone distribution, including helper executables and resources, into the bridge's state directory. It does not copy credentials or download another version. Automatic fallback is available only after a successful pin.

pin currently supports official standalone layouts containing bin/codex and codex-package.json. Other installation formats can run tasks if capability checks pass, but cannot be pinned by this command.

How it works

flowchart LR
    Client[Claude Code / MCP client] -->|stdio JSON-RPC| Bridge[codex-mcp-thirdparty]
    Bridge -->|exec / resume| Current[Current Codex CLI]
    Bridge -. primary capability check fails .-> Pinned[Pinned standalone runtime]
    Current --> Account[Existing Codex account]
    Pinned --> Account

The MCP process owns the client connection. Each task launches Codex as a separate process; prompts travel over stdin, and responses come from JSONL events plus the final-response file. When available, --no-daemon avoids coupling these tasks to a shared app-server daemon.

Authentication, model requests, and full conversation history remain managed by Codex.

Tools

Tool

What it does

codex

Starts a new conversation and returns its threadId, response, runtime information, elapsed time, and usage when available.

codex-reply

Continues a conversation by threadId. Also accepts the legacy conversationId field.

codex-status

Reports runtime compatibility, login status, pinned fallback, configuration locations, and active tasks without a model request.

codex-sessions

Lists recent bridge conversations so you can recover their IDs. Accepts limit from 1 to 100.

Start a task

Arguments for codex:

{
  "prompt": "Review the request validation logic and explain any defects.",
  "cwd": "/absolute/path/to/project",
  "sandbox": "read-only",
  "timeout_seconds": 600
}

Continue a conversation

Arguments for codex-reply; replace the placeholder with the ID returned by codex:

{
  "threadId": "<threadId returned by codex>",
  "prompt": "Implement the agreed fix and check it.",
  "sandbox": "workspace-write"
}

Task options

Both task tools accept these options:

Argument

Purpose

Default

prompt

Task or follow-up instructions.

Required

cwd

Existing absolute project directory.

Server directory; original directory on replies

sandbox

read-only, workspace-write, or explicitly requested danger-full-access.

read-only; inherited on replies

model

Codex model override.

Existing Codex configuration; inherited on replies

reasoning_effort

A reasoning level supported by the selected model.

Existing configuration; inherited on replies

timeout_seconds

Per-call limit, from 1 to 86,400 seconds.

3,600

images

Local image paths; relative paths resolve against cwd.

None

add_dirs

Additional absolute writable directories for workspace-write.

None; inherited on replies

config

Supported per-call Codex configuration overrides.

Existing configuration; most overrides inherited on replies

approval-policy

Non-interactive execution policy; only never is accepted.

never

config accepts model_reasoning_effort, model_reasoning_summary, model_verbosity, model_context_window, model_auto_compact_token_limit, service_tier, web_search, and developer_instructions. Model-specific values are validated by Codex. Explicit reasoning_effort takes precedence over the corresponding config value, including a previously saved explicit value.

Replies restore saved options unless overridden. Pass add_dirs: [] to clear additional writable directories. Local image attachments are supplied per call. Developer instructions are not duplicated into the bridge's metadata files; pass them again when they are needed as a per-call override.

Update resilience

The bridge and Codex have separate update lifecycles:

  1. Stable MCP entrypoint. Codex updates do not replace the bridge's installed files or Claude's launcher configuration.

  2. Capability checks before execution. The bridge detects changes to the resolved executable and checks the required exec / resume options. Compatible updates are picked up without restarting the bridge.

  3. Independent fallback. If the primary executable is missing, cannot pass the launch checks, or lacks required options, the bridge tries the pinned copy. Removing the original release directory does not remove that copy.

  4. No automatic task replay. Once a task starts, failures return to the client. The bridge does not rerun a task that may already have changed files.

The fallback snapshot changes only when you run pin. The command checks CLI capabilities; it does not run a model request. Validate a new runtime through a real task before pinning it. Older snapshots are retained for manual recovery and consume disk space.

The initial release was verified with Codex CLI 0.163.0 and Claude Code 2.1.309 on Linux/WSL. Capability detection helps with local installation and CLI changes; authentication, model availability, configuration formats, or event protocols can still require maintenance. An older runtime may also be unable to resume a session written by a newer incompatible version.

Configuration

The installer creates ~/.config/codex-mcp-thirdparty/config.json:

{
  "codex_command": "/absolute/path/to/codex",
  "default_sandbox": "read-only",
  "timeout_seconds": 3600,
  "max_parallel": 4,
  "progress_interval_seconds": 10
}

Use the stable Codex launcher path, not a path inside a numbered release directory. The installer discovers the executable automatically; --codex /path/to/codex overrides that choice.

Setting

Behavior

codex_command

Executable path or command name. The installer normally records an absolute launcher path.

default_sandbox

Initial sandbox for new conversations.

timeout_seconds

Default task duration, from 1 to 86,400 seconds.

max_parallel

Active Codex tasks per MCP process, from 1 to 32.

progress_interval_seconds

Notification interval, from 1 to 60 seconds, when the client supplies a progress token.

Environment overrides:

  • CODEX_MCP_CONFIG: bridge configuration file.

  • CODEX_MCP_STATE_DIR: logs, session metadata, configuration backups, and pinned runtimes.

The default state directory is ~/.local/state/codex-mcp-thirdparty. Earlier local installations using codex-mcp-bridge retain their existing configuration and state locations when detected. doctor reports the locations actually in use. Reconnect or restart the MCP process after changing bridge settings.

Other MCP clients

Install without changing Claude's configuration:

python3 install.py --no-register

Use this stdio server definition, replacing the executable path with the installed launcher's absolute path:

{
  "mcpServers": {
    "codex": {
      "command": "/home/you/.local/bin/codex-mcp-thirdparty",
      "args": []
    }
  }
}

Set the client's tool timeout to exceed the desired task duration. For Claude Code, the installer sets a server-specific 24-hour-plus-one-minute timeout and enables alwaysLoad for the four tools. The bridge's own default remains one hour. Other clients may use different timeout and discovery settings.

An optional Python package entrypoint is also available with python3 -m pip install . inside an appropriate virtual environment. This installs the command only; it does not register an MCP client. The package has no runtime dependencies, although building it requires setuptools.

Execution and data

  • Tasks default to read-only. Use workspace-write for authorized edits. danger-full-access disables the sandbox and must be selected explicitly.

  • Non-interactive calls use approval_policy="never". Operations requiring interactive approval fail instead of waiting for an approval UI. The bridge does not automatically escalate permissions.

  • Concurrent replies to the same conversation are blocked by a file lock, including across separate bridge processes. Independent conversations can run concurrently.

  • Timeouts, client cancellation, and client disconnects terminate the task's process group. Changes already made remain on disk; inspect them before retrying.

  • Prompts use stdin instead of shell interpolation or command-line arguments. The bridge's rotating log records operational metadata rather than prompts or replies.

  • Bridge session metadata is stored in private files. Codex maintains its own history and authentication data under its normal rules. Temporary response files are removed after each completed or handled failed call.

Troubleshooting

Symptom

What to check

Claude still launches codex mcp-server

Rerun python3 install.py, then restart Claude. Check for a project-level codex entry overriding the user-level registration.

MCP connects, but a task fails

Run codex-mcp-thirdparty doctor. MCP connectivity and backend authentication are separate checks.

Codex executable is not found

Reinstall with --codex /absolute/path/to/codex, or correct codex_command.

Login is missing or expired

Run codex login, then rerun doctor.

pin reports an unsupported layout

Pinning requires the standalone distribution layout. The bridge can still run compatible installations without a pinned fallback.

A reply reports an active turn

Wait for the current turn or cancel it from the client. Session locks are released when the owning process exits.

A long task ends early

Check both timeout_seconds and the MCP client's timeout. Progress notifications do not extend Claude's hard timeout.

A task was interrupted

Inspect changes, recover its ID with codex-sessions, and continue explicitly with codex-reply.

Diagnostics:

~/.local/bin/codex-mcp-thirdparty doctor
claude mcp get codex

doctor does not make a model request. The state directory contains bridge.log, with three rotated backups, plus sessions/, runtimes/, fallback.json, and installation backups.

Updating and uninstalling

Update this bridge from your clone:

git pull --ff-only
python3 install.py

Restart Claude Code to load the installed copy. Existing bridge settings and state are retained. You can update Codex separately; refresh its fallback with pin after verifying the new runtime.

To disconnect from Claude:

claude mcp remove codex -s user

Installed files and state are kept for recovery. Remove the launcher and installed source directory manually if you no longer need them; keep session metadata and pinned runtimes until you have finished any ongoing work.

Contributing

Issues and focused pull requests are welcome. Include your OS, Python/Codex/Claude versions, the command that failed, and redacted diagnostics. See CONTRIBUTING.md.

License

MIT © Lovelymili. Codex and Claude Code remain subject to their own licenses and service terms.

Available Tools

4 tools
codexA
Destructive

Run a task in a new Codex conversation. Returns threadId for codex-reply. Uses your existing Codex login and model. Set cwd to the project; use sandbox=workspace-write for edits. Long tasks emit progress. A failed/cancelled task may already have made changes: inspect before retrying.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNoAbsolute project directory. For replies, defaults to the original directory.
modelNoOptional model; otherwise use your existing Codex configuration.
configNoPer-call Codex overrides; does not edit global configuration.
imagesNoExisting local image paths.
promptYesTask or follow-up prompt. May include code and newlines.
sandboxNoDefault read-only. Use workspace-write for authorized edits. danger-full-access disables the sandbox and must be explicitly requested.
add_dirsNoAdditional writable directories when sandbox=workspace-write.
approval-policyNoNon-interactive execution cannot show approval prompts; restricted operations fail instead of hanging.
timeout_secondsNoDefault 3600 seconds. Cancellation stops the running process group.
reasoning_effortNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructive and open-world, and the description adds real value beyond them: it discloses inherited Codex login/model, incremental progress on long tasks, and — most importantly — that a failed or cancelled run may still have mutated files. What is missing is any sense of return payload beyond threadId or of concurrency/rate behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Five short sentences with the identity, the return value, and the two most consequential settings front-loaded. Every clause carries actionable information; the retry warning is correctly placed last as a caveat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the essentials for a 10-parameter, mutation-capable, no-output-schema tool: what it returns, what it authenticates as, and what safety posture to pick. The nested config object with eight undocumented sub-fields is the one area neither the description nor schema explains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 90%, so the baseline is 3; the description pushes higher by adding selection guidance for sandbox (workspace-write for edits) and cwd (the project directory). It adds nothing for add_dirs, timeout_seconds, images, or reasoning_effort, which the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Run a task in a new Codex conversation") and immediately names the handoff sibling by declaring it returns threadId for codex-reply. An agent can distinguish this from codex-reply and codex-sessions without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete operational guidance: set cwd to the project, use sandbox=workspace-write for edits, and inspect before retrying after a failure. The threadId mention implies the follow-up path through codex-reply, though it never states explicitly when to prefer codex-reply over starting a new conversation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex-replyA
Destructive

Continue a Codex conversation across MCP/Claude restarts. Pass threadId from codex. Legacy conversationId is also accepted. Only one turn may run per conversation.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNoAbsolute project directory. For replies, defaults to the original directory.
modelNoOptional model; otherwise use your existing Codex configuration.
configNoPer-call Codex overrides; does not edit global configuration.
imagesNoExisting local image paths.
promptYesTask or follow-up prompt. May include code and newlines.
sandboxNoDefault read-only. Use workspace-write for authorized edits. danger-full-access disables the sandbox and must be explicitly requested.
add_dirsNoAdditional writable directories when sandbox=workspace-write.
threadIdNo
conversationIdNo
approval-policyNoNon-interactive execution cannot show approval prompts; restricted operations fail instead of hanging.
timeout_secondsNoDefault 3600 seconds. Cancellation stops the running process group.
reasoning_effortNo

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, openWorldHint=true and non-idempotent, so the risk profile is covered upstream. The description adds two genuinely new facts — conversations survive restarts and only one turn may run per conversation (a concurrency constraint) — but says nothing about what gets mutated on disk or how errors surface during a long run.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core purpose followed by the required handle and the concurrency limit. No filler and nothing buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter, nested-config, long-running tool with no output schema, the description never indicates what comes back — the reply text, a new threadId for subsequent turns, or status. The agent can call it, but can't predict or chain the result from the description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%, and the two undocumented parameters (`threadId`, `conversationId`) are precisely the ones the description explains: threadId is obtained from `codex` and conversationId is the legacy form. That is real added meaning beyond the schema, though the description doesn't touch the 12 params overall.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Continue a Codex conversation across MCP/Claude restarts" gives a specific verb (continue) plus resource (Codex conversation), which implicitly separates it from the sibling `codex` (start) and `codex-sessions` (list). It stops short of naming those siblings explicitly, so the differentiation must be inferred.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Pass threadId from codex" tells the agent exactly where the required handle comes from and thus when this tool is the right one, and the legacy `conversationId` fallback is flagged. No explicit exclusion (e.g. "use codex to start a new conversation") is stated, so it's clear context rather than complete routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex-sessionsA
Read-onlyIdempotent

List recent conversations created by this bridge (metadata only) to recover threadId for codex-reply.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world, so safety is covered. The description adds genuine context beyond them: results are metadata only (no message bodies) and the listing is scoped to threads this bridge created. It does not state default size or ordering, leaving a small gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the action and resource, with the qualifier and the downstream use case packed into parenthetical and trailing clauses. Nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, fully annotated, closed-world read with no output schema, the description covers what is returned at a high level (metadata, threadId) and why it exists. Only the pagination/limit behavior an agent would need for large histories is unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single 'limit' parameter has 0% schema description coverage, so the description carries the full burden and says nothing about it — no default page size, no mention of the 1-100 range, no ordering semantics. With low coverage and no compensating text, this is a clear gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('List recent conversations created by this bridge'), scopes it to bridge-created threads, and immediately qualifies the payload as metadata-only. It also names the sibling it feeds (codex-reply), so an agent can distinguish it from codex and codex-status without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'to recover threadId for codex-reply' clause gives an explicit use case and routes the agent to the consuming sibling. There is no explicit exclusion (e.g., when to use codex-status instead), which keeps it short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex-statusA
Read-onlyIdempotent

Check Codex executable, compatibility, login state, fallback runtime, and active tasks without making a model request.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool is read-only, idempotent, non-destructive, and closed-world. The description adds useful behavioral context by enumerating the specific checks performed and clarifying that no model request is made, which is valuable beyond the annotations, though it does not describe the response shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler. Every listed item contributes to explaining what the status check covers.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only status tool with rich annotations, the description gives enough scope to invoke it correctly. The main minor gap is that return values are not described and no output schema exists, but the enumerated checks provide sufficient operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there are no parameter semantics to document. Baseline 4 applies because the schema requires no compensation and the description introduces no misleading parameter behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Check') and a precise set of resources: Codex executable, compatibility, login state, fallback runtime, and active tasks. It is clearly a status/diagnostic tool rather than a task invocation tool, but it does not explicitly differentiate itself from siblings like codex, codex-sessions, or codex-reply.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'without making a model request' implies this tool is for cheap diagnostics before invoking the model, but the description never states when to use it instead of siblings or when not to use it. Usage is inferable rather than explicit.

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.

  1. 4 tool updatesv1.0.0
    • First observedcodex
    • First observedcodex-reply
    • First observedcodex-sessions
    • First observedcodex-status

TDQS

A4.1/5.0

Scored across 4 tools

Disambiguation4/5

Each tool has a distinct role: codex starts a new task, codex-reply continues an existing thread, codex-sessions lists recoverable threads, and codex-status reports health. The only potential confusion is between codex and codex-reply, but the descriptions make the new-vs-continue boundary clear.

Naming Consistency4/5

Names use a consistent codex-prefixed namespace: codex, codex-reply, codex-sessions, codex-status. The bare 'codex' tool does not follow the same suffix pattern as the others, but it reads naturally as the primary action and the overall convention is predictable.

Tool Count5/5

Four tools is well-scoped for a Codex bridge: one to start work, one to continue work, one to recover sessions, and one to diagnose the environment. Each tool earns its place without redundancy.

Completeness4/5

The surface covers the core lifecycle: start a task, continue a thread, list recoverable sessions, and check status. There is no explicit cancel/abort or delete-session tool, which are minor gaps an agent can generally work around.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers