Skip to main content
Glama
ahaugerud

d365-dmf-mcp

by ahaugerud

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DMF_BASE_URLYesThe environment URL, e.g. https://<env>.sandbox.operations.eu.dynamics.com
DMF_AZURE_TENANT_IDYesThe Entra tenant ID used to authenticate to Dynamics 365 F&O (e.g. via az login --tenant <entra-tenant-id>).
DMF_POLL_TIMEOUT_SECONDSNoOptional polling timeout in seconds (default 300).300
DMF_POLL_INTERVAL_SECONDSNoOptional polling interval in seconds (default 5).5

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
import_dataA

Import one or more data files into D365 through a DMF data project, as the signed-in user.

definition_group is the data project name (created automatically if it doesn't exist), company the legal entity id (e.g. USMF). files lists {entity, file_path} pairs: entity is the DMF entity name as shown in D365 (e.g. "Customer groups"; find it with search_entities), file_path a .csv or .xlsx whose first row holds the entity's field names (staging column names, e.g. CUSTOMERGROUPID; list them with get_entity_fields). Several entities can be imported in one call; D365 decides the order from their dependencies. format is the file format in the package, free text and case-insensitive: "CSV" (default) and "EXCEL" are the common ones; other CSV/Excel-based source formats on the environment (e.g. "CSV-Unicode") also work. An unknown value returns the available ones. Composite and XML-based entities are not supported. With wait=True, polls until the import finishes (or the timeout); otherwise returns the execution id to check with get_execution_status. dry_run only validates and builds the package.

create_data_projectB

Create an empty DMF import data project. Optional: import_data creates the project itself if it doesn't exist, and the first import defines its entities.

export_dataB

Run an existing DMF export data project and save its data files to output_dir.

The files are saved in the project's own source format (CSV, Excel, ...). Returns the saved paths.

get_execution_statusB

Get the status of a DMF execution (NotRun, Executing, Succeeded, PartiallySucceeded, Failed, Canceled), with per-entity status and error messages if it failed.

list_data_projectsA

List existing DMF data projects (name, Import/Export, description).

name_filter is a case-insensitive substring of the name or description; operation_type optionally restricts to "Import" or "Export". Use the names with import_data / export_data.

list_project_entitiesB

List the entities defined in a DMF data project, with source format and execution order (unit/level/sequence).

search_entitiesA

Search the DMF entity catalogue by case-insensitive substring of the entity name, target entity or module (e.g. "customer", "AccountsReceivable"). Returns entity names to use with import_data, plus category and module. Composite entities (X composite) are not importable here.

get_entity_fieldsA

List the importable columns of a DMF entity: the staging column names to use as the header row of the data file, with data type, max length and whether D365 flags the field as required. System-managed fields are omitted.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.8/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct DMF operation: entity catalogue search, field metadata, import, export, project listing/creation, project entity listing, and execution status. The only redundancy is that import_data can auto-create a data project, but create_data_project remains clearly scoped as an optional explicit step.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case convention (get_execution_status, search_entities, import_data, etc.). There are no mixed styles or vague names.

Tool Count5/5

Eight tools are well-scoped for a DMF import/export server. Each tool has a clear role, and the surface is neither too thin nor bloated.

Completeness4/5

The core import workflow is complete end-to-end: search entities, inspect fields, import data, and check execution status. Minor gaps remain: no tool to create/configure export projects, cancel running executions, or delete/update data projects, though some can be worked around via existing projects or wait/timeout behavior.

Maintenance

ActivityMaintained
ResponsivenessNo issues