用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/christophacham/agent-skills-library --skill mcp-configure命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | mcp-configure |
| description | Configure an MCP server for GitHub Copilot with your Dataverse environment. |
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.
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:
- Globally (available in all projects)
- Project-only (available only in this project)
Based on their choice, set the CONFIG_PATH variable:
~/.copilot/mcp-config.json (use the user's home directory).mcp/copilot/mcp.json (relative to the current working directory)Store this path for use in steps 1 and 6.
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.
Ask the user:
How would you like to provide your Dataverse environment URL?
- Auto-discover — List available environments from your Azure account (requires Azure CLI)
- Manual entry — Enter the URL directly
Based on their choice:
Check prerequisites:
az) is installed (check with which az or where az on Windows)Make the API call:
Check if the user is logged into Azure CLI:
az account show
If this fails, prompt the user to log in:
az login
Get an access token for the Power Apps API:
az account get-access-token --resource https://service.powerapps.com/ --query accessToken --output tsv
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
Parse the JSON response and filter for environments where properties?.linkedEnvironmentMetadata?.instanceUrl is not null.
For each matching environment, extract:
properties.displayName as displayNameproperties.linkedEnvironmentMetadata.instanceUrl (remove trailing slash) as instanceUrlCreate 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.
Ask the user to provide their environment URL directly:
Please enter your Dataverse environment URL.
Example:
https://myorg.crm10.dynamics.comYou can find this in the Power Platform Admin Center under Environments.
Then skip to step 4.
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?
- My Org (default) —
https://orgfbb52bb7.crm.dynamics.com(already configured)- Another Env —
https://orgabc123.crm.dynamics.comEnter 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.
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.
Ask the user:
Which endpoint would you like to use?
- Generally Available (GA) —
/api/mcp(recommended)- Preview —
/api/mcp_preview(latest features, may be unstable)
Based on their choice:
MCP_URL to {USER_URL}/api/mcpMCP_URL to {USER_URL}/api/mcp_previewUpdate 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:
https://orgbc9a965c.crm10.dynamics.com → orgbc9a965cDataverseMcp to create the server name
DataverseMcporgbc9a965cThis is the SERVER_NAME.
Update the configuration file:
If CONFIG_PATH is for a project-scoped configuration (.mcp/copilot/mcp.json), ensure the directory exists first:
mkdir -p .mcp/copilot
Read the existing configuration file at CONFIG_PATH, or create a new empty config if it doesn't exist:
{}
Determine which top-level key to use:
"servers", use that"mcpServers"Add or update the server entry:
{
"mcpServers": {
"{SERVER_NAME}": {
"type": "http",
"url": "{MCP_URL}"
}
}
}
Write the updated configuration back to CONFIG_PATH with proper JSON formatting (2-space indentation).
Important notes:
SERVER_NAME already exists, update it with the new MCP_URLProceed to step 7.
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
If something goes wrong, help the user check:
https://<org>.<region>.dynamics.com).mcp/copilot/mcp.json file was created successfully~/.copilot/ directory