Skip to main content
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.mdrequirements.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.