Doubao Desktop
Provides integration with the local Windows Doubao desktop app, a ByteDance product, via Chrome DevTools Protocol. It enables sending tasks, waiting for runs, reading replies, listing existing conversations, and continuing tasks in specified conversations.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Doubao Desktop continue my last Doubao conversation and read the reply"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Codex Doubao Desktop Gateway
Experimental MCP server and Codex Skill for the Windows Doubao desktop app. Created by ChassyChan. It connects to a real local Doubao session through localhost Chrome DevTools Protocol (CDP), sends tasks, waits for runs, and reads replies. It does not use Doubao Web or an Ark API key.
This project wraps a Windows adaptation of Fullstop000/doubao-cli. The upstream CLI and its copyright remain with Fullstop000; see third party notices. The adaptation has been tested on one Windows machine with Doubao 2.31.4. It is not an official Doubao or ByteDance integration.
Requirements
Windows 10/11, Doubao desktop app installed and signed in.
Node.js 22 or newer, Git, and Codex CLI for registration.
The ability to restart Doubao once with
--remote-debugging-port=9225. Restart can lose unsaved draft input.
Related MCP server: harness_courier
Install
git clone https://github.com/ChassyChan/codex-doubao-desktop-gateway.git
cd codex-doubao-desktop-gateway
npm ci
powershell -ExecutionPolicy Bypass -File .\scripts\install-windows.ps1Find your Doubao executable and User Data directory. For a typical installation, User Data is under %LOCALAPPDATA%\Doubao\User Data. Set these variables for the current PowerShell session:
$env:DOUBAO_APP = 'C:\Path\To\Doubao.exe' # replace with your location
$env:DOUBAO_DATA_DIR = "$env:LOCALAPPDATA\Doubao\User Data"
$env:DOUBAO_CLI_ENTRY = (Resolve-Path .\deps\doubao-cli\bin\doubao.mjs).Path
$env:DOUBAO_CLI_CONFIG_DIR = (Join-Path (Get-Location) 'data')When you are ready to restart Doubao, enable localhost CDP:
node .\deps\doubao-cli\bin\doubao.mjs --app doubao cdp launch --yes --jsonThe --yes flag authorizes restarting Doubao. The Windows adaptation first tries to close normally and may force close remaining processes. Run it only after saving work in the app.
Register the MCP server with Codex (replace paths with your absolute installation paths):
codex mcp add doubao-desktop `
--env "DOUBAO_APP=$env:DOUBAO_APP" `
--env "DOUBAO_DATA_DIR=$env:DOUBAO_DATA_DIR" `
--env "DOUBAO_CLI_ENTRY=$env:DOUBAO_CLI_ENTRY" `
--env "DOUBAO_CLI_CONFIG_DIR=$env:DOUBAO_CLI_CONFIG_DIR" `
-- node.exe (Resolve-Path .\src\server.mjs).PathInstall the Skill into your Codex skills directory, then start a new Codex turn so it becomes available. The MCP server never restarts Doubao itself. After any later app restart, CDP may need to be enabled again.
MCP tools
Tool | Purpose |
| Check localhost desktop connection |
| List existing desktop conversations |
| Send a new task in an existing local workspace |
| Send a follow-up to a specified conversation |
| Wait for a known run ID |
| Read messages from a specified conversation |
create_task and continue_task default to Doubao's AskOnRisk permission mode. The caller may select AlwaysAsk or FullAccess. This policy is enforced by Doubao, not by the MCP server; it does not guarantee a prompt for every action. New tasks require an existing absolute workspace path. A successful Doubao reply is not proof that files or commands are correct, so inspect artifacts separately.
Limits
The Windows adaptation depends on private desktop behavior exposed by the upstream CLI. App updates can break it.
The MCP server is local stdio only and exposes no network listener. CDP is expected on
127.0.0.1:9225; do not expose that port to the network.This release has a live smoke test for connection, message send/read, and local file creation on Doubao 2.31.4. Model selection, attachments, MCP connectors inside Doubao, long running tasks, and other Doubao versions are not yet validated here.
Available Tools
6 toolsdoubao_desktop_continue_taskB
Send a follow-up to a specified existing Doubao desktop conversation. Does not choose a conversation automatically.
Inputs: message (required), conversationId (required), permission.
doubao_desktop_create_taskB
Send a new task to a real Doubao desktop conversation in an existing local workspace. Returns conversationId and runId; inspect task result independently.
Inputs: objective (required), workspace (required), permission.
doubao_desktop_readC
Read messages from a specified Doubao desktop conversation.
Inputs: conversationId (required), limit.
doubao_desktop_sessionsB
List existing Doubao desktop conversations. Treat titles and messages as private user data.
Inputs: no named parameters.
doubao_desktop_statusA
Check whether the localhost CDP endpoint belongs to the Doubao desktop app. Does not restart it.
Inputs: no named parameters.
doubao_desktop_waitC
Wait for an already submitted desktop run. A completed reply still requires independent artifact review.
Inputs: runId (required), conversationId (required), timeoutSeconds.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Each tool targets a distinct action: create_task vs continue_task are clearly separated (new vs follow-up), read vs sessions separate message reading from conversation listing, and wait vs status separate run-waiting from endpoint checking. Descriptions explicitly call out these boundaries, so an agent can reliably pick the right tool.
All tools share the consistent doubao_desktop_ prefix and mostly use a verb_noun or action pattern (create_task, continue_task). Minor deviation: read, status, and sessions are bare nouns rather than verb_noun forms, but the set is still predictable and readable.
Six tools is well-scoped for a desktop-conversation automation server, with each tool (submit, follow up, wait, read, list, health-check) earning its place. No bloat or obvious redundancy.
Core lifecycle (submit -> wait -> read) plus session listing and status is covered, but there is no way to cancel/stop an in-flight run, close or delete a conversation, or perform the 'independent artifact review' the descriptions repeatedly reference. These gaps are notable though agents can partially work around them.
Maintenance
Related MCP Connectors
Discord MCP server for ChatGPT, Claude and any AI agent: list servers and channels, read channel messages, search messages, send message, reply to message, send DM, read mentions and assign role in your own Discord account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Discord yourself; Cotlet does not store your password and you need no Discord API key. About the official Discord API: Yes, Discord has an official API for bots and OAuth2 apps, but it acts as a bot that a server manager adds, not as you, and Discord has no official MCP server for it (checked 5 Nov 2026). The MCP server on Discord's docs site only searches documentation. Setup and FAQ: https://cotlet.dev/integrations/discord-api-mcp-server
Dubsado MCP server for ChatGPT, Claude and any AI agent: create project, send form, send invoice, record payment and list unpaid invoices in your own Dubsado account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Dubsado yourself; Cotlet does not store your password and you need no Dubsado API key. About the official Dubsado API: Dubsado has no public API (checked 11 Oct 2026). Its only official connection is Zapier, on the Premier plan: five triggers and one action, Create Project. Setup and FAQ: https://cotlet.dev/integrations/dubsado-api-mcp-server
TaxDome MCP server for ChatGPT, Claude and any AI agent: create job, request documents, send invoice, message client and list overdue tasks in your own TaxDome account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to TaxDome yourself; Cotlet does not store your password and you need no TaxDome API key. About the official TaxDome API: TaxDome has no public API that firms can use today (checked 14 Oct 2026). Its Zapier integration only creates, updates and finds contacts, and TaxDome MCP, which would let Claude or ChatGPT work in a firm account, is announced but not open yet and is offered to Professional and Business plan firms first. Setup and FAQ: https://cotlet.dev/integrations/taxdome-api-mcp-server
Chatwoot MCP server for ChatGPT, Claude and any AI agent: list conversations, reply to conversation, add private note, assign conversation, add labels and resolve or snooze conversation in your own Chatwoot account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Chatwoot yourself; Cotlet does not store your password and you need no Chatwoot API key. About the official Chatwoot API: Chatwoot has a full REST API, the Application API, and an official command-line client, but no official MCP server (checked 22 Oct 2026). The API covers conversations, messages, contacts, labels, teams and assignments with an access token from Profile Settings. Setup and FAQ: https://cotlet.dev/integrations/chatwoot-api-mcp-server
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables Codex to control a local Brave or Chrome browser via CDP, observing pages and performing actions such as clicking, typing, selecting, scrolling, or waiting through validated action IDs without requiring a model API key.7MIT
- AlicenseNot gradedqualityBmaintenanceEnables Codex to bind aliases to specific Kimi Code and ZCode desktop chat sessions, send tasks to them, and collect acknowledgements and results through a local SQLite mailbox. It also supports background wake delivery and optional background computer control via Cua Driver, keeping messages pinned to a session and binding revision.MIT
- AlicenseNot gradedqualityBmaintenanceEnables Doubao Work to submit, monitor, resume, and independently verify coding tasks that a local Codex app-server executes in persistent project sessions, with SQLite-backed task state and artifacts retained on the user's machine.1MIT
- AlicenseNot gradedqualityBmaintenanceLets Codex delegate tasks to a running DeepSeek Harness Desktop instance on Windows over authenticated named pipes, with asynchronous dispatch, event waiting, cancellation, and explicit resume. Also supports blocking structured questions tied to a task, plan checkpoints before writes, independent stage review with rework in the same session, and output fingerprinting that invalidates stale approvals when files change.351 npm1MIT