Client Intake for VS Code and GitHub Copilot: Ask the Client Without Leaving the Editor
VS Code's built-in MCP support (used by GitHub Copilot's agent mode, and by any other chat extension that reads the same mcp.json) connects to BriefGate's hosted endpoint with OAuth handled automatically by the editor.
The problem
Copilot's agent mode can scaffold and edit a real client project, then hits the same wall every coding agent does: the logo, the page copy, or a hosting login lives in an inbox, not in the workspace.
The solution
The agent calls define_intake with typed items, BriefGate emails the client a portal link and chases them on a schedule, and the agent calls get_intake_results once everything has arrived — typed values and signed file URLs, ready to use.
Setting up BriefGate MCP in VS Code
VS Code reads MCP servers from .vscode/mcp.json (workspace, shareable with a team) or the user-level mcp.json (Command Palette → MCP: Open User Configuration).
Option A — hosted endpoint with OAuth (fewest moving parts)
{
"servers": {
"briefgate": {
"type": "http",
"url": "https://mcp.briefgate.dev/mcp"
}
}
}No oauth block is needed: BriefGate's server publishes standard OAuth 2.1 discovery metadata (/.well-known/oauth-authorization-server) and supports dynamic client registration with PKCE, and VS Code's MCP client handles that automatically — a browser window opens for you to sign in and approve access the first time you connect, the same way it does for other remote MCP servers that support discovery.
Option B — local package with an API key (for CI, or a non-interactive setup)
{
"servers": {
"briefgate": {
"command": "npx",
"args": ["-y", "@briefgate/mcp"],
"env": {
"BRIEFGATE_API_KEY": "${input:briefgate_api_key}"
}
}
},
"inputs": [
{
"id": "briefgate_api_key",
"type": "promptString",
"description": "BriefGate API key",
"password": true
}
]
}The inputs entry makes VS Code prompt for the key once and store it securely, instead of it sitting in plain text in mcp.json. Get a key from https://app.briefgate.dev/app (Settings → API keys). Both options expose the same 13 tools: define_intake, add_items, update_item, update_intake, list_intakes, get_intake_status, get_intake_results, request_revision, send_chase, manage_recipients, manage_webhook, list_folders, create_folder.
Telling the agent when to use it
Add a note to your repo's Copilot instructions file (.github/copilot-instructions.md):
When a client-supplied asset, credential, or piece of copy is missing:
1. Call define_intake with items[] describing exactly what is needed
2. Do not email the client yourself — BriefGate sends the portal link
3. Continue other work; check get_intake_status rather than blocking on a reply
4. Call get_intake_results once complete, and use the typed values directly
5. Use type: "secret" for any password, API key, or loginA worked example
You, in Copilot Chat (agent mode): "Before the contact form can send mail, ask the client for their SMTP credentials and the address it should send to."
Copilot calls define_intake with a secret item and a text item. The client fills the portal from their phone; you (or Copilot, on the next relevant turn) call get_intake_results and wire the values straight into the environment config.
Next steps
- MCP tools reference — full parameter list for all 13 tools
- Item types — what each item type validates
- Quickstart — the same hosted endpoint for Claude Code, Cursor, or any other MCP client