D365 F&O MCP Server
Provides 54 specialized tools for GitHub Copilot to interact with a D365FO codebase, enabling instant lookup of class signatures, table relations, EDT definitions, CoC extensions, menu items, security coverage, labels, and more, directly within Copilot's agent mode in Visual Studio.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@D365 F&O MCP ServerFind CoC extensions for CustTable.insert()"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
D365 F&O MCP Server
26 AI tools that know every X++ class, table, form, and EDT in your D365FO codebase
Grounded AI development for Dynamics 365 Finance & Operations — works with GitHub Copilot and Claude Code
One-click install connects to an already-deployed server — VS Code asks for the URL, Cursor installs a placeholder to edit. Visual Studio & Claude Code: see Quick Start.
Why
AI assistants excel at C#, Python, and JavaScript. X++ is different: your D365FO codebase is private, deeply customized, and invisible to every model — so AI confidently generates code that doesn't compile.
This server pre-indexes your entire D365FO installation (580 000+ symbols across standard, ISV, and custom models) and exposes it as 26 specialized MCP tools. Every signature, every CoC wrapper, every label, every form pattern — verified against your real metadata before the AI writes a single line.
Task | Without this server | With this server |
Method signatures | Guessed → compile errors | Exact, from your codebase |
Existing CoC wrappers | Manual AOT search |
|
New forms | Hand-written XML, broken patterns | Cloned from reference forms, validated against the pattern catalog |
Labels | Hardcoded strings | Right |
Security chains | Hours of manual tracing | Role → Duty → Privilege → Entry Point in one call |
Generated code | Hallucinated fields and types | Every reference proven against the index, gated before write |
Related MCP server: MCP X++ Server
Capabilities
Feature | Description |
🔍 Full-codebase intelligence | 580K+ symbols indexed: classes, tables, forms, EDTs, enums, labels (20M+ rows), security artifacts — FTS5 search in < 10 ms |
🛡️ Grounded generation | Fail-closed gates: |
🧩 Form pattern engine | Complete catalog of Microsoft form patterns and sub-patterns: recommends the right pattern, clones reference forms with datasource re-binding, deterministically expands patterns that have no reference form, auto-repairs a form's missing required controls, validates structure and blocks invalid writes |
✍️ Safe metadata writes | C# bridge uses Microsoft's own |
🏗️ SDLC integration | MSBuild compilation with structured diagnostics, DB sync, xppbp best practices, SysTestRunner — all from chat |
📐 X++ knowledge base | Queryable rules: select grammar, CoC authoring, financial dimensions, the posting engine ( |
Pattern-grounded form development
Forms are the hardest artifact to generate correctly — each pattern dictates required containers, ordering, and allowed sub-patterns. The form pattern engine makes it a guided pipeline:
flowchart LR
A["object_patterns<br/>(domain=form, action=analyze)"] --> B["object_patterns<br/>(domain=form, action=spec)"]
B --> C["generate_object<br/>objectType=form, cloneFrom"]
C --> D["object_patterns<br/>(domain=form, action=validate) FP001–FP010"]
D -->|clean| E["d365fo_file<br/>(action=create) write + project"]
D -->|errors| CStructural violations (wrong order, missing container, disallowed control) block the write — recommendations only warn. Mined pattern statistics from your own environment ground every suggestion in reality.
Quick Start
Pick your path:
Path | Who | Install effort |
A — Azure client | Team member, server already deployed |
|
B — Hybrid (recommended for teams) | Azure search + local writes on your VM | Clone + build, no indexing |
C/E — Local | Single developer, everything on the VM | Clone + build + index (~15 min) |
Full walkthrough with all scenarios: docs/QUICK_START.md
Interactive setup (recommended)
After cloning and npm install, the management CLI walks you through everything else — scenario selection, C# bridge build, .env configuration, index build — and prints the .mcp.json block to paste:
git clone https://github.com/dynamics365ninja/d365fo-mcp-server.git K:\d365fo-mcp-server
cd K:\d365fo-mcp-server
npm install
npm run setup # first-time setup wizard
npm run doctor # health check — verifies Node, build, index, bridgeDay-to-day management runs through the same CLI (npx d365fo-mcp or npm run cli --): start, update, index, and instance add/list/run/rebuild/upgrade for multi-instance setups. Every command works non-interactively with arguments, or asks with predefined choices when run bare.
Manual setup
# Local / hybrid install (on the D365FO VM)
git clone https://github.com/dynamics365ninja/d365fo-mcp-server.git K:\d365fo-mcp-server
cd K:\d365fo-mcp-server
npm install
cd bridge\D365MetadataBridge; dotnet build -c Release; cd ..\.. # C# bridge — required for writes
npm run build
# Local only — build the metadata index (skip for hybrid)
copy .env.example .env # set PACKAGES_PATH, CUSTOM_MODELS
npm run extract-metadata
npm run build-databaseUDE / Power Platform Tools? Run
npm run select-configinstead of editingPACKAGES_PATH.
Connect GitHub Copilot
Enable MCP servers in Copilot at github.com/settings/copilot/features
Visual Studio → Tools → Options → GitHub → Copilot → Enable MCP server integration in agent mode
Create
%USERPROFILE%\.mcp.json:
{
"servers": {
"d365fo-azure": { "url": "https://your-server.azurewebsites.net/mcp/" },
"d365fo-local": {
"command": "node",
"args": ["K:\\d365fo-mcp-server\\dist\\index.js"],
"env": {
"MCP_SERVER_MODE": "write-only",
"D365FO_SOLUTIONS_PATH": "K:\\repos\\MySolution\\projects",
"D365FO_WORKSPACE_PATH": "K:\\AosService\\PackagesLocalDirectory\\YourPackage\\YourModel"
}
}
}
}Copy the instruction files into a parent folder of your solutions (one copy covers everything beneath it):
Copy-Item -Path ".github" -Destination "C:\source\repos\" -RecurseAll options: docs/MCP_CONFIG.md
Connect Claude Code
claude mcp add-json --scope user d365fo-mcp-tools '{"type":"http","url":"https://your-server.azurewebsites.net/mcp/","alwaysLoad":true}'
Copy-Item "K:\d365fo-mcp-server\CLAUDE.template.md" "C:\source\repos\CLAUDE.md"Stdio variant and troubleshooting: docs/CLAUDE_CODE_SETUP.md
Verify
Open the AI chat (Copilot Agent Mode / Claude Code) and ask:
What tables contain "CustAccount" field?A search tool call returning results from your codebase = you're connected.
Azure Deployment
One shared instance for the whole team — the metadata index lives in Blob Storage and downloads automatically on startup.
Deployment guide: docs/SETUP_AZURE.md · CI/CD automation: docs/PIPELINES.md
Documentation
Getting started | Reference | Operations |
Quick Start — 5 steps to running | ||
Usage examples — real tool chains | ||
Backlog — deferred work & ideas |
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dynamics365ninja/d365fo-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server