← Back to Dynamics 365 Finance & Operations

Install Dynamics 365 Finance & Operations

Pick your client, copy the command, done.

1

Add it to Claude Code

claude mcp add -e "D365FO_TENANT_ID=${D365FO_TENANT_ID}" -e "D365FO_CLIENT_ID=${D365FO_CLIENT_ID}" -e "D365FO_CLIENT_SECRET=${D365FO_CLIENT_SECRET}" d365fo-client -- uvx --from d365fo-client@latest d365fo-fastmcp-server
Required:D365FO_TENANT_IDD365FO_CLIENT_IDD365FO_CLIENT_SECRET

Environment Variables

Set these before running Dynamics 365 Finance & Operations.

VariableDescriptionRequired
D365FO_TENANT_IDAzure AD Tenant ID for D365 F&O authenticationYes
D365FO_CLIENT_IDAzure AD Client ID for D365 F&O authenticationYes
D365FO_CLIENT_SECRETAzure AD Client Secret for D365 F&O authenticationYes

Available Tools (2)

Once configured, Dynamics 365 Finance & Operations gives your AI agent access to:

odata_queryExecute OData queries against D365 F&O entities
entity_namequery_options
get_metadataRetrieve metadata for D365 F&O entities
entity_name

Try It Out

After setup, try these prompts with your AI agent:

List all available entities in the Finance and Operations environment.
Fetch the top 10 records from the Vendor entity using OData.
Get the metadata definition for the SalesOrderHeader entity.
Query the GeneralJournalEntry entity for records created in the last 30 days.
Prerequisites & system requirements
  • An MCP-compatible client (Claude Code, Cursor, Windsurf, Claude Desktop, or Codex)
  • Python 3.8+ with pip installed
  • Docker installed and running
  • D365FO_TENANT_ID — Azure AD Tenant ID for D365 F&O authentication
  • D365FO_CLIENT_ID — Azure AD Client ID for D365 F&O authentication
  • D365FO_CLIENT_SECRET — Azure AD Client Secret for D365 F&O authentication
Alternative installation methods

Docker

docker run --rm -i -v d365fo-mcp:/home/mcp_user/ ghcr.io/mafzaal/d365fo-client:latest

Keep this setup from going cold

Save the docs, env vars, and workflow around Dynamics 365 Finance & Operations in Conare so Claude Code, Codex, and Cursor remember it next time.

Remember this setup