
Mcp Configure
Wire the Dataverse MCP server into GitHub Copilot with the correct org-specific server name and JSON config path (global or project-only).
Overview
mcp-configure is an agent skill for the Build phase that configures the Dataverse MCP server in GitHub Copilot’s MCP JSON (global or project scope) using your org’s server name and URL.
Install
npx skills add https://github.com/github/awesome-copilot --skill mcp-configureWhat is this skill?
- Step 0: user chooses global (`~/.copilot/mcp-config.json`) vs project (`.mcp/copilot/mcp.json`) scope
- Reads existing config supporting `mcpServers` or `servers` top-level keys
- Registers org-unique Dataverse MCP names (e.g. DataverseMcporgbc9a965c pattern)
- Accepts optional environment URL via $ARGUMENTS when supplied
- Merges HTTP-type server entries without clobbering unrelated MCP servers
- 2 configuration scopes: global vs project-only
- 6 numbered instruction steps in the skill flow
Adoption & trust: 7k installs on skills.sh; 34.6k GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You want Copilot to call Dataverse through MCP but do not know which config file, server name, or JSON shape your org requires.
Who is it for?
Indie builders or consultants standardizing Dataverse MCP setup across machines or a single client repo.
Skip if: Non-Copilot agents, non-Dataverse MCP servers, or teams that manage MCP only through enterprise MDM without local JSON edits.
When should I use this skill?
User needs to configure Dataverse MCP for GitHub Copilot with optional environment URL in $ARGUMENTS.
What do I get? / Deliverables
Your chosen global or project MCP config lists the Dataverse HTTP server with the correct org-specific name and URL so Copilot can load it on restart.
- Updated `~/.copilot/mcp-config.json` or `.mcp/copilot/mcp.json` with Dataverse MCP entry
Recommended Skills
Journey fit
MCP server registration is integration work done while connecting your agent stack to business data—canonical on Build → integrations. Subphase integrations covers MCP HTTP endpoints, config files, and Copilot agent tooling—not generic app feature coding.
How it compares
Copilot-focused setup skill for one vendor MCP—not a general multi-server MCP marketplace installer.
Common Questions / FAQ
Who is mcp-configure for?
Solo developers and small teams using GitHub Copilot who need Dataverse MCP wired to the right org URL and config file.
When should I use mcp-configure?
During Build when onboarding a new repo or laptop, or when switching between global Copilot MCP and a project-local `.mcp/copilot/mcp.json` setup.
Is mcp-configure safe to install?
It edits local MCP JSON and may handle environment URLs; confirm values before saving and review the Security Audits panel on this page.
SKILL.md
READMESKILL.md - Mcp Configure
# Configure Dataverse MCP for GitHub Copilot This skill configures the Dataverse MCP server for GitHub Copilot with your organization's environment URL. Each organization is registered with a unique server name based on the org identifier (e.g., `DataverseMcporgbc9a965c`). If the user provided a URL it is: $ARGUMENTS. ## Instructions ### 0. Ask for MCP scope Ask the user whether they want to configure the MCP server globally or for this project only: > Would you like to configure the Dataverse MCP server: > 1. **Globally** (available in all projects) > 2. **Project-only** (available only in this project) Based on their choice, set the `CONFIG_PATH` variable: - **Global**: `~/.copilot/mcp-config.json` (use the user's home directory) - **Project**: `.mcp/copilot/mcp.json` (relative to the current working directory) Store this path for use in steps 1 and 6. ### 1. Check already-configured MCP servers Read the MCP configuration file at `CONFIG_PATH` (determined in step 0) to check for already-configured servers. The configuration file is a JSON file with the following structure: ```json { "mcpServers": { "ServerName1": { "type": "http", "url": "https://example.com/api/mcp" } } } ``` Or it may use `"servers"` instead of `"mcpServers"` as the top-level key. Extract all `url` values from the configured servers and store them as `CONFIGURED_URLS`. For example: ```json ["https://orgfbb52bb7.crm.dynamics.com/api/mcp"] ``` If the file doesn't exist or is empty, treat `CONFIGURED_URLS` as empty (`[]`). This step must never block the skill. ### 2. Ask how to get the environment URL Ask the user: > How would you like to provide your Dataverse environment URL? > 1. **Auto-discover** — List available environments from your Azure account (requires Azure CLI) > 2. **Manual entry** — Enter the URL directly Based on their choice: - If **Auto-discover**: Proceed to step 2a - If **Manual entry**: Skip to step 2b ### 2a. Auto-discover environments **Check prerequisites:** - Verify Azure CLI (`az`) is installed (check with `which az` or `where az` on Windows) - If not installed, inform the user and fall back to step 2b **Make the API call:** 1. Check if the user is logged into Azure CLI: ```bash az account show ``` If this fails, prompt the user to log in: ```bash az login ``` 2. Get an access token for the Power Apps API: ```bash az account get-access-token --resource https://service.powerapps.com/ --query accessToken --output tsv ``` 3. Call the Power Apps API to list environments: ``` GET https://api.powerapps.com/providers/Microsoft.PowerApps/environments?api-version=2016-11-01 Authorization: Bearer {token} Accept: application/json ``` 4. Parse the JSON response and filter for environments where `properties?.linkedEnvironmentMetadata?.instanceUrl` is not null. 5. For each matching environment, extract: - `properties.displayName` as `displayName` - `properties.linkedEnvironmentMetadata.instanceUrl` (remove trailing slash) as `instanceUrl` 6. Create a list of environments in this format: ```json [ { "displayName": "My Org (default)", "instanceUrl": "https://orgfbb52bb7.crm.dynamics.com" }, { "displayName": "Another Env", "instanceUrl": "https://orgabc123.crm.dynamics.com" } ] ``` **If the API call succeeds**, proceed to step 3. **If the API call fails** (user not logged in, network error, no environments found, or any other error), tell the user what went wrong and fall back to step 2b. ### 2b. Manual entry — ask for the URL Ask the user to provide their environment URL directly: > Please enter your Dataverse environment URL. > > Example: `https://myorg.crm10.dynamics.com` > > You can find this in the Power Platform Admin Center under Environments. Then skip to step 4. ### 3. Ask the user to select an e