Echo QCoder

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.

Category
Visit Server

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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured