Your Cortex Code Desktop Agent Can’t See Jira. Here’s How to Fix That. Cortex Code Desktop's AI agent cannot access external tools like Jira or GitHub without configuration. The Model Context Protocol (MCP) bridges this gap by connecting the agent to external data sources via stdio or HTTP transports, enabling plain-language interaction with those tools. The agent inside Cortex Code Desktop is good at working with what it can see — your local files, your Snowflake connection, your terminal. The moment a task requires context from somewhere else — a Jira ticket that defines the requirements, a GitHub PR that needs reviewing, an internal API that exposes your data catalog — the agent is operating blind, and you’re back to copying and pasting between tools. Model Context Protocol MCP is how you close that gap. It’s an open standard for connecting AI agents to external tools and data sources, and Cortex Code Desktop implements it as a first-class capability. Once you configure an MCP server for a tool, its capabilities become available to the agent automatically in every session — no custom code, no prompt engineering, no middleware. The configuration is not zero-effort, but it’s closer to writing a config file than to writing an integration. The main decisions are which transport type fits your tool, how to handle credentials safely, and what permissions to set so the agent can act on what it finds without requiring approval for every call. What this doesn’t cover: the Snowflake-managed MCP server which exposes Snowflake’s own capabilities as an MCP endpoint , account-level MCP connectors configured by administrators, or Cortex Code’s ability to run as an MCP server itself. Before getting into configuration, it’s worth being precise about what MCP is and isn’t. MCP is a protocol that defines how an AI agent communicates with a tool server. The server exposes a set of named tools — each with an input schema and a description — and the agent calls them the same way it calls any other tool: by name, with arguments. The protocol handles the plumbing: serialization, transport, error handling. What the tool actually does when called is entirely defined by the server implementation. From the agent’s perspective, an MCP tool call looks identical to a built-in tool call. “Show me the open GitHub pull requests for this repo” → the agent calls mcp github list pull requests → the GitHub MCP server makes the API call → result comes back to the agent → agent incorporates it into the response. The agent doesn’t need special prompting to know the tool exists; it reads the tool descriptions and uses them when they match the task. The practical implication: once an MCP server is configured and running, you interact with the connected tool in plain language rather than remembering API parameters or switching applications. Cortex Code Desktop supports two MCP transport types, and choosing the right one depends on where and how the server runs. stdio is for local servers — tools that run as subprocesses on your machine. Cortex Code Desktop spawns the process, communicates with it over stdin/stdout, and manages its lifecycle with the session. Most open-source MCP servers for Git, filesystem access, language-specific tooling use stdio. Configuration specifies the command to run, arguments, environment variables, and optionally a working directory or .env file: { "mcpServers": { "github": { "command": "npx", "args": "-y", "@modelcontextprotocol/server-github" , "env": { "GITHUB PERSONAL ACCESS TOKEN": "${GITHUB TOKEN}" } } }} HTTP is for remote or hosted servers — web services, internal APIs with MCP adapters, cloud-hosted integrations. Cortex Code Desktop makes streamable HTTP requests to the endpoint with SSE fallback . Configuration specifies the URL, optional headers, and optional OAuth configuration: { "mcpServers": { "data-catalog": { "url": "https://catalog.internal.company.com/mcp", "headers": { "Authorization": "Bearer ${CATALOG API TOKEN}", "X-Team-ID": "data-engineering" } } }} The choice between them is mostly determined by the server you’re integrating with. Hosted services provide HTTP endpoints; CLI tools use stdio. When building your own MCP server for an internal tool, stdio is simpler to start with and HTTP is worth the additional setup if the server needs to run centrally shared by a team, running on infrastructure rather than each developer’s machine . Configuration lives in JSON files at two scopes: ScopePathGlobal~/.snowflake/cortex/mcp.jsonWorkspace