Skip to main content

d365-dmf-mcp

MCP server that imports CSV files into Dynamics 365 F&O via Data Management (DMF). It runs locally and authenticates as the user signed in to the Azure CLI.

Setup on Windows

  1. Install uv and the Azure CLI.

    winget install astral-sh.uv Microsoft.AzureCLI
    
  2. Sign in with the account that has access to D365 (if there is no az session, the server falls back to an interactive browser login):

    az login --tenant <entra-tenant-id>
    
  3. Register the server with Claude Code (runs the published package via uvx; see .mcp.json.example):

    claude mcp add d365-dmf `
      -e DMF_AZURE_TENANT_ID=<entra-tenant-id> `
      -e DMF_BASE_URL=https://<env>.sandbox.operations.eu.dynamics.com `
      -- uvx d365-dmf-mcp
    

    Other MCP clients: copy the block from .mcp.json.example into the client's MCP config. To run from a local checkout instead, use uvx --from C:\path\to\d365-dmf-mcp d365-dmf-mcp.

Tools

Only the tenant and environment URL are config. Everything else is passed per call.

  • import_data(definition_group, company, files, format="CSV"): import one or more files into a data project and wait for the result. files is a list of {entity, file_path}; entity is the DMF entity name as shown in D365 (e.g. Customer groups) and the file (.csv or .xlsx) has the entity's field names (e.g. CUSTOMERGROUPID) in its first row. The server generates the package manifest, looks up each entity's target and the dependency order from D365, and creates the data project if it doesn't exist. format is free text (CSV, EXCEL, or any CSV/Excel-based D365 source format on the environment, e.g. CSV-Unicode).
  • export_data(output_dir, definition_group, company): run an existing export data project and save its files.
  • create_data_project(name, description=""): create an empty import data project (optional; import_data does this itself).
  • get_execution_status(execution_id): check the status of an execution, with errors if it failed.

Notes

  • Composite and XML-based entities are not supported.
  • Optional env vars: DMF_POLL_INTERVAL_SECONDS (default 5), DMF_POLL_TIMEOUT_SECONDS (default 300).

Metadata

Release files for d365-dmf-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for d365-dmf-mcp 0.1.0
File Size Uploaded Provenance Actions
d365_dmf_mcp-0.1.0.tar.gz 8.4 kB Without provenance Details for d365_dmf_mcp-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for d365-dmf-mcp 0.1.0
File Interpreter ABI Platform Actions
d365_dmf_mcp-0.1.0-py3-none-any.whl Python 3 none any Details for d365_dmf_mcp-0.1.0-py3-none-any.whl

Total release size: 17.8 kB

Release files / d365_dmf_mcp-0.1.0.tar.gz

Download URL d365_dmf_mcp-0.1.0.tar.gz
Size 8.4 kB
Tags Source
SHA-256 checksum
How to use checksums
fff21f7387008f7216fa9246c39ff10333c6f1df6af409eeafd912c5026c9a3d
BLAKE2b-256 checksum
How to use checksums
b05b80a0d8e5d4a83870a333f8de780f4a2552777ce3fab679bb3fd05fae2cdf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / d365_dmf_mcp-0.1.0-py3-none-any.whl

Download URL d365_dmf_mcp-0.1.0-py3-none-any.whl
Size 9.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d4af8e49cd41ace81d957eed817282ccf98f71caae65405eb49a8b0f72f75ed5
BLAKE2b-256 checksum
How to use checksums
792e8d97a0bd7eb30aad799c77bf987f96263ff5bb32c580f2ad9af874397727
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for d365-dmf-mcp 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page