Microsoft Business Central MCP Server
Microsoft Business Central MCP Server
Model Context Protocol (MCP)-Server für Microsoft Dynamics 365 Business Central. Bietet KI-Assistenten direkten Zugriff auf Business-Central-Daten über korrekt formatierte API-v2.0-Aufrufe.
Funktionen
✅ Korrekte API-URLs: Verwendet das korrekte Format
/companies(id)/resource(kein ODataV4-Segment)✅ Keine Installation: Ausführung mit
npx– keine Vorinstallation erforderlich✅ Azure-CLI-Authentifizierung: Nutzt die vorhandene Azure-CLI-Anmeldung
✅ Client-Credentials-Authentifizierung: Service-to-Service-Authentifizierung für KI-Agenten
✅ Saubere Toolnamen: Keine Präfixe, nur
get_schema,list_itemsusw.✅ Vollständiges CRUD: Erstellen, Lesen, Aktualisieren und Löschen von Business-Central-Datensätzen
Installation
Mit npx (Empfohlen)
Keine Installation erforderlich! Konfiguration in Claude Desktop oder Claude Code:
{
"mcpServers": {
"business-central": {
"type": "stdio",
"command": "cmd",
"args": ["/c", "npx", "-y", "@knowall-ai/mcp-business-central"],
"env": {
"BC_URL_SERVER": "https://api.businesscentral.dynamics.com/v2.0/{tenant-id}/{environment}/api/v2.0",
"BC_COMPANY": "Your Company Name",
"BC_AUTH_TYPE": "azure_cli"
}
}
}
}Hinweis für Windows: Verwenden Sie cmd mit /c wie oben gezeigt für eine ordnungsgemäße npx-Ausführung.
Mit Smithery
Installieren über Smithery:
npx -y @smithery/cli install @knowall-ai/mcp-business-central --client claudeLokale Entwicklung
git clone https://github.com/knowall-ai/mcp-business-central.git
cd mcp-business-central
npm install
npm run build
node build/index.jsKonfiguration
Umgebungsvariablen
Variable | Erforderlich | Beschreibung | Beispiel |
| Ja | Basis-URL der Business-Central-API |
|
| Ja | Anzeigename des Unternehmens |
|
| Nein | Authentifizierungstyp (Standard: |
|
| Für client_credentials | Azure-AD-Mandanten-ID |
|
| Für client_credentials | Client-ID der App-Registrierung |
|
| Für client_credentials | Client-Geheimnis der App-Registrierung |
|
Konfigurationswerte ermitteln
Mandanten-ID: Finden Sie diese im Azure-Portal → Azure Active Directory → Übersicht
Umgebung: Normalerweise
ProductionoderSandboxUnternehmensname: Der Anzeigename, der in Business Central angezeigt wird
Beispiel-URL-Format:
https://api.businesscentral.dynamics.com/v2.0/00000000-0000-0000-0000-000000000000/Production/api/v2.0Authentifizierung
Empfehlung: Verwenden Sie die
azure_cli-Authentifizierung – sie ist einfacher einzurichten und zuverlässiger. Die Methodeclient_credentialswird ebenfalls unterstützt, hat jedoch bekannte Konfigurationsherausforderungen bei der Einrichtung von Microsoft Entra Applications in Business Central. Details finden Sie in docs/TROUBLESHOOTING.adoc.
Option 1: Azure CLI (Empfohlen)
Die einfachste und zuverlässigste Authentifizierungsmethode. Verwendet Ihre vorhandene Azure-CLI-Anmeldung.
Voraussetzungen:
Azure CLI installieren: https://docs.microsoft.com/cli/azure/install-azure-cli
Anmelden:
az loginZugriff überprüfen:
az account get-access-token --resource https://api.businesscentral.dynamics.com
Konfiguration:
{
"mcpServers": {
"business-central": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@knowall-ai/mcp-business-central"],
"env": {
"BC_AUTH_TYPE": "azure_cli",
"BC_URL_SERVER": "https://api.businesscentral.dynamics.com/v2.0/{tenant-id}/Production/api/v2.0",
"BC_COMPANY": "My Company"
}
}
}
}Option 2: Client Credentials (Service-to-Service)
Für automatisierte Systeme, die ohne Benutzerinteraktion ausgeführt werden müssen. Diese Methode verwendet den OAuth-2.0-Client-Credentials-Flow.
Hinweis: Diese Methode bringt bekannte Konfigurationsherausforderungen mit sich. Die Einrichtung von Microsoft Entra Applications in Business Central kann komplex sein, und die Erstellung des Anwendungsbenutzers funktioniert möglicherweise nicht wie erwartet. Ausführliche Hinweise finden Sie in docs/TROUBLESHOOTING.adoc.
Einrichtungsübersicht:
Azure-App-Registrierung erstellen:
Wechseln Sie zum Azure-Portal → Azure Active Directory → App-Registrierungen
Erstellen Sie eine neue Registrierung (einzelner Mandant)
Fügen Sie die API-Berechtigung hinzu: Dynamics 365 Business Central →
app_access(Anwendungsberechtigung, NICHT delegierte)Innenadministratorzustimmung für die Berechtigung erteilen
Fügen Sie eine Redirect-URI hinzu:
https://businesscentral.dynamics.com/OAuthLanding.htm
Client-Geheimnis generieren:
Wechseln Sie in Ihrer App-Registrierung zu „Zertifikate und Geheimnisse“
Erstellen Sie ein neues client secret und speichern Sie es sicher
Business Central konfigurieren:
Suchen Sie in Business Central nach „Microsoft Entra Applications“
Klicken Sie auf + New und geben Sie die Client-ID Ihrer App ein
Legen Sie eine Beschreibung fest (diese wird zum Anwendungsbenutzername)
Setzen Sie den Status auf „Enabled“ – Sie sollten die Meldung „Ein Benutzer namens '[Description]' wird erstellt“ sehen
Fügen Sie Berechtigungssätze hinzu:
D365 BUS FULL ACCESS(empfohlen) oderD365 READLassen Sie das Feld Company leer, um Zugriff auf alle Unternehmen zu erhalten
Klicken Sie auf „Zustimmung erteilen“
Einrichtung überprüfen:
Der Anwendungsbenutzer sollte in der Benutzerliste in Business Central erschienen
Falls nicht, siehe docs/TROUBLESHOOTING.adoc für Lösungen
Referenzen:
Verfügbare Tools
1. get_schema
Ruft OData-Metadaten für eine Business-Central-Ressource ab.
Parameter:
resource(string, erforderlich): Ressourcenname (z. B.customers,contacts,salesOpportunities)
Beispiel:
{
"resource": "customers"
}2. list_items
Listet Elemente mit optionaler Filterung und Paginierung auf.
Parameter:
resource(string, erforderlich): Ressourcennamefilter(string, optional): OData-Filterausdrucktop(number, optional): Maximale Anzahl der zurückzugebenden Elementeskip(number, optional): Anzahl der Elemente, die für die Paginierung übersprungen werden sollen
Beispiel:
{
"resource": "customers",
"filter": "displayName eq 'Contoso'",
"top": 10
}3. get_items_by_field
Ruft Elemente ab, die einem bestimmten Feldwert entsprechen.
Parameter:
resource(string, erforderlich): Ressourcennamefield(string, erforderlich): Name des Feldes, nach dem gefiltert werden sollvalue(string, erforderlich): Wert, der übereinstimmen soll
Beispiel:
{
"resource": "contacts",
"field": "companyName",
"value": "Contoso Ltd"
}4. create_item
Erstellt ein neues Element in Business Central.
Parameter:
resource(string, erforderlich): Ressourcennameitem_data(object, erforderlich): Daten des zu erstellenden Elements
Beispiel:
{
"resource": "contacts",
"item_data": {
"displayName": "John Doe",
"companyName": "Contoso Ltd",
"email": "john.doe@contoso.com"
}
}5. update_item
Aktualisiert ein vorhandenes Element.
Parameter:
resource(string, erforderlich): Ressourcennameitem_id(string, erforderlich): Element-ID (GUID)item_data() (object, erforderlich): Zu aktualisierende Felder
Beispiel:
{
"resource": "customers",
"item_id": "1366066e-7688-f011-b9d1-6045bde9b95f",
"item_data": {
"displayName": "Updated Name"
}
}6. delete_item
Löscht ein Element aus Business Central.
Parameter:
resource(string, erforderlich): Ressourcennameitem_id(string, erforderlich): Element-ID (GUID)
Beispiel:
{
"resource": "contacts",
"item_id": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6"
}Häufige Ressourcen
companies– Unternehmensinformationencustomers– Kundendatensätzecontacts– KontaktdatensätzesalesOpportunities– VerkaufschancensalesQuotes– VerkaufsangebotesalesOrders– VerkaufsbestellungensalesInvoices– Verkaufsrechnungenitems– Produkt-/Dienstleistungsartikelvendors– Lieferantendatensätze
Fehlerbehebung
Detaillierte Fehlerbehebungsleitfäden finden Sie in docs/TROUBLESHOOTING.adoc. Diese behandeln:
Authentifizierungsprobleme (401-Fehler, Token-Probleme)
Herausforderungen bei der Einrichtung von
client_credentialsund bekannte ProblemeFehler „Unternehmen nicht gefunden“
Umgebungsspezifische Konfiguration (Production und Sandbox)
Entwicklung
# Install dependencies
npm install
# Build TypeScript
npm run build
# Watch mode for development
npm run devLizenz
MIT
Mitwirken
Issues und Pull Requests sind willkommen unter https://github.com/knowall-ai/mcp-business-central.
Verwandte Projekte
MCP Specification: modelcontextprotocol.io
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.
Related MCP Connectors
MCP server for LeadDelta — manage LinkedIn connections and CRM data via AI assistants.
MCP server for AI access to Swagger by SmartBear.
Official Microsoft MCP Server to query Microsoft Entra data using natural language
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/masoniqbal777/Mcp-Business-Central'
If you have feedback or need assistance with the MCP directory API, please join our Discord server