Echo QCoder
Governs and manages Qwen Code builder sessions with tools for previewing, starting, inspecting, queuing tasks, and stopping sessions, all within a scoped, redacted environment.
README
Echo QCoder
Echo QCoder is ECHO's governed, zero-metered builder backed by the FORGE-hosted huihui_ai/Qwen3.6-abliterated:27b model. The qcoder PowerShell alias launches Qwen Code 0.21.8 with the repository's AGENTS.md and CLAUDE.md, a durable SOL mission, role-scoped broker access, a 32K context profile, and a verified dual-GPU lease.
This public source repository also packages QCoder Console, a private-use full-bundle ChatGPT/Codex plugin with one focused skill, seven MCP tools, and an accessible MCP Apps console. It starts, inspects, steers, and stops named builder sessions without exposing raw shell, arbitrary paths, process IDs, or credentials. Publishing the source does not publish ECHO's OAuth authority, private model endpoint, credentials, registered workspaces, or ChatGPT connection.
Supported workflows
- Launch interactive QCoder locally with
qcoder. - Preview and start a governed task in an allowlisted repository.
- List sessions or inspect bounded, redacted transcripts.
- Queue a follow-up task with optimistic concurrency and idempotency.
- Render the session console and stop a session with two-stage confirmation.
- Use eight focused Qwen skills for coding, semantic navigation, autonomous issue solving, self-evaluation, authorized all-color security validation, browser/vision work, and local speech/voice workflows.
It does not expose a general shell, arbitrary filesystem access, unregistered workspaces, anonymous writes, public posting, or unrestricted security tooling.
Architecture
The MCP server exposes Streamable HTTP at /mcp plus /healthz, /readyz, and /version. SQLite stores session state, idempotency records, and stop audits; bounded JSONL files store redacted transcripts. The server launches launcher/qcoder.ps1, which acquires the FORGE GPU lease and runs Qwen Code with the remote-safe qwen-plugin-settings.json profile. Direct local qcoder sessions default to the cli-build role and add a bounded Serena semantic MCP profile for TypeScript, Python, and PowerShell. The single-file React UI uses the MCP Apps bridge and resource ui://qcoder/console/v1.
HTTP mode requires resource-bound OAuth introspection plus per-tool scopes and explicit client, tenant, role, and workspace claims. Trusted local stdio is available only when QCODER_TRUSTED_STDIO=1 is set by the packaged MCP configuration.
Tools
list_qcoder_sessions, get_qcoder_session, preview_qcoder_task, start_qcoder_session, send_qcoder_task, stop_qcoder_session, and render_qcoder_console are documented in docs/TOOL_CONTRACTS.md.
Prerequisites
- Windows PowerShell 7
- Node.js 24+ and npm 11+
- Python 3.11+
- Qwen Code 0.21.8 (installed and exact-version verified by the powerpack installer)
- FORGE connectivity and the existing ECHO SOL/GPU-lease runtime
Install and verify
Set-Location C:\ECHO_MCP\echo-qcoder
npm ci --ignore-scripts
npm ci --prefix scripts/inspector --ignore-scripts
pwsh -File .\scripts\verify-plugin.ps1
pwsh -File .\scripts\test-mcp.ps1 -SkipBuild -Inspector
pwsh -File .\scripts\package-plugin.ps1
For the local marketplace, run pwsh -File .\scripts\install-local-marketplace.ps1; add -Register only on a Codex build that supports the documented plugin commands. Restart or refresh Codex after registration.
Install or refresh the QCoder-specific Qwen skills without disturbing other personal skills:
pwsh -File .\scripts\install-qwen-skills.ps1
Install the audited local powerpack (Qwen Code 0.21.8, Serena 1.6.1, ast-grep 0.45.1, mini-SWE-agent 2.4.6, the eight Qwen skills, and the built-in regression evaluator):
pwsh -File .\scripts\install-qcoder-powerpack.ps1
Qwen Code discovers newly installed skills and MCP configuration on the next session. In a session, /skills qcoder-coding-builder invokes one explicitly. Promptfoo is pinned only as a reviewed reference: its 0.122.0 installation was removed after its reachable transitive tree failed the high-severity dependency audit. The full 21-repository manifest and adoption decisions are recorded in QCoder capability expansion.
Continuous autonomy
The repository runs a fail-closed QCoder autonomy tick every six hours. It checks pinned upstream commits and license digests, audits both npm dependency trees, and runs the regression suite. A failure updates one persistent GitHub issue instead of creating alert noise; recovery closes that issue. Dependabot checks npm workspaces, the isolated MCP Inspector tree, and GitHub Actions weekly. Run the same gate locally:
node .\scripts\autonomy-tick.mjs --output .\artifacts\qcoder-autonomy-report.json
The tick proposes and reports drift; it never auto-merges code, grants new authority, or weakens a security boundary.
HAMMER also carries the same six-hour gate as a limited, non-overlapping Windows Scheduled Task. This remains operational when hosted GitHub Actions cannot allocate a runner:
pwsh -File .\scripts\install-autonomy-task.ps1 -StartNow
The task runs scripts/run-autonomy-tick.ps1, keeps the sanitized report under .runtime, and reconciles the same single GitHub issue through the authenticated gh CLI.
For local HTTP development, configure the four OAuth variables shown in .env.example, then run pwsh -File .\scripts\run-local.ps1. For trusted stdio, use pwsh -File .\scripts\run-local.ps1 -Mode stdio.
ChatGPT connection
The intended private route is https://mcp.echo-op.com/oauth-mcp-qcoder-v1 through Secure MCP Tunnel. The production resource route, OAuth client registration, and ChatGPT-generated plugin_asdk_app... ID are external integration dependencies and are not fabricated here. Once ChatGPT registration returns the real ID, generate .app.json atomically:
pwsh -File .\scripts\configure-app-id.ps1 -AppId 'plugin_asdk_app_REAL_ID'
See local testing, deployment, security, and troubleshooting. Exact results are in the validation report.
Versioning
Tool names and required fields remain backward compatible within 0.3.x. Incompatible UI changes receive a new ui:// resource version. The plugin archive is deterministic where the ZIP implementation permits and always receives a SHA-256 sidecar.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.