MCP Customer Support AI
MCP Customer Support AI
Ein produktionsorientiertes Model Context Protocol (MCP)-Projekt, entwickelt mit Node.js, TypeScript, MongoDB und einem LLM.
Dieses Projekt zeigt, wie eine KI-Anwendung über MCP-Tools strukturiert, sicher und skalierbar mit externen Systemen interagieren kann.
Das Projekt wird schrittweise entwickelt, von einem grundlegenden MCP-Server und Tool bis hin zu einem produktionsorientierten, KI-gestützten Kundensupportsystem.
🚀 Projektübersicht
Das Ziel dieses Projekts ist es, einen KI-gestützten Kundensupport-Assistenten zu entwickeln, der Benutzeranfragen versteht und MCP-Tools nutzt, um reale Vorgänge auszuführen.
Beispiel
Ein Benutzer kann fragen:
„Prüfe meine letzte Bestellung und erstelle ein Support-Ticket, wenn sie verspätet ist.“
Die KI kann ermitteln, dass sie Folgendes tun muss:
Den Kunden finden.
Die Bestellungen des Kunden abrufen.
Die verspätete Bestellung identifizieren.
Ein Support-Ticket erstellen.
Die KI greift nicht direkt auf die Datenbank zu.
Stattdessen interagiert sie über MCP-Tools mit der Anwendung.
User
│
▼
AI / LLM
│
▼
MCP Client
│
▼
┌─────────────┐
│ MCP Server │
└──────┬──────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
Customer Tool Order Tool Ticket Tool
│ │ │
└────────────┼────────────┘
▼
Services
│
▼
MongoDB🎯 Projektziele
Dieses Projekt demonstriert:
MCP-Server-Entwicklung
Erstellung von MCP-Tools
MCP-Client-Kommunikation
KI-Tool-Aufrufe
TypeScript-Architektur
MongoDB-Integration
Service-Layer-Architektur
Eingabevalidierung
Fehlerbehandlung
Authentifizierung und Autorisierung
Logging und Monitoring
Audit-Logging
Produktionsorientierte MCP-Architektur
KI-Agenten-Workflows
Related MCP server: support-agent-mcp
🛠️ Tech-Stack
Backend
Node.js
TypeScript
MCP SDK
Zod
MongoDB
Mongoose
KI
LLM-Integration
Tool-Aufrufe
KI-Agent-Workflow
Entwicklung
MCP Inspector
Git
GitHub
npm
Geplante Produktionsinfrastruktur
Docker
Redis
Authentifizierung
Rate Limiting
Logging
Monitoring
CI/CD
📁 Projektstruktur
mcp-customer-support/
│
├── src/
│ │
│ ├── index.ts
│ │
│ ├── tools/
│ │ ├── customer.tools.ts
│ │ ├── order.tools.ts
│ │ └── ticket.tools.ts
│ │
│ ├── services/
│ │ ├── customer.service.ts
│ │ ├── order.service.ts
│ │ └── ticket.service.ts
│ │
│ ├── models/
│ │ ├── customer.model.ts
│ │ ├── order.model.ts
│ │ └── ticket.model.ts
│ │
│ ├── db/
│ │ └── database.ts
│ │
│ ├── middleware/
│ │ └── auth.ts
│ │
│ └── utils/
│ ├── logger.ts
│ └── errors.ts
│
├── tests/
│
├── .env.example
├── .gitignore
├── package.json
├── package-lock.json
├── tsconfig.json
└── README.md🏗️ Entwicklungsphasen
Das Projekt ist bewusst in Phasen unterteilt, sodass jede Phase ein wichtiges MCP- oder Produktionskonzept einführt.
Phase 1 – Grundlagen des MCP-Servers
Ziel
Einen grundlegenden MCP-Server erstellen und das erste Tool bereitstellen.
Umgesetzt
Node.js-Projekt
TypeScript-Konfiguration
MCP SDK
MCP-Server
STDIO-Transport
Zod-Eingabevalidierung
Erstes MCP-Tool
MCP Inspector-Integration
Erstes Tool
find_customerEingabe:
{
"email": "ashwani@example.com"
}Ausgabe:
{
"id": "customer_123",
"name": "Ashwani Yadav",
"email": "ashwani@example.com"
}Architektur
MCP Inspector
│
▼
MCP Client
│
│ STDIO
▼
MCP Server
│
▼
find_customer()
│
▼
Dummy DataStatus
Abgeschlossen ✅
Phase 2 – Mehrere MCP-Tools
Ziel
Mehrere Tools erstellen, die reale Kundensupport-Abläufe abbilden.
Tools
find_customer
get_customer_orders
create_support_ticketBeispiel
Beispiel
find_customer(email)Bestellungen des Kunden abrufen
get_customer_orders(customerId)Support-Ticket erstellen
create_support_ticket(
customerId,
orderId,
issue
)Erwartete Architektur
MCP Server
│
┌───────────────┼───────────────┐
▼ ▼ ▼
find_customer() get_orders() create_ticket()Status
Geplant 🚧
Phase 3 – MongoDB-Integration
Ziel
Beispieldaten durch echte, persistente Daten ersetzen.
Datenbank
MongoDB
Collections
customers
orders
support_ticketsArchitektur
MCP Tool
│
▼
Service Layer
│
▼
Mongoose
│
▼
MongoDBBeispiel
find_customer()
│
▼
customer.service.ts
│
▼
Customer Model
│
▼
MongoDBVorteile
Persistente Daten
Saubere Datenbankabfragen
Indizierung
Schema-Validierung
Skalierbarer Datenzugriff
Geplanter Index
customers.emailDamit bleibt die Suche nach Kunden per E-Mail auch bei wachsendem Datenbestand effizient.
Status
Geplant 🚧
Phase 4 – Service-Layer & Clean Architecture
Ziel
MCP-Tools getrennt von der Geschäftslogik halten.
Statt die Datenbanklogik direkt in das MCP-Tool zu schreiben:
Tool
↓
Service
↓
DatabaseBeispiel
customer.tools.ts
│
▼
customer.service.ts
│
▼
customer.model.ts
│
▼
MongoDBWarum?
Das bringt uns:
Trennung von Verantwortlichkeiten
Testbarkeit
Wiederverwendbarkeit
Wartbarkeit
Einfachere Migration zu REST/GraphQL/internen Services
Status
Geplant 🚧
Phase 5 – MCP-Client
Ziel
Einen dedizierten MCP-Client entwickeln, der sich mit dem MCP-Server verbindet.
┌──────────────┐
│ MCP Client │
└──────┬───────┘
│
▼
┌──────────────┐
│ MCP Server │
└──────────────┘Der Client wird dazu in der Lage sein:
Tools entdecken
listTools()Tools ausführen
callTool()Zum Beispiel:
callTool(
"find_customer",
{
email: "ashwani@example.com"
}
)Status
Geplant 🚧
Phase 6 – LLM-Integration
Ziel
Ein LLM mit dem MCP-Client verbinden.
Die Architektur sieht dann wie folgt aus:
User
│
▼
LLM
│
▼
MCP Client
│
▼
MCP Server
│
▼
Tools
│
▼
MongoDBDas LLM entscheidet auf der Grundlage der Benutzeranfrage, welches Tool aufgerufen werden soll.
Beispiel
Benutzer:
Check my latest order.KI:
I need the customer's orders.Tool:
get_customer_orders()Das Tool returns die Bestelldaten.
Die KI erstellt daraufhin eine Antwort in natürlicher Sprache.
Status
Geplant 🚧
Phase 7 – KI-Agenten-Workflow
Ziel
Dem LLM die Durchführung mehrstufiger Workflows ermöglichen.
Beispielanfrage:
Check my latest order and create a support
ticket if it is delayed.Der KI-Workflow:
User Request
│
▼
LLM
│
▼
find_customer()
│
▼
get_customer_orders()
│
▼
Analyze orders
│
▼
Is order delayed?
/ \
Yes No
│ │
▼ ▼
create_support_ticket Response
│
▼
ResponseDas zeigt den Unterschied zwischen dem einfachen Bereitstellen von Tools und der Entwicklung eines KI-Agenten, der Tools orchestrsieren kann.
Status
Geplant 🚧
Phase 8 – Authentifizierung & Autorisierung
Ziel
MCP-Operationen absichern.
Die Authentifizierung prüft:
Wer ist der Benutzer?
Die Autorisierung prüft:
Was darf der Benutzer tun?
Beispielberechtigungen:
customer.read
order.read
ticket.create
ticket.update
admin.refundBeispiel:
Customer
├── find_customer ✅
├── get_orders ✅
├── create_ticket ✅
└── refund_order ❌
Admin
├── find_customer ✅
├── get_orders ✅
├── create_ticket ✅
└── refund_order ✅Status
Geplant 🚧
Phase 9 – Fehlerbehandlung
Ziel
Eine konsistente Fehlerbehandlung für alle Tools erstellen.
Beispiel:
CustomerNotFoundError
OrderNotFoundError
UnauthorizedError
ValidationError
DatabaseError
ToolExecutionErrorAntworten der MCP-Tools werden Fehler klar ausweisen.
Beispiel:
{
"isError": true,
"message": "Customer not found"
}Status
Geplant 🚧
Phase 10 – Logging & Beobachtbarkeit
Ziel
MCP-Operationen in der Produktion verfolgen.
Jede Tool-Ausführung sollte Informationen wie Voropred folgende Liefern:
Request ID
User ID
Tool name
Arguments
Execution time
Status
Error
TimestampBeispiel:
INFO Tool Execution
tool: get_customer_orders
customerId: customer_123
duration: 85ms
status: successMonitoring-Ziele
Tool-Latenz
Fehlerrate
Datenbank-Latenz
KI-Antwort-Latenz
Nutzungshäufigkeit der Tools
Fehlgeschlagene Tool-Aufrufe
Status
Geplant 🚧
Phase 11 – Rate Limiting
Ziel
Den MCP-Server vor übermäßigen oder missbräuchlichen Anfragen schützen.
Mögliche Strategie:
User
│
▼
Rate Limiter
│
├── Allowed ──→ MCP Tool
│
└── Blocked ──→ Rate Limit ErrorFür verteiltes Rate Limiting kann Redis eingeführt werden.
Beispiel:
100 requests / minute / userStatus
Geplant 🚧
Phase 12 – Audit-Logging
Ziel
Sensible KI-gesteuerte Vorgänge aufzeichnen.
Zum Beispiel:
User:
customer_123
AI requested:
create_support_ticket
Order:
order_123
Action:
Support ticket created
Timestamp:
2026-08-23T10:30:00ZDies ist besonders wichtig, wenn KI-Agenten Aktionen mitÄnderungen an Geschäftsdaten ausführen können.
Status
Geplant 🚧
Phase 13 – Testing
Unit-Tests
Test:
Services
Validierung
Geschäftslogik
Fehlerbehandlung
Integrationstests
Test:
MCP Tool
↓
Service
↓
MongoDBMCP-Tests
Test:
MCP Client
↓
MCP Server
↓
ToolBeispiel
find_customer
↓
valid email
↓
customer returnedund:
find_customer
↓
invalid email
↓
validation errorStatus
Geplant 🚧
Phase 14 – Dockerisierung
Ziel
Die Anwendung containerisieren.
Docker
│
├── MCP Server
│
├── MongoDB
│
└── RedisBeispiel-Prodarchitektur:
┌─────────────┐
│ AI App │
└──────┬──────┘
│
▼
┌─────────────┐
│ MCP Server │
└──────┬──────┘
│
┌──────────┼──────────┐
▼ ▼ ▼
MongoDB Redis LogsStatus
Geplant 🚧
Phase 15 – CI/CD
Ziel
Tests und Bereitstellung automatisieren.
Pipeline:
Developer
│
▼
Git Push
│
▼
GitHub Actions
│
├── Install dependencies
├── Lint
├── Type check
├── Run tests
├── Build
└── DeployStatus
Geplant 🚧
🔐 Umgebungsvariablen
Commite .env niemals auf GitHub.
Verwende:
.envfür die lokale Entwicklung.
Beispiel:
MONGODB_URI=mongodb://localhost:27017/mcp-support
OPENAI_API_KEY=your_api_key
JWT_SECRET=your_secretStelle bereit:
.env.examplestattdessen:
MONGODB_URI=
OPENAI_API_KEY=
JWT_SECRET=🧪 Entwicklung
Abhängigkeiten installieren:
npm installEntwicklungsdemo Server starten:
npm run devBuild ausführen:
npm run buildProduction-Build ausführen:
npm start🔍 MCP Inspector
Der MCP Inspector wird verwendet, um den MCP-Serveren zu testen und während der Entwicklung die verfügbaren Tools zu prüfen.
Beispiel:
npx @modelcontextprotocol/inspector npx tsx src/index.tsDer Inspector ermöglicht uns:
Eine Verbindung mit dem MCP-Server herzustellen
Tools zu entdecken
Tool-Schemas zu prüfen
Tools auszuführen
Antworten zu prüfen
MCP-Kommunikation zu debuggen
🧠 Demonstrierte MCP-Konzepte
Dieses Projekt demonstriert die folgenden MCP-Konzepte:
MCP-Server
Stellt Funktionalitäten für MCP-Clients bereit.
MCP-Client
Stelle eine Verbindung zu MCP-Servern her und ruft deren Fähigkeiten auf.
Tools
Ausführbare Operationen, die KI-Systemen zur Verfügung gestellt werden.
Beispiele:
find_customer
get_customer_orders
create_support_ticketRessourcen
Schreibgeschützte Kontextdaten, die einem MCP-Client apresentiert werden können.
Mögliche zukünftige Ressourcen:
customer://customer_123
order://order_123Prompts
Wiederverwendbare Prompt-Vorlagen/Workflows, die ück MCP bereitgestellt werden können.
Mögliches Beispiel:
customer_support_resolution🏆 Produktionsarchitektur
Die endgültige Architektur soll wie nomzint aussehen:
┌───────────────┐
│ User │
└───────┬───────┘
│
▼
┌───────────────┐
│ LLM / AI │
└───────┬───────┘
│
▼
┌───────────────┐
│ MCP Client │
└───────┬───────┘
│
▼
┌────────────────────────┐
│ MCP Server │
│ │
│ Authentication │
│ Authorization │
│ Validation │
│ Rate Limiting │
│ Logging │
└───────────┬────────────┘
│
┌────────────────┼────────────────┐
▼ ▼ ▼
Customer Tool Order Tool Ticket Tool
│ │ │
└────────────────┼────────────────┘
▼
Service Layer
│
┌───────────────┼───────────────┐
▼ ▼ ▼
MongoDB Redis Logging📌 Aktueller Fortschritt
Phase | Funktion | Status |
1 | Grundlagen des MCP-Servers | ✅ Abgeschlossen |
2 | Mehrere MCP-Tools | 🚧 Geplant |
3 | MongoDB-Integration | 🚧 Geplant |
4 | Service-Layer | 🚧 Geplant |
5 | MCP-Client | 🚧 Geplant |
6 | LLM-Integration | 🚧 Geplant |
7 | KI-Agenten-Workflow | 🚧 Geplant |
8 | Authentifizierung & Autorisierung | 🚧 Geplant |
9 | Fehlerbehandlung | 🚧 Geplant |
10 | Logging & Beobachtbarkeit | 🚧 Geplant |
11 | Rate Limiting | 🚧 Geplant |
12 | Audit-Logging | 🚧 Geplant |
13 | Testing | 🚧 Geplant |
14 | Containerisierung | 🚧 Geplant |
15 | CI/CD | 🚧 Geplant |
💡 Beispiel für ein zukünftiges Gespräch
Sobald alle Phasen abgeschlossen sind, sollte das System Gespräche wie die folgenden unterstützen:
Benutzer
Meine letzte Bestellung ist noch nicht angekommen. Können Sie sie prüfen und ein Support-Ticket erstellen?
KI
1. Find customer
2. Retrieve orders
3. Identify delayed order
4. Create support ticket
5. Return ticket informationKI-Antwort
Ihre Bestellung
ORD-123ist verspätet. Ich habe das Support-TicketTICKET-456für Sie erstellt.
🎓 Abgedeckte Interviewthemen
Dieses Projekt kann verwendet werden, um Kenntnisse zu demonstrieren:
Model Context Protocol
KI-Agenten
LLM-Tool-Aufrufe
Function Calling
MCP-Server
MCP-Clients
Tool-Discovery
Tool-Ausführung
TypeScript
Node.js
MongoDB
Mongoose
Clean Architecture
Service-Layer-Architektur
Authentifizierung
Autorisierung
RBAC
Rate Limiting
Redis
Logging
Observability
Docker
CI/CD
GitHub Actions
Testing
Skalierbare Backend-Architektur
📈 Zukünftige Verbesserungen
Mögliche zukünftige Erweiterungen umfassen:
Mehrere MCP-Server
MCP-Zahlung
E-Mail- MCP-Tools
CRM-Integration
Slack-Integration
GitHub-Integration
Vektordatenbank
RAG und semantische Suche
Human-in-the-Loop-Genehmigung
Tool-Berechtigungsrichtlinien
Tool-Execution-Tracing
Verteiltes MCP-Peployment
Kubernetes-Deployment
👨
This server cannot be deployed
Maintenance
Related MCP Connectors
Build and manage AI-native customer support agents from Claude or any MCP client.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Build and run AI workflows, agents, data tables and 1000+ API integrations from any MCP client.
Pay-per-use tool marketplace for AI agents. Search, price-check, and call APIs via MCP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI-powered customer support with real-time access to CRM, ticketing, and communication tools via MCP, supporting context-aware conversations and automated actions.Apache 2.0
- AlicenseNot gradedqualityDmaintenanceExposes order status lookup and knowledge base search tools from the Support Agent AI over MCP, enabling MCP clients to handle customer support queries with grounded, citation-backed answers.1MIT
- FlicenseNot gradedqualityCmaintenanceProvides MCP tools for hybrid knowledge base search, grounded Q&A with citations, agent execution, and ticket/account lookups.-
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to handle customer support by looking up order status, semantically searching knowledge bases, and creating support tickets through MCP tools, with grounded answers and automated evaluations.-