DSH ⇄ ChatGPT Fusion Gateway
Integrates with ChatGPT Web as a stateless reasoning provider, sending DeepSeek Harness context snapshots to a dedicated ChatGPT conversation and returning a single decision (final answer, action proposal, or bounded read-only batch) for the DSH agent loop.
Click on "Install 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., "@DSH ⇄ ChatGPT Fusion GatewayAsk the ChatGPT Brain to analyze this error log and propose the next action"
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.
DSH ⇄ ChatGPT Fusion Gateway
A minimal MCP bridge that keeps DeepSeek Harness (DSH) as the single agent and runtime, and uses ChatGPT Web only as a stateless, single-turn reasoning provider.
DSH owns agents, tools, permissions, sessions, compaction, subagents, workflows, goals, and real file/shell execution. The gateway simply relays one immutable DSH context snapshot to a ChatGPT "Brain" conversation, and relays back exactly one decision — a final answer, one action proposal, or a bounded read-only batch. The Gateway never executes the proposed action itself.
User
↓
DSH UI
↓
DSH Native Agent Loop → Context / Compaction
↓
ChatGPT Fusion LLM Adapter
↓
Fusion Reasoning Gateway ← this repository
↓
ChatGPT Brain Worker (a dedicated ChatGPT Web conversation + optional wake extension)
↓
final | action_proposal | readonly_batch
↓
Gateway validation
↓
DSH Permissions / ToolRuntime → DSH Native Tool → Next DSH TickFeatures
Strict one-result reasoning contract — every request carries one complete, immutable snapshot; the Brain returns exactly one terminal result (
final,action_proposal, or a boundedreadonly_batchof read/glob/grep).Recoverable delivery — requests are journaled to disk; a crashed Gateway restores in-flight claims instead of losing them. Retries are idempotent via snapshot + nonce.
Multi-worker failover — several Brain conversations can back the same model route; a stalled claim is released and re-delivered to a healthy standby with a rotated nonce.
OAuth 2.0 (loopback) — optional authorization for the public ChatGPT connector (
/brain-mcp), with rotating access/refresh tokens.Cross-platform — the gateway and Node daemon run on Linux, macOS, and Windows.
Optional browser wake — a Chrome extension (
browser-autowake/) polls loopback queue metadata and wakes a route-bound Brain tab when work is waiting.
Related MCP server: chatgpt-mcp
Requirements
Node.js 18+ (uses the global
fetch).git(and, on Linux, your configured command user) for the workspace tools.
DSH itself must be available for the DSH-native agent loop and tool runtime; the gateway
detects the DSH-bundled node_modules automatically, or you can point it there with the
DSH_NODE_MODULES environment variable.
Quick start
git clone <your-repo-url>
cd dsh-chatgpt-mcp
npm installPut real credentials into config.json and model-bindings.json (all values ship as
REDACTED_* placeholders), then start:
npm run daemon:start # background, supervised with auto-restart
npm run daemon:status…or run in the foreground:
npm start # node server.strict.cjsThe gateway binds http://127.0.0.1:7688. Detailed architecture and invariants live in
ARCHITECTURE.md.
Configuration
config.json
Key | Meaning |
| Loopback bind address (default |
| Project workspace the tools may access. |
| Owner password for OAuth authorization (≥ 16 chars). |
| Static bearer token for the loopback Brain MCP (≥ 32 chars). |
| Executables the workspace |
| Linux-only: user the sandboxed commands drop to via |
ownerPassword, staticToken, and the binding keys are required and must be filled in
before use. On macOS/Windows there is no portable setuid helper, so sandboxed commands run
as the current user and commandUser is ignored.
model-bindings.json
Maps each modelId + reasoningEffort route to a bindingKey. The bindingKey is the
secret shared with the matching brain-worker-*.txt; keep both in sync.
Service control
Works identically on Linux, macOS, and Windows:
node scripts/daemon.mjs start # start detached supervisor + server
node scripts/daemon.mjs stop
node scripts/daemon.mjs restart
node scripts/daemon.mjs statusThese are also exposed as npm run daemon:start|stop|restart|status. Linux-only
screen-based scripts remain in scripts/ (control.sh, public_quick.sh, …) for
Cloudflare quick-tunnel and the headless Chrome worker pools.
Reasoning protocol (v4)
The gateways speaks a strict protocol to the ChatGPT "Brain":
fusion_wait_for_reasoning_request → one immutable snapshot + data-only action catalog
fusion_submit_reasoning_result → exactly one {final} | {action_proposal} | {readonly_batch}
fusion_fail_reasoning_request → terminal failure for the assigned snapshotactionCatalog is data only — a description of the DSH native tools, never installed as
ChatGPT/MCP tools. An action_proposal is a recommendation that DSH later executes under
its own permission/sandbox policy; the Gateway does not run it.
The public endpoint is GET|POST /brain-mcp. The former /mcp and /fusion/tasks…
routes return HTTP 410 (disabled).
Permissions
Uses the native three-level DSH model — read-only, workspace-write,
danger-full-access — with workspace-write as the default.
Repository layout
server.strict.cjs active gateway (strict v4; no legacy /mcp)
server.cjs full gateway incl. workspace file/shell tools
config.json runtime configuration (secrets are placeholders)
model-bindings.json modelId → bindingKey map
scripts/daemon.mjs cross-platform daemon (start/stop/restart/status)
scripts/*.sh Linux deployment helpers (screen, cloudflared, Chrome workers)
brain-worker-*.txt per-route prompts for dedicated Brain conversations
browser-autowake/ optional Chrome extension that wakes Brain tabs
tests/ selftests and headless integration workers
state/ logs/ runtime artifacts (gitignored)Testing
npm install
node tests/reasoning-contract-v4-selftest.mjs # primary protocol test
# …plus oauth, worker-recovery, failover, context-overflow, payload-limit selftestsSee the ## Verification section of the implementation notes for the full matrix.
Security notes
Bind to
127.0.0.1by default; only the quick-tunnel script exposes a public URL.Do not commit
config.jsonormodel-bindings.jsonwith real secrets — this repository ships placeholders for that reason./bin/setprivis used on Linux to drop sandboxed commands tocommandUser; on other platforms commands run as the current user.
DSH ⇄ ChatGPT Fusion is a community bridge and is not affiliated with or endorsed by OpenAI or DeepSeek. Use of ChatGPT is subject to OpenAI's terms of service.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityBmaintenanceAdds a deep_reasoning tool that consults stronger reasoning models (e.g., DeepSeek R1) to produce full reasoning traces for complex problems, helping the agent shape and cross-check its answers.1MIT
- AlicenseNot gradedqualityAmaintenanceBridges Cursor IDE Agent with ChatGPT Web for external reasoning, research, and review.15MIT
- AlicenseNot gradedqualityAmaintenanceMCP bridge enabling ChatGPT to create, view, and control DeepSeek Harness agent sessions, with session management, messaging, and approval tools.9MIT
- AlicenseNot gradedqualityBmaintenanceEnables dispatching work to DeepSeek Harness agents from Claude Code/Codex, with native progress UI, tier policy, and vision/image generation through MCP tools.0101MIT
Related MCP Connectors
Agent-to-agent reasoning-as-a-service: chain-of-thought, analysis, and decision support.
Reliable web access for AI agents: smart HTTP, rotating proxies, and full-browser rendering.
Provides cloud browser automation capabilities using Stagehand and Browserbase, enabling LLMs to i…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/2025ashore/DSH-Brain-Bridge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server