XRM MCP Skill

Query Dataverse/XRM schemas and records with strict org_url isolation.

18|Updated Apr 7, 2026
One-click install
npx skills add https://github.com/jukkan/xrm-mcp --skill xrm-mcp-skill
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: XRM MCP Skill
Source: https://github.com/jukkan/xrm-mcp/tree/main
Command: npx skills add https://github.com/jukkan/xrm-mcp --skill xrm-mcp-skill

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill helps an AI agent connect to a specific Dataverse/XRM environment and reliably find the right tables and fields before running queries or making updates, avoiding guesses that fail when schemas differ between organizations.

Core Features & Use Cases

  • Environment-first connectivity: start with ping(org_url) to confirm the environment and authentication work.
  • Schema discovery workflow: resolve user-friendly table names with find_table(org_url, name), then fetch exact column metadata with describe_table(org_url, table).
  • Grounded data access and updates: query records with query_records and use create_record/update_record/upsert_record for careful write operations, while enforcing the org_url as the only source of truth.
  • Safety guardrails for routing: directs the agent to surface errors instead of silently switching to other approaches for Dataverse data requests.

Quick Start

Ask your agent: "From https://yourorg.crm4.dynamics.com, find the logical table for 'hour entries', discover its columns, then show the records from the last 30 days with a brief summary."

Frequently Asked Questions about XRM MCP Skill

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I discover Dataverse table schemas before querying records?

To discover Dataverse table schemas, you must execute a grounded workflow starting with ping(org_url), then use find_table to resolve logical names, and describe_table to fetch exact column metadata before querying records. This prevents schema mismatch failures across different organizations.

Can an AI agent safely write records to a specific Dataverse environment?

Yes, an AI agent can safely write records to a specific Dataverse environment using create_record, update_record, and upsert_record operations. The Skill enforces strict org_url isolation as the only source of truth to prevent incorrect cross-environment assumptions during write operations.

What is the best way to prevent cross-environment data errors in Dataverse?

The best way to prevent cross-environment data errors in Dataverse is enforcing strict org_url isolation and explicit error surfacing. The Skill directs the agent to surface errors instead of silently switching to alternative approaches when schema discovery or data access fails.

How do I query Dataverse records without guessing logical names?

To query Dataverse records without guessing logical names, resolve user-friendly table names using find_table(org_url, name), then fetch exact column metadata with describe_table(org_url, table). Only after this schema discovery should you execute query_records for safe data retrieval.

Does this approach support OData queries for XRM data?

Yes, the approach supports OData queries for XRM data through the query_records functionality. It ensures grounded data access by requiring environment-first connectivity via ping, schema discovery, and strict org_url enforcement before executing any OData query operations.

Why do my Dataverse queries fail when schemas differ between organizations?

Dataverse queries fail when schemas differ between organizations because logical names and column names vary. This Skill solves the problem by enforcing a discovery-driven workflow with find_table and describe_table to verify exact schema metadata before attempting any record queries or updates.