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 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 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.1652Apache 2.0
- Flicense-qualityDmaintenanceProvides tools to query e-commerce data including customer information, order details, and product inventory through a Model Context Protocol interface with test data.
- FlicenseAqualityCmaintenanceA Model Context Protocol server that lets LLM clients answer business questions in natural language over a Databricks dataset without writing SQL by hand.1
- Flicense-qualityBmaintenanceEnables natural-language querying of structured data via Model Context Protocol, allowing AI agents to answer questions without SQL or API knowledge.
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
Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.
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/pbpeter/enterprise-support-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server