--- title: Adding MCP servers for {% data variables.copilot.copilot_cli %} shortTitle: Add MCP servers allowTitleToDifferFromFilename: true intro: 'Extend {% data variables.product.prodname_copilot_short %}''s capabilities by connecting Model Context Protocol (MCP) servers to provide additional tools and context.' versions: feature: copilot contentType: how-tos category: - Configure Copilot CLI # Copilot CLI bespoke page - Author and optimize with Copilot # Copilot discovery page docsTeamMetrics: - copilot-cli --- The Model Context Protocol (MCP) is an open standard that defines how applications share context with large language models (LLMs). You can connect MCP servers to {% data variables.copilot.copilot_cli %} to give {% data variables.product.prodname_copilot_short %} access to external tools, data sources, and services. For an overview of MCP, see [AUTOTITLE](/copilot/concepts/about-mcp). ## Adding an MCP server > [!NOTE] > The {% data variables.product.github %} MCP server is built into {% data variables.copilot.copilot_cli_short %} and is already available without any additional configuration. The steps below are for adding other MCP servers. You can add MCP servers using the interactive `/mcp add` command within the CLI, or by editing the configuration file directly. For installation instructions, available tools, and URLs for specific MCP servers, see the [{% data variables.product.github %} MCP Registry](https://github.com/mcp). ### Using the `/mcp add` command 1. In interactive mode, enter `/mcp add`. A configuration form is displayed. Use Tab to navigate between fields. 1. Next to **Server Name**, enter a unique name for the MCP server. This is the name you will use to refer to the server. 1. Next to **Server Type**, select a type by pressing the corresponding number. The following types are available: * **Local** or **STDIO**: starts a local process and communicates over standard input/output (`stdin`/`stdout`). Both options work the same way. **STDIO** is the standard MCP protocol type name, so choose this if you want your configuration to be compatible with {% data variables.product.prodname_vscode_shortname %}, the {% data variables.copilot.copilot_cloud_agent %}, and other MCP clients. * **HTTP** or **SSE**: connects to a remote MCP server. **HTTP** uses the Streamable HTTP transport. **SSE** uses the legacy HTTP with Server-Sent Events transport, which is deprecated in the MCP specification but still supported for backwards compatibility. 1. The remaining fields depend on the server type you selected: * If you chose **Local** or **STDIO**: * Next to **Command**, enter the command to start the server, including any arguments. For example, `npx @playwright/mcp@latest`. This corresponds to both the `command` and `args` properties in the JSON configuration file. * Next to **Environment Variables**, optionally specify environment variables the server needs, such as API keys or tokens, as JSON key-value pairs. For example, `{"API_KEY": "YOUR-API-KEY"}`. The `PATH` variable is automatically inherited from your environment. All other environment variables must be configured here. * If you chose **HTTP** or **SSE**: * Next to **URL**, paste the remote server URL. For example, `https://mcp.context7.com/mcp`. * Next to **HTTP Headers**, optionally specify HTTP headers as JSON. For example, `{"CONTEXT7_API_KEY": "YOUR-API-KEY"}`. 1. Next to **Tools**, specify which tools from the server should be available. Enter `*` to include all tools, or provide a comma-separated list of tool names (no quotes needed). The default is `*`. 1. Press Ctrl+S to save the configuration. The MCP server is added and available immediately without restarting the CLI. ### Editing the configuration file You can also add MCP servers by editing the configuration file at `~/.copilot/mcp-config.json`. This is useful if you want to share configurations or add multiple servers at once. The following example shows a configuration file with a local server and a remote HTTP server: ```json copy { "mcpServers": { "playwright": { "type": "local", "command": "npx", "args": ["@playwright/mcp@latest"], "env": {}, "tools": ["*"] }, "context7": { "type": "http", "url": "https://mcp.context7.com/mcp", "headers": { "CONTEXT7_API_KEY": "YOUR-API-KEY" }, "tools": ["*"] } } } ``` For more information on MCP server configuration, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/extend-cloud-agent-with-mcp#writing-a-json-configuration-for-mcp-servers). ## Managing MCP servers You can manage your configured MCP servers using the following `/mcp` commands in {% data variables.copilot.copilot_cli_short %}. * **List configured MCP servers:** Use the command `/mcp show`. This displays all configured MCP servers and their current status. * **View details about a specific server:** Use the command `/mcp show SERVER-NAME`. This displays the status of the specified server and the list of tools it provides. * **Edit a server's configuration:** Use the command `/mcp edit SERVER-NAME`. * **Delete a server:** Use the command `/mcp delete SERVER-NAME`. * **Disable a server:** Use the command `/mcp disable SERVER-NAME`. A disabled server remains configured but is not used by {% data variables.product.prodname_copilot_short %} for the current session. * **Enable a previously disabled server:** Use the command `/mcp enable SERVER-NAME`. ## Using MCP servers Once you have added an MCP server, {% data variables.product.prodname_copilot_short %} can automatically use the tools it provides when relevant to your prompt. You can also directly reference an MCP server and specific tools in a prompt to ensure they are used. ## Further reading * [AUTOTITLE](/copilot/concepts/about-mcp) * [AUTOTITLE](/copilot/how-tos/provide-context/use-mcp/extend-copilot-chat-with-mcp) * [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/extend-cloud-agent-with-mcp)