Polish connector canvas public listing

Rewrite the extension documentation around the GitHub Copilot app experience, add official Connector Namespace guidance, and align marketplace metadata with the public-facing product description.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Alex Yang (DevDiv)
2026-07-20 13:32:23 -07:00
parent 2f258c7226
commit abd06a1c22
5 changed files with 59 additions and 74 deletions
+1 -1
View File
@@ -244,7 +244,7 @@
{ {
"name": "connector-namespaces", "name": "connector-namespaces",
"source": "extensions/connector-namespaces", "source": "extensions/connector-namespaces",
"description": "Browse, connect, and open MCP connectors from an Azure Connector Namespace.", "description": "Interactive GitHub Copilot canvas for discovering, connecting, and managing hosted MCP servers from Azure Connector Namespace.",
"version": "1.2.0" "version": "1.2.0"
}, },
{ {
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "connector-namespaces", "name": "connector-namespaces",
"description": "Browse, connect, and open MCP connectors from an Azure Connector Namespace.", "description": "Interactive GitHub Copilot canvas for discovering, connecting, and managing hosted MCP servers from Azure Connector Namespace.",
"version": "1.2.0", "version": "1.2.0",
"author": { "author": {
"name": "Alex Yang", "name": "Alex Yang",
+55 -70
View File
@@ -1,91 +1,76 @@
# MCP Connectors — Copilot CLI Canvas Extension # MCP Connectors
A GitHub Copilot CLI **canvas extension** that lets you browse and add MCP A GitHub Copilot app canvas extension for discovering and connecting hosted MCP
connectors from an Azure **Connector Namespace** directly inside a Copilot CLI servers from [Azure Connector Namespace](https://learn.microsoft.com/en-us/azure/connector-namespace/connector-namespace-overview).
session. Search by name or category, sign in to a connector, then restart the It brings the Microsoft and partner connector catalog, guided browser sign-in,
session to make its tools available to the agent. and connected-server management into the Copilot side panel.
> The canvas talks to public Azure Resource Manager (`management.azure.com`) ## Features
> using an interactive Microsoft Entra browser sign-in. It does not register its
> own Entra application. Azure Identity persists the account session in the
> operating system's encrypted credential store.
## Prerequisites - **Connector catalog** - browse and search Microsoft and partner MCP servers
available in your namespace.
- **GitHub Copilot CLI** (the host that loads canvas extensions). - **Guided Azure setup** - sign in from the canvas, then choose a subscription
- A browser for Microsoft Entra sign-in. The extension prompts when Azure and Connector Namespace.
authentication is required and restores the encrypted Azure Identity session - **Browser-based connection flow** - complete each connector's authentication
after extension or Copilot CLI restarts. or consent without leaving the setup experience.
- **An Azure subscription with a Connector Namespace** — resource type - **My MCPs** - see which servers are connected and ready to add to Copilot.
`Microsoft.Web/connectorGateways` (API version `2026-05-01-preview`). This is - **Namespace playground** - open any connected server in the Connector
a preview resource provider; you must have access to it for the catalog to Namespace playground with **Sandbox**.
load. Without it the extension installs fine but has nothing to show. - **Persistent setup** - retain the selected namespace and restore Azure sign-in
securely across app restarts.
## Install ## Install
Install it from the public Awesome Copilot repository: Open the GitHub Copilot app, go to **Settings > Plugins**, search for
`connector-namespaces`, and select **Install**.
``` You can also open the
install_extension https://github.com/github/awesome-copilot/tree/main/extensions/connector-namespaces [MCP Connectors gallery page](https://awesome-copilot.github.com/extension/connector-namespaces/)
``` and select **Install in GitHub Copilot app**.
For a reproducible install, swap `main` for a reviewed commit SHA from this ## Requirements
repository.
The destination **scope** is chosen at install time: - Access to an Azure subscription with a Connector Namespace. If you do not
have one, follow the
[Connector Namespace creation guide](https://learn.microsoft.com/en-us/azure/connector-namespace/create-connector-namespace).
- Permission to view the namespace and create its connections and hosted MCP
server configurations.
- A browser for Microsoft Entra sign-in and connector consent.
- **user** (default) — installs globally for you at Connector Namespace is currently an Azure preview service and availability can
`$COPILOT_HOME/extensions/connector-namespaces/`. The usual choice for a vary by region.
personal tool.
- **project** — installs into the current repo.
- **session** — scoped to a single CLI session.
## Usage ## Usage
1. Open the **MCP Connectors** canvas from Copilot CLI. 1. Open the **MCP Connectors** canvas in the GitHub Copilot app.
2. If prompted, choose **Sign in** and complete Microsoft Entra authentication 2. Select **Sign in to Azure** and complete Microsoft Entra authentication in
in the browser. The canvas reloads your subscriptions automatically. Pick an your browser.
Azure **subscription** and a **Connector Namespace**. The choice is saved for 3. Choose an Azure subscription and Connector Namespace.
future sessions (change it any time via **Change namespace**). 4. Browse or search the catalog, then select **Connect** on an MCP server.
3. Browse or filter the connector catalog, then **Connect**. A browser tab 5. Complete the connector's sign-in or consent flow when prompted.
opens for Microsoft sign-in; complete it and the canvas updates on its own. 6. Confirm the server appears under **My MCPs**.
4. Connected connectors move into **My MCPs**. Use **Sandbox** on a tile to open 7. Restart the GitHub Copilot app so the new tools become available to the
that server directly in the namespace MCP playground. agent.
5. Restart the GitHub Copilot app so the agent can load the connected tools.
The extension registers the native `connector_namespaces_open_playground` tool, Use **Sandbox** on a connected server to inspect it in the Connector Namespace
so GitHub Copilot can open a named connector from **My MCPs** without installing playground. Use **Change namespace** to switch subscriptions or namespaces.
an additional Agent Skill.
## How it works ## Authentication and privacy
- `extension.mjs` — entry point; declares the canvas, `open_sandbox` action, and Azure sign-in and connector sign-in are separate:
native `connector_namespaces_open_playground` tool.
- `server.mjs` — a loopback HTTP server (bound to `127.0.0.1` only) that serves
the canvas UI and the JSON/authentication endpoints the iframe calls.
- `auth.mjs``InteractiveBrowserCredential` broker for sign-in lifecycle,
cancellation, encrypted token-cache persistence, and ARM token refresh.
- `armClient.mjs` — thin ARM client (public ARM base only, SSRF-guarded path
segments).
- `catalog.mjs` — fetches and curates the connector list for a namespace.
- `install.mjs` — the connect/install pipeline (managed-API connection, consent,
rollback on cancel, and native HTTPS MCP config registration).
- `renderer.mjs` — all canvas HTML/CSS/client JS.
- `sandbox.mjs` — builds namespace playground links and resolves named My MCPs.
- `state.mjs` — saved namespace and connector state.
## Privacy & security - **Azure sign-in** lets the canvas discover and manage Connector Namespace
resources. The account cache is stored in the operating system's encrypted
credential store; raw access and refresh tokens are not written to extension
files.
- **Connector sign-in** grants an individual MCP server access to its backing
service. The resulting connection is managed by Connector Namespace.
- ARM tokens come from `@azure/identity`'s `InteractiveBrowserCredential` and The canvas serves its interface from loopback only (`127.0.0.1`). Azure
are never logged. Azure Identity stores its refreshable account cache through management requests are restricted to `https://management.azure.com/`.
the operating system's encrypted credential store. A non-secret account The gateway API key that lets Copilot reach a connected server is stored in the
locator is saved with user-only permissions so a new process can select that user-scoped GitHub Copilot MCP configuration and sent only to that server's
cache entry; the extension never writes raw tokens to its artifact files. configured HTTPS endpoint.
- All servers bind to loopback (`127.0.0.1`) and are never exposed externally.
- ARM requests go only to `https://management.azure.com/`; path segments are
validated to prevent SSRF-style host smuggling.
- The minted gateway API key is stored in the selected Copilot MCP config and
sent to its validated HTTPS endpoint as the `X-API-Key` header.
## License ## License
@@ -44,7 +44,7 @@ const session = await joinSession({
createCanvas({ createCanvas({
id: "connector-namespaces", id: "connector-namespaces",
displayName: "MCP Connectors", displayName: "MCP Connectors",
description: "Browse, connect, and open MCP connectors in the Azure Connector Namespace Sandbox.", description: "Discover, connect, and manage hosted MCP servers from Azure Connector Namespace.",
inputSchema: { inputSchema: {
type: "object", type: "object",
properties: { properties: {
+1 -1
View File
@@ -3,7 +3,7 @@
"version": "1.2.0", "version": "1.2.0",
"type": "module", "type": "module",
"main": "extension.mjs", "main": "extension.mjs",
"description": "Browse, connect, and open MCP connectors from your Azure Connector Namespace in Sandbox.", "description": "Interactive GitHub Copilot canvas for discovering, connecting, and managing hosted MCP servers from Azure Connector Namespace.",
"keywords": [ "keywords": [
"azure", "azure",
"connector-namespace", "connector-namespace",