API ВЕГА

JAJ Dataverse Dev MCP

Лёгкий MCP-сервер для повседневной разработки с Dataverse и Power Platform.

Подключайте агентов к нескольким средам Dataverse, используя имеющуюся учётную запись Azure CLI.

Сервер предоставляет простой и удобный для агентов интерфейс к Web API для работы с данными, метаданными, решениями и компонентами, а также для устранения неполадок и выполнения задач разработки.

Агент → MCP → учётная запись Azure CLI → Dataverse Web API

Быстрый старт: VS Code и GitHub Copilot

Добавьте сервер в .vscode/mcp.json:

{
  "servers": {
		"dataverse-dev": {
			"command": "npx",
			"args": [ "-y", "jaj-dataverse-dev-mcp" ]
		}
	}
}

Сохраните файл и нажмите Start. При первом запуске может потребоваться некоторое время, пока npx загружает пакет.

Войдите с помощью Azure CLI:

az login

Создайте в корне проекта файл environments.json и укажите в нём нужные среды:

{
  "environments": {
    "dev": {
      "url": "https://org8ffb6d07.crm.dynamics.com/",
      "allowWrite": true
    }
  }
}

Откройте Copilot и попробуйте выполнить следующие запросы:

  • Перечисли доступные среды Dataverse

  • Выполни whoami для среды dev

  • Покажи имена и идентификаторы пяти недавно созданных учётных записей

  • Перечисли неуправляемые решения

Готово!

Другие агенты, совместимые с MCP, настраиваются так же: запустите jaj-dataverse-dev-mcp с транспортом stdio и предоставьте доступ к локальному сеансу Azure CLI и конфигурации подключений.

Быстрый старт: Claude Desktop

Добавьте сервер в claude_desktop_config.json:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "dataverse-dev": {
      "command": "npx",
      "args": ["-y", "jaj-dataverse-dev-mcp"],
      "env": { "DATAVERSE_ENVIRONMENTS_PATH": "C:/Users/you/project/environments.json" }
    }
  }
}

Сохраните файл, полностью закройте Claude Desktop и запустите его снова. Изменения конфигурации не применяются, если просто закрыть окно.

Продолжите с раздела «Войдите с помощью Azure CLI…» в разделе «Быстрый старт: VS Code и GitHub Copilot».

Зачем нужен этот проект?

Уже существует несколько реализаций MCP для Dataverse, в том числе собственные инструменты Microsoft.

Проект появился в ходе повседневной разработки: агентам часто требовались возможности, выходящие за рамки доступных специализированных инструментов.

Во многих случаях агент мог успешно выполнить задачу, самостоятельно сформировав запросы к Dataverse Web API.

Этот MCP использует именно такой подход.

Вместо того чтобы скрывать Dataverse за крупным уровнем абстракции, он предоставляет широкий доступ к Web API через простой промежуточный слой.

Сервер также рассчитан на разработчиков и консультантов, которые регулярно переключаются между проектами, заказчиками и средами Dataverse.

Один MCP-сервер может работать с несколькими средами Dataverse, используя имеющуюся учётную запись Azure CLI.

Отдельная регистрация приложения, идентификатор клиента и секрет клиента не требуются.

Предварительные требования

Аутентификация

   # Specific tenant, if your tenant is not the default

az login --allow-no-subscriptions # Tenant without subscriptions az login --use-device-code # Remote/headless environments

To inspect the currently active Azure CLI account:

az account show">

# Authentication is based on your current Azure CLI identity:

az login

# Useful variants:

az login --tenant <tenant-id>       # Specific tenant, if your tenant is not the default
az login --allow-no-subscriptions   # Tenant without subscriptions
az login --use-device-code          # Remote/headless environments

# To inspect the currently active Azure CLI account:

az account show

Среды Dataverse

Среды задаются в файле environments.json в корне проекта и обозначаются понятными именами, например dev, test и prod.

Агенты используют эти имена, чтобы выбрать среду Dataverse для работы.

Если среда находится в тенанте, отличном от тенанта Azure CLI по умолчанию, укажите для неё tenantId.

Путь к файлу конфигурации можно переопределить во время выполнения с помощью DATAVERSE_ENVIRONMENTS_PATH.

Пример:

{
  "environments": {
    "dev": {
      "url": "https://YOUR-DEV.crm.dynamics.com/",
      "allowWrite": true
    },
    "test": {
      "url": "https://YOUR-TEST.crm4.dynamics.com",
      "allowWrite": false
    },
    "prod": {
      "url": "https://YOUR-PROD.crm4.dynamics.com",
      "allowWrite": false,
      "tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    }
  }
}

Добавление инструкций Copilot для проекта

Чтобы агент работал эффективнее, добавьте инструкции по Dataverse в проект, где используется MCP.

Скопируйте docs/examples/copilot-instructions.md в файл .github/copilot-instructions.md в рабочей области, где используется MCP-сервер, а затем адаптируйте его для своего проекта:

  • замените YOUR-dev, YOUR-test и YOUR-prod именами сред из environments.json

  • замените YOUR_DEFAULT_SOLUTION уникальным именем основного решения Dataverse

  • настройте среду по умолчанию и правила безопасности с учётом проекта

Зафиксируйте настроенный файл в репозитории проекта, чтобы все участники команды пользовались одинаковыми рекомендациями.

Запуск напрямую через npx

Пакет можно запустить вручную; по умолчанию используется транспорт stdio:

npx -y jaj-dataverse-dev-mcp

Для разработки или клиентов, использующих Streamable HTTP, добавьте --http.

Для каких задач подходит сервер?

Хотя MCP намеренно представляет собой простой промежуточный слой для Dataverse Web API, он поддерживает широкий круг задач разработки и устранения неполадок. Например, с его помощью можно:

  • выполнять запросы к записям Dataverse и обновлять их

  • изучать таблицы, столбцы, метаданные, издателей и решения

  • создавать и настраивать неуправляемые решения

  • добавлять существующие компоненты в решения

  • работать с действиями и функциями Dataverse

  • экспортировать решения для развертывания в других средах

Сервер подходит как для непосредственного выполнения задач разработки, так и для сценариев с участием агента: агент изучает Dataverse, выбирает дальнейшее действие и выполняет его через MCP.