Token导航 LogoToken导航TokenDH.com
研究检索操作浏览器github未标认证来源可访问许可证需确认审计异常

dv-connectDV 连接

Agent Skill

dv-connect 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

186

周安装

8

GitHub Stars

70

下载量

65
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:dv-connect(DV 连接)
来源仓库:https://github.com/microsoft/dataverse-skills
仓库路径:skills/dv-connect
安装命令:
npx skills add https://github.com/microsoft/dataverse-skills --skill dv-connect
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/microsoft/dataverse-skills --skill dv-connect

简介

dv-connect 用于一键连接 Microsoft Dataverse,处理认证、环境选择和配置初始化。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中需要集成 Dataverse 或设置 MCP 时使用。
  • 可通过 npx skills add 命令从 GitHub 安装,需确认权限范围和维护状态后再使用。
  • 使用前建议核验是否会触发联网、命令执行或文件读写操作。
  • 可结合来源仓库和原始 README 进一步了解具体用法和限制条件。

SKILL.md

Skill: Connect

One-step connection to Dataverse. Handles tool installation, authentication, environment selection, workspace initialization, MCP configuration, and verification — all idempotently. Each step checks if it's already done and skips if so.

Environment-First Rule — All metadata (solutions, columns, tables, forms, views) and plugin registrations are created in the Dynamics environment via API or scripts, then pulled into the repo. Never write or edit solution XML by hand to create new components.

Execute every step in order. Do not skip ahead, even if a later step appears more relevant to the user's immediate goal.


Step 1: Ensure tools are installed

Check each tool independently — do not use fail-fast parallel execution. If one tool check fails, continue checking the others so you can report all missing tools at once. See tools-setup.md for installation commands and platform-specific notes.

ToolCheck
Python 3python --version
Gitgit --version
Node.jsnode --version
PAC CLIpac (prints version banner; note: pac --version is not a valid command and returns a non-zero exit code) (see tools-setup.md for Windows path discovery if not in PATH)
Dataverse CLInpm list -g @microsoft/dataverse (prints @microsoft/dataverse@<version> if installed globally; prints (empty) if not)
.NET SDKdotnet --version
Azure CLIaz --version

.NET SDK is needed for PAC CLI but NOT for the Dataverse CLI (the npm package bundles its own runtime). Node.js powers the Dataverse CLI npm package (@microsoft/dataverse), which is used as the MCP proxy and for scripted data plane actions. Azure CLI is used as a fallback for environment discovery when PAC CLI isn't available (see mcp-configuration.md Step 3b). GitHub CLI is not needed for connecting — it's used later for ALM/CI/CD scenarios (see dv-solution).

If any tool is missing, install it (see tools-setup.md), then verify. If winget installs a tool but it's not in PATH, ask the user to restart the terminal.

After Python is confirmed:

pip install --upgrade azure-identity requests PowerPlatform-Dataverse-Client pandas

After Node.js is confirmed, install or upgrade the Dataverse CLI to the latest version. This mirrors the pip install --upgrade pattern used for the Python SDK — running it on each connect ensures the CLI stays current:

npm install -g @microsoft/dataverse@latest

Skip condition: All tools present, Python SDK installed, and pandas importable (python -c "import pandas").


Step 2: Discover and select the environment

Before asking the user for a URL, check what's already available:

pac auth list
pac org who

If PAC CLI is authenticated:

  • Show the currently active environment
  • Offer to use it, switch to another (pac env list), or create a new one

If PAC CLI is not authenticated:

  • Ask: "Do you want to connect to an existing environment or create a new one?"

Before selecting, check for tenant/region mismatch. If the target environment URL uses a different region (e.g., crm10.dynamics.com = APAC) than the currently authenticated account's environments, the current auth profile likely belongs to a different tenant. In that case, create a new auth profile for the correct tenant rather than trying pac org select (which will fail with "no organization found"):

pac auth create --name <profile-name> --environment <url>

To select from existing profiles:

pac auth select --name <profile-name>

To create a new environment (requires admin permissions):

pac admin create --name "<name>" --type "<type>" --region "<region>"

If this fails with permissions error, guide the user to Power Platform Admin Center to create it, then connect.

Confirm connection:

pac org who

Parse the output to extract DATAVERSE_URL and TENANT_ID.

If pac org who does not show a tenant ID, fall back to:

curl -sI https://<org>.crm.dynamics.com/api/data/v9.2/ \
  | grep -i "WWW-Authenticate" \
  | sed -n 's|.*login\.microsoftonline\.com/\([^/]*\).*|\1|p'

Skip condition: .env exists with valid DATAVERSE_URL and TENANT_ID, and pac org who confirms the connection.


Step 3: Create.env

Present authentication options:

How would you like to authenticate with Dataverse? 1. Interactive login (recommended) — Sign in via browser. No app registration needed. Token stays cached across sessions. 2. Service principal (for CI/CD) — Uses CLIENT_ID and CLIENT_SECRET from an Azure app registration.

Write .env directly — do not instruct the user to create it:

Detect the current tool (Claude or Copilot) from context and set MCP_CLIENT_ID automatically:

  • Claude (CLI or VSCode extension): 0c412cc3-0dd6-449b-987f-05b053db9457
  • GitHub Copilot: aebc6443-996d-45c2-90f0-388ff96faa56
with open(".env", "w") as f:
    f.write(f"DATAVERSE_URL={dataverse_url}\n")
    f.write(f"TENANT_ID={tenant_id}\n")
    f.write(f"MCP_CLIENT_ID={mcp_client_id}\n")
    f.write(f"SOLUTION_NAME={solution_name}\n")
    f.write(f"PUBLISHER_PREFIX=\n")  # filled in when solution is created
    f.write(f"PAC_AUTH_PROFILE=nonprod\n")
    if client_id:
        f.write(f"CLIENT_ID={client_id}\n")
    if client_secret:
        f.write(f"CLIENT_SECRET={client_secret}\n")
Multi-environment repos: If the team deploys to multiple environments from the same repo, each developer's .env represents their current target. Consider .env.dev, .env.staging, etc., with a pattern like cp.env.dev.env to switch targets. Each developer manages their own local .env.

Ensure .env is in .gitignore:

import os

GITIGNORE_ENTRIES = [
    ".env", ".vscode/settings.json", ".claude/mcp_settings.json",
    ".token_cache.bin", "*.snk", "__pycache__/", "*.pyc",
    "solutions/*.zip", "plugins/**/bin/", "plugins/**/obj/",
]
gitignore = open(".gitignore").read() if os.path.exists(".gitignore") else ""
missing = [e for e in GITIGNORE_ENTRIES if e not in gitignore]
if missing:
    with open(".gitignore", "a") as f:
        f.write("\n" + "\n".join(missing) + "\n")

Skip condition: .env already exists with all required values.


Step 4: Set up project structure (new projects only)

If this is a new project (no scripts/ directory):

mkdir -p solutions plugins scripts

Copy plugin scripts:

cp .dataverse/scripts/auth.py scripts/

Copy templates/CLAUDE.md to the repo root if it doesn't exist. Replace placeholders ({{DATAVERSE_URL}}, {{SOLUTION_NAME}}, {{PUBLISHER_PREFIX}}) with values from .env.

Skip condition: scripts/auth.py exists.


Step 5: Verify the connection

pac org who
python scripts/auth.py

Both must succeed. Confirm the environment URL matches the intended target.

If either fails:

  • pac org who fails → re-run Step 2
  • python scripts/auth.py fails → check Python SDK install, check .env values

Step 6: Configure MCP server

Skip this step if MCP is already configured:

  • .mcp.json or ~/.copilot/mcp-config.json or .mcp/copilot/mcp.json contains a Dataverse server entry
  • claude mcp list shows a dataverse-* server registered

If MCP is not configured, follow mcp-configuration.md:

  1. Detect which tool the user is running (Copilot or Claude) from context
  2. Set MCP_CLIENT_ID based on tool choice
  3. Get environment URL from .env
  4. Default to GA endpoint (/api/mcp)
  5. Register the MCP server (Copilot: write JSON config; Claude: run claude mcp add command)
  6. Handle admin consent and environment allowlist (one-time per tenant/environment)

Important: MCP configuration requires an editor/CLI restart.

For Copilot: Write the JSON config, then:

✅ Dataverse MCP server configured. Restart your editor for changes to take effect.

For Claude: Run the claude mcp add command, then warn the user about the auth popup that will appear on next launch:

✅ Dataverse MCP server registered. Restart Claude Code to enable MCP tools. Remember to use claude --continue to resume the session without losing context. On restart, a browser window will open asking you to sign in to your Dataverse environment. This is the MCP proxy authenticating on your behalf — sign in with the same account you used for PAC CLI (e.g., {username}). This only happens once; the token is cached for future sessions.

Step 7: Final verification

After the editor/CLI restarts, verify MCP works.

Programmatic check (preferred):

npx @microsoft/dataverse mcp {DATAVERSE_URL} --validate

This tests both GA and Preview endpoints, verifies authentication, and reports detailed errors without starting the server. If it passes, MCP is correctly configured.

Agent check (alternative):

"Try asking: 'List the tables in my Dataverse environment.'"

If list_tables is called directly → MCP is connected. If the agent falls back to PAC CLI or Web API → see mcp-configuration.md troubleshooting section.

MCP Server Capabilities

TaskUse
Create/read/update/delete data recordsMCP server
Create a new tableMCP server
Explore what tables/columns existMCP server (list_tables, describe_table)
Add a column to an existing tableMCP server (update_table) for basic columns; SDK or Web API (see dv-metadata) for advanced options (choice columns, lookups, relationships)
Create a relationship / lookupSDK (see dv-metadata)
Create or modify a formWeb API (see dv-metadata)
Create or modify a viewWeb API (see dv-metadata)

After verifying MCP works, tell the user:

✅ Connected to Dataverse at {DATAVERSE_URL}. Tools installed, authenticated, MCP live. You can now: - Create tables, columns, and relationships (dv-metadata) - Write and import data (dv-data) - Query and analyze data (dv-query) - Export and promote solutions (dv-solution) To create your first solution, see the dv-solution skill. To load sample data (accounts, contacts, opportunities), ask: "Load demo data into my Dataverse environment."

Supported Agents

This plugin's skill files are natively loaded by both GitHub Copilot CLI and Claude Code CLI when installed as a plugin. No manual context-loading is needed — both agents discover and invoke skills automatically.

The PAC CLI commands, Python scripts, and XML templates work identically in both environments.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

34.52%
按下载量换算22

Claude

31.88%
按下载量换算21

Cursor

20.28%
按下载量换算13

Gemini CLI

10.88%
按下载量换算7

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

未通过

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills