Getting started
The fastest path is delegated mode: the server runs locally on stdio, and VS Code GitHub Copilot dispatches the real deployed cast. No Azure, no auth, no model cost beyond your own Copilot session.
Prerequisites
- Node.js 20 or newer. Developed on Node 24; CI runs 22.
- VS Code with GitHub Copilot and MCP support enabled.
- The hve-squad cast installed in your workspace. Delegated mode returns a charter for Copilot
to dispatch, so the personas must exist locally — install the
hve-squad APM package and run
apm install.
The npm package is currently private and unpublished, so npx -y @hve-squad/mcp will not
resolve yet. Build from source and point VS Code at the local dist/ path.
Build the server
git clone https://github.com/Peter-N91/hve-squad-mcp.git
cd hve-squad-mcp
npm ci
npm run build # tsc -> dist/
npm test # unit suites
To run it by hand — it speaks JSON-RPC on stdout, and logs go to stderr:
node dist/src/server.js
Register it in VS Code
-
Open (or create) your workspace
.vscode/mcp.json. The package never writes this file for you — the template in the squad sources is an example you copy. -
Add the server entry, pointing
argsat the absolute path of your build:{ "servers": { "hve-squad": { "type": "stdio", "command": "node", "args": ["C:\\path\\to\\hve-squad-mcp\\dist\\src\\server.js"] } } } -
Reload VS Code. The
squad_*tools appear in the Copilot tool picker. - Ask for the squad in natural language — "research X with the squad", "have the squad review this design". Copilot picks the tool, the server returns the delegated charter, and Copilot dispatches the real persona from your installed cast.
What "delegated" actually means
In delegated mode the server performs no model call. It resolves the routing intent, loads the matching persona charter from disk, and hands that charter back to the calling host. Your Copilot session runs the inference. That is why delegated mode costs nothing on the server side and why it reaches full package parity — the host is running the same cast it always ran, just routed by the squad's own routing table.
The remote embedded mode is the opposite trade: the server runs the dispatch itself against Azure OpenAI, which is what makes it reachable from Copilot Studio, and what makes it cost money.
Verify a change
If you are modifying the server, these are the checks CI runs:
npm run lint # tsc --noEmit
npm test # unit suites
npm run test:conformance # security conformance suites
npm run generate:check # generated descriptor is not stale
npm run generate:connector:check # generated connector is not stale
npm run snapshot:cast:check # bundled cast matches its pin
generated/ is committed and regenerable. If you touched tools.catalog.yml,
run npm run generate and commit the result — CI fails on drift, not on the change itself.