Enterprise Support MCP Server
Enterprise Support MCP Server
Ein leichtgewichtiger Enterprise-KI-Integrationsprototyp, der demonstriert, wie Geschäftsfunktionen über das Model Context Protocol (MCP) für Large Language Models verfügbar gemacht werden können.
Das Projekt stellt Kunden- und Bestellinformationen über einen Python-basierten MCP-Server bereit. Ein Mistral-betriebener KI-Assistent entdeckt dynamisch die verfügbaren MCP-Tools und entscheidet anhand von natürlichsprachlichen Supportanfragen, welche Tools aufgerufen werden sollen.
Bei komplexeren Anfragen kann der Assistent iterativ mehrere Tool-Aufrufe ausführen, bis genügend Informationen für eine abschließende Antwort vorliegen.
Alle in diesem Projekt verwendeten Kunden- und Bestelldatensätze sind synthetische Demodaten.
Hauptfunktionen
Model Context Protocol (MCP) Server und Client
Dynamische MCP-Tool-Erkennung
LLM-gesteuerte Tool-Auswahl mit Mistral AI
Mehrschrittiger Tool-Aufruf-Workflow
Natürlichsprachliche Interaktion mit Unternehmensdaten
Kunden- und Bestellabfrage
Pydantic-Datenmodelle
SQLite-Persistenz
Strukturierte Fehlerbehandlung
Trennung von MCP-, Persistenz- und KI-Integrationsschichten
Related MCP server: E-commerce MCP Server
Architektur
flowchart TD
U[User] --> L[Mistral LLM]
L --> C[MCP Client]
C --> S[Enterprise Support MCP Server]
S --> D[(SQLite Customer / Order Database)]
D --> S
S --> C
C --> L
L --> UDas LLM greift nicht direkt auf die Datenbank zu.
Stattdessen werden Unternehmensfunktionen über standardisierte MCP-Tools bereitgestellt. Der MCP-Client entdeckt diese Tools dynamisch und stellt ihre Schemata dem LLM zur Verfügung.
Das LLM entscheidet dann, welches Tool für eine bestimmte Benutzeranfrage erforderlich ist.
Beispiel-Workflow
Ein Benutzer gibt ein:
Show me customer 1001.Die Anwendung führt den folgenden Workflow aus:
User request
↓
Mistral LLM
↓
Selects get_customer
↓
MCP Client
↓
Enterprise Support MCP Server
↓
SQLite
↓
Customer data
↓
MCP Client
↓
Mistral LLM
↓
Natural-language responseBeispielergebnis:
Here is the information for customer 1001:
- Name: Anna Schmidt
- Email: anna@example.com
- Status: ACTIVEDer Anwendungscode kodiert die Auswahl von get_customer nicht fest.
Das LLM wählt das passende MCP-Tool basierend auf der natürlichsprachlichen Anfrage des Benutzers aus.
Verfügbare MCP-Tools
get_customer
Ruft Kundeninformationen anhand der Kunden-ID ab.
Beispieleingabe:
{
"customer_id": 1001
}get_customer_orders
Ruft alle Bestellungen eines Kunden ab.
Beispieleingabe:
{
"customer_id": 1001
}get_order_status
Ruft den aktuellen Status und die Tracking-Informationen für eine Bestellung ab.
Beispieleingabe:
{
"order_id": 5002
}Technologie-Stack
Python
Model Context Protocol (MCP) Python SDK
Mistral AI
Pydantic
SQLite
asyncio
python-dotenv
uv
Erste Schritte
Voraussetzungen
Das Projekt erfordert:
Python 3.11+
pipuveinen Mistral-API-Schlüssel
Überprüfen Sie Ihre Python-Installation:
python --versionÜberprüfen Sie uv:
uv --version1. Repository klonen
git clone https://github.com/YOUR-USERNAME/enterprise-support-mcp-server.git
cd enterprise-support-mcp-serverErsetzen Sie YOUR-USERNAME durch Ihren GitHub-Benutzernamen.
2. Virtuelle Umgebung erstellen
python -m venv .venvWindows PowerShell
.venv\Scripts\Activate.ps1Linux / macOS
source .venv/bin/activate3. Abhängigkeiten installieren
pip install -r requirements.txtDie Hauptabhängigkeiten umfassen:
mcp[cli]
mistralai
pydantic
python-dotenv4. Mistral-API-Schlüssel konfigurieren
Erstellen Sie eine .env-Datei im Projektstammverzeichnis.
Sie können .env.example als Vorlage verwenden:
MISTRAL_API_KEY=your_mistral_api_keyCommitten Sie niemals die eigentliche .env-Datei oder einen API-Schlüssel in Git.
5. Demodatenbank initialisieren
Führen Sie aus:
python init_db.pyDies erstellt die lokale SQLite-Datenbank mit synthetischen Kunden- und Bestelldatensätzen, die von den MCP-Tools verwendet werden.
Testen
Das Projekt kann auf mehreren Ebenen getestet werden.
Test 1 – Datenbankzugriff
Die Datenbankfunktionen können unabhängig getestet werden, bevor MCP involviert ist.
Überprüfen Sie, ob die Demodatenbank initialisiert wurde:
python init_db.pyDie Datenbankschicht bietet Operationen für:
get_customer
get_customer_orders
get_order_statusDies überprüft die Persistenzschicht unabhängig von MCP und dem LLM.
Test 2 – MCP-Server starten
Führen Sie aus:
python server.pyBei einem stdio-basierten MCP-Server wird kein HTTP-Port oder Browser geöffnet.
Der Prozess wartet darauf, dass ein MCP-Client über die Standardeingabe/-ausgabe kommuniziert.
Stoppen Sie den Server mit:
Ctrl+CTest 3 – MCP-Client ohne LLM
Führen Sie aus:
python client.pyDer Client verbindet sich mit dem MCP-Server und entdeckt die verfügbaren Tools.
Erwartete Tool-Erkennung:
Available tools:
- get_customer
- get_customer_orders
- get_order_statusDer Client kann dann die MCP-Tools direkt aufrufen.
Dieser Test überprüft:
MCP Client
↓
MCP protocol
↓
MCP Server
↓
SQLite
↓
MCP resultFür diesen Test ist kein Large Language Model erforderlich.
Test 4 – LLM-gesteuerte MCP-Tool-Auswahl
Führen Sie aus:
python llm_client.pyDie Anwendung sollte zuerst die vom Server entdeckten MCP-Tools anzeigen:
Available MCP tools:
- get_customer
- get_customer_orders
- get_order_statusSie können dann eine natürlichsprachliche Anfrage eingeben.
Kundenabfrage
Show me customer 1001.Erwartetes Verhalten:
Mistral
↓
get_customer
↓
customer_id = 1001Die abschließende Antwort sollte die Informationen für Kunde 1001 enthalten.
Kundenbestellungen
Versuchen Sie:
Show me all orders for customer 1001.Erwartetes Tool:
get_customer_ordersBestellstatus
Versuchen Sie:
What is the status of order 5002?Erwartetes Tool:
get_order_statusAnfrage ohne Unternehmensdaten
Versuchen Sie:
What can you help me with?Das LLM sollte diese Anfrage beantworten können, ohne auf Kunden- oder Bestelldaten zuzugreifen.
Dies zeigt, dass die Tool-Ausführung dynamisch erfolgt und nicht für jede Anfrage ausgeführt wird.
Test 5 – Mehrschrittiger Tool-Aufruf
Der LLM-Client unterstützt iterative Tool-Ausführung.
Versuchen Sie eine komplexere Anfrage wie:
Customer 1001 says that one of her orders has not arrived.
Can you investigate?Bei komplexen Anfragen kann der Assistent mehrere MCP-Tools verwenden, bevor die abschließende Antwort generiert wird.
Konzeptionell:
User
↓
Mistral
↓
MCP Tool
↓
Tool Result
↓
Mistral
↓
Another tool required?
├── Yes → MCP Tool → Result → Mistral
└── No → Final ResponseDie Tool-Aufrufschleife hat eine maximale Anzahl von Iterationen, um eine versehentliche Endlosausführung zu verhindern.
Fehlerbehandlungstests
Der MCP-Server behandelt auch unbekannte Geschäftseinheiten.
Zum Beispiel:
Show me customer 9999.Das entsprechende MCP-Tool gibt ein Fehlerergebnis zurück, anstatt Kundeninformationen zu erfinden.
Dies ist besonders wichtig für KI-basierte Unternehmensintegrationen: Tatsächliche Kunden- und Bestellinformationen müssen aus dem angeschlossenen Unternehmenssystem stammen und nicht vom LLM.
Projektstruktur
enterprise-support-mcp-server/
│
├── server.py
│ └── MCP server and tool definitions
│
├── client.py
│ └── MCP client for direct tool testing
│
├── llm_client.py
│ └── Mistral integration and agentic tool-calling workflow
│
├── database.py
│ └── Database access layer
│
├── models.py
│ └── Pydantic domain models
│
├── init_db.py
│ └── Creates synthetic demo data
│
├── requirements.txt
├── .env.example
├── .gitignore
└── README.mdWarum MCP?
Ein LLM kann auch anwendungsspezifische Funktionen direkt aufrufen.
MCP führt eine standardisierte Schnittstelle zwischen KI-Anwendungen und externen Fähigkeiten ein.
In diesem Projekt:
Mistral
↓
Tool Calling
↓
MCP Client
↓
Standardized MCP interface
↓
Enterprise Support MCP Server
↓
Enterprise capabilitiesDas LLM ist dafür verantwortlich, zu entscheiden, welche Fähigkeit erforderlich ist.
MCP ist dafür verantwortlich, diese Fähigkeiten über ein standardisiertes Protokoll bereitzustellen.
Diese Trennung bedeutet, dass das Unternehmens-Backend nicht speziell für einen bestimmten LLM-Anbieter entwickelt werden muss.
Projektzweck
Das Projekt ist bewusst klein gehalten und konzentriert sich auf eine architektonische Frage:
Wie können bestehende Unternehmensfähigkeiten über eine standardisierte Integrationsschicht für KI-Assistenten verfügbar gemacht werden?
Es demonstriert die Kombination von:
Unternehmenssystemintegration
Model Context Protocol
LLM-Tool-Aufruf
Agentische Workflows
Strukturierte Geschäftsdaten
Trennung der Zuständigkeiten
Das Projekt dient als praktischer Prototyp für die Integration von KI-Assistenten in bestehende Unternehmensanwendungen.
Sicherheitshinweis
Dieses Repository enthält ausschließlich synthetische Demodaten.
Geben Sie keine API-Schlüssel, Anmeldeinformationen, Kundendaten oder andere sensible Informationen über Quellcode oder committete .env-Dateien preis.
This server cannot be deployed
Maintenance
Related MCP Connectors
The grounded data layer for any LLM: governed SQL, metrics, lineage and catalog over your data.
A Model Context Protocol server for Wix AI tools
API-first CRM for LLMs - contacts, companies, deals and activities over a native MCP server.
Customer-context and ops layer for AI agents
Related MCP Servers
- AlicenseAqualityBmaintenanceA Model Context Protocol server that enables large language models to access database metadata and perform cross-engine data querying across diverse database ecosystems.1654Apache 2.0
- FlicenseNot gradedqualityDmaintenanceProvides tools to query e-commerce data including customer information, order details, and product inventory through a Model Context Protocol interface with test data.-
- FlicenseAqualityDmaintenanceA Model Context Protocol server that lets LLM clients answer business questions in natural language over a Databricks dataset without writing SQL by hand.1-
- FlicenseNot gradedqualityDmaintenanceEnables natural-language querying of structured data via Model Context Protocol, allowing AI agents to answer questions without SQL or API knowledge.-