D365FO MCP Server
A community-driven Microsoft Dynamics 365 Finance & Operations MCP server
Connector by mafzaal · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/mafzaal-d365fo-client
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 26, 2026.
- Tools
- 26 read · 17 write · 3 delete · 3 not yet classified
- Secrets
- 1 (API keys, tokens or passwords)
- Install scripts
- None found
- Runs as
- Python package
Tools by what they do 49
Read from the source code; the running server may list different tools.
Read 26 · Look things up without changing anything.
d365fo_execute_sql_queryd365fo_get_database_schemad365fo_get_database_statisticsd365fo_get_default_profiled365fo_get_entity_recordd365fo_get_entity_schemad365fo_get_enumeration_fieldsd365fo_get_environment_infod365fo_get_installed_modulesd365fo_get_labeld365fo_get_labels_batchd365fo_get_profile
Show 14 more tools
d365fo_get_profile_namesd365fo_get_server_configd365fo_get_server_performanced365fo_get_sync_historyd365fo_get_sync_progressd365fo_get_table_infod365fo_list_profilesd365fo_list_sync_sessionsd365fo_query_entitiesd365fo_search_actionsd365fo_search_entitiesd365fo_search_enumerationsd365fo_search_profilesd365fo_validate_profile
Write 17 · Create, change, send or run things.
d365fo_call_actiond365fo_call_json_serviced365fo_cancel_syncd365fo_clone_profiled365fo_create_entity_recordd365fo_create_profiled365fo_download_customer_invoiced365fo_download_debit_credit_noted365fo_download_free_text_invoiced365fo_download_purchase_orderd365fo_download_sales_confirmationd365fo_download_srs_report
Show 5 more tools
d365fo_import_profilesd365fo_set_default_profiled365fo_start_syncd365fo_update_entity_recordd365fo_update_profile
Delete 3 · Delete, drop, revoke or wipe things.
d365fo_delete_entity_recordd365fo_delete_profiled365fo_reset_performance_stats
Not yet classified 3 · We could not tell from the name and description.
d365fo_export_profilesd365fo_test_connectiond365fo_test_profile_connection
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
D365FO_CLIENT_SECRET
Other settings (environment variables or headers).
D365FO_BASE_URLD365FO_CLIENT_IDD365FO_TENANT_ID
Network hosts it talks to 14
docs.microsoft.com· found in codegithub.com· found in codegraph.microsoft.com· found in codelogin.microsoftonline.com· found in codemycompany.sandbox.operations.dynamics.com· found in codemyvault.vault.azure.net· found in coderaw.githubusercontent.com· found in codeschema.management.azure.com· found in codetest-env.dynamics.com· found in codetest.dynamics.com· found in codethedataguy.pro· found in codeusnconeboxax1aos.cloud.onebox.dynamics.com· found in codevault.vault.azure.net· found in codeyour-fo-environment.dynamics.com· found in code
Files it touches
- Your home directory (~)
~/.d365fo-client/trace_client_id~/.d365fo-mcp/cache- Any path the agent passes to its tools
Tools (49)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
d365fo_call_actionExecute an OData action method in D365 Finance & Operations. Args: action_name: Full name of the OData action to invoke parameters: Action parameters as key-value pairs entity_name: The entity's public collection name or entity set name (e.g., "CustomersV3", "SalesOrders", "DataManagementEntities") key_fields: Primary key fields for entity-bound actions key_values: Primary key values for entity-bound actions profile: Optional profile name Returns: Dictionary with action result
d365fo_call_json_serviceCall a D365 F&O JSON service endpoint using the /api/services pattern. This provides a generic way to invoke any JSON service operation in D365 F&O. Args: service_group: Service group name (e.g., 'SysSqlDiagnosticService') service_name: Service name (e.g., 'SysSqlDiagnosticServiceOperations') operation_name: Operation name (e.g., 'GetAxSqlExecuting') parameters: Optional parameters to send in the POST body profile: Configuration profile to use Returns: Dictionary with service response data and metadata Example: Call a service without parameters: { "s…
d365fo_cancel_syncCancel a running sync session. Only sessions that are currently running and marked as cancellable can be cancelled. Args: session_id: Session ID of the sync operation to cancel profile: Configuration profile to use (optional - uses default profile if not specified) Returns: Dictionary with cancellation result
d365fo_clone_profileClone an existing D365FO environment profile with optional modifications. Args: sourceProfileName: Name of the profile to clone newProfileName: Name for the new profile description: Description for the new profile Returns: Dictionary with cloning result
d365fo_create_entity_recordCreate a new record in a D365 Finance & Operations data entity. Args: entity_name: The entity's public collection name or entity set name (e.g., "CustomersV3", "SalesOrders", "DataManagementEntities") data: Record data containing field names and values return_record: Whether to return the complete created record profile: Optional profile name Returns: Dictionary with creation result
d365fo_create_profileCreate a new D365FO environment profile with full configuration options. Args: name: Profile name baseUrl: D365FO base URL description: Profile description verifySsl: Whether to verify SSL certificates (default: True) timeout: Request timeout in seconds (default: 60) useLabelCache: Whether to enable label caching (default: True) labelCacheExpiryMinutes: Label cache expiry in minutes (default: 60) useCacheFirst: Whether to use cache-first behavior (default: True) language: Default language code (default: "en-US") cacheDir: Custom cache directory path (op…
d365fo_delete_entity_recordDelete a record from a D365 Finance & Operations data entity. Args: entity_name: The entity's public collection name or entity set name (e.g., "CustomersV3", "SalesOrders", "DataManagementEntities") key_fields: List of key field names for composite keys key_values: List of key values corresponding to key fields profile: Optional profile name Returns: Dictionary with deletion result
d365fo_delete_profileDelete a D365FO environment profile. Automatically invalidates all cached client connections since the profile is no longer available. Args: profileName: Name of the profile to delete Returns: Dictionary with deletion result including number of clients invalidated
d365fo_download_customer_invoiceDownload a customer invoice report as PDF from D365 Finance & Operations. This is a convenience tool with preset configurations for customer invoices. Use this when you need to quickly download customer invoices without specifying all the technical parameters. To find available invoices to download, query the Customer Invoice Journal entity: - Entity name: CustInvoiceJourBiEntity - Collection name: CustInvoiceJourBiEntities - Key fields: InvoiceId, InvoiceDate, InvoiceAccount, InvoiceAmount, SalesType, dataAreaId - Use d365fo_query_entities tool to search for invoices Example query to find …
d365fo_download_debit_credit_noteDownload a debit/credit note report as PDF from D365 Finance & Operations. This is a convenience tool specifically configured for debit and credit notes using the CustDebitCreditNoteController. These are adjustment documents for customer invoices. To find available documents to download, query the Customer Invoice Journal entity: - Entity name: CustInvoiceJourBiEntity - Collection name: CustInvoiceJourBiEntities - Key fields: InvoiceId, InvoiceDate, InvoiceAccount, InvoiceAmount, SalesType, dataAreaId - Use d365fo_query_entities tool to search for invoices Example query to find invoices: …
d365fo_download_free_text_invoiceDownload a free text invoice report as PDF from D365 Finance & Operations. This is a convenience tool specifically configured for free text invoices using the FreeTextInvoiceController. Free text invoices are customer invoices that don't originate from sales orders. To find available invoices to download, query the Customer Invoice Journal entity: - Entity name: CustInvoiceJourBiEntity - Collection name: CustInvoiceJourBiEntities - Key fields: InvoiceId, InvoiceDate, InvoiceAccount, InvoiceAmount, SalesType, dataAreaId - Use d365fo_query_entities tool to search for invoices Example query to…
d365fo_download_purchase_orderDownload a purchase order report as PDF from D365 Finance & Operations. This is a convenience tool specifically configured for purchase orders using the PurchPurchaseOrderController. Purchase orders are documents sent to vendors to order goods or services. To find available purchase orders to download, query the Purchase Order Confirmation Headers entity: - Entity name: PurchPurchaseOrderConfirmationHeaderEntity - Collection name: PurchaseOrderConfirmationHeaders - Key fields: PurchaseOrderNumber, ConfirmationNumber, ConfirmationDate, OrderVendorAccountNumber, TotalConfirmedAmount, dataAreaI…
d365fo_download_sales_confirmationDownload a sales confirmation report as PDF from D365 Finance & Operations. This is a convenience tool specifically configured for sales order confirmations using the SalesConfirmController. Sales confirmations are documents sent to customers to confirm sales orders. To find available confirmations to download, query the Sales Order Confirmation Headers entity: - Entity name: SalesOrderConfirmationHeaderEntity - Collection name: SalesOrderConfirmationHeaders - Key fields: ConfirmationNumber, SalesOrderNumber, ConfirmationDate, OrderingCustomerAccountNumber, TotalConfirmedAmount, dataAreaId -…
d365fo_download_srs_reportDownload SQL Server Reporting Services (SSRS/SRS) reports from D365 Finance & Operations as PDF files. This tool generates and downloads business documents like invoices, purchase orders, confirmations, and other reports by calling the D365FO SRS reporting engine. The report is returned as a PDF file saved to a specified location. Args: document_id: The unique identifier/key of the document (e.g., 'CIV-000708', 'SO-001234') legal_entity: The legal entity/company code (DataAreaId) where the document exists (e.g., 'USMF') controller_name: The SSRS controller class name (default: 'S…
d365fo_execute_sql_queryExecute a SELECT query against the D365FO metadata database to get insights from cached metadata. IMPORTANT SAFETY NOTES: - Only SELECT queries are allowed (no INSERT, UPDATE, DELETE, DROP, etc.) - Query results are limited to 1000 rows maximum - Queries timeout after 30 seconds - Some sensitive tables may be restricted AVAILABLE TABLES AND THEIR PURPOSE: - metadata_environments: D365FO environments and their details - global_versions: Global version registry with hash and reference counts - environment_versions: Links between environments and global versions - data_entities: D365FO data ent…
Show 34 more tools
d365fo_export_profilesExport all D365FO environment profiles to a file. Args: filePath: Path where to export the profiles Returns: Dictionary with export result
d365fo_get_database_schemaGet comprehensive schema information for the D365FO metadata database. This tool provides detailed information about: - All database tables and their structures - Column definitions with types and constraints - Indexes and their purposes - Foreign key relationships - Table statistics (row counts, sizes) - FTS5 virtual table information Use this tool to understand the database structure before writing SQL queries. Args: table_name: Optional. Get schema for a specific table only. If omitted, returns schema for all tables. include_statistics: Include table statistics like row counts an…
d365fo_get_database_statisticsGet comprehensive database statistics and analytics including: - Overall database size and table counts - Record counts by table - Global version statistics - Environment statistics - Cache hit rates and performance metrics - Storage utilization analysis - Data distribution insights Use this tool to understand the overall state and health of the metadata database. Args: include_table_stats: Include per-table statistics (row counts, sizes). include_version_stats: Include global version and environment statistics. include_performance_stats: Include cache performance and query stati…
d365fo_get_default_profileGet the current default D365FO environment profile. Returns: Dictionary with default profile
d365fo_get_entity_recordGet a specific record from a D365FO data entity. Args: entity_name: The entity's public collection name or entity set name (e.g., "CustomersV3", "SalesOrders", "DataManagementEntities") key_fields: List of key field names for composite keys key_values: List of key values corresponding to key fields select: List of fields to include in response expand: List of navigation properties to expand profile: Optional profile name Returns: Dictionary with the entity record
d365fo_get_entity_schemaGet the detailed schema for a specific D365 F&O data entity, including properties, keys, and available actions. Args: entityName: The public name of the entity (e.g., 'CustomerV3'). include_properties: Set to true to include detailed information about each property (field) in the entity. resolve_labels: Set to true to resolve and include human-readable labels for the entity and its properties. language: The language to use for resolving labels (e.g., 'en-US', 'fr-FR'). profile: Configuration profile to use (optional - uses default profile if not specified) Returns: Di…
d365fo_get_enumeration_fieldsGet the detailed members (fields) and their values for a specific D365 F&O enumeration. Args: enumeration_name: The exact name of the enumeration (e.g., 'NoYes', 'CustVendorBlocked'). resolve_labels: Set to true to resolve and include human-readable labels for the enumeration and its members. language: The language to use for resolving labels (e.g., 'en-US', 'fr-FR'). profile: Configuration profile to use (optional - uses default profile if not specified) Returns: Dictionary with enumeration details
d365fo_get_environment_infoGet D365FO environment information and version details. Args: profile: Optional profile name (uses default if not specified) Returns: JSON string with environment information
d365fo_get_installed_modulesGet the list of installed modules in the D365 F&O environment with their details including name, version, module ID, publisher, and display name. Args: profile: Configuration profile to use (optional - uses default profile if not specified) Returns: Dictionary with installed modules
d365fo_get_labelGet label text by label ID. Args: labelId: Label ID (e.g., @SYS1234) language: Language code for label text fallbackToEnglish: Fallback to English if translation not found profile: Optional profile name Returns: Dictionary with label text
d365fo_get_labels_batchGet multiple labels in a single request. Args: labelIds: List of label IDs to retrieve language: Language code for label texts fallbackToEnglish: Fallback to English if translation not found profile: Optional profile name Returns: Dictionary with label texts
d365fo_get_profileGet details of a specific D365FO environment profile. Args: profileName: Name of the profile to retrieve Returns: Dictionary with profile details
d365fo_get_profile_namesGet list of all D365FO environment profile names. Returns: Dictionary with profile names
d365fo_get_server_configGet current FastMCP server configuration and feature status. Returns: Dict with server configuration
d365fo_get_server_performanceGet FastMCP server performance statistics and health metrics. Returns: Dict with server performance data
d365fo_get_sync_historyGet the history of completed sync sessions including success/failure status, duration, and statistics. Args: limit: Maximum number of historical sessions to return (default: 20, max: 100) profile: Configuration profile to use (optional - uses default profile if not specified) Returns: Dictionary with sync history
d365fo_get_sync_progressGet detailed progress information for a specific sync session including current phase, completion percentage, items processed, and estimated time remaining. Args: session_id: Session ID of the sync operation to check progress for profile: Configuration profile to use (optional - uses default profile if not specified) Returns: Dictionary with sync progress
d365fo_get_table_infoGet detailed information about a specific database table including: - Column definitions with types, nullability, and defaults - Primary and foreign key constraints - Indexes and their characteristics - Table statistics (row count, size, last updated) - Sample data (first few rows) - Relationships to other tables This tool is useful for exploring specific tables before writing queries. Args: table_name: Name of the table to get information about (e.g., 'data_entities', 'public_entities', 'entity_properties'). include_sample_data: Include sample data from the table (first 5 rows). …
d365fo_import_profilesImport D365FO environment profiles from a file. Args: filePath: Path to the file containing profiles to import overwrite: Whether to overwrite existing profiles with the same name Returns: Dictionary with import results
d365fo_list_profilesGet list of all available D365FO environment profiles. Returns: Dictionary with list of profiles
d365fo_list_sync_sessionsGet a list of all currently active sync sessions with their status, progress, and details. Args: profile: Configuration profile to use (optional - uses default profile if not specified) Returns: Dictionary with active sync sessions
d365fo_query_entitiesQuery D365FO data entities with simplified filtering capabilities. Args: entity_name: The entity's public collection name or entity set name (e.g., "CustomersV3", "SalesOrders", "DataManagementEntities") select: List of field names to include in response filter: Simplified filter expression using only "eq" operation with wildcard support: - Basic equality: "FieldName eq 'value'" - Starts with: "FieldName eq 'value*'" - Ends with: "FieldName eq '*value'" - Contains: "FieldName eq '*value*'" - Enum values: "StatusField eq Microsoft.Dynamics.Da…
d365fo_reset_performance_statsReset server performance statistics. Returns: Dict with reset confirmation
d365fo_search_actionsSearch for available OData actions in D365 F&O using simple keyword-based search. IMPORTANT: When searching for actions, break down user requests into individual keywords and perform MULTIPLE searches: 1. Extract keywords from requests (e.g., "posting actions" → "post", "posting") 2. Perform separate searches for each keyword using simple text matching 3. Combine and analyze results from all searches 4. Look for actions that match the combination of concepts SEARCH STRATEGY EXAMPLES: - "posting actions" → Search for "post", then look for posting-related actions - "validation functions" → Se…
d365fo_search_entitiesSearch for D365 F&O data entities using simple keyword-based search. IMPORTANT: When a user asks for something like "Get data management entities" or "Find customer group entities", break the request into individual keywords and perform MULTIPLE searches, then analyze all results: 1. Extract individual keywords from the request (e.g. "data management entities" → "data", "management", "entities") 2. Perform separate searches for each significant keyword using simple text matching 3. Combine and analyze results from all searches 4. Look for entities that match the combination of concepts SEAR…
d365fo_search_enumerationsSearch for enumerations (enums) in D365 F&O using simple keyword-based search. IMPORTANT: When searching for enumerations, break down user requests into individual keywords and perform MULTIPLE searches: 1. Extract keywords from requests (e.g., "customer status enums" → "customer", "status") 2. Perform separate searches for each keyword using simple text matching 3. Combine and analyze results from all searches 4. Look for enums that match the combination of concepts SEARCH STRATEGY EXAMPLES: - "customer status enums" → Search for "customer", then "status", then find status-related customer…
d365fo_search_profilesSearch D365FO environment profiles based on criteria. Args: pattern: Pattern to match in profile name, description, or base URL hasCredentialSource: Filter by presence of credential source (True=has credential source, False=uses default credentials) credentialSourceType: Filter by credential source type ("environment", "keyvault") Returns: Dictionary with matching profiles
d365fo_set_default_profileSet the default D365FO environment profile. Automatically refreshes all cached client connections since changing the default profile may affect client resolution for operations that use the default profile. Args: profileName: Name of the profile to set as default Returns: Dictionary with result including client refresh status
d365fo_start_syncStart a metadata synchronization session and return a session ID for tracking progress. This downloads and caches metadata from D365 F&O including entities, schemas, enumerations, and labels. Args: strategy: Sync strategy to use. 'full' downloads all metadata, 'entities_only' downloads just entities for quick refresh, 'labels_only' downloads only labels, 'full_without_labels' downloads all metadata except labels, 'sharing_mode' copies from compatible versions, 'incremental' updates only changes (fallback to full). global_version_id: Specific global version I…
d365fo_test_connectionTest connection to D365FO environment. Args: profile: Optional profile name to test (uses default if not specified) Returns: JSON string with connection test results
d365fo_test_profile_connectionTest connection for a specific D365FO environment profile. Args: profileName: Name of the profile to test Returns: Dictionary with connection test result
d365fo_update_entity_recordUpdate an existing record in a D365 Finance & Operations data entity. Args: entity_name: The entity's public collection name or entity set name (e.g., "CustomersV3", "SalesOrders", "DataManagementEntities") key_fields: List of key field names for composite keys key_values: List of key values corresponding to key fields data: Record data containing fields to update return_record: Whether to return the complete updated record profile: Optional profile name Returns: Dictionary with update result
d365fo_update_profileUpdate an existing D365FO environment profile with full configuration options. Automatically invalidates all cached client connections to ensure they pick up the new profile settings on next use. Args: name: Profile name baseUrl: D365FO base URL description: Profile description verifySsl: Whether to verify SSL certificates timeout: Request timeout in seconds useLabelCache: Whether to enable label caching labelCacheExpiryMinutes: Label cache expiry in minutes useCacheFirst: Whether to use cache-first behavior language: Default language code cacheDir: Cu…
d365fo_validate_profileValidate a D365FO environment profile configuration. Args: profileName: Name of the profile to validate Returns: Dictionary with validation result
Signals
- Stars
- 39
- Forks
- 15
- Open issues
- 1
- Contributors
- 3
- Weekly downloads
- 56
- Last commit
- Sep 10, 2026 (1 month ago)
- Last release
- Jul 7, 2026 (3 months ago)
- Last package publish
- Apr 18, 2026 (6 months ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.mafzaal/d365fo-client- Version
- 0.3.6
- Auth
- API key
- Packages
- pypi d365fo-clientoci
ghcr.io/mafzaal/d365fo-client:0.3.6 - License
- MIT
- Repository
- github.com/mafzaal/d365fo-client
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Cite this page
D365FO MCP Server. Agent Mart. https://agentmart.dev/connectors/mafzaal-d365fo-client (last updated 2026-10-24)