D365 UPDATE MCP

⚠️ Beta Version: This extension is currently in beta. Features and APIs may change. Feedback and bug reports are welcome!
Search and retrieve Dynamics 365 update information from GitHub Docs via Copilot Chat
🇯🇵 日本語版はこちら
✨ Features
- 🔍 Natural Language Search: Ask "What's new in D365 Finance 10.0.41?" in Copilot Chat
- 🚀 Fast Search: Local full-text search powered by SQLite + FTS5
- 🔄 GitHub Sync: Syncs directly from 16 MicrosoftDocs repositories
- 📊 Rich Filters: Filter by product, version, and date
- ⚙️ Zero Config: Automatically registers as MCP tool on installation
- 📅 Recent Changes: Track file modifications within the last week
- 🔗 Reference URLs: Direct links to GitHub source files
- 🌐 Multi-language Support: Auto-detects user language and returns localized Microsoft Learn URLs
- 🗣️ Auto Translation: Copilot translates titles and summaries to your language
🛠️ Technical Highlights
📦 Bundled Database - Zero Wait on First Use
The extension ships with a pre-built database containing the latest update information.
New users can search immediately after installation—no sync required!
- Database is bundled at package time
- Automatically copied to user directory on first launch
- Users can sync later to get the absolute latest data
🚀 Repository-Level Incremental Sync
Instead of fetching all files every time, we implemented two-level diff checking:
| Level |
What it checks |
API calls |
| 1. Repository |
Latest commit SHA per repo |
16 calls (lightweight) |
| 2. File |
File content SHA |
Only for changed repos |
Result:
| Scenario | Time |
|----------|------|
| Full sync (force) | ~200s |
| Incremental (changes) | ~26s |
| Incremental (no changes) | ~3s ⚡ |
⚡ Parallel Processing
All GitHub API calls leverage parallel execution with semaphore-based concurrency control:
Tree fetching: 4 parallel requests
File processing: 5 parallel requests
Commit fetching: 4 parallel requests
🔄 Background Auto-Sync
MCP server automatically syncs in the background on startup:
- Non-blocking: Search works immediately using cached data
- Incremental: Only fetches changes since last sync
- Silent: No user intervention required
📦 Installation
- Search for "D365 UPDATE" in VS Code Extension Marketplace
- Or run:
ext install yamapan.d365-update
- Reload VS Code
- The tool automatically appears in Copilot Chat's tool list! 🎉
⏳ First-Time Use
On first use, data synchronization from GitHub runs automatically. This may take 1-2 minutes depending on your network speed. Subsequent uses are instant thanks to local caching.
GitHub Token Setup (Recommended)
GitHub API has rate limits. Setting a token increases the limit significantly:
|
Without Token |
With Token |
| Rate Limit |
60/hour |
5,000/hour ✨ |
Setup in VS Code:
- Open Settings (
Ctrl+,)
- Search for
d365Update.githubToken
- Click "Create a token here" link → Creates token with correct scopes
- Paste the token
💡 The token needs public_repo scope only.
⚠️ Token Lifetime: Must be 90 days or less (Microsoft Open Source policy).
📝 Microsoft Employees: Join MicrosoftDocs org via Open Source Portal and authorize SSO for your token.
🎯 Usage
Ask Copilot Chat like this:
"What's new in D365 Finance 10.0.41?" → Version-specific search
"D365 Commerce の新機能は?" → Product search
"SCM の倉庫管理の最新アップデート" → Keyword + product search
"Business Central の最新変更点" → BC product search
"今週の D365 アップデート" → Recent changes
Default Behavior
- No filters: Returns last 1 month's updates (prevents overwhelming results)
- With query/version: Searches all time
- Summary included: First key points for quick overview
| Tool |
Description |
search_d365_updates |
Search with keywords & filters (lightweight metadata) |
get_d365_update |
Get full details by ID |
sync_d365_updates |
Sync data from GitHub |
search_d365_updates Parameters
| Parameter |
Type |
Description |
query |
string |
Search keyword (full-text search on title & description) |
product |
string |
Filter by product (e.g., Dynamics 365 Finance) |
version |
string |
Filter by version (e.g., 10.0.41) |
dateFrom |
string |
Date range start (YYYY-MM-DD) |
dateTo |
string |
Date range end (YYYY-MM-DD) |
locale |
string |
Language for URLs (e.g., ja-jp, en-us). Auto-detected |
limit |
number |
Max results (default: all matching results) |
Response Example
{
"totalResults": 5,
"dateRange": "2026-01-01 ~ now",
"results": [
{
"id": 123,
"title": "What's new in Dynamics 365 Finance 10.0.41",
"product": "Dynamics 365 Finance",
"version": "10.0.41",
"summary": "New features include...",
"docsUrl": "https://learn.microsoft.com/en-us/dynamics365/finance/...",
"githubUrl": "https://github.com/MicrosoftDocs/.../blob/main/...",
"githubCommitsUrl": "https://github.com/MicrosoftDocs/.../commits/main/..."
}
]
}
📊 Data Sources
Syncs from 16 MicrosoftDocs repositories:
Current Products (Dynamics 365)
Legacy Products (Historical Reference)
📦 Supported Products
Finance & Operations
- Dynamics 365 Finance
- Dynamics 365 Supply Chain Management
- Dynamics 365 Human Resources
- Dynamics 365 Commerce
- Dynamics 365 Project Operations
Customer Engagement
- Dynamics 365 Sales
- Dynamics 365 Customer Service
- Dynamics 365 Field Service
- Dynamics 365 Marketing
Other Products
- Dynamics 365 Business Central
- Dynamics 365 Fraud Protection
- Dynamics 365 Mixed Reality (Guides, Remote Assist)
- Dynamics 365 Contact Center
- Dynamics 365 Intelligent Order Management
- Dynamics 365 Industry Solutions
- Dynamics 365 Supply Chain Insights
Legacy Products
- Dynamics AX 2012
- Dynamics NAV
- Dynamics GP
⚙️ Configuration
| Setting |
Description |
Default |
d365Update.githubToken |
GitHub Personal Access Token |
`` |
d365Update.autoSync |
Automatically sync on startup |
true |
d365Update.syncIntervalHours |
Hours between auto sync |
24 |
🔧 Development
# Install dependencies
npm install
# Build
npm run build
# Test with MCP Inspector
npm run inspect
# Package for distribution
npm run package
📝 Tech Stack
- MCP SDK:
@modelcontextprotocol/sdk
- Database: SQLite (
better-sqlite3) + FTS5
- Data Source: GitHub API (MicrosoftDocs repositories)
- VS Code API: Extension integration
📄 License
CC-BY-NC-SA-4.0
© 2026 yamapan (aktsmm)