PluginBench
Skill
Official
Fail
Audit score 45

mcp-configure

github/awesome-copilot

Configure Dataverse MCP server for GitHub Copilot with your organization's environment.

What is mcp-configure?

This skill sets up the Dataverse MCP server integration for GitHub Copilot, allowing you to query and manage Dataverse records directly from your editor. It guides you through environment discovery, URL configuration, and endpoint selection (GA or Preview).

  • Auto-discover Dataverse environments from your Azure account or manually enter environment URL
  • Choose between Generally Available (GA) or Preview MCP endpoints
  • Register the MCP server globally or project-scoped in your GitHub Copilot configuration
  • Generate unique server names based on organization identifiers
  • Preserve existing MCP configurations while adding new servers

How to install mcp-configure

npx skills add https://github.com/github/awesome-copilot --skill mcp-configure
Prerequisites
  • Azure CLI installed (for auto-discovery; optional if using manual entry)
  • Access to a Dataverse environment with MCP enabled
  • GitHub Copilot configured in your editor
Claude Code
Cursor
Windsurf
Cline

How to use mcp-configure

  1. 1.Choose whether to configure globally or project-only
  2. 2.Select auto-discover (requires Azure login) or manual URL entry
  3. 3.If auto-discovering, authenticate with Azure and select from available environments; if manual, enter your environment URL directly
  4. 4.Confirm the environment URL
  5. 5.Choose between GA (/api/mcp) or Preview (/api/mcp_preview) endpoint
  6. 6.Review the confirmation and restart your editor for changes to take effect

Use cases

Good for
  • Setting up Dataverse access for a new development project
  • Configuring multiple Dataverse environments for different teams or orgs
  • Switching between GA and Preview endpoints for testing new MCP features
  • Registering Dataverse MCP globally for use across all projects
Who it's for
  • Developers using GitHub Copilot with Dataverse environments
  • Power Platform developers integrating Dataverse into their workflow
  • Teams managing multiple Dataverse environments

mcp-configure FAQ

What's the difference between GA and Preview endpoints?

GA (/api/mcp) is the stable, recommended endpoint. Preview (/api/mcp_preview) includes latest features but may be unstable.

Can I configure multiple Dataverse environments?

Yes. Each environment gets a unique server name (e.g., DataverseMcporgbc9a965c). You can add multiple servers to the same configuration file.

Where is the configuration saved?

Global: ~/.copilot/mcp-config.json. Project-only: .mcp/copilot/mcp.json in your project directory.

What if auto-discovery fails?

The skill falls back to manual entry. Ensure Azure CLI is installed and you're logged in with `az login`.

Do I need to restart my editor?

Yes. You must restart your editor or reload the window for the MCP configuration changes to take effect.

Full instructions (SKILL.md)

Source of truth, from github/awesome-copilot.


name: mcp-configure description: Configure an MCP server for GitHub Copilot with your Dataverse environment.

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:

{
  "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:

["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:

    az account show
    

    If this fails, prompt the user to log in:

    az login
    
  2. Get an access token for the Power Apps API:

    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:

    [
      { "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 environment

Present the environments as a numbered list. For each environment, check whether any URL in CONFIGURED_URLS starts with that environment's instanceUrl — if so, append (already configured) to the line.

I found the following Dataverse environments on your account. Which one would you like to configure?

  1. My Org (default) — https://orgfbb52bb7.crm.dynamics.com (already configured)
  2. Another Env — https://orgabc123.crm.dynamics.com

Enter the number of your choice, or type "manual" to enter a URL yourself.

If the user selects an already-configured environment, confirm that they want to re-register it (e.g. to change the endpoint type) before proceeding.

If the user types "manual", fall back to step 2b.

4. Confirm the selected URL

Take the instanceUrl from the chosen environment (or the manually entered URL) and strip any trailing slash. This is USER_URL for the remainder of the skill.

5. Confirm if the user wants "Preview" or "Generally Available (GA)" endpoint

Ask the user:

Which endpoint would you like to use?

  1. Generally Available (GA) — /api/mcp (recommended)
  2. Preview — /api/mcp_preview (latest features, may be unstable)

Based on their choice:

  • If GA: set MCP_URL to {USER_URL}/api/mcp
  • If Preview: set MCP_URL to {USER_URL}/api/mcp_preview

6. Register the MCP server

Update the MCP configuration file at CONFIG_PATH (determined in step 0) to add the new server.

Generate a unique server name from the USER_URL:

  1. Extract the subdomain (organization identifier) from the URL
    • Example: https://orgbc9a965c.crm10.dynamics.com → orgbc9a965c
  2. Prepend DataverseMcp to create the server name
    • Example: DataverseMcporgbc9a965c

This is the SERVER_NAME.

Update the configuration file:

  1. If CONFIG_PATH is for a project-scoped configuration (.mcp/copilot/mcp.json), ensure the directory exists first:

    mkdir -p .mcp/copilot
    
  2. Read the existing configuration file at CONFIG_PATH, or create a new empty config if it doesn't exist:

    {}
    
  3. Determine which top-level key to use:

    • If the config already has "servers", use that
    • Otherwise, use "mcpServers"
  4. Add or update the server entry:

    {
      "mcpServers": {
        "{SERVER_NAME}": {
          "type": "http",
          "url": "{MCP_URL}"
        }
      }
    }
    
  5. Write the updated configuration back to CONFIG_PATH with proper JSON formatting (2-space indentation).

Important notes:

  • Do NOT overwrite other entries in the configuration file
  • Preserve the existing structure and formatting
  • If SERVER_NAME already exists, update it with the new MCP_URL

Proceed to step 7.

7. Confirm success and instruct restart

Tell the user:

✅ Dataverse MCP server configured for GitHub Copilot at {MCP_URL}.

Configuration saved to: {CONFIG_PATH}

IMPORTANT: You must restart your editor for the changes to take effect.

Restart your editor or reload the window, then you will be able to:

  • List all tables in your Dataverse environment
  • Query records from any table
  • Create, update, or delete records
  • Explore your schema and relationships

8. Troubleshooting

If something goes wrong, help the user check:

  • The URL format is correct (https://<org>.<region>.dynamics.com)
  • They have access to the Dataverse environment
  • The environment URL matches what's shown in the Power Platform Admin Center
  • Their Environment Admin has enabled "Dataverse CLI MCP" in the Allowed Clients list
  • Their Environment has Dataverse MCP enabled, and if they're trying to use the preview endpoint that is enabled
  • For project-scoped configuration, ensure the .mcp/copilot/mcp.json file was created successfully
  • For global configuration, check permissions on the ~/.copilot/ directory