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
🛠️ 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 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
Connect e-commerce and marketing data to AI assistants via MCP.
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
100+ MCP tools for AI agents: content metadata, trade intelligence, business-expertise analysis.
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/ashwani-yadav83602/First-Customer-MCP-PROJECT'
If you have feedback or need assistance with the MCP directory API, please join our Discord server