Requirements are read through the connected MCP server for your provider — never raw REST.
init already seeded both config files with placeholders (unless you passed --no-mcp); this
page is about filling them in.
Claude Code and Copilot use different files and different top-level keys for MCP config.
.mcp.json is not read by Copilot; .vscode/mcp.json is not read by Claude Code. Both need to
exist and stay in sync if you use both hosts.
Azure DevOps
Replace <your-ado-org> with your organization name (the part before .visualstudio.com or after
dev.azure.com/). Authentication is via az login (Azure CLI) — make sure you’ve logged in before
your first /shipflow run.
Jira / Atlassian
This is Atlassian’s remote MCP — it handles OAuth in-browser on first use, no local install needed.
Copilot: same servers, different wrapper
.vscode/mcp.json uses the exact same server definitions, just under servers instead of
mcpServers:
Only enable what you need
Set only the server(s) that match your shipflow.config.md → requirements.provider. Enabling
both is fine if your team uses both providers across different repos, but each /shipflow run only
calls the one matching that repo’s configured provider.
Verifying the connection
If the required MCP server isn’t connected, feature-context will say so plainly rather than
falling back to raw REST or fabricating the work item’s contents — that’s by design, not a bug to
work around. If a run stops with an MCP-not-connected message, check your host’s MCP status (in
Claude Code, /mcp; in Copilot, the MCP servers panel) before re-running.