Skip to content

GitHub Showcase MCP And Manifests

coo1white edited this page Jun 14, 2026 · 1 revision

GitHub Showcase: MCP And Manifests

CW has two primary machine surfaces:

  • CLI JSON: cw <command> --json
  • MCP tools: cw_* JSON-RPC tools

Both route through the same runtime entries where parity is declared. Human CLI formatting is policy; the shared payload is the mechanism.

Generated Vendor Targets

The manifest source currently targets:

Target Purpose
claude Claude Code plugin and MCP configuration.
codex Codex plugin manifest.
agents Generic .agents adapter.
gemini Gemini plugin manifest and MCP configuration.
opencode OpenCode plugin manifest and MCP configuration.

The source of truth is:

plugins/cool-workflow/manifest/plugin.manifest.json

Generated files live under directories such as .claude-plugin/, .codex-plugin/, .gemini-plugin/, .opencode-plugin/, and .agents/.

Regenerate And Check

From plugins/cool-workflow:

npm run gen:manifests
npm run gen:manifests -- --check
npm run manifest:load-check
npm run parity:check

gen:manifests -- --check catches generated byte drift. manifest:load-check boots generated MCP configs and checks JSON-RPC initialize plus tools/list. parity:check validates declared CLI and MCP payload parity.

CLI To MCP Examples

CLI MCP
cw app list --json cw_app_list
cw report <run-id> --json cw_report
cw run import PATH --target DIR cw_run_import
cw run verify-import <run-id> cw_run_verify_import
cw telemetry verify <run-id> cw_telemetry_verify
cw workbench view <run-id> --json cw_workbench_view

Some capabilities are intentionally CLI-only, such as quickstart, because they are convenience wrappers over lower-level mechanisms MCP hosts can compose.

Adding A Vendor

The intended path is data-first:

  1. Add a targets.<vendor> entry to plugin.manifest.json.
  2. Add the vendor output template in the manifest source.
  3. Run npm run gen:manifests.
  4. Run npm run manifest:load-check.

Do not fork runtime logic per vendor. Vendor-specific rendering or prompt formatting belongs in wrappers or manifest data, not in the core runtime.

Related Pages

Clone this wiki locally